one-stage和two-stage目标检测算法( 五 )


2. one stage 的方法
以 R-CNN 算法为代表的 two stage 的方法由于 RPN 结构的存在,虽然检测精度越来越高,但是其速度却遇到瓶颈,比较难于满足部分场景实时性的需求 。因此出现一种基于回归方法的 one stage 的目标检测算法,不同于 two stage 的方法的分步训练共享检测结果,one stage 的方法能实现完整单次训练共享特征,且在保证一定准确率的前提下,速度得到极大提升 。
2.1

one-stage和two-stage目标检测算法

文章插图
2013 年 Yann Lecun 在纽约大学的团队提出了著名的算法,其利用滑动窗口和规则块生成候选框,再利用多尺度滑动窗口增加检测结果,解决图像目标形状复杂、尺寸不一问题,最后利用卷积神经网络和回归模型分类、定位目标 。该算法首次将分类、定位以及检测三个计算机视觉任务放在一起解决,获得同年2013 任务 3(分类+定位)的冠军,但其很快就被同期的 R-CNN 算法取代 。
one-stage和two-stage目标检测算法

文章插图
2.2 YOLO
2015 年华盛顿大学的等提出的 YOLO 算法继承了算法这种基于回归的 one stage 方法,速度能达到每秒 45 帧,由于其速度优势迅速成为端到端方法的领先者 。YOLO 算法是基于图像的全局信息进行预测的,整体结构简单,通过将输入图像重整到 448×448 像素固定尺寸大小,并划分图像为 7×7 网格区域,通过卷积神经网络提取特征训练,直接预测每个网格内的边框坐标和每个类别置信度,训练时采用 P-Relu 激活函数 。但是存在定位不准以及召回率不如基于区域提名方法的问题,且对距离很近的物体和很小的物体检测效果不好,泛化能力相对较弱 。
one-stage和two-stage目标检测算法

文章插图
2.3&
经过等的改进,和算法在 2017 年 CVPR 上被提出,并获得最佳论文提名,重点解决召回率和定位精度方面的误差 。采用 -19 作为特征提取网络,增加了批量归一化(Batch )的预处理,并使用 224×224 和 448×448 两阶段训练预训练模型后 fine- 。相比于原来的 YOLO 是利用全连接层直接预测box 的坐标,借鉴了R-CNN 的思想,引入机制,利用 K-Means 聚类的方式在训练集中聚类计算出更好的模板,在卷积层使用boxes 操作,增加候选框的预测,同时采用较强约束的定位方法,大大提高算法召回率 。结合图像细粒度特征,将浅层特征与深层特征相连,有助于对小尺寸目标的检测 。
one-stage和two-stage目标检测算法

文章插图
2.4 G-CNN
由于巨大的数量使得后续检测效率降低,2016 年马里兰大学的 M等提出一种起始于网格迭代的 G-CNN 算法 。通过初始化对图像划分回归后得到更加接近物体的候选框,再利用回归框作为原始窗口进行回归调整,解决了以往的基于区域提名方法通过海量潜在候选框直接进行目标搜索,抑制负样本的缺陷 。
在训练阶段,首先在图像中获取叠加的多尺度的规则网格(实际网格相互叠加),然后通过truth 与每一个网格的 IOU 进行每一个网格truth 的分配,并完成训练过程,使得网格在回归过程中渐渐接近truth 。在检测阶段,对于每一个样本框针对每一类获得置信分数,用最可能类别的回归器来更新样本框的位置 。
one-stage和two-stage目标检测算法

文章插图
2.5 SSD
针对 YOLO 类算法的定位精度问题,2016 年 12 月北卡大学教堂山分校的 Wei Liu 等提出 SSD 算法,将 YOLO 的回归思想和R-CNN 的box 机制结合 。通过在不同卷积层的特征图上预测物体区域,输出离散化的多尺度、多比例的boxes 坐标,同时利用小卷积核预测一系列候选框的边框坐标补偿和每个类别的置信度 。在整幅图像上各个位置用多尺度区域的局部特征图边框回归,保持 YOLO 算法快速特性的同时,也保证了边框定位效果和R-CNN 类似 。但因其利用多层次特征分类,导致其对于小目标检测困难,最后一个卷积层的感受野范围很大,使得小目标特征不明显 。