参考博客:
https://www.cnblogs.com/gongxijun/p/7071509.html
https://blog.csdn.net/shenxiaolu1984/article/details/51066975
划重点:提出使用候选区域进行卷积提高了检测速度,使用特定任务进行fine-tuning提高了mAP。
- RCNN的整体框架:
1、候选区域的提取(SS方法)
SS(selective search)区域合并算法过程:对图像分成很多很多很多的小块,再使用一定的相似度计算方法进行合并……相似度的计算使用4个方向:颜色、纹理、合并后面积、合并后的bounding box面积。其中合并后面积越小越偏向于合并,可以防止大面积吞掉小面积;合并后的bounding box越小越偏向合并,可以防止并没有和大相关度的两个区域(有断崖)合到一块。
2、特征提取
(1)warp:将所有的候选区域调整到规定的统一大小227*227,有三种方法。随机采样把原图像周围16个像素的信息利用起来。(具体方法在论文的附录A中)
(2)使用预训练好的CNN网络对warp后的候选特征区域进行特征提取,用训练好的SVM对整个特征向量的每个类别单独打分,用NMS淘汰掉IOU大于阈值0.5的候选框。
(3)CNN网络:先使用ILSVRC2012分类数据集(此时没有边框的定位信息)进行预训练得到的是一个1000个类的分类器模型,再用VOC进行fine-tuning,将网络变成只识别21各类别的(20个类别+1个背景)。在进行fine-tuning时,对预训练的CNN进行SGD训练,当iou>=0.5,Positive,否则为Negetive。每轮SGD都是128,包含32个正例96个负例。
3、分类器
使用SVM。CNN网络的全连接层f7的特征提取出来之后,对每一类训练一个SVM,此时阈值设置为0.3(之所以小于fine-tuning的0.5是因为在fine-tuning时样本少阈值高会导致过拟合)。