本文仅是个人参考他人大佬观点的个人笔记,很多只为方便个人理解理解,不喜勿喷(新人瑟瑟发抖)。
原文链接:https://blog.csdn.net/zijin0802034/article/details/77685438
边框回归为处理何种情况
图中红框为最开始确定的锚框,绿框为Ground Truth,很明显二者相差较大,这就是(IoU<0.5)的情况,就是与Ground Truth交并比最大的锚框的交并比也很小,而边框回归就是为了处理这种情况。
边框回归具体做什么
P按原文作者说法就是原始的proposal,即最开始确定的锚框(大概?)。G就是Ground Truth了。那么
G
^
\hat{G}
G^ 就是最终要求输出的预测框。
借用原文作者的话:
边框回归的目的既是:给定(Px,Py,Pw,Ph)(Px,Py,Pw,Ph)寻找一种映射ƒ, 使得 f ( P x , P y , P w , P h ) = ( G x ^ , G y ^ , G w ^ , G h ^ ) f(Px,Py,Pw,Ph)=(G \hat x,G \hat y,G \hat w,G \hat h) f(Px,Py,Pw,Ph)=(Gx^,Gy^,Gw^,Gh^)并且 ( G x ^ , G y ^ , G w ^ , G h ^ ) ≈ ( G x , G y , G w , G h ) (G \hat x,G \hat y,G \hat w,G \hat h)≈(Gx,Gy,Gw,Gh) (Gx^,Gy^,Gw^,Gh^)≈(Gx,Gy,Gw,Gh)
边框回归如何实现
基本上就是一个平移和一个收缩
1.平移:
G
^
x
=
P
w
d
x
(
P
)
+
P
x
,
(
1
)
\hat G_x=P_wd_x(P)+P_x,(1)
G^x=Pwdx(P)+Px,(1)
G
^
y
=
P
h
d
y
(
P
)
+
P
y
,
(
2
)
\hat G_y=P_hd_y(P)+P_y,(2)
G^y=Phdy(P)+Py,(2)
2.缩放:
G
^
w
=
P
w
e
x
p
(
d
w
(
P
)
)
,
(
3
)
\hat G_w=P_wexp(d_w(P)),(3)
G^w=Pwexp(dw(P)),(3)
G
^
h
=
P
h
e
x
p
(
d
h
(
P
)
)
,
(
4
)
\hat G_h=P_hexp(d_h(P)),(4)
G^h=Phexp(dh(P)),(4)这里的四个参数dx,dy,dh,dw和之后的 tx,ty,th,tw一样是偏差量,最终输出的预测框
G
^
\hat{G}
G^由dx,dy,dh,dw 这四个偏差量与锚框计算而得。
再算出真实框与锚框之间的偏差量:
t
x
=
(
G
x
−
P
x
)
/
P
w
,
(
6
)
t_x=(G_x−P_x)/Pw,(6)
tx=(Gx−Px)/Pw,(6)
t
y
=
(
G
y
−
P
y
)
/
P
h
,
(
7
)
t_y=(G_y−P_y)/P_h,(7)
ty=(Gy−Py)/Ph,(7)
t
w
=
l
o
g
(
G
w
/
P
w
)
,
(
8
)
t_w=log(G_w/P_w),(8)
tw=log(Gw/Pw),(8)
t
h
=
l
o
g
(
G
h
/
P
h
)
,
(
9
)
t_h=log(G_h/P_h),(9)
th=log(Gh/Ph),(9)
那么dx,dy,dh,dw 这四个参数从何而来呢?
现在就确定目标函数
d
∗
(
P
)
=
w
T
∗
Φ
5
(
P
)
d_∗(P)=w^T∗Φ_5(P)
d∗(P)=wT∗Φ5(P) ,其中
Φ
5
(
P
)
Φ_5(P)
Φ5(P)是proposal的特征向量,可知,这个偏差量是根据特征图来确定的,就是根据特征图进一步提供锚框趋近于真实框的精度。
原文重点:为什么高宽尺度要这样设计呢?也就是问为什么偏差量要用那种公式计算呢
首先要清楚尺度不变性,两个框大小不一,但内容即提取特征一致。
x,y为什么要除以高宽?
按原文理解,简而言之就是,两框提取特征一致,那么用最终模型算出来的偏差量也会是一样的(如果不除以高宽),在没有用高宽对输入进行转化的情况下,输出一致,而很明显,原文两张图的偏差量不应一致,明显与高宽有关系。所以除以高宽是必须的。
高宽坐标log形式
这个方面原文解释的很简单且清楚,就不多赘述。