本文共 1069 字,大约阅读时间需要 3 分钟。
(2014 CVPR)
作者:
流程图:
1、RCNN是利用深度学习进行目标检测的开山之作,首次将CNN运用到目标检测问题上。
2、用选择搜索(Selective Search)替代暴力滑框。选择搜索选出2000个候选框,用CNN等识别技术进行分类。
3、使用识别库进行预训练,而后用检测库调优参数。
4、使用SVM代替了CNN网络中最后的Softmax,同时用CNN输出的4096维向量进行Bounding Box回归。
5、流程前两个步骤(候选区域提取+特征提取)与待检测类别无关,可以在不同类之间共用;同时检测多类时,需要倍增的只有后两步骤(判别+精修),都是简单的线性运算,速度很快。
本文数据集采用pascal VOC,这个数据集的object一共有20个类别。首先用select search方法在每张图像上选取约2000个region proposal,region proposal就是object有可能出现的位置。然后根据这些region proposal构造训练和测试样本,注意这些region proposal的大小不一,另外样本的类别是21个(包括了背景)。然后是预训练,即在ImageNet数据集下,用AlexNet进行训练。然后再在我们的数据集上fine-tuning,网络结构不变(除了最后一层输出由1000改为21),输入是前面的region proposal进行尺寸变换到一个统一尺寸227*227,保留f7的输出特征2000*4096维。针对每个类别(一共20类)训练一个SVM分类器,以f7层的输出作为输入,训练SVM的权重4096*20维,所以测试时候会得到2000*20的得分输出,且测试的时候会对这个得分输出做NMS(non-maximun suppression),简单讲就是去掉重复框的过程。同时针对每个类别(一共20类)训练一个回归器,输入是pool5的特征和每个样本对的坐标即长宽。
1、候选框选取耗时,会漏掉一些框
2、传入CNN前的归一化227*227产生的形变会导致信息丢失
3、候选框重叠较多,每个候选框都会输入进一个CNN进行特征提取,会造成重复计算
4、训练分成多个阶段,不利于全局最优
5、训练耗时,用GPU,VGG16处理一张图片要花47s
6、卷积出来的特征数据要单独保存,占空间大(5000张图片生成的特征文件有几百G)
SVM,bounding-box回归损失,softmax损失,三个损失函数
代码实现
待更...