Faster R-CNN
Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks. 1506 [paper]
-
r
p
n
_
l
o
s
s
rpn\_loss
rpn_loss:
其中, ? ?
i
i
i:某个minibatch中,第
i
i
i个anchor ? ?
p
i
p_i
pi?:二分类的预测值 ? ? ? ? ? ? ? ?
p
i
?
p_i^*
pi??:gt
{
1
I
o
U
(
g
t
,
a
n
c
h
o
r
)
>
0.7
0
I
o
U
(
g
t
,
a
n
c
h
o
r
)
<
0.3
\begin{cases}1 &IoU(gt,anchor)>0.7 \\ 0 &IoU(gt,anchor)<0.3\end{cases}
{10?IoU(gt,anchor)>0.7IoU(gt,anchor)<0.3? ? ?
t
i
t_i
ti?:回归位置的预测值 ? ? ? ? ? ? ? ?
t
i
?
t_i^*
ti??:gt,计算如下 :
[zhihu]
AnchorTargetCreator :生成正负anchor,计算
r
p
n
_
l
o
s
s
rpn\_loss
rpn_loss. ProposalCreator :生成RoIs (region of interests)作为训练样本传给RoIHead.
- 选取得分大前12000个anchor,用回归参数修正位置,得到RoIs.
- 再利用
NMS ,得到2000个RoIs. (输出形如2000×4的tensor,这部分不进行反向传播)
RoI Pooling :将不同尺寸的特征图区域(128个sample_rois)pooling成固定的尺寸
7
?
7
7*7
7?7. FC 21 :用来分类,预测RoIs属于哪个类别(20个类
+
+
+ 背景) FC 84 :用来回归(21个类
×
×
× 4个位置参数)
-
r
o
i
_
l
o
s
s
roi\_loss
roi_loss:
- Train:
ProposalTargetCreator :选择128个正、负sample_rois用以训练.计算roi_loss . - Test:
所有rois算概率,用回归参数调整,然后再NMS. (实验发现,RPN生成RoI越多,mAP越高) - RPN时,已对anchor做了一遍
NMS ;RoIHead_Test时,再做一遍 RPN时,已对anchor位置做了回归 调整;RoIHead_Test时,再做一遍
L
o
s
s
=
L
o
s
s
r
p
n
(
c
l
s
2
,
r
e
g
)
+
L
o
s
s
r
o
i
(
c
l
s
21
,
r
e
g
)
Loss=Loss_{rpn}(cls_2,reg)+Loss_{roi}(cls_{21},reg)
Loss=Lossrpn?(cls2?,reg)+Lossroi?(cls21?,reg)
|