G-CNN: an Iterative Grid Based Object Detector
Introduce
论文下载地址
G-CNN是CVPR16一篇关于目标检测的文章。从2016CVPR的文章可以看出目标检测的新的趋势,去除Region Proposals。之前CNN做目标检测的方法,主要是RCNN,SPPNet,Fast-RCNN,Faster-RCNN等,这些方法基本都沿袭下面的思路:
但是region proposals是一个费时的操作,在rpn网络之前大部分都是使用selective search或者类似的方法,从原始图片提取将近2K张图片,这个耗时的方法是目标检测过程的瓶颈。后来Faster-RCNN提出了rpn网络,用网络提取region proposal,这大大缩短了提取region proposal的时间。随着目标检测工作的进展,很多人开始思考这个问题?是否有必要提取region proposals,很多人做成了这种尝试,比如在cvpr16 RBG大神的YOLO,ECCV16Wei liu的SSD都是基于回归的方式,去除region proposal来做目标检测。
G-CNN是MaryLand大学的工作,论文主要的思路也是消除region proposal,和YOLO,SSD不同,G-CNN的工作借鉴了迭代的想法,把边框检测等价于找到初始边框到最终目标的一个路径。但是使用one-step regression不能处理这个非线性的过程,所以作者采用迭代的方法逐步接近最终的目标。
G-CNN Object Detector
G-CNN的网络可以采用任何的网络结构,包括alexnet,googlenet,vggnet。网络的结构如下图所示:
经过卷积层提取图像的特征,通过ROI pooling得到bounding box的特征,经过全连接层以后,使用softmax进行分类和bounding box regression,得到的结果进行下一次迭代。去除迭代过程,网络结构和Fast RCNN保持一致,但是两者的目标函数和过程都不相同。G-CNN把问题定位为在所有可能的bounding boxes中迭代搜索目标。Fast-RCNN则是通过selective search得到bounding boxes的可能集合。由于在边框搜索的过程是一个非线性的搜索过程,直接使用线性的搜索无法得到最优的结果,所以使用迭代的过程,每次移动一小步,逐步逼近最优解。
Loss function
G-CNN是一个迭代的过程,所以每次迭代都有存在一个loss function。假设 B 表示整个所有的bounding boxes(center, width, height)构成的集合。
在训练时候,首先把IOU阈值大于0.2的边框分配一个ground truth bounding box,表示该边框移动的目标。分配函数如下所示: