我在一系列视频帧上运行应用编程接口来跟踪场景中的对象,并为每个对象提取边界框坐标,以计算每个边界框的中心。但是, ymin和ymax坐标似乎有偏移。
场景是一个人在视野中行走,框架的底部与人的脚相匹配(这将推断ymin的值非常小,而ymax值不会扩展到框架的停止。然而,API给出了以下标准化框坐标[452.26962089538574, 197.93473720550537, 1073.7505388259888, 639.3438720703125]
。绝对坐标为[0.41876816749572754, 0.10309100896120071, 0.9942134618759155, 0.3329916000366211]
供参考,视频为1920 x 1080。
放入MATLABs视频标签应用程序的同一帧(翻译成[ymin-xmin-ymax-xmax]
)返回[8.396575927734375,57.50376892089844722.7988586425781431.516952514648444]
。我知道它们不会完全匹配,因为我已经在框中手动绘制了地面真实值(对于x坐标来说尤其如此),但是ymin和ymax应该非常接近,并且这些结果看起来更加真实。
以前有人见过这个吗?当API运行推断时,边界框被正确地绘制到图像上,所以我对发生的事情有点不知所措。因为我直接从box=detection\u图中获取数据。通过名称(“检测框:0”)获取张量,并将其存储在每次迭代中。
原来我忽略了python的坐标系在左上角有0,0这一事实,API通过在可视化工具中设置top=ymin
和bottom=ymax
来解释这一点。皮耶。因此,aymax=1073
确实会接近帧的底部。