上QQ阅读APP看书,第一时间看更新
第1章 双阶段检测
1.3.1 Fast R-CNN算法介绍
我们这里要介绍的Fast R-CNN通过多任务的方式将分类任务和检测任务整合成一个流程,同时带来分类和检测精度的提升。它的核心特点是通过softmax替代n个SVM分类器的分类分支,这个替代解决了训练过程中的多阶段的问题,使得Fast R-CNN成为一个可以进行端到端训练的模型。
Fast R-CNN的算法流程如图1.8所示,它包含的主要步骤如下:
(1)通过选择性搜索得到若干候选区域;
(2)将整幅图像送入神经网络,得到整幅图像的特征图(可以和步骤(1)并行执行);
(3)使用感兴趣区域(region of interest,ROI)池化层(单层的SPP层)将不同尺寸候选区域的特征图映射成相同大小的特征向量;
(4)将特征向量输入由分类任务和检测任务组成的多任务分支,分类任务分支计算每个候选区域的类别评分(K类物体和1类背景),检测任务分支得到K类任务的4个坐标信息(4×K个输出);
(5)通过NMS后处理得到最终的检测结果。
相较于SPP-Net,Fast R-CNN最大的优点是实现了目标检测任务的端到端学习,同时引进了多任务训练,在优化训练过程的同时避免了额外存储空间的使用,并在一定程度上提升了精度。在下面的介绍中,我们以源码为线索,逐渐揭开Fast R-CNN的神秘面纱。
图1.8 Fast R-CNN的算法流程