paper链接:https://arxiv.org/pdf/1311.2524.pdf
code链接:http://www.cs.berkeley.edu/~rbg/rcnn
本文是2014年CVPR上发表的第一篇将深度学习应用到目标检测上的算法。
Introduction
对于计算机视觉来说,分层、多阶段的过程对识别其中的特征更有帮助。
算法大致思路步骤:
- 输出图像;
-
提取大约2000个自下而上的建议区域;
-
使用大型卷积神经网络(CNN)计算每个建议的特征;
-
使用特定类别的线性支持向量机对每个区域进行分类。
反向传播的随机梯度下降对于训练卷积神经网络(CNNs)是有效的。
使用深度神经网络定位对象,并使用少量带注释的检测数据训练高容量模型。
检测需要在图像中定位(可能定位很多对象),其一是将之看做回归问题,效果不是很好(YOLO中也将之看做回归问题,确实精度不如Fast R-CNN等算法,但是提升了速度,降低了复杂性),其二就是建立滑动窗口检测器(如检测行人和人脸),这些CNNs只有2个卷积层和池化层。作者提出考虑滑动窗口方法,搭建具有5个卷积层的高层网络。(OverFeat也使用CNN进行目标检测,R-CNN的mAP高于OverFeat)
论文中阐述R-CNN面临两个挑战:
- 在使用滑动窗口方法时,网络具有5个卷积层的高层单元在输入图像中具有很大的感受野和步幅,影响了精确定位;
- 标记数据的稀缺。
解决方案:
- 使用“识别使用区域”的方法,;