目标检测为什么预测偏移量offset而不是直接预测的中心点xy和高宽wh
首先偏移量的公式为:
这些偏移量的范围都是0-1,所以采用BCE来计算坐标定位损失
- 中心点的偏移decode为公式1和公式2,偏移值是在卷积的特征上算的,卷积特征是尺度不变的,所以预测除以宽高后的偏移比例,该比例为与尺度无关的值
- 宽高的尺寸缩放比例decode为公式3和公式4,跟中心点偏移一样,缩放比例也要除以宽高转化为尺度无关的值,考虑这里比例是没有负数,所以先对比例取个指数
1、bbox的预测是通过卷积以滑动窗口的形式计算的,这其中并没有引入物体的绝对位置信息
2、可以设想:同一个物体,在不一样的位置,如果不encode, 那么就对应不同的regression target,由于是同一个物体,所以假设这两个区域提取出来的特征是一样的,对预测器来说,相当于同样特征的输入,回归目标却不一样,形成矛盾.
在实际的业务部署中也建议这样做,因为log/exp操作在绝大多数芯片上的latency都要大于加减乘,这样做对量化等操作的友好程度也更高。
对比一下其他检测模型的不同:
- YOLO
a. yolov1预测的x,y是以grid cell为参考,预测的w,h无参考。
b. yolov2-v5,预测的x,y是以grid cell为参考,预测的w,h以anchor的w,h为参考。 - Faster RCNN
a. RPN预测的x,y是以anchor的中心为参考,预测的w,h以anchor的w,h为参考。
b. RCNN预测的x,y是以RPN的输出proposal的中心为参考,预测的w,h以proposal的w,h为参考。 - FCOS
fcos预测的l,t,r,b是以grid cell为参考。 - DETR
detr预测的是绝对坐标,归一化之后的。这个由Transformer的本身计算决定,它是全局注意力,而CNN相当于局部注意力。 - Deformable DETR
deformable detr预测的x,y是以reference point为参考,w,h无参考。和CNN不同的是,这个reference point不是固定的,是模型学习来的。并且把transformer的全局注意力修改为局部注意力。
总结:
用CNN来做检测模型,预测bbox一定是基于一个固定的参考(anchor,grid cell),而用transformer结构来做检测模型,预测bbox可以是绝对坐标,也可以是基于一个参考。
本文来自博客园,作者:海_纳百川,转载请注明原文链接:https://www.cnblogs.com/chentiao/p/17540016.html,如有侵权联系删除