目标检测是机器学习领域很重要也很具有挑战性的一个分支,目标检测需要同时完成图像分割和子图分类两项task,比图像分类更具难度。最近几年,深度学习在图像处理上有很多成功的尝试,而目标检测领域也出现了一些很好的方法。本文主要介绍RPN-based的系列方法,包括R-CNN、Fast-RCNN和Faster-RCNN。
RPN-based(RPN:Region Proposal Network)目标检测方法都基于两个核心步骤:(1)、Region proposal:寻找很可能包含特定object的图片区域;(2)区域判断:判断Region proposal提供的图像区域是否包含特定object以及目标区域的调整。
1、R-CNN
使用深度学习进行目标检测最直观的思路是:先用某种方法选择可能的regions,然后每个region通过卷积神经网络(CNN)判断是否是目标object。
R-CNN使用Selective Search方法,每张图像生成约2000region。R-CNN框架如下图所示:
由于region proposals选取出来的区域有各种不同的size,所以需要wrap image regions,把region嵌入到一个固定大小的图片中,使得它们都有相同的size。经过wrap的图片regions经过一个相同的CNN网络,CNN网络的后面连接有一个SVM分类器用于判断object类型,Bbox回归模型用于调整图像region的区域坐标,使得对目标的定位更准确。
R-CNN的具体过程如下:
(1)region proposals:使用selective search 方法产生候选区域;
(2)region proposals候选区域通过wrap,生成相同大小的候选区域图片;
(3)候选区域图片经过CNN生成特征;
(4)CNN特征用SVM判断类别,Bbox回归模型调整区域坐标;
R-CNN的主要缺点是速度慢,使用GPU每张图片需要花费几十秒的时间(不包括region proposals大约41s)。
2、Fast-RCNN
Fast-RCNN在R-CNN的基础上做了一些改进,减少计算量和计算时间。
假设region proposals都被映射到卷积层的feature map,直接从feature map上选取crops,可以减少大量的卷积操作。得益于CNN的局部视野特性,input image和feature map之间的size和object location是对应的缩放关系。
为了适应各种不同size的目标,Fast-RCNN提出了ROI pooling layer:把h*w的ROI切分成h/W*w/W的子窗口,在每个子窗口max-pooling;pooling在每个feature map上独立进行;
Fast-RCNN的具体过程如下:
(1)region proposals:使用selective search 方法产生候选区域;
(2)输入图片经过CNN生成feature map;
(3)在feature map上选取region proposals对应的区域,进过ROI转化成固定长度的特征向量;
(4)softmax分类和回归模型预测object类型和位置;
Fast-RCNN处理一张图片的时间大约在0.32s(region proposals),已经有了很大的提升,花费的时间主要在region proposal。
3、Faster-RCNN
Faster-RCNN在Fast-RCNN的基础上,把region proposal也融入到网络,用CNN来检测可能包含object的区域。增加了一个region proposal分类和回归来判断这个区域是否应该作为候选区域,监督信息:如果这个region和object的重叠区域占比超过某个阈值,就标记为true。
Faster-RCNN的具体过程如下:
(1)输入图片经过CNN生成feature map;
(2)在feature map上选取region判断是否包含目标object以及坐标调整产生region proposals;
(3)region proposals进过ROI转化成固定长度的特征向量;
(4)softmax分类和回归模型预测object类型和位置;
Faster-RCNN处理一张图片的总时间大约是0.2s(region proposals)。
4、参考资料:
相关论文:
R-CNN:Rich feature hierarchies for accurate object detection and semantic segmentation,2014
Fast-RCNN:Fast R-CNN,2015
Faster-RCNN:Faster R-CNN-Towards Real-Time Object Detection with Region Proposal Networks,2015
拓展资料:
Mask R-NN:Mask R-CNN,2017
SSD:SSD-Single Shot MultiBox Detector,2016
YOLO:You Only Look Once: Unified, Real-Time Object Detection,2016