RCNN
1. 基本信息
- 名称:Rich feature hierarchies for accurate object detection and semantic segmentation
- 作者:Ross Girshick, Jeff Donahue, Trevor Darrell, Jitendra Malik UC Berkeley
- 出版信息:R. Girshick, J. Donahue, T. Darrell and J. Malik, “Rich Feature Hierarchies for Accurate Object Detection and Semantic Segmentation,” 2014 IEEE Conference on Computer Vision and Pattern Recognition, 2014, pp. 580-587, doi: 10.1109/CVPR.2014.81.
2. 核心内容
-
核心观点:
目标检测问题可以与深度学习相结合
-
贡献:
- 利用卷积神经网络解决目标定位的问题
- 利用迁移学习的方法解决样本缺乏的问题
-
结论:
本文提出了一种简单的目标检测算法,相比于之前最好的性能提升了30%。本文解决了利用神经网络实现目标定位与分割的问题和少量样本的训练问题。
3. 详细信息
-
整体流程
-
流程详述:
-
候选框的提取
-
方法
采用selective search的方法,region proposal的选取方法有很多,文章采用该方法是为了对比之前的方法
-
做法
按照该算法做完之后区域集合R里边就会有从小图片一直到大图片各种类型的图片,所以图片是分层级的。
-
-
特征提取
-
网络
文章采用AlexNet,结构是conv + fc6 + fc7。注意,这里的AlexNet不要最后的分类层。
-
输入
网络的输入为region proposal,但是region proposal各种大小的都有,为了适应AlexNet,作者直接将各种尺寸的proposal变换到3 * 227 * 227,不过在变换之前先在region proposal周围添加了p = 16个像素。
-
输出
取fc7的4096-dim输出作为提取的特征向量。
-
-
使用SVM分类
-
分类器
采用SVM分类,20种目标和背景,一共是21种不同的类别,所以要采用21个SVM classifier。
-
-
-
训练过程
-
提取候选区的算法不用训练
-
特征提取(AlexNet)部分
-
预训练:
使用ILSVRC 2012预训练。注意:该预训练过程image-level annotations (i.e., no bounding box labels),就是普通的分类网络训练。
-
面向特定领域微调:
注意:这里的训练还是普通的分类网络训练,没有去掉最后面的分类层。
样本:只使用尺寸变换后的proposal训练,如果该proposal的IoU >= 0.5,那么就认为是正样本,否则为负样本。由于实际应用中判定为背景的数量 要多于物体的数量,所以每次抽取32个正样本和96个负样本(i.e.背景图片)构成一个大小为128的mini-batch。
优化器:SGD,lr = 0.001是预训练阶段的十分之一,设置为这么小就是防止CNN层变化太大。
-
-
类别分类器:
-
分类器:SVM二分类分类器
-
正负样本判定:IoU > 0.3 判定为正样本,0.3是网格搜索出来的阈值,效果最好。
-
训练:需要针对每一个类别都训练一个SVM。由于训练样本太多,采用hard negative mining方法实现快速收敛。hard negative mining说白了就是选取那些长得像正样本的负样本作为负样本进行训练。
-
-
-
测试过程
- 对输入图片提取约2k个region proposal
- 将所有的region proposal变换尺寸后依次送入CNN提取4096-dim特征
- 使用SVM进行分类并进行评分
- 针对每一类做非极大值抑制(greedy non-maximum suppression)去除掉冗余候选框
- 针对最好的那个边界框做bounding box regression修正边界框的位置,最终得到输出
4. 补充说明
- bounding box regression
余候选框
5. 针对最好的那个边界框做bounding box regression修正边界框的位置,最终得到输出
4. 补充说明
- bounding box regression