前言
RCNN可以说是深度学习应用到目标检测领域一个不小的贡献。最近看了RNN的文章,对里面的Bounding-box regression回归不甚理解,google一番,把学到的东西写在这里。
参考的文章。
为啥要回归
鉴于bounding box太长,下面简写为bb,bounding box regression 简写为bbr。
首先,原始的bb是用selective research选出来的,这相当于是外部的算法,硬加到了CNN中。当然,经过一大堆的过滤和NMS(非最大值抑制),我们可以认为一张图就得到了一个“暂时最优”的bb。也就是detection暂时的工作结果。
但是,这样就可以了吗?以下图为例:
红色框是我们预先propose出来的。绿色的框是Ground truce,也就是label,是最优的。这两个框显然不太重合。那么问题来了,如果有一种办法,能够让我们在经过了一大堆CNN计算之后,得到的这个“暂时最优” 的框“挪动” 那么一下,更接近Ground truce,岂不是美滋滋。
怎么“挪动”
挪动这个词只是形象的说法。其实就是平移+缩放。
令 P={ Px,Py,Pw,Ph} 表示我们的“暂时最优” 框。x、y表示框中心的坐标,w、h表示宽和高。
令 G={ Gx,Gy,Gw,Gh} 表示Ground truth。
令 G^={ G^x,G^y,G^w,G^h} 表示我们 变换后 得到的框。
那么平移我们可以表示为:
G^x=Px