Supervision

4个月前发布 143 00

Supervision 是一个功能强大、灵活的计算机视觉工具包,适合从初学者到专业开发者。其模块化设计、与主流模型的兼容性以及丰富的可视化工具使其成为快速开发计算机视觉应用的理想选择。通过社区贡献和持续更新,Supervision 不断扩展功能,适应多样化的应用需求。

所在地:
美国
收录时间:
2025-08-19
其他站点:
SupervisionSupervision

Supervision 是一个由 Roboflow 开发的开源 Python 包,旨在为计算机视觉项目提供一套易于使用的工具集。它以 MIT 许可证发布,适用于 Python 3.7 及以上环境,目标是帮助开发者快速构建和部署计算机视觉应用,涵盖从数据加载、目标检测、分割到可视化等功能。

Supervision

核心功能

Supervision 提供了一系列模块化的工具,适用于各种计算机视觉任务,特点是模型无关(model-agnostic),可以与多种流行的模型库(如 Ultralytics YOLO、Transformers、MMDetection 等)无缝集成。以下是其主要功能:

  1. 数据集管理
    • 支持加载、分割、合并和保存多种格式的数据集,简化数据预处理流程。
    • 提供数据增强功能,如生成图像的多个增强版本以提升模型泛化能力。
  2. 目标检测与分割
    • 提供 sv.Detections 类,用于统一处理目标检测和分割模型的输出,包含边界框(xyxy)、掩码(mask)、置信度(confidence)、类别 ID(class_id)等字段。
    • 支持从多种模型(如 YOLO、PaliGemma、YOLO-NAS)加载检测结果,并进行后处理,如非极大值抑制(NMS)等。
  3. 可视化与标注
    • 提供高度可定制的标注器(Annotators),如 BoxAnnotatorLabelAnnotator,用于在图像或视频上绘制检测结果(如边界框、标签等)。
    • 支持高级可视化功能,例如百分比条(PercentageBar)、圆角框(RoundedBox)和定向边界框(OrientedBox)。
  4. 目标跟踪与区域计数
    • 集成多目标跟踪算法(如 ByteTrack),支持视频中的对象跟踪。
    • 提供 PolygonZone 和 LineZone 等工具,用于计数进入特定区域或穿越线的对象,适用于零售、交通管理等场景。
  5. 性能评估
    • 支持 F1 分数等评估指标,用于评估模型性能,特别是针对小目标的检测效果。
    • 提供 Intersection over Smallest (IOS) 等重叠度量方法,用于更精确的检测分析。
  6. 视频处理
    • 支持实时视频分析,提供视频帧生成器(get_video_frames_generator)和数据导出工具(如 CSV 和 JSON 格式)。
    • 可用于实时流处理、速度估计等复杂任务。

安装方式

Supervision 支持通过 pip 安装,适用于 Python 3.7 及以上版本。以下是安装示例:

pip install supervision

或者从 GitHub 安装开发版本:

git clone https://github.com/roboflow/supervision.git
cd supervision
python3 -m venv venv
source venv/bin/activate
pip install -e "."

对于需要 GUI 支持的桌面版本,可以安装附加组件:

pip install -e ".[desktop]"

注意:从 0.24.0 版本开始,"headless" 和 "desktop" 安装方式已被移除,统一为标准安装。

使用示例

以下是一个简单的目标检测和可视化示例:

import cv2
import supervision as sv
from ultralytics import YOLO

# 加载图像和模型
image = cv2.imread("dog.jpeg")
model = YOLO("yolov8s.pt")

# 进行推理
result = model(image)[0]
detections = sv.Detections.from_ultralytics(result)

# 可视化检测结果
box_annotator = sv.BoxAnnotator()
annotated_frame = box_annotator.annotate(scene=image.copy(), detections=detections)
sv.plot_image(annotated_frame)

此代码使用 YOLOv8 模型进行目标检测,并通过 Supervision 的 BoxAnnotator 在图像上绘制边界框。

应用场景

Supervision 广泛应用于零售(客流分析)、交通(车辆速度估计)、安防(无人机检测)等领域。例如,结合 YOLO 和 ByteTrack,可以实现实时车辆跟踪与速度估计,或分析区域内对象的停留时间。

数据统计

相关导航

暂无评论

none
暂无评论...