Bounding-box Regression
2016-11-13 21:46
176 查看
http://caffecn.cn/?/question/160
R-CNN、Fast/Faster R-CNN 都训练了Bounding-box回归器对窗口进行校正,用于提高检测精度。
Gx^=Px+Pwdx(P)(1)Gy^=Py+Phdy(P)(2)
(2)尺度缩放:
Gw^=Pwexp(dw(P))(3)Gh^=Phexp(dh(P))(4)
共需要学习 dx(P)、dy(P)、dw(P)、dh(P) 四个变换。
其中,平移量和缩放尺度 (tx,ty,tw,th) 分别为:
tx=(Gx−Px)/Pw(6)ty=(Gy−Py)/Ph(7)tw=log(Gw/Pw)(8)th=log(Gh/Ph)(9)
然后利用梯度下降或最小二乘得到 w∗。
R-CNN、Fast/Faster R-CNN 都训练了Bounding-box回归器对窗口进行校正,用于提高检测精度。
起因
Region Proposal 得到的目标框不够准确,使其可能虽能被正确识别,但与 Groundtruth 相比 IoU 较小,故应对窗口进行微调。问题
寻找一种映射 f,使 f(Px,Py,Pw,Ph)=(Gx^,Gy^,Gw^,Gh^) ,且 G^≈G,其中 P 为原始 Proposal,G 为Groundtruth,G^ 为预测得到的更接近 G 的回归窗口。方法
(1)平移变换:Gx^=Px+Pwdx(P)(1)Gy^=Py+Phdy(P)(2)
(2)尺度缩放:
Gw^=Pwexp(dw(P))(3)Gh^=Phexp(dh(P))(4)
共需要学习 dx(P)、dy(P)、dw(P)、dh(P) 四个变换。
设计
当输入 Proposal 与 Groundtruth 相差较小时(R-CNN 中为 IoU>0.6),可以认为此变换为线性变换,可用线性回归来建模对窗口微调。回归
给定输入的特征向量 X,学习一组参数 W,使得 Y=WX 跟真实结果非常接近。输入:
Region Proposal对应的 CNN 特征(pool5features),在训练阶段,输入还包括Groundtruth,即 t∗=(tx,ty,tw,th)。输出:
需要的平移变换和尺度变换: dx(P)、dy(P)、dw(P)、dh(P)。训练:
变换函数可以表示为 d∗(P)=w∗Φ5(P)(∗表示x,y,w,h),Φ5(P) 为输入Proposal的特征向量,w∗ 为要学习的参数,d∗(P) 为预测值,要让预测值与 Groundtruth 尽可能小,目标函数为:w∗=argminw∗^∑iN(ti∗−wT∗^ϕ5(Pi))2+λ||w∗^||(5)其中,平移量和缩放尺度 (tx,ty,tw,th) 分别为:
tx=(Gx−Px)/Pw(6)ty=(Gy−Py)/Ph(7)tw=log(Gw/Pw)(8)th=log(Gh/Ph)(9)
然后利用梯度下降或最小二乘得到 w∗。
测试
根据学习到的回归参数 w∗,对于一幅新图像,首先经过 CNN 提取特征 Φ5(P),变化量预测即为 d∗(P)=w∗Φ5(P),最后根据(1)~(4)对目标框进行回归。相关文章推荐
- RCNN - Bounding-box Regression 详解
- Single Bounding Box Regression
- RCNN中bounding box regression理解(13)---《深度学习》
- 目标检测中bounding box regression
- Bounding box Regression分析
- 关于RCNN中Bounding-box regression的个人理解
- bounding box regression
- bounding-box regression
- Bounding-box Regression深度解析
- 边框回归(Bounding Box Regression)详解
- 边框回归(Bounding Box Regression)详解
- An Axis-Aligned Bounding Box (AABB) Sweep Test
- javafx.geometry.BoundingBox
- BVH with SAH (Bounding Volume Hierarchy with Surface Area Heuristic)
- 关于matlab中regionprops及BoundingBox用法,mark一下
- 提取用Bounding box label标记后的误标文件
- 【POJ2504】Bounding box(计算几何)
- Bounding box regression详细解答
- 目标检测算法中的bounding box regression
- python利用opencv标注bounding box