background
任务:取消建议区域的算法,减少盒子的数量,加快速度
关键词:G-CNN
Introduction
这是一篇2016年的论文,主要对标fast rcnn,以fast rcnn为例子,需要通过建议,提供上千个建议区域,十分影响检测的速度,而且positive和negative,hard,easy,也会影响模型的准确率。
所以本文作者删除了提案阶段,和减少处理box的数量来提高检测速度。
作者认为,将检测区域的生成,看作是一种寻找过程,初始化的区域需要通过复杂的非线性变化,得到最后的目标区域,所以作者通过一种迭代过程,将初始的区域,通过次次迭代,不断平移,得到最后的结果。
Model
整体结构
主要的G-CNN Network Structure与fast rcnn类似,不过去掉了建议生成网络。
基本过程
伪代码
首先是初始化区域(提出一些区域便于后面的变形)
然后通过与各个ground-truth比较,选择最大的iou对应的ground-truth作为目标。
B
i
1
B_{i}^{1}
Bi1为第一次迭代时的第i个box对应的向量
B
i
s
B_{i}^{s}
Bis中s为第s次迭代,其中
1
<
=
s
<
=
S
t
r
a
i
n
1<=s<=S_{train}
1<=s<=Strain
目标梯度下更新后的B:
其中
G
i
∗
G_{i}^{*}
Gi∗为
B
i
1
B_{i}^{1}
Bi1对应的ground-truth
Δ
(
B
i
s
,
T
i
s
)
\Delta(B_{i}^{s},T_{i}^{s})
Δ(Bis,Tis)表示偏移量,
T
i
s
T_{i}^{s}
Tis为(2)中的输出值
δ
i
,
l
i
s
\delta_{i,l_i}^{s}
δi,lis表示预测的偏移量,
l
i
l_i
li为第i个box的种类
最后的损失函数:
其中
I
(
.
)
I(.)
I(.)为1或0,
B
i
l
B_{i}^{l}
Bil是背景则为0否则为1
实际的更新策略:
其中,
Δ
−
1
\Delta^{-1}
Δ−1将定义的参数化空间中位置和尺度的相对变化向后投影到B中
但是需要在训练过程中对网络的前向路径进行评估,导致训练效率低下,所以假设完全学好,得到:
B
i
s
=
T
i
s
B_{i}^{s}=T_{i}^{s}
Bis=Tis
TEST
预测时,只是将ROL INFO之后的进行迭代循环,增加速率
伪代码
Experiment
训练时,主要初始化180个网格S=3
性能和之前的网络不相上下,但速率更快
Learn from paper
作者认为从初始化区域到目标区域是一个复杂的非线性变化,但是通过迭代更新,感觉训练效率有点低,训练时迭代的话可以构建一个局部神经网络来模拟非线性变化,没必要全部迭代。
通过取消建议区域,还是很创新的,感觉迭代算法没什么必要,有更好的代替算法。