事情是这样的。
有个粉丝。
上个星期在做产线质检项目的时候,它拿到了视觉检测结果。
原来打算直接标出缺陷的位置,并把坐标数据导出给MES系统使用。
最后发现要用到很多OpenCV的代码来画框、调色、格式转换等等,折腾了好久。
让我推荐一个视觉推理项目。
今天有空我就去搜索了,找到了一个叫做 Supervision 的项目。
说能直接处理模型推理结果,可视化、数据导出一键搞定。
看了一下,确实省事。以前写100行的代码,现在3行就能跑。
Supervision,一个专门处理计算机视觉推理结果的工具库。
一般的做法是拿到模型输出之后,自己写代码来解析格式、画出标注框、导出数据集。
使用 Supervision 之后,模型推理的结果就直接转为一种统一的形式,并且包括了标注、数据集处理、视频处理都全部搞定。
做视觉应用的工程师, 可以看看, 很省时间。
下面我们看看它有哪些独特功能。
模型推理结果可以直接用,不用自己解析格式。
Supervision 设计成模型无关的,主流视觉模型库都支持。
Ultralytics、Transformers、MMDetection、Inference 这些库的输出,用一行代码就转成统一格式。
拿到 detections 对象之后,类别、坐标、置信度等信息都会被自动解析出来。
检测框坐标格式统一,bbox 直接就是 xyxy 坐标,不需要自己进行转换。
类别标签以及置信度也已经解析出来了,想要过滤阈值就直接传参就可以了。
以前要写100行解析代码,现在3行就搞定。
检测结果可视化标注,一行代码就能搞定。
传统的做法是使用OpenCV来编写标注代码,调节颜色、调节粗细、调节字体大小等参数很多。
Supervision提供了Annotator标注器,样式参数直接传递,不需要自己编写绘图逻辑。
检测框的颜色、线条宽度、标签字体等参数都有的,想要调整样式就直接传参就可以了。
标注样式可以组合叠加,框标注、文本标注、边界标注一起用。
把多个Annotator组合在一起之后,检测结果的展示效果可以做到很直观。
做视觉质检的工程师,标注样式调半天这种事,用这个工具直接省掉了。
缺陷检测结果展示,用不同颜色来表示不同的缺陷类型,一目了然。
数据集格式转换,用一个函数就可以完成。
在做工控视觉项目的的时候,数据集格式转换是很常见的事情。
把YOLO格式转换为COCO格式、COCO格式转换为Pascal VOC格式,每次都要写脚本,半天才能跑通。
Supervision 内置了数据集转换工具,可以将各种主流格式的数据集进行转换。
数据集分割也可以实现,可以自动划分出训练、测试和验证的比例。
以前写脚本1小时,现在1个函数调用,效率直接翻倍。
数据集合并也可以,在多个数据集合并的时候会自动进行类别的对齐。
不同数据集的类别标签不一样,合并后会自动整合类别列表。
数据集导出只需要一行代码就可以实现,YOLO、COCO、Pascal VOC 格式随便选。
视频实时处理和目标跟踪,性能稳定。
在产线监控场景中,视频流需要逐帧进行处理,并且要对每一帧的结果做实时标注和检测。
传统的做法是自己编写视频处理逻辑,帧率不稳,性能优化需要折腾一天。
Supervision提供了视频处理工具,并且可以做到一帧一帧地进行标注和流畅的处理。
目标跟踪也已经内嵌入了,集成了主流的跟踪算法,并且有跨帧的目标ID自动管理功能。
作为产线物料追踪和流量统计的工程师,该功能可以直接用。
跟踪结果还能可视化轨迹和速度估计,监控数据一目了然。
产线物料跟踪场景下,跨帧保持目标ID,跟踪结果稳定可靠。
过去需要自己集成跟踪算法、编写ID管理逻辑,现在可以直接使用现有的方案。
区域监控和计数功能,产线统计直接用。
Zone counting 划定区域内目标计数,适合缺陷数量统计。
线计数,即越线计数,适用于生产线的吞吐量统计。
实时统计功能和视频处理相结合,产线监控数据实时更新。
过去需要自己编写计数逻辑,现在可以直接使用现有的工具。
看到这你想装上试试?
安装非常简单,一个命令就可以运行起来。
pip install supervision安装完毕之后,在 Python 代码中直接import supervision as sv就可以使用了。
更多用法看看官方文档。
感兴趣的朋友可以抓紧试试。
开源地址:https://github.com/roboflow/supervision 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!