边框回归:BoundingBox-Regression(BBR)

				版权声明:本文为博主原创文章,未经博主允许不得转载。					https://blog.csdn.net/v1_vivian/article/details/80292569				</div>
							            <div id="content_views" class="markdown_views prism-atom-one-dark">
						<!-- flowchart 箭头图标 勿删 -->
						<svg xmlns="http://www.w3.org/2000/svg" style="display: none;"><path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path></svg>
						<h2 id="为什么要做boundingbox-regressionbbr"><a name="t0"></a>为什么要做BoundingBox Regression(BBR)?</h2>

首先我们先来考虑,RCNN中为什么要做BoundingBox-Regression?

Bounding Boxregression是 RCNN中使用的边框回归方法,在RCNN的论文中,作者指出:主要的错误是源于mislocalization。为了解决这个问题,作者使用了bounding box regression。
这个方法使得mAp提高了3到4个点。
这里写图片描述

BBR的输入 是什么?

注意,这里网上很多地方都说的不太正确,有误导,我仔细理解了一些论文,把自己的理解写下。(羞涩)
这里写图片描述

对于预测框P,我们有一个ground truth是G:当0.1< IoU < 0.5时出现重复,这种情况属于作者说的poor localiazation, 但注意:我们使用的并不是这样的框进行BBR(网上很多地方都在这里出现了误导),作者是用iou>0.6的进行BBR,也就是iou<0.6的Bounding Box会直接被舍弃,不进行BBR。这样做是为了满足线性转换的条件。否则会导致训练的回归模型不 work.

(当 P跟 G 离得较远,就是复杂的非线性问题了,此时用线性回归建模显然不合理。)

至于为什么当IoU较大的时候,我们才认为是线性变化,我找到一个觉得解释的比较清楚的,截图在下面:
这里写图片描述

线性回归就是给定输入的特征向量 X, 学习一组参数 W, 使得经过线性回归后的值跟真实值 Y(Ground Truth)非常接近. 即Y≈WX 。

例如上图:我们现在要讲P框进行bbr,gt为G框,那么我们希望经过变换之后,P框能接近G框(比如,上图的G^框)。现在进行变换,过程如下:
我们用一个四维向量(x,y,w,h)来表示一个窗口,其中x,y,w,h分别代表框的中心点的坐标以及宽,高。我们要从P得到G^,需要经过平移和缩放。
这里写图片描述

其实这并不是真正的BBR,因为我们只是把P映射回G^,得到一个一般变换的式子,那为什么不映射回最优答案G呢?于是,P映射回G而不是G^,那我们就能得到最优变换(这才是最终的BBR):
这里写图片描述

这里为什么会将tw,th写成exp形式?
是因为tw,th代表着缩放的尺寸,这个尺寸是>0的,所以使用exp的形式正好满足这种约束。
也就是,我们将转换d换成转换t,就得到了P到G的映射。 di -> ti。
现在我们只需要学习 这四个变换dx(P),dy(P),dw(P),dh(P),然后最小化t和d之间的距离,最小化这个loss,即可。

注意:此时看起来我们只要输入P的四维向量,就可以学习,然后求出,但是,其实我们输入的是pool5之后的features,记做φ5,因为如果只是单纯的靠坐标回归的话,CNN根本就没有发挥任何作用,但其实,bb的位置应该有CNN计算得到的features来fine-tune。所以,我们选择将pool5的feature作为输入。
这里写图片描述
loss为:
这里写图片描述

最后,我们只需要利用梯度下降或最小二乘求解w即可。

【以前看的时候,我以为BBR和分类信息没有什么关系,后来才发现是针对每一类都会训练一个BBR,写出来给和我一样理解有误的童鞋提个醒…】

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值