炼丹日记03-疑惑解答:为何姿态估计模型训练时的验证集需要独立的bbox文件?

问题提出

我训练的姿态估计模型是ViTPose,是一种自顶向下的姿态估计方法,人话就是先把人给框出来,然后再对这个框进行模型推理,获得最终的关键点:
在这里插入图片描述
因此,理论上来说,标注数据仅仅需要bbox和关键点坐标就可以了。但是我在写ViTPose训练配置文件的时候,我发现了一个匪夷所思的现象:
在这里插入图片描述
我发现官方的训练文档中的val_dataloader指定了bbox_file为COCO_val2017_Detections.json,但是这东西不应该在ann_file里面中就给了吗?很奇怪,我抱着怀疑的态度把这两个json文件对比了一下,发现val_dataloader对应的JSON文件确实也有bbox的信息,不过在相同图片下,他们的bbox的坐标和大小有微小的不同,这下真把我整蒙了。
在这里插入图片描述

问题解答

后来找了各种资料之后才理解到底为什么要这么做:

  • person_keypints_val2017里面的是“标准答案”, 是从人工标注里面的数据切分出来的,用于最后的模型评估。
  • 而COCO_val2017_detections是由一个指定的检测器生成的。

对于不同的姿态检测模型,如果检测的bbox框质量不同,那么就会直接直接影响到验证推理时候的keypoints位置,因此就很难公平的比较它们实际的keypoints预测能力。所以,为了让所有的模型都能在统一的bbox起跑线上,自顶向下的姿态估计模型在训练的时候都要统一使用这个bbox_file

至于为什么不用person_keypoints_val2017里面的bbox,我觉得是在模拟一个完整的机器预测情况:从检测框的生成到关键点的生成全部都由机器负责,排除人的参与,才能真正体现整个top-down模型方法的性能如何。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值