学号:17020150056 姓名:张伟航
【嵌牛导读】对于目标检测,学术界已有将近二十年的研究历史。从最初2013年提出的R-CNN,到后面的Fast/Faster R-CNN,SSD,YOLO系列,基于深度学习的目标检测技术,涌现出大量的算法技术。基于深度学习的目标检测算法成了机器学习领域的热点之一。本文主要讨论基于区域提取的目标检测框架。
【嵌牛鼻子】深度学习 区域提取 目标检测
【嵌牛正文】
一、前言
区域提取在CNN的基础上解决了传统目标检测中存在的问题。区域提取是预先找出图片中可能存在的目标物体(候选区域),并在候选区域上滑动窗口,以进一步判断类别和位置信息,相比于传统目标检测算法这大大减少了时间的复杂度。本文主要讨论基于区域提取的目标检测框架。包括R-CNN,SPP-NET,Fast R-CNN,Faster R-CNN,Mask R-CNN,R-FCN这几种算法的框架和优缺点。
二、基于区域提取的目标检测算法
2.1 R-CNN
Region CNN(R-CNN)由Girshick等人提出,为基于深度学习进行目标检测奠定了基础。R-CNN在PASCAL VOC2007上的检测结果从DPM HSC的34.3%直接提升到了66%(mAP)由此可以看R-CNN其巨大优势。R-CNN检测算法包含4个步骤。
1) 输入检测图片
2)使用Selective Search算法从待检测图像中提取约2000个区域候选框这些候选框可能包含要检测的目标,把所有侯选框缩放成固定大小。
3)用CNN提取每个候选框的特征得到固定长度的特征向量。
4)把特征向量送入SVM进行分类得到类别信息,送入全连接网络进行回归得到对应位置坐标信息。
但是,R-CNN框架也存在很多问题:
1) 训练分为多个阶段,步骤繁琐
2) 训练耗时,占用磁盘空间大
3) 速度慢,VGG16模型处理一张图像需要47秒
4) 输入的图片必须强制压缩成固定大小,会导致检测目标产生变形,影响准确率。
2.2 SPP-NET
SPP-NET是He等于2014年提出的,其目标检测主要步骤为:1)区域提名,用Selective Search 从原图中生成2000个左右的候选窗口;2)区域大小缩放;3)特征提取;4)分类与回归。
SPP-NET解决了R-CNN区域提名时crop/warp带来的偏差问题,提出了SPP层,使得输入的候选框大小可变。虽然使用SPP-NET相比于R-CNN可以大大加快目标检测的速度,但是依然存在着很多问题:1)训练分为多个阶段,步骤繁琐,包括微调网络,训练SVM和训练边框回归器2)SPP-NET在微调网络时固定了卷积层,只对全连接层进行微调,而对于一个新的任务,有必要对卷积层也进行微调。
2.3 Fast R-CNN
Fast R-CNN借鉴SPP-NET对R-CNN进行了改进,检测性能获得提升。作者提出了一层的金字塔网络,称为ROI Pooling,它可以把不同大小的输入映射成一个固定尺度的特征向量。如下图。
ROI PoolingROI Pooling层将不同大小候选区切分为M×N块,在每一块中采用max pooling 操作。
Fast R-CNN同样存在问题:目标检测消耗的时间主要在于使用Selective Search进行候选框的提取。
2.4 Faster R-CNN
2016年Ben等在Fast R-CNN的基础上提出了Faster R-CNN。候选框质量的好坏直接影响到目标检测的精度,为了提高目标检测的性能,于是RPN(Region Proposal Network)网络被提出来。RPN的核心思想是使用卷积神经网络直接产生候选区域。于是Faster R-CNN不再由原始图片通过Selective Search 提取候选区域,而是先进行特征提取,在特征层增加区域生成网络RPN。Faster R-CNN结合了候选区域生成,候选区域特征提取,候选框回归和分类的全部检测任务,训练过程中各个任务并不是单独训练,而是互相配合,共享参数。
下图为其检测步骤
Faster R-CNN 检测步骤但是,Faster R-CNN在目标识别速度上还是有待提高,预先获取预选区域,然后在对其分类计算的计算量还是较大。
2.5 Mask R-CNN
2017年He等提出了Mask R-CNN,在Faster R-CNN中增加了并行的mask分支,该分支是一个小全连接卷积网络,对每个ROI生成一个像素级别的二进制掩码。此算法扩展了Faster R-CNN,适用于像素级分割,可实现对物体的细粒度分割。Mask R-CNN算法主要包括两个部分:
1)使用RPN网络得到候选框区域。
2)在候选框区域上,通过RoiAlign提取ROI特征,得到目标分类结果和边界框预测,同时对每个ROI产生一个二进制掩码。
Mask R-CNN框架有很大的灵活性,可以进行目标检测,目标分割等任务,但是实时性还不够理想。
2.6 R-FCN
R-FCN是基于Faster R-CNN改进的算法。R-FCN对预测特征图引入位置敏感分数图提增强征位置信息,提高检测精度,解决目标检测的位置敏感性问题。R-FCN是以区域为基础的,全卷积网络的二阶段目标检测框架。和Faster R-CNN相比,R-FCN具有更快的运行速度(2.5倍以上),提高了检测精度,在速度和准确率之间进行了折中,提出位置敏感分布图来解决检测的位置敏感性问题。下图为其性能对比图。
性能对比图R-FCN检测算法包含4个步骤:
1)输入检测图片,进行预处理。
2)送入预训练好的分类网络中,固定其对应的网络参数;
3)在预训练网络的最后一个卷积层获得的feature map上存在3个分支,第1个分支就是在该feature map上面进行RPN操作,获得相应的ROI;第2个分支就是在该feature map上获得一个K*K*(C+1)维的位置敏感得分映射(position-sensitive score map),用来进行分类;第3个分支就是在该feature map上获得一个4*K*K维的位置敏感得分映射,用来进行回归;
4)在K*K*(C+1)维的位置敏感得分映射和4*K*K维的位置敏感得分映射上面分别执行位置敏感的ROI池化操作获得对应的类别和位置信息。
R-FCN检测算法但是R-FCN仍存在问题:当要检测的目标物体类别数较大时,导致检测的运算复杂度很高,检测速度会很慢,难以满足实际应用需求。
三、总结
本文主要介绍了6种基于区域提取的目标检测算法,上述方法基本都是分两步实现的,先提取候选区域,在进行目标检测。共同的缺点都是实时性不够,要想提高检测的实时性,就要考虑另一大类算法:基于回归的目标检测框架。
网友评论