一、两阶段
使用selective search产生图中候选region,使用CNN提取region的特征,用SVM分类
1、RCNN
基本流程:通过SelectiveSearch在原图中得到所有候选区域(即可能存在物体的region),然后对这些region依次提取特征,将得到的特征用SVM进行分类
优点:RBG大神首次将CNN方法应用到目标检测上,借助CNN良好的特征提取和分类性能,通过RegionProposal方法实现目标检测问题的转化。
缺点:
1)多个候选区域对应的图像需要预先提取,占用较大的磁盘空间;
2)针对传统CNN需要固定尺寸的输入图像,crop/warp(归一化)产生物体截断或拉伸,会导致输入CNN的信息丢失;
3)每一个ProposalRegion都需要进入CNN网络计算,上千个Region存在大量的范围重叠,重复的特征提取带来巨大的计算浪费。
算法可以分为四步:
1) 选择候选区域
使用Region Proposal 选择候选区域。Region Proposal 是一类传统的区域提取方法,通过Selective Search对每张图提取了约2000个大小不一候选区域,为了使不同尺寸的候选区域可以喂给固定输入尺寸的网络提取特征,对这些候选区域都缩放到227,为避免缩放操作对识别检测精度的影响,作者对缩放过程做了优化,比如对候选区域边界扩展、warp等,并选取最好的缩放方式。
根据Proposal提取的目标图像进行归一化,作为CNN的标准输入。
2) CNN特征提取
标准CNN过程,根据输入进行卷积/池化等操作,得到固定维度的输出;
3) 分类和回归
实际包含两个子步骤,一是对上一步的输出向量进行分类(需要根据特征训练分类器);二是通过边界回归(bounding-box regression,选取判定为该类别的框与标定框的IoU大于0.6的候选框,提取深度特征进行回归) 得到精确的目标区域,由于实际目标会产生多个子区域,旨在对完成分类的前景目标进行精确的定位与合并,避免多个检出。
2、SPP-Net
优点:既然CNN的特征提取过程如此耗时(大量的卷积计算),为什么要对每一个候选区域独立计算,而不是提取整体特征
1)取消了crop/warp图像归一化过程,解决图像变形导致的信息丢失以及存储问题;
2)采用空间金字塔池化(SpatialPyramid Pooling )替换了 全连接层之前的最后一个池化层。
为了适应不同分辨率的特征图,定义一种可伸缩的池化层,不管输入分辨率是多大,都可以划分成m*n个部分。这是SPP-net的第一个显著特征,它的输入是conv5特征图 以及特征图候选框(原图候选框 通过stride映射得到),输出是固定尺寸(m*n)特征;
缺点:
1)和RCNN一样,训练过程仍然是隔离的,提取候选框 | 计算CNN特征| SVM分类 | Bounding Box回归独立训练,大量的中间结果需要转存,无法整体训练参数;
2)SPP-Net在无法同时Tuning在SPP-Layer两边的卷积层和全连接层,很大程度上限制了深度CNN的效果;
3)在整个过程中,Proposal Region仍然很耗时。
3、fast-Rcnn
Fast-RCNN主要贡献在于对RCNN进行加速。
优点及改进:
1) 借鉴SPP思路,提出简化版的ROI池化层(注意,没用金字塔),同时加入了候选框映射功能,使得网络能够反向传播,解决了SPP的整体网络训练问题;
2)多任务Loss层
A)SoftmaxLoss代替了SVM,证明了softmax比SVM更好的效果;
B)SmoothL1Loss取代Bouding box回归。
将分类和边框回归进行合并(又一个开创性的思路),通过多任务Loss层进一步整合深度网络,统一了训练过程,从而提高了算法准确度。
3)全连接层通过SVD加速
4)结合上面的改进,模型训练时可对所有层进行更新,除了速度提升外(训练速度是SPP的3倍,测试速度10倍),得到了更好的检测效果(VOC07数据集mAP为70,注:mAP,mean Average Precision)。
4、faster-RCNN
改进:在特征图上提取候选框,低分辨率特征图意味着更少的计算量,提出RPN(RegionProposal Network)
优点:添加RPN分支网络,将候选框提取合并到深度网络中,
Faster实现了端到端的检测,并且几乎达到了效果上的最优,速度方向的改进仍有余地,
有些基于Faster-RCNN的变种准确度已经刷到了87%
二 、单阶段
1、YOLO系列
直接进行整图回归,速度快
(1)、YOLO-V1
YOLO有两个缺点:一个缺点在于定位不准确,另一个缺点在于和基于region proposal的方法相比召回率较低。
(2)、YOLO-V2
虽然加入anchor使得MAP值下降了一点(69.5降到69.2),但是提高了recall(81%提高到88%)。
(3)、YOLO-V3
2、SSD
由于YOLO本身采用的SingleShot基于最后一个卷积层实现,对目标定位有一定偏差,也容易造成小目标的漏检。
基于多尺度特征的Proposal,SSD达到了效率与效果的平衡,从运算速度上来看,能达到接近实时的表现,从效果上看,要比YOLO更好。
=========================未完待续===========================