跳转至

【目标检测算法50篇速览】二、检测网络检测网络设计范式的完善

【GiantPandaCV导读】到了第二章,检测网络已经发展到了将整个的检测任务都放在CNN中进行,也开始有学者探讨,CNN中每一层到底学到了什么信息。到此部分,现在通用的检测模型结构开始逐步的产生和完善,并向更高精度和更快速度迈进。

第一篇 FCN

《Fully Convolutional Networks for Semantic Segmentation》

提出时间:2015年

针对问题:

​ 过往的检测网络大都采用了全连接层来对CNN提取到的特征进行处理。作者尝试讨论那能否设计一个全部由卷积层构建的网络模型,来达到更精细的检测效果。

创新点:

​ 设计了一种全卷机的网络来实现对输入图像的像素级分割任务。采用反卷积层对最后一个卷积层的feature map进行上采样, 使它恢复到输入图像相同的尺寸,从而可以对每个像素都产生了一个预测, 同时保留了原始输入图像中的空间信息, 最后在上采样的特征图上进行逐像素分类。最后逐个像素计算softmax分类的损失, 相当于每一个像素对应一个训练样本。

图1

详解博客:https://blog.csdn.net/qq_36269513/article/details/80420363

第二篇 OHEM

《Training Region-based Object Detectors with Online Hard Example Mining》

提出时间:2016年

针对问题:

​ 本文作者的出发点是对faster rcnn论文算法的训练流程进行改进,从而提高该模型的检测精度。该操作也侧面说明了网络的训练过程,难例对模型性能提升是重要的

创新点:

​ 利用难例挖掘技术在CNN中的应用来优化训练流程,从而使得Fast RCNN网络模型的检测精度提高。在第t次迭代时,输入图片到卷积网络中得到特征图,然后 把特征图和所有的RoIs输入到RoI网络中并计算所有RoIs的损失,把损 失从高到低排序,然后选择B/N个RoIs。这里有个小问题,位置上相邻 的RoIs通过RoI网络后会输出相近的损失,这样损失就翻倍。作者为了 解决这个问题,使用了NMS(非最大值抑制)算法,先把损失按高到低排 序,然后选择最高的损失,并计算其他RoI这个RoI的IoU(交叉比),移除IoU大于一定阈值的RoI,然后反复上述流程直到选择了B/N个RoIs。

详解博客:https://zhuanlan.zhihu.com/p/58162337

第三篇 YOLOv1

提出时间:2016年

针对问题:

​ 主流的检测网络都是两段式的,因为要先提取疑似目标框,再对目标框进行精细定位和分类,所以耗时都会很高,那么能不能设计一种一段式的网络,既能达到检测的效果,又能降低耗时呢

创新点:

​ 作者创新的提出了,依赖回归和在输出特征图上划分grid直接进行回归和分类的网络模型,从而去掉了显式的提取疑似目标框的流程,回归的思路一定程度上,可以参考第二章第二篇,该网络模型设计思路降低了检测流程的耗时,形成了新的一段式检测网络设计模式。

详解博客:https://www.jianshu.com/p/cad68ca85e27

第四篇 G-CNN

《G-CNN: an Iterative Grid Based Object Detector》

提出时间:2016年

针对问题:

既然yolov1创新的提出了grid划分网格并在网格内直接回归目标框的思路来替换显式提取目标框的方案,那能不能将该方案应用到两段式的网络模型中,从而即利用了两段式的精度又加快了速度?

创新点:

​ 作者在fast rcnn上做试验,用grid来替换selective search算法,并逐步迭代回归到目标的真实位置。

详解博客:https://www.jianshu.com/p/17139e4c5580

第五篇 AZ-Net

《Adaptive Object Detection Using Adjacency and ZoomPrediction》

提出时间:2016年CVPR

针对问题:

​ 作者尝试对faster rcnn中的RPN部分进行优化,主要是在保证精度的前提下,提高该部分的目标框提取速度,从而实现对faster rcnn的优化。

创新点:

​ AZ-net,主要对深度检测网络中的RPN部分进行优化,利用递归的思路来避免生成Region proposal时候的大量重复操作和计算资源浪费。也就是对输入图像分块,再逐步向下分块直到当前块判断无目标。

详解博客:https://blog.csdn.net/qq_34135560/article/details/84951384

第六篇 Inside-OutsideNet

《Inside-OutsideNet:Detecting Objects in Context with Skip Poolingand Recurrent Neural Networks》

提出时间:2016年

针对问题:

