前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >21.8K Star 太好用了!Supervision:强大的计算机视觉工具箱!Python工程师有福了!

21.8K Star 太好用了!Supervision:强大的计算机视觉工具箱!Python工程师有福了!

作者头像
Python兴趣圈
发布2024-09-26 10:25:05
1020
发布2024-09-26 10:25:05
举报
文章被收录于专栏:翩翩白衣少年

在计算机视觉的世界中,越来越多的任务需要快速高效的处理,比如人体跟踪、分割、检测等。

今天为大家推荐一个开源的计算机视觉工具箱 Supervision,使用它你可以在你电脑上实现人体跟踪、分割、检测等一系列计算机视觉的场景。

项目介绍

Supervision 是一个针对于计算机视觉各种任务的框架工具,可作为Python语言的三方库直接调用,提供了便捷高效的视觉处理方法,可以轻松处理数据集或直观地展现检测结果。

还提供了统计特定区域内检测跟踪、越线数量统计、切片推理、轨迹平滑等不同计算机视觉任务的方法封装。可谓是在CV领域,有了它你可以少写很多展现和计算代码。

Supervision 在 GitHub 上赢得了超过 21K 颗星,成为了计算机视觉领域不可或缺的神器。

主要功能

1、自定义模型使用

Supervision 不限于某个特定模型,用户可以轻松插入自己需要的分类、检测或分割模型,享受极高的灵活性。

2、数据处理

Supervision 带有完整的数据处理能力,无论是从硬盘加载数据集,还是在图像或视频上绘制检测结果,亦或是将标签转换为不同格式,这个工具箱都能助你一臂之力。

3、数据集工具

Supervision 提供了一套工具,允许你在支持的格式中加载、分割、合并和保存数据集。

4、模型连接器

为了方便使用,可以使用最流行的库(如 Ultralytics、Transformers 或 MMDetection)创建连接器。

5、视觉任务封装

Supervision 还提供了多种视觉任务的封装,比如:

  • 区域统计:跟踪和统计特定区域内的检测结果。
  • 越线统计:计算目标是否跨越特定的界线。
  • 切片推理:将大图像分割为小块进行推理。
  • 轨迹平滑:在目标跟踪过程中平滑轨迹,减少跳动和不连续。

这些封装让你可以专注于核心算法,而不用花费过多精力在视觉结果的绘制和展示上。

安装与使用

由于supervision是纯Python语言开发的模块,所有直接使用pip安装即可。

代码语言:javascript
复制
pip install supervision

根据项目文档,选择你需要的视觉任务 API,加载模型和数据集,开始进行检测和处理。

案例1:目标检测
代码语言:javascript
复制
import cv2
import supervision as sv
from ultralytics import YOLO

model = YOLO("yolov8n.pt")
image = cv2.imread('demo.png')
results = model(image)[0]
detections = sv.Detections.from_ultralytics(results)

box_annotator = sv.BoxAnnotator()
label_annotator = sv.LabelAnnotator()

labels = [
    f"{class_name} {confidence:.2f}"
    for class_name, confidence
    in zip(detections['class_name'], detections.confidence)
]

# 标注识别框
annotated_image = box_annotator.annotate(scene=image, detections=detections)
# 标注识别标签和置信度
annotated_image = label_annotator.annotate(scene=annotated_image, detections=detections, labels=labels)
cv2.imwrite('demo01.png',annotated_image)
案例2:语义分割
代码语言:javascript
复制
import cv2
import supervision as sv
from ultralytics import YOLO

model = YOLO("yolov8n-seg.pt")
image = cv2.imread('demo.png')
results = model(image)[0]
detections = sv.Detections.from_ultralytics(results)

mask_annotator = sv.MaskAnnotator()
label_annotator = sv.LabelAnnotator(text_position=sv.Position.CENTER_OF_MASS)

annotated_image = mask_annotator.annotate(scene=image, detections=detections)
annotated_image = label_annotator.annotate(scene=annotated_image, detections=detections)

cv2.imwrite('demo01.png', annotated_image)

总结

Supervision 是一个强大且灵活的计算机视觉工具箱,能够显著提升开发效率,并提供多样化的视觉任务处理方案。

它不仅支持常见的计算机视觉功能,如检测、分割和跟踪,还提供了丰富的数据处理和展示工具,让开发者可以轻松应对复杂的视觉任务。

如果你在寻找一个功能全面且易用的工具来实现计算机视觉任务,Supervision 无疑是值得一试的选择。

开源地址:https://github.com/roboflow/supervision

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-09-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python兴趣圈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 项目介绍
  • 主要功能
    • 1、自定义模型使用
      • 2、数据处理
        • 3、数据集工具
          • 4、模型连接器
            • 5、视觉任务封装
            • 安装与使用
              • 案例1:目标检测
                • 案例2:语义分割
                • 总结
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档