Supervision Vibe 项目
**项目简介** Supervision 是由计算机视觉公司 Roboflow 开源的 Python 工具库
项目简介
Supervision 是由计算机视觉公司 Roboflow 开源的 Python 工具库,定位是「计算机视觉应用开发的基础工具箱」。它不训练模型,而是解决模型之外的工程问题:如何统一不同检测框架的输出、如何把检测结果画成可读的可视化、如何在视频流里稳定追踪目标、如何在指定区域内计数、如何加载与转换各种数据集格式。项目在 GitHub 已获得超过 5 万 Star,是当前 Python 视觉生态中被广泛引用的开源项目之一。
核心功能
统一的 Detections 数据结构:提供标准的 Detections、KeyPoints、Masks 等对象,并为 Roboflow Inference、Transformers、SAM、Detectron2、MMDetection、Ultralytics、YOLO-NAS、PaddleDet、NCNN、Azure AI Vision 以及各类视觉语言模型解析器提供转换器,一处对接多处复用。
高度可定制的标注器:内置 BoxAnnotator、MaskAnnotator、LabelAnnotator、PolygonalAnnotator、BoxCornerAnnotator 等多种标注器,可自由组合出符合业务需求的可视化效果,支持图片与视频。
跨帧目标追踪:内置 ByteTrack 等追踪器,为每帧检测结果分配稳定持久的 ID,让视频中的目标计数、轨迹分析与速度估计成为可能。
区域计数与过滤:提供 LineZone、PolygonZone 等区域工具,可在指定线段或多边形区域内统计进出人流、车流数量,并按置信度、类别等条件过滤检测结果。
数据集工具链:支持 YOLO、COCO、Pascal VOC 等格式数据集的加载、切分、合并、保存与互相转换,适合快速搭建训练与评测数据集。
指标评估:内置 mAP、mAR、Precision、Recall、F1 Score 等评估指标实现,可直接对模型输出做量化对比。
小目标与推理辅助:提供 InferenceSlicer 分片推理与 DetectionSmoother 平滑等工具,用于提升小目标检出率并抑制视频检测抖动。
技术实现
Supervision 采用「模型无关」的架构设计,核心抽象是一套描述检测结果的通用数据结构。无论上游模型来自 Ultralytics 的 YOLO 系列、Hugging Face Transformers、还是 Meta 的 SAM 与 Detectron2,都可以通过官方提供的转换器统一映射到 Detections 对象上;而 Roboflow 自家的 RF-DETR 检测与分割模型因为原生返回该结构,甚至不需要任何转换步骤。这一层抽象把「模型选择」与「后处理逻辑」彻底解耦,开发者更换模型时几乎不需要改动下游代码。
在标注与渲染层,库基于 OpenCV、Pillow 与 NumPy 实现,所有标注器都遵循统一的 annotate 接口,输入一帧图像与一份检测结果,返回绘制完成的新帧,因此可以像积木一样自由组合。区域与追踪层则由纯 Python 与 NumPy 实现几何计算和状态关联,ByteTrack 追踪器在每帧维护目标的运动与外观状态,从而在遮挡与短暂丢失后仍能恢复同一 ID。数据集层围绕 DetectionDataset 类构建,通过 from_yolo、from_coco、from_pascalvoc 等类方法完成读取,并提供 split、merge、as* 等实例方法完成切分、合并与导出,整个库仅需 Python 3.10 及以上环境即可运行。
快速上手
第一步,安装:pip install supervision(如使用特定模型,再按需安装 rfdetr 等可选依赖)。
第二步,加载模型并推理:例如使用 RF-DETR 对图片推理,得到 detections = model.predict(image)。
第三步,统一数据结构:用 sv.Detections.from_inference(...) 或对应转换器把模型输出映射为标准 Detections 对象。
第四步,可视化:初始化 BoxAnnotator 或 MaskAnnotator,调用 annotate 方法对图像副本绘制标注框与标签。
第五步,接入视频:对每一帧重复推理与标注,配合 ByteTrack 追踪器获得持久跟踪 ID,并用 LineZone 或 PolygonZone 完成区域计数。
第六步,数据集与评估:用 sv.DetectionDataset.from_coco 等加载数据集,调用 sv.mAP 等指标函数对模型输出做量化评估。
适用人群
计算机视觉工程师、算法研发人员、需要在项目中快速搭建检测与追踪流水线的 Python 开发者,以及希望把视觉模型落地到人流统计、交通监控、工业质检等业务场景的产品与工程团队。
官网链接
评论与建议
登录 后参与评论或提建议