R-CNN 系列目标检测网络,是深度学习在目标检测领域的首个系列网络,作为典型的 Two-Stage 目标检测网络。该系列包括 R-CNN、Fast R-CNN、Faster R-CNN,就像它们的名字一样,一代比一代速度快,主要是因为 Two-Stage 网络的特点就是精度高,速度慢。到 Faster R-CNN 网络时,就已经做到了端到端的全卷积目标检测网络。其作者 Ross Girshick 成为了 Facebook 的人工智能实验室(FAIR)的一员,即 Detectron2 平台的团队,还在不断为 R-CNN 系列算法的优化而努力。
(1)R-CNN
R-CNN 目标检测网络,字母 R 代表 Region,即区域的意思,中文全称为区域卷积神经网络,是 2014 年出现的,是第一个出现在目标检测领域的深度学习算法,也是它掀起了深度学习在目标检测领域的新篇章,包括后面的 YOLO 等系列也是在此基础上出现的。R-CNN 的网络的结构逻辑如下图所示。
R-CNN 网络处理数据的流程如下:
1)输入图像。
2)使用 selective search 的方法生成多个候选框。
3)将每个候选框输入到卷积层进行特征提取,卷积层网络常用 AlextNet、VGG。
4)再将第三步提取的特征输入到一个又一个类别的 SVM 分类器中进行判断,预测类别信息。
5)最后将经过分类的候选框做回归和修正,预测位置信息。
R-CNN 将深度学习带入检测领域后,PASCAL VOC 上的检测率大幅度提升,从35.1%提升到 53.7%。具备以下优点:
1)采用 CNN 的方式来提取特征,为视觉工作提供思路,只能靠人来考虑提取哪些特征的时代一去不复返了。
2)引入迁移学习的概念,即在大样本上的预训练模型,然后小样本时 fine-tune。
(2)Fast R-CNN
继 R-CNN 推出之后,作者于 2015 年推出了 Fast R-CNN,优化了原本网络结构,提升了检测速度,降低了网络训练对空间的要求。其网络结构逻辑如下图所示。
Fast R-CNN 处理数据的流程如下:
1)输入图像。
2)使用 selective search 的方法生成多个候选框。
3)将整张图片输入到卷积层进行特征提取。
4)在卷积后的特征图上找到对应卷积前的候选框区域。
5)将对应的候选框区域经过 ROI Pooling 转换成固定大小的特征图。
6)将特征图输入到全连接层生成特征向量,用于分类和回归,分别得到分类信息和位置信息。
Fast R-CNN 模型相较于 R-CNN 提升很大,训练时间缩短到原来的九分之一,测试时间缩短到原来的百分之一,测试精度还稍有提升,让人看到了 R-CNN 系列网络实现实时检测的可能。具备以下优点:
1)分类用 Soft max 代替了 SVM,并且采用分类和回归一起进行的方式,降低了训练及测试时长。
2)优化了网络结构,首先采用将整张图先输入到卷积神经网络再提取特征的方式,然后添加 RoI pooling 层使得最终的特征图尺寸一致,这样使得整个过程只需要一个全连接层,而且分类和回归也通过深度网络的方式实现,节约了内存需要。
(3)Faster R-CNN
2015 年,何凯明团队再次提出新算法 Faster R-CNN,将候选框的生成也通过神经网络的方法实现,是第一个实现了端到端的目标检测网络,大大提高了检测速度,在当年的各大视觉竞赛中夺魁。其网络结构逻辑如下图所示。
Faster R-CNN 处理数据的流程如下:
1)输入图像。
2)将整张图片输入到卷积层进行特征提取。
3)RPN 生成候选框。
4)在卷积后的特征图上找到对应卷积前的候选框区域。
5)将对应的候选框区域经过 ROI Pooling 转换成固定大小的特征图。
6)将特征图输入到全连接层生成特征向量,用于分类和回归,分别得到分类信息和位置信息。
Faster R-CNN 目标检测网络无论在速度还是精度上,都得到大幅度提升,于当年的多个赛事中摘得桂冠。具备以下优点:
1)提出 Region Proposal Network(RPN)方法,用卷积神经网络的方式实现了候选框的生成,使网络实现端到端。
2)产生建议窗口的 CNN 和目标检测的 CNN 共享。