目标检测-RCNN家族

	基于深度学习的目标检测RCNN家族

一、 R-CNN
R-CNN系列论文(R-CNN,fast-RCNN,faster-RCNN)是使用深度学习进行物体检测的鼻祖论文,其中fast-RCNN 以及faster-RCNN都是沿袭R-CNN的思路。
R-CNN全称region with CNN features,其实它的名字就是一个很好的解释。用CNN提取出Region Proposals中的featues,然后进行SVM分类与bbox的回归。
二、 R-CNN的整体流程
目标检测-RCNN家族_第1张图片

RCNN的流程:

(1) 先对图像进行图像分割,分割成2k个图像区域。
(2) 预训练一个图像分类的CNN网络
(3) 将切割的区域图像,通过预训练的CNN网络进行特征提取,不进行CNN网络的全连接层,只对图像做特征提取
(4) 对特征提取的图像建立对应SVM分类器,将图像特征输入,进行分类。
(5) 将特征提取的图像,传入到定位模型网络总,定位出区域内的目标中心位置和宽高,训练该网络
目标检测-RCNN家族_第2张图片

(1) Selective Search 工作原理:

目标检测-RCNN家族_第3张图片

目标检测-RCNN家族_第4张图片

(2) Bounding Box Regression(边界框回归):
目标检测-RCNN家族_第5张图片

损失函数:
目标检测-RCNN家族_第6张图片

(3) R-CNN 架构图
目标检测-RCNN家族_第7张图片

(4) :R-CNN的计算瓶颈
目标检测-RCNN家族_第8张图片

三、 Fast R-CNN
目标检测-RCNN家族_第9张图片

(1) Fast R-CNN 架构图

目标检测-RCNN家族_第10张图片
目标检测-RCNN家族_第11张图片

	可以看出Fast RCNN主要有3个改进:

1、 卷积不再是对每个region proposal进行,而是直接对整张图像,这样减少了很多重复计算。原来RCNN是对每个region proposal分别做卷积,因为一张图像中有2000左右的region proposal,肯定相互之间的重叠率很高,因此产生重复计算。
2、 用ROI pooling进行特征的尺寸变换,因为全连接层的输入要求尺寸大小一样,因此不能直接把region proposal作为输入。
3、 将regressor放进网络一起训练,每个类别对应一个regressor,同时用softmax代替原来的SVM分类器。

(2) ROI pooling
目标检测-RCNN家族_第12张图片
目标检测-RCNN家族_第13张图片
目标检测-RCNN家族_第14张图片

(3) 损失函数

目标检测-RCNN家族_第15张图片

(4) 总结
目标检测-RCNN家族_第16张图片

四、 Faster R-CNN

目标检测-RCNN家族_第17张图片

Region Proposal Network(RPN):

目标检测-RCNN家族_第18张图片

即区域候选网络,该网络替代了之前RCNN版本的Selective Search,用于生成候选框。这里任务有两部分,一个是分类:判断所有预设anchor是属于positive还是negative(即anchor内是否有目标,二分类);还有一个bounding box regression:修正anchors得到较为准确的proposals。因此,RPN网络相当于提前做了一部分检测,即判断是否有目标(具体什么类别这里不判),以及修正anchor使框的更准一些。
(1) 训练步骤
目标检测-RCNN家族_第19张图片

(2) 损失函数
目标检测-RCNN家族_第20张图片

(3) 总结

目标检测-RCNN家族_第21张图片

五、 RCNN家族总结示意图

目标检测-RCNN家族_第22张图片

你可能感兴趣的:(目标检测,深度学习)