目录
1、为什么要做Bounding-box regression?
3、Bounding-box regression(边框回归怎么做)
1、公式(1)-(4)的推导 https://blog.csdn.net/u014433413/article/details/78194855
1、为什么要做Bounding-box regression?
如上图所示,绿色的框为飞机的Ground Truth,红色的框是提取的Region Proposal。那么即便红色的框被分类器识别为飞机,但是由于红色的框定位不准(IoU<0.5),那么这张图相当于没有正确的检测出飞机。如果我们能对红色的框进行微调,使得经过微调后的窗口跟Ground Truth更接近,这样岂不是定位会更准确。确实,Bounding-box regression 就是用来微调这个窗口的。
2、回归/微调的对象是什么(问题的数学表达)?
边框回归的目的:
3、Bounding-box regression(边框回归怎么做)
那么经过何种变换才能从图11中的窗口P变为窗口呢?比较简单的思路就是:平移+尺度放缩
说明:指的是长和宽放大的倍数,是指数形式。
注意:只有当Proposal和Ground Truth比较接近时(线性问题),我们才能将其作为训练样本训练我们的线性回归模型,否则会导致训练的回归模型不work(当Proposal跟GT离得较远,就是复杂的非线性问题了,此时用线性回归建模显然不合理)。这个也是G-CNN: an Iterative Grid Based Object Detector多次迭代实现目标准确定位的关键。
线性回归就是给定输入的特征向量X,学习一组参数W,使得经过线性回归后的值跟真实值Y(Ground Truth)非常接近。即Y≈WX。那么Bounding-box中我们的输入以及输出分别是什么呢?
4. 测试阶段
根据3我们学习到回归参数,对于测试图像,我们首先经过 CNN 提取特征,预测的变化就是
,最后根据以下4个公式对窗口进行回归:
5、为什么宽高尺度会设计这种形式?
无论是在RPN还是RoIHead中,回归结果都不是bounding box的坐标,而是相对(正样本anchor、RoI)中心点坐标的位移和长宽比。为方便叙述,这里把两者分别称之为offset和scale。
直观地看,直接回归bounding box的坐标更方便,免去了传参(RPN中需要传入anchor,RoIHead中需要传入RoI)与坐标计算。
但是,如果回归的是坐标,那么在计算损失时,大尺寸bbox的坐标误差占的比重可能就会比小尺寸bbox之间的坐标误差大得多,从而使得模型更偏向于学习大bbox,从而导致小目标的检测效果不佳。
那么如何计算offset和scale呢?如下面公式 6 - 7 展示:
offset等于其中心点与anchor中心点坐标差除以anchor边长,scale等于两者的长宽比,并且使用log函数,log函数的作用也是一定程度上抑制了大bbox之间的误差占比盖过小bbox(拉近了大、小bbox之间的误差水平),log形式也保证了宽高比例大于0