边框回归(Bounding Box Regression)算法解释
文章目录
- 一、为什么需要边框回归
- 二、边框回归的调整策略
- 三、论文里怎么说
- 3.1 平移量与缩放量定义
- 3.2 损失函数
- 3.3 为什么是线性回归
- 四、论文中为什么这样定义平移量和缩放量
- 4.1 平移量中为什么加入宽和高
- 4.2 缩放量为什么采用`e`的幂
一、为什么需要边框回归
假设有如下一种情况,红框为模型预测的检测框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 平移量与缩放量定义
在论文中,对于中心点坐标的平移量和宽度高度的缩放量都有着更为详细的定义:
{Tx=Px+ΔxTy=Py+Δy,{Tw=PwSwTh=PhSh\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=Pwdx(P),Δy=Phdy(P),Sw=edw(P),Sh=edh(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)。那么,所谓的边框回归,其实也就是让模型学习四个参数dx(P),dy(P),dw(P),dh(P)d_x(P),d_y(P),d_w(P),d_h(P)dx(P),dy(P),dw(P),dh(P),使预测框能够在输出前进行如上变换,从而更接近于真实值。
3.2 损失函数
根据预测框与真实框的坐标大小信息,我们可以计算出预测框经过平移缩放变换到真实框所需要的真实平移量参数与缩放量参数:
{tx=Tx−PxPwty=Ty−PyPhtw=logTwPwth=logThPh\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=PwTx−Pxty=PhTy−Pytw=logPwTwth=logPhTh
将需要学习的目标函数d(P)d(P)d(P)改写为wTϕPw^T\phi_PwTϕP(ϕP\phi_PϕP是特征向量),再结合上面计算的真实参数量即可得到边框回归的损失函数如下:
L=∑i(x,y,w,h)(wiTϕP−ti)2L=\sum^{(x,y,w,h)}_i(w^T_i\phi_P-t_i)^2 L=i∑(x,y,w,h)(wiTϕP−ti)2
加入正则化参数,则可得模型的目标函数如下:
w=arg minw∑i(x,y,w,h)(wiTϕP−ti)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ϕP−ti)2+λ∥w∥
使用梯度下降算法等优化算法即可对上述目标函数进行求解。
3.3 为什么是线性回归
根据论文描述,边框回归算法只适用于对预测框进行微调,即当IoU
不低于某个阙值时才可发挥作用。而当IoU
足够高时,缩放变换可视为线性变换,从而可以考虑使用线性回归模型对参数进行求解。
那么为什么当IoU
足够高时缩放可视为线性变换呢?
如上图所示,当x→0x\to 0x→0时,有x=log(x+1)x=\log(x+1)x=log(x+1)。对缩放变换公式进行变形可得:
dw(P)=logTwPw=logPw+Tw−PwPw=log(1+Tw−PwPw)dh(P)=logThPh=logPh+Th−PhPh=log(1+Th−PhPh)\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+Tw−Pw=log(1+PwTw−Pw)dh(P)=logPhTh=logPhPh+Th−Ph=log(1+PhTh−Ph)
可见,当IoU
足够高时,也就是TwT_wTw与PwP_wPw近似、ThT_hTh与PhP_hPh近似时,有:
dw(P)=Tw−PwPw,dh(P)=Th−PhPhd_w(P)=\frac{T_w-P_w}{P_w},\quad d_h(P)=\frac{T_h-P_h}{P_h} dw(P)=PwTw−Pw,dh(P)=PhTh−Ph
近似于一个线性变换,因此可以使用线性回归进行求解。
四、论文中为什么这样定义平移量和缩放量
4.1 平移量中为什么加入宽和高
平移量中加入宽和高是基于卷积神经网络的尺度不变性,即相同的物体在不同尺度的图像中通过CNN
提取出的特征图应该一致。至于CNN
尺度不变性的解释,学术界似乎尚存争议,此处不作过多解释。
假设有如下两种尺度不同的图像:
根据CNN
的尺度不变性,两张图片通过CNN
提取出的特征图ϕP\phi_PϕP应当相等,带入同一个模型dx(P)=wxϕP,dy(P)=wyϕPd_x(P)=w_x\phi_P,\ d_y(P)=w_y\phi_Pdx(P)=wxϕP, dy(P)=wyϕP,则可以知道两张图的平移量也应当相等。然后根据如上图像展示,可以发现两图预测框到真实框的平移量显然不等,为了保证函数值的唯一性,平移量的定义才考虑加入了检测框的宽度和高度。
4.2 缩放量为什么采用e
的幂
缩放量采用e
的幂次方主要有两个考虑:
1)保证缩放的倍率恒大于0
2)采用e
的幂才能依靠limx→0log(x+1)=x\lim_{x\to 0}\log(x+1)=xlimx→0log(x+1)=x的性质,将缩放近似为一个线性变换
边框回归(Bounding Box Regression)算法解释相关推荐
- [转]边框回归(Bounding Box Regression)详解
https://blog.csdn.net/zijin0802034/article/details/77685438 Bounding-Box regression 最近一直看检测有关的Paper, ...
- 深度学习之边框回归(Bounding Box Regression)
从rcnn, fast rcnn, faster rcnn, yolo, r-fcn, ssd,到cvpr的yolo9000.这些paper中损失函数都包含了边框回归,除了rcnn详细介绍了,其他的p ...
- 边框回归(Bounding Box Regression)详解
Bounding-Box regression 最近一直在看目标检测有关的Paper, 从rcnn, fast rcnn, faster rcnn, yolo, r-fcn, ssd,到今年cvpr最 ...
- 【目标检测】Bounding Box Regression
Bounding Box是目标检测中一个重要概念.常见格式是边界框左上角坐标.右下角坐标,即[xmin,ymin,xmax,ymax]:或者边界框中心坐标,宽高,即[x_center,y_center ...
- 感知算法论文(八):Generalized Intersection over Union:A Metric and A Loss for Bounding Box Regression(2019)
文章目录 摘要 引言 2. 相关工作 3. Generalized Intersection over Union 3.1 GIoU as Loss for Bounding Box Regressi ...
- Bounding box regression详解
Bounding box regression详解 转载 http://blog.csdn.net/u011534057/article/details/51235964 Reference link ...
- Bounding box regression RCNN我的理解
0. bounding-box regression bouding-box regression 在R-CNN论文附录C中有详细的介绍,在后续的论文Fast-RCNN.Faster-RCNN.Mas ...
- Bounding box regression RCNN系列网络中矩形框的计算
0. bounding-box regression bouding-box regression 在R-CNN论文附录C中有详细的介绍,在后续的论文Fast-RCNN.Faster-RCNN.Mas ...
- MNS、IOU、bounding box regression详解
IOU 非极大值抑制(MNS) 边框回归(bounding box regression)
最新文章
- createprocess失败代码2_Win7 中 Visual C++ 2015安装失败解决方法
- 悟透javascript-笔记
- SAP新财务系列之科目层次
- MyEclipes 设置代码自动提示
- TensorFlow零基础入门指南——计算模型、数据模型、运行模型!
- Unable to get the focused window from device - android
- centos7下安装libiconv失败
- 读书笔记_量化交易如何建立自己的算法交易04
- mfc调取摄像头显示并截图_用OpenCV在MFC Dialog中Picture控件上显示摄像头采集实时视频...
- WINDOWS资源编译器出错信息
- 密码学中的一些数学基础
- 坦克大战(Python)附思维导图、代码、图片音频资源
- 海上风电运维船未来前景如何?甲板船之家帮你解开疑问
- 如何将电脑下载的电子书导入手机kindle APP
- sketch八款设计插件,画图效率翻倍
- 摇一摇 周边 与 ibeacon
- 标签打印机打印亚马逊外箱FBA标签
- 福利:tumblr五年驾龄老司机必备利器
- Android动态设置控件宽高和padding
- 在kubernetes集群用helm离线安装harbor