目标检测为什么预测偏移量offset而不是直接预测的中心点xy和高宽wh

发布时间 2023-07-10 09:42:49作者: 海_纳百川

首先偏移量的公式为:

这些偏移量的范围都是0-1,所以采用BCE来计算坐标定位损失

  • 中心点的偏移decode为公式1和公式2,偏移值是在卷积的特征上算的,卷积特征是尺度不变的,所以预测除以宽高后的偏移比例,该比例为与尺度无关的值
  • 宽高的尺寸缩放比例decode为公式3和公式4,跟中心点偏移一样,缩放比例也要除以宽高转化为尺度无关的值,考虑这里比例是没有负数,所以先对比例取个指数

 

1、bbox的预测是通过卷积以滑动窗口的形式计算的,这其中并没有引入物体的绝对位置信息

2、可以设想:同一个物体,在不一样的位置,如果不encode, 那么就对应不同的regression target,由于是同一个物体,所以假设这两个区域提取出来的特征是一样的,对预测器来说,相当于同样特征的输入,回归目标却不一样,形成矛盾.

在实际的业务部署中也建议这样做,因为log/exp操作在绝大多数芯片上的latency都要大于加减乘,这样做对量化等操作的友好程度也更高。 

对比一下其他检测模型的不同:

  1. YOLO
    a. yolov1预测的x,y是以grid cell为参考,预测的w,h无参考。
    b. yolov2-v5,预测的x,y是以grid cell为参考,预测的w,h以anchor的w,h为参考。
  2. Faster RCNN
    a. RPN预测的x,y是以anchor的中心为参考,预测的w,h以anchor的w,h为参考。
    b. RCNN预测的x,y是以RPN的输出proposal的中心为参考,预测的w,h以proposal的w,h为参考。
  3. FCOS
    fcos预测的l,t,r,b是以grid cell为参考。
  4. DETR
    detr预测的是绝对坐标,归一化之后的。这个由Transformer的本身计算决定,它是全局注意力,而CNN相当于局部注意力。
  5. Deformable DETR
    deformable detr预测的x,y是以reference point为参考,w,h无参考。和CNN不同的是,这个reference point不是固定的,是模型学习来的。并且把transformer的全局注意力修改为局部注意力。

总结:

用CNN来做检测模型,预测bbox一定是基于一个固定的参考(anchor,grid cell),而用transformer结构来做检测模型,预测bbox可以是绝对坐标,也可以是基于一个参考。