[TOC]
本文介绍G-CNN原理及其重要细节,论文地址https://arxiv.org/abs/1512.07729,其他参考网址论文笔记G-CNN。
G-CNN是基于CNN但不需要proposal的目标检测技术。G-CNN从一个固定bounding boxes的多尺度网格开始,训练一个迭代回归器使得bounding boxes不断的地朝着目标移动或缩放。G-CNN效果与Fast R-CNN性能相当,速度快5倍多。
在训练阶段,G-CNN首先在图像中获取叠加的多尺度的规则网格(实际网格相互重叠),然后通过ground truth与每一个网格的IoU进行每一个网格ground truth的分配,并完成训练过程,使得网格在回归过程中渐渐接近ground truth,见下图。
单次回归网络无法处理由原始bounding box到groud truth的非线性变换,因此G-CNN网络通过迭代回归网络的思想一步步完成由原始bounding box到groud truth的非线性变换。G-CNN结构见下图。
注释:
:第s次迭代的第i个bounding box
: 总迭代次数
:与bounding box重叠度最高的groundtruth
=
![C:\\c902222ddf8f9f31bf44475a8021982e](media/a0c3c5c04fe61a3490d6cea408c8f3d0.tmp)
:每一步迭代的target bounding box
- 红色框:bounding Box;蓝色框:target bounding box
图中训练步骤
获取适量spatial pyramid grid of boxes,在每次迭代中进行如下操作:
(1) 对每个bounding box
,通过公式计算target bounding box
;
(2)通过CNN网络生成feature map(该CNN网络可以是任意图片分类网络),通过RIO pooling将
映射到feature map上,并固定大小输送给Fully connected layers;
(3)fast R-CNN分类器对物体进行分类,然后对每类物体进行回归,回归网络输出4个参数(由
到
的变换参数),使
接近
,也可以说,
向Ground Truth方向移动一步,该回归步骤原理详见边框回归;
(4)更新
,
,进行下一次迭代。
目标函数
G-CNN目标函数包括两个部分(1)每个训练样本的loss和,(2)每个迭代步骤的loss和,见如下公式。
注释:
:与Ground Truth IOU 小于阈值的bounding boxes
:指示函数,满足条件输出1,否则输出0
:由
![C:\\313348e62f8e4e43efce2c8a7ed54e57](media/8da3ca7e479cf9fcf1c0f23826d713ee.tmp)
到
![C:\\c902222ddf8f9f31bf44475a8021982e](media/a0c3c5c04fe61a3490d6cea408c8f3d0.tmp)
的4个预测变换参数,
![C:\\d26c14c466f323bbc4717b3eaff30f10](media/388ba9c98a7ad04ece7162bc710d98c5.tmp)
是bounding box 的类别标签
:由
![C:\\313348e62f8e4e43efce2c8a7ed54e57](media/8da3ca7e479cf9fcf1c0f23826d713ee.tmp)
到
![C:\\c902222ddf8f9f31bf44475a8021982e](media/a0c3c5c04fe61a3490d6cea408c8f3d0.tmp)
的4个真实变换参数
在测试时将整个网络层分为两部分:global parts和regression parts。global parts的输入是初始化的bounding box
,对于每幅图像前向计算仅计算一次。regression parts以global parts最后一个层的输出作为输入,迭代运行
次以生成对bounding box的修改(bounding box modification)。对于每一个box针对每一类获得置信分数,用最可能类别的回归器来更新box的位置。
测试表明,当
时,G-CNN的性能和~2k个proposal的fast R-CNN不相上下,见下表。
下图展示了部分G-CNN测试效果。
G-CNN图片检测速度为363ms/image,Fast R-CNN图片检测速度为2050ms/image,是G-CNN图片检测速度的5倍多。
-
训练回归网络迭代次数=3,初始bounding box=180个,G-CNN的性能与Fast R-CNN不相上下;
-
训练回归网络迭代次数在3以上,继续增大迭代次数MAP提高不显著;
-
根据实验,单步回归网络误差较大,MAP与3步迭代回归网络小3%;
-
G-CNN图片检测速度比Fast R-CNN快5倍多。
(1)当目标物体与周边物体类似时,目标物体选择错误;
(2)类似物体重叠时localization出错;
(3)小物体检测出错;
(4)当目标物体的姿态复杂或初始bounding box太小时,物体定位错误。
1、多尺度的规则网格怎样初始化来的?
论文中提到In all the experiments, the G-CNN regression network is trained on an initial overlapping spatial pyramid with [2,5,10]scales(i.e.the bounding boxes in the coarsest level are (imwidth/2,imheight/2) pixels etc.). During training, we used [0.9,0.8,0.7] overlap for each spatial scale respectively. By overlap of α we mean that the horizontal and vertical strides are widthcell ∗ (1 − α) and heightcell ∗ (1 − α) respectively。目前G-CNN代码未开源,相关说明资料不足。
经讨论,论文中表述的意思是:在原图(1000*600)的基础上提取多尺度box,scale是[2,5,10],box_size= 原图size/scale,由于scale有3个数,box_size就有三种,scale[2,5,10]的alpha分别是 [0.9,0.8,0.7],具体获取初始化box的计算过程见下图。