暂无菜单项

Supervision:Roboflow 开源计算机视觉工具库,46.3K+ Stars 让 CV 开发不再重复造轮子

发布于 更新于
1

🔍 Supervision

Roboflow 开源计算机视觉工具库

⭐ 46.3K+ Stars
🍴 4.1K+ Forks
🐍 Python
📜 MIT 许可

📌 项目简介

Supervision 是 Roboflow 团队开发的开源 Python 计算机视觉工具库,提供模型无关的检测、跟踪、标注和数据集处理能力。它让你专注于业务场景,而不是重复编写基础 CV 工具函数。

✨ 核心特色

🔗 模型无关设计

内置 Ultralytics (YOLO)、Transformers、MMDetection、RF-DETR 等主流库的连接器,统一输出 sv.Detections 格式,换模型不改代码。

🎨 丰富可视化标注

提供 BoxAnnotator、MaskAnnotator、EllipseAnnotator、LabelAnnotator 等多种标注器,高度可定制,一行代码完成结果可视化。

📦 数据集处理

支持 COCO、YOLO、Pascal VOC、YOLOv8 Oriented Bounding Box 等格式的加载、拆分、合并、格式转换,一站式数据集管理。

📹 视频分析工具

内置目标跟踪(ByteTrack/Norfair)、区域计数、速度估计、驻留时间分析等常见 CV 任务的配套工具,开箱即用。

⚙️ 安装要求和过程

环境要求

  • Python ≥ 3.10
  • 操作系统:Windows / macOS / Linux 全平台支持
  • 可选依赖:根据使用的模型后端选择安装(ultralytics / transformers / mmdet 等)

快速安装

# 使用 pip 安装(推荐)
pip install supervision

# 使用 conda 安装
conda install -c conda-forge supervision

# 从源码安装最新版
pip install git+https://github.com/roboflow/supervision.git

💡 安装后可在 Google Colab 中在线体验,或访问 HuggingFace Spaces 体验标注器效果。

🚀 典型使用场景

场景一:目标检测 + 可视化标注

使用 YOLO 或 RF-DETR 模型进行目标检测,并用 Supervision 的标注器一键可视化结果:

import cv2
import supervision as sv
from rfdetr import RFDETRSmall

# 加载模型
model = RFDETRSmall()
image = cv2.imread("image.jpg")

# 推理
detections = model.predict(image, threshold=0.5)

# 可视化
box_annotator = sv.BoxAnnotator()
label_annotator = sv.LabelAnnotator()

annotated = box_annotator.annotate(
    scene=image.copy(), detections=detections
)
annotated = label_annotator.annotate(
    scene=annotated, detections=detections
)

cv2.imwrite("result.jpg", annotated)

场景二:视频目标跟踪与区域计数

对视频中的目标进行跨帧跟踪,并统计穿越特定区域的目标数量:

import supervision as sv

# 定义感兴趣区域(多边形)
ZONE = sv.PolygonZone(
    polygon=sv.Polygon.from_file("zone.json")
)

tracker = sv.ByteTrack()

for frame in sv.get_video_frames_generator("video.mp4"):
    detections = model.predict(frame)
    detections = tracker.update(detections)
    
    # 统计区域内的目标
    zone_count = ZONE.trigger(detections)
    print(f"区域内目标数: {zone_count}")

场景三:数据集格式转换

在不同标注格式之间自由转换,方便切换训练框架:

import supervision as sv

# 从 COCO 格式加载
dataset = sv.DetectionDataset.from_coco(
    images_directory_path="data/train/images",
    annotations_path="data/train/_annotations.coco.json",
)

# 拆分为训练集和验证集
train_ds, val_ds = dataset.split(split_ratio=0.8)

# 保存为 YOLO 格式
train_ds.as_yolo(
    images_directory_path="data/yolo/images/train",
    annotations_directory_path="data/yolo/labels/train",
)

💡 推荐理由

计算机视觉开发者最头疼的事情之一,就是每次用新的检测模型都要重新写一遍数据预处理、结果解析、可视化标注、数据集转换的代码。Supervision 把这个痛点彻底解决了。

它的 模型无关设计 是一大亮点——不管你用 YOLOv8、YOLO11、RT-DETR、SAM 还是 Grounding DINO,Supervision 都能以统一的 sv.Detections 格式输出结果,让你的下游代码完全不用改。

另一个让人惊喜的地方是数据集处理工具。以前 COCO 转 YOLO 要写几十行脚本,现在几行代码就搞定。格式拆分、合并、统计类别分布,全都内置了。

Roboflow 作为计算机视觉领域的头部公司,维护质量和文档完善度都非常高。PyPI 月下载量超百万,社区活跃,Discord 里提问基本当天就有回复。不管是做学术研究还是工业落地,这都是必备工具库。

📥 下载地址

🔗 GitHub 仓库
github.com/roboflow/supervision

📚 官方文档
supervision.roboflow.com

📦 PyPI 安装
pip install supervision

💬 Discord 社区
加入 Roboflow 社区交流

📊 项目信息

GitHub Stars ⭐ 46,329+
Forks 🍴 4,106+
语言 🐍 Python
许可 📜 MIT License
最新版本 v0.29.0(要求 Python ≥ 3.10)
创建时间 2022-11-28
维护方 Roboflow 团队

🤖 本文由 AI 自动生成 · 数据来源:GitHub – roboflow/supervision

0 点赞
0 收藏
分享
0 讨论
反馈
0 讨论
热门最新
总结
暂无总结
0 / 600