在这里插入图片描述

写 CV 应用不用再手撸可视化代码了,Roboflow 把工具都打包好了。


这个项目解决什么问题?

做计算机视觉,你 90% 的时间不是在调模型,是在搞那些重复的边角活:画检测框、追踪 ID 在画面上的轨迹、统计某个区域里出现了多少个人、把 YOLO 格式转成 COCO 格式……

每个 CV 团队都在重复造这些轮子。supervision 把这一切打包成了一个模型无关、即插即用的 Python 工具集,目前 43k stars。


核心亮点

1. 模型无关,谁来都行

不管你用 YOLO、Transformers、MMDetection、Inference、还是 rfdetr,统一转成 sv.Detections 对象,后续的所有操作(画框、统计、追踪)都用同一套 API。

from rfdetr import RFDETRSmall
import supervision as sv

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. 实时计数和区域统计

文档里有现成的"穿过某条线/进入某个区域"的计数工具,做行人统计、车流量、库存检测这类应用非常省事


快速上手

pip install supervision
# Python >= 3.9

最小示例(接入 Roboflow Inference):

from PIL import Image
from inference import get_model
import supervision as sv

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

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