边框回归(Bounding Box Regression)算法解释

一、为什么需要边框回归

  假设有如下一种情况,红框为模型预测的检测框region proposal,蓝框为真实的检测框ground truth

在这里插入图片描述

可以看见,尽管红框正确地从图像中识别到了飞机,但是却并没有很好地标识出检测框的位置(预测框与真实框IoU过低)。此时,便可以通过边框回归Bounding Box Regression实现一种“微调”的策略,将预测框尽量调整到与真实框近似,以提高模型预测的效果。

二、边框回归的调整策略

  边框回归的调整策略总结一下就是两个词:平移缩放
  假设模型输出的预测框信息可以如下表示:

P = [Px, Py, Pw, Ph]
# Px: 中心点横坐标
# Py: 中心点纵坐标
# Pw: 宽度
# Ph: 高度

那么所谓平移,就是针对Px, Py进行一定程度的加减,使之更加接近于真实框的中心点坐标Tx, Ty。所谓缩放,也就是针对Pw, Ph进行一定比例的乘除,使之更加接近于真实框的宽度Tw和高度Th。即:

T = [Tx, Ty, Tw, Th]
# Tx = Px + dx
# Ty = Py + dy
# Tw = Pw * dw
# Th = Ph * dh
三、论文里怎么说
3.1 平移量与缩放量定义

  在论文中,对于中心点坐标的平移量和宽度高度的缩放量都有着更为详细的定义:
{ T x = P x + Δ x T y = P y + Δ y , { T w = P w S w T h = P h S h \begin{cases} T_x=P_x+\Delta_x\\ T_y=P_y+\Delta_y \end{cases},\qquad \begin{cases} T_w=P_wS_w\\ T_h=P_hS_h \end{cases} {Tx=Px+ΔxTy=Py+Δy,{Tw=PwSwTh=PhSh
其中, Δ x = P w d x ( P ) ,   Δ y = P h d y ( P ) ,   S w = e d w ( P ) ,   S h = e d h ( P ) \Delta_x=P_wd_x(P),\ \Delta_y=P_hd_y(P),\ S_w=e^{d_w(P)},\ S_h=e^{d_h(P)} Δx=Pwdx(P), Δy=Phdy(P), Sw=edw(P), Sh=edh(P)。那么,所谓的边框回归,其实也就是让模型学习四个参数 d x ( P ) , d y ( P ) , d w ( P ) , d h ( P ) d_x(P),d_y(P),d_w(P),d_h(P) dx(P),dy(P),dw(P),dh(P),使预测框能够在输出前进行如上变换,从而更接近于真实值。

3.2 损失函数

  根据预测框与真实框的坐标大小信息,我们可以计算出预测框经过平移缩放变换到真实框所需要的真实平移量参数与缩放量参数:
{ t x = T x − P x P w t y = T y − P y P h t w = log ⁡ T w P w t h = log ⁡ T h P h \begin{cases} t_x=\frac{T_x-P_x}{P_w}\\t_y=\frac{T_y-P_y}{P_h}\\t_w=\log{\frac{T_w}{P_w}}\\t_h=\log{\frac{T_h}{P_h}} \end{cases} tx=PwTxPxty=PhTyPytw=logPwTwth=logPhTh
  将需要学习的目标函数 d ( P ) d(P) d(P)改写为 w T ϕ P w^T\phi_P wTϕP ϕ P \phi_P ϕP是特征向量),再结合上面计算的真实参数量即可得到边框回归的损失函数如下:
L = ∑ i ( x , y , w , h ) ( w i T ϕ P − t i ) 2 L=\sum^{(x,y,w,h)}_i(w^T_i\phi_P-t_i)^2 L=i(x,y,w,h)(wiTϕPti)2
加入正则化参数,则可得模型的目标函数如下:
w = arg min ⁡ w ∑ i ( x , y , w , h ) ( w i T ϕ P − t i ) 2 + λ ∥ w ∥ w=\argmin_{w}{\sum^{(x,y,w,h)}_i(w^T_i\phi_P-t_i)^2+\lambda\|w\|} w=wargmini(x,y,w,h)(wiTϕPti)2+λw
使用梯度下降算法等优化算法即可对上述目标函数进行求解。

3.3 为什么是线性回归

  根据论文描述,边框回归算法只适用于对预测框进行微调,即当IoU不低于某个阙值时才可发挥作用。而当IoU足够高时,缩放变换可视为线性变换,从而可以考虑使用线性回归模型对参数进行求解。

  那么为什么当IoU足够高时缩放可视为线性变换呢?

在这里插入图片描述

  如上图所示,当 x → 0 x\to 0 x0时,有 x = log ⁡ ( x + 1 ) x=\log(x+1) x=log(x+1)。对缩放变换公式进行变形可得:
d w ( P ) = log ⁡ T w P w = log ⁡ P w + T w − P w P w = log ⁡ ( 1 + T w − P w P w ) d h ( P ) = log ⁡ T h P h = log ⁡ P h + T h − P h P h = log ⁡ ( 1 + T h − P h P h ) \begin{aligned} d_w(P)=\log{\frac{T_w}{P_w}}&=\log{\frac{P_w+T_w-P_w}{P_w}}\\&=\log(1+\frac{T_w-P_w}{P_w}) \end{aligned}\\ \begin{aligned} d_h(P)=\log{\frac{T_h}{P_h}}&=\log{\frac{P_h+T_h-P_h}{P_h}}\\&=\log(1+\frac{T_h-P_h}{P_h}) \end{aligned} dw(P)=logPwTw=logPwPw+TwPw=log(1+PwTwPw)dh(P)=logPhTh=logPhPh+ThPh=log(1+PhThPh)
  可见,当IoU足够高时,也就是 T w T_w Tw P w P_w Pw近似、 T h T_h Th P h P_h Ph近似时,有:
d w ( P ) = T w − P w P w , d h ( P ) = T h − P h P h d_w(P)=\frac{T_w-P_w}{P_w},\quad d_h(P)=\frac{T_h-P_h}{P_h} dw(P)=PwTwPw,dh(P)=PhThPh
近似于一个线性变换,因此可以使用线性回归进行求解。

四、论文中为什么这样定义平移量和缩放量
4.1 平移量中为什么加入宽和高

  平移量中加入宽和高是基于卷积神经网络的尺度不变性,即相同的物体在不同尺度的图像中通过CNN提取出的特征图应该一致。至于CNN尺度不变性的解释,学术界似乎尚存争议,此处不作过多解释。

  假设有如下两种尺度不同的图像:

在这里插入图片描述

在这里插入图片描述

  根据CNN的尺度不变性,两张图片通过CNN提取出的特征图 ϕ P \phi_P ϕP应当相等,带入同一个模型 d x ( P ) = w x ϕ P ,   d y ( P ) = w y ϕ P d_x(P)=w_x\phi_P,\ d_y(P)=w_y\phi_P dx(P)=wxϕP, dy(P)=wyϕP,则可以知道两张图的平移量也应当相等。然后根据如上图像展示,可以发现两图预测框到真实框的平移量显然不等,为了保证函数值的唯一性,平移量的定义才考虑加入了检测框的宽度和高度。

4.2 缩放量为什么采用e的幂

  缩放量采用e的幂次方主要有两个考虑:

  1)保证缩放的倍率恒大于0

  2)采用e的幂才能依靠 lim ⁡ x → 0 log ⁡ ( x + 1 ) = x \lim_{x\to 0}\log(x+1)=x limx0log(x+1)=x的性质,将缩放近似为一个线性变换

  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值