​ 由第一章第九篇论文,我们可以知悉网络的浅层和深层所获取到的图像特征是从局部到整体逐渐抽象的。那么对最终的目标检测任务来说,我们就需要浅层的特征信息来对较小目标进行检测,还需要深层的特征信息来对较大目标实现检测,如何协调浅层和深层的特征来达到对不同尺度的目标都比较好的检测效果呢

创新点:

​ 提取不同层的特征,经过L2正则后拼接,并使用了iRNN结构来提高检测效果,是2016年精度最高的监测模型,最早的利用多层特征融合来进行检测的论文。

图2

详解博客:https://blog.csdn.net/u014119694/article/details/88423331

第七篇 HyperNet

《HyperNet: Towards Accurate Region Proposal Generationand Joint Object Detection》

提出时间:2016年

针对问题:

​ 有faster rcnn网络里的RPN子网络以后,虽然将先验的目标框从几千减少到了几百,但是还是存在着大量的冗余,如何近一步提高先验框提取部分的性能并改进检测网络?

创新点:

​ 作者尝试跳层提取特征,即分别从网络的浅层和深层提取特征。既能获取高层语义,又可以得到低层高分辨率的位置信息。提高小目标检测效果。

图3

详解博客:https://blog.csdn.net/qq_35608277/article/details/80432907

第八篇 CRAFT

《CRAFT Objects from Images》

提出时间:2016年

针对问题:

​ 作者在本篇论文中,认为faster rcnn网络模型仍旧存在改进的空间,通过任务细化,来改进网络RPN部分和分类部分的性能。

创新点:

​ 对于生成目标proposals阶段,论文在RPN的后面加了一个二值的Fast RCNN分类器来对RPN生成的proposals进行进一步的筛选,留下一些高质量的proposals;对于第二阶段的目标proposals分类,论文在原来的分类器后又级联了N个类别(不包含背景类)的二值分类器以进行更精细的目标检测

详解博客:https://blog.csdn.net/scarecrowliu/article/details/53067529

第九篇 MultiPathNet

《A MultiPath Network for Object Detection》

提出时间:2016年

针对问题:

​ 本篇论文也是在总结跳层提取特征、输入训练样本的多个不同IOU等模型训练技巧的基础上,对faster rcnn模型进行的改进。

创新点:

​ MPN网络,是对Fast R-CNN的改进,改进的点主要有三个:

(1)跳跃结构:在VGG网络里,从conv1到conv4,每层conv之后都有一次2*2的max pooling,4次max pooling之后,特征图将下采样到原先的1/16,这会导致信息的丢失。所以将具有丰富信息的较早层连接至后面的网络。 (2)中心区域:背景信息对于小目标检测识别来说是很有用的,所以作者使用了4种不同大小的region crops,分别是1x,1.5x,2x和4x。在每种情况下,使用RoI Pooling技术将它们固定到相同大小。送入全连接层。四个输出连接成一个长向量,用于打分和框回归。 (3)积分损失函数:Fast R-CNN里所有IoU>50%的proposals的得分是相等的,作者改进了损失函数,设置6个不同大小的IoU,分别计算得分然后求平均。这样的话,IoU越高,得分就越高

详解博客:https://blog.csdn.net/qq_37124765/article/details/54906517

第十篇 SSD

提出时间:2016年CVPR

针对问题:

​ 一段式的网络从yolov1推出以后,因其对遮挡多目标检测效果不理想、小目标检测不理想等原因,仍旧存在很大的提升空间,本篇论文的作者通过结合多层特征的检测结果,对yolov1进行改进,从而增强其对目标尤其是小目标的检测能力,成为了一段式检测网络的里程碑。

图4

创新点:

​ 继yolov1之后,一段式目标检测的又一里程碑,相较于yolov1,采用了多个卷积层的特征来进行检测,显著提升对小目标的检测能力;第二点是引入了初始框的设计,也就是对用于检测的特征图,也就是说在每个特征图的单元格的中心设置一系列尺度和大小不同的初始框,这些初始框都会反向映射到原图的某一个位置,如果某个初始框的位置正好和真实目标框的位置重叠度很高,那么就通过损失函数预测这个初始框的类别,同时对这些初始框的形状进行微调,以使其符合我们标记的真实目标框。以这种设计来完成一段式网络的anchor设定。

详解博客:https://blog.csdn.net/u013044310/article/details/89380273

总结

到本章,学者们开始对两段式的网络,进行速度和精度上的优化改进,其中很明显的特征是学者们都注意到了不同层的特征混合使用可以对网络的检测精度有很大的提高。与此同时,我们也可以看到,针对两段式网络检测速度低的问题,基于回归的思想,一段式的检测网络开始出现并在SSD网络上达到了不错的检测效果。以此开始基于anchor的检测网络的一段式和两段式网络齐头并进。