我正在使用 YOLOv8 通过追踪摄像机镜头来追踪动物。跟踪可以很好地从一帧到另一帧识别出同一只动物。然而,它是什么类型的动物是在每帧的基础上工作的,并且可以在帧与帧之间给出不同的结果,特别是如果有几种相似的动物可以被检测为(由于某种原因,鹿和猪似乎是一个常见的混淆!)和置信水平差异很大。我想将每个帧中检测到的所有前 5 个跟踪类别组合起来,以获得所跟踪动物的总体分类。
但是,Boxes 结果对象仅包含每帧最高的检测值,与整个图像分类中具有 top5()
的
Probs相比。
有没有办法访问检测预测结果中的前 5 个类别?
我可以从原始图像中提取检测到的框的内容,然后重新运行分类过程以获得 top5。然而,这效率很低,因为它需要两次传递,这对于“You Only Look Once”来说并不理想!
Is there a way to access the top 5 classes in the results of doing detection prediction?
没有简单的方法可以做到这一点。这就是为什么:
您从模型提供的一组检测开始
NMS 然后:
a.按置信度对检测结果进行排序
b.选择得分最高的框,并删除所有其他具有显着重叠的框(基于预定义的阈值,例如交并集或 IoU)
重复上一步,直到没有重叠,这些就是模型输出的bbox。
因此不存在用于检测的 TOP5 之类的东西。您可以修改 Yolov8 的内部工作方式并尝试从原始 bbox 中提取信息。但这说起来容易做起来难。