传统目标检测的方法:
将CNN引入目标检测领域之前,经典的目标检测算法使用滑动窗口依次判断所有可能的区域,并在区域中提取人工标定的特征。
引入CNN之后,RCNN采用Selective Search预先提取候选区域,并采用深度网络提取特征。
RCNN
pic1
基本流程:
1、 每张图片生成2k个候选区域
2、对每个候选区域使用卷积神经网络提取特征(4096维)
3、使用SVM进行类别判断,使用回归器对位置进行回归
注意点:
(1)得到的候选框大小不同,而CNN要求输入图片大小固定,因此需要把候选框缩放成大小相同的图片。
(2)采用现成的Alexnet(VGG计算量大当时)进行训练和初始化参数,再进行fine-tuning,核心是前边的层次用于提取基础特征,后边的全连接层用于特定的任务特征。
pic2
(3)CNN训练时的softmax层可用于分类,为啥还要使用SVM:原因是SVM分类准确率高,因为SVM和CNN对正负样本的定义不同,CNN中只要是重叠区域大于某一值就认为是正样本,而SVM要求bounding box把整个物体都包含进去才是正样本。
pic3
存在的问题:
1:、不共享卷积网络,每个region proposal都对应不同的卷积网络,使得运算很慢
2、分类使用SVM增加了计算量