Bounding-box 回归

R-CNN系列均训练了Bounding-box回归器来对窗口进行校正,其目标是学习一种转换关系将预测得到的窗口P映射为真实窗口G(Ground truth).

box regression

box regression

变换方式

可以通过简单的仿射变换以及指数变换将当前预测出的Bounding-box P向Ground truth纠正:

(仿射){Gx^=Pwdx(P)+PxGy^=Phdy(P)+Py

(尺度缩放){Gw^=Pwedw(P)Gh^=Phedh(P)

其中(x,y)是区域的中心点坐标,(w,h)是宽和高.
注意:只有当Proposal和Ground Truth比较接近时(线性问题),我们才能将其作为训练样本训练我们的线性回归模型.RCNN计算预测的Proposal与多个Ground Truth的IoU,如果没有任何重叠(IoU=0),则忽略这个Proposal不加入训练;将最大IoU对应的窗口作为Proposal"最近"的Ground Truth,如果此最大的IoU小于阈值(如0.6)也忽略掉.

通过上述G^P公式可计算出需要学习的目标target:

{tx=(GxPx)/Pwty=(GyPy)/Phtw=log(Gw/Pw)th=log(Gh/Ph)

带L2正则项的(ridge regression)目标函数为:

w=argminw^iN(tisi)2+λw^2

其中si=w^Tϕ(Pi) ,而w是可学习的参数,ϕ是CNN中某一层的特征.
目标函数除了计算差方和的方式还可以是smooth L1.

加旋转角度

对于船只等目标,通常是长条形且在图片中呈倾斜状态,对其进行一定程度的旋转可能能取得更好的效果。因此可以同时在训练集、预测值、损失函数中加入旋转角度。参考论文"A High Resolution Optical Satellite Image Dataset for Ship Recognition and Some New Baselines" (ICPRAM 2017,Zikun Liu,Yiping Yang),"Rotated Region Based CNN for Ship Detection"(Zikun Liu,ICIP 2017)

在预测的proposal中加入旋转角度θ=Pa,得到:

{tx=(GxPx)/(Pwcosθ+Phsin|θ|)ty=(GyPy)/(Pwsin|θ|+Phcosθ)tw=log(Gw/Pw)th=log(Gh/Ph)ta=(GaPa)/(λ180)

λ是个常数(λ = 0.5)。
在上式中求tx,ty时旋转映射不稳定,可以替换为如下方式,先映射再直接对宽和高进行normalize。

{tx=(cosα(GxPx)+sinα(GyPy))/Pwty=(sinα(GxPx)+cosα(GyPy))/Ph

scale-invariant translation (SIT)的示例图:
bbox rotate

bbox rotate

posted @ 2018-03-15 11:49  康行天下  阅读(1796)  评论(0)    收藏  举报
编辑推荐:
· 领域模型应用
· 记一次 ADL 导致的 C++ 代码编译错误
· MySQL查询执行顺序:一张图看懂SQL是如何工作的
· 为什么PostgreSQL不自动缓存执行计划?
· 于是转身独立开发者
阅读排行:
· C#/.NET/.NET Core优秀项目和框架2025年6月简报
· Cursor 1.2重磅更新,这个痛点终于被解决了!
· C#开发的Panel滚动分页控件(滑动版) - 开源研究系列文章
· 上周热点回顾(6.30-7.6)
· 记一次ADL导致的C++代码编译错误
点击右上角即可分享
微信分享提示