五分钟读完一篇文章之R-CNN

Alex-Net网络在基本结构方面与十几年前的LeNet几乎毫无差异,但由于数据和硬件设备(尤其是GPU)翻天覆地的发展,才使得深度神经网络不再是“晚会的戏法”,真正变成了切实落地可行的工具和应用手段。由于Alex-Net的出现,世人的目光重回神经网络。

Alex-Net网络结构
图 Alex-Net网络结构

Alex-Net网络含有5个卷积层,2个全连接层。R-CNN(Regions with CNN features)作者受到Alex-Net的启发,尝试将Alex-Net在ImageNet数据集上的目标识别的能力泛化到PASCAL VOC数据集上来做目标检测(现在称为迁移学习)。

R-CNN要解决的两个问题
1.如何利用卷积网络进行目标定位;
2.如何在小数据集上训练出性能良好的网络模型。

R-CNN 目标检测流程
图 R-CNN 目标检测流程

R-CNN训练流程
1.Alex-net网络使用ImageNet数据集进行pre-train(“图像分类”);
2.使用SS提取的候选区域进行fine-tune(“目标检测”)。

R-CNN目标检测流程
1.读取一张输入图像;
2.使用SS(Selective Search)提取约2000个自下而上(从细节到整体)的候选区域(Region Proposals);
3.将候选区域(需要缩放至227x227,使其兼容Alex-Net)分别输入Alex-net网络,将Alex-net的fc7层输出作为特征;
4.将fc7层的输出输入SVM中进行分类,针对不同种类集合使用NMS(非极大性抑制)进行处理。

最后为了提升目标定位的准确性,R-CNN作者又训练了一个线性的回归模型,这个模型能够针对候选区域的pool5数据进行预测,得到一个更加准确的Box位置(详细介绍请参考我的另一篇文章)。

更加详细的内容请参考作者论文:Rich feature hierarchies for accurate object detection and semantic segmentation Tech report (v5)

总结
现在来看R-CNN虽然有着各种各样的缺点,但却是第一个成功地将深度学习应用到目标检测的算法。

猜你喜欢

转载自blog.csdn.net/weixin_41006390/article/details/105261770