写 CV 应用不用再手撸可视化代码了,Roboflow 把工具都打包好了。
这个项目解决什么问题?
做计算机视觉,你 90% 的时间不是在调模型,是在搞那些重复的边角活:画检测框、追踪 ID 在画面上的轨迹、统计某个区域里出现了多少个人、把 YOLO 格式转成 COCO 格式……
每个 CV 团队都在重复造这些轮子。supervision 把这一切打包成了一个模型无关、即插即用的 Python 工具集,目前 43k stars。
核心亮点
1. 模型无关,谁来都行
不管你用 YOLO、Transformers、MMDetection、Inference、还是 rfdetr,统一转成sv.Detections对象,后续的所有操作(画框、统计、追踪)都用同一套 API。
fromrfdetrimportRFDETRSmallimportsupervisionassv model=RFDETRSmall()detections=model.predict(image,threshold=0.5)# 直接拿到 5 个检测结果,可以接 sv 的任何工具2. 高度可定制的标注器
box_annotator=sv.BoxAnnotator()annotated_frame=box_annotator.annotate(scene=image.copy(),detections=detections)一行代码画完。还有 mask、label、polygon、heatmap、trace(轨迹)等各种 annotator 任你组合,调一调颜色、字体、粗细,UI 就能拿得出手。
3. 数据集格式转换不用写脚本
sv.DetectionDataset.from_yolo(...).as_coco(...)YOLO ↔ COCO ↔ Pascal VOC 一行代码互转。split、merge、save 全套都有,再也不用手写转换脚本踩格式坑了。
4. 实时计数和区域统计
文档里有现成的"穿过某条线/进入某个区域"的计数工具,做行人统计、车流量、库存检测这类应用非常省事。
快速上手
pipinstallsupervision# Python >= 3.9最小示例(接入 Roboflow Inference):
fromPILimportImagefrominferenceimportget_modelimportsupervisionassv image=Image.open("test.jpg")model=get_model(model_id="rfdetr-small",api_key="ROBOFLOW_API_KEY")result=model.infer(image)[0]detections=sv.Detections.from_inference(result)box_annotator=sv.BoxAnnotator()annotated=box_annotator.annotate(scene=image.copy(),detections=detections)5 行代码出图。
我的评价
如果你做 CV 落地,supervision 几乎是绕不开的工具。和它对标的库(OpenCV 自带的画图函数、各家模型库的可视化工具)都太底层或者绑死特定模型,supervision 是少有的做对了抽象层的库:上层稳定、下层兼容所有主流模型。
适合用:CV 应用开发、模型 demo、数据集预处理、工业视觉项目。
不适合用:纯模型训练(这个 supervision 不管),或者只用 OpenCV 不想引依赖的场景。
项目地址:https://github.com/roboflow/supervision