我是CV领域的新手,正在尝试建立一个使用yolo的对象检测和使用DeepSort的对象跟踪。我在识别视频中的物体时遇到了一些问题。这里有一个例子:运动球在视频中被识别出来,但当它离人太近时,检测器无法识别它。
在这张图片中,球被识别出来:

这里没有标识公牛:

如何提高检测率?我使用的是预先训练好的yolov3(在coco数据集上训练的)和DeepSort。
发布于 2021-02-03 22:46:17
为了从yolov3获得更好的准确性,您可以使用新图像重新训练模型。
如果你不想这样做,也许你可以尝试升级你的模型,使用Yolov4或Yolov5。这些方法具有更好的性能和准确性。
发布于 2021-02-09 20:36:11
根据你的样本的分辨率,我可以说它是从更大的图像中裁剪出来的,因此在给定的上下文中,球是相当小的物体。
Yolo架构因其在特征映射中的降维而在小对象上的性能差而臭名昭著。
对于跟踪、检测和进一步跟踪小对象,我建议使用SSD架构,该架构使用从多个深度级别提取的特征图来生成结果;或者尝试使用可以与EfficientDet等推理时间性能相当的较新的架构。它们的实现都可以在各种框架中找到。
发布于 2021-09-30 13:38:29
当未检测到单个对象时,可以使用单个对象跟踪。在OpenCV中: KCF,CSRT等。
帧N检测到两个物体:人和球。保存指向帧N的指针。
帧N+1。仅检测到人员。在帧N上创建单个跟踪器(CSRT更好)。在当前帧N+1上运行CSRT跟踪器。获取当前位置并将其添加到检测中。保存指向帧N+1的指针。
帧跟踪器。如果检测到球,则删除N+2跟踪器。保存指向帧N+2的指针。
..。
https://stackoverflow.com/questions/66028198
复制相似问题