目标检测算法Fast R-CNN

快速的区域卷积神经网络(Fast R-CNN)是用于目标检测的算法,详情请查看转载的原文链接。

以下是个人思考:

在理解Fast R-CNN之前,应该理解SPP-net空间金字塔池化层的概念,因为SPP是Fast R-CNN的核心之一。SPP是位于最后卷积层和全连接层之前的一个池化层,其作用一是保持全连接层的输入维度固定;二是保证只对图像提取一次卷积层特征。SPP将卷积层输出划分为固定的4*4、2*2、1*1的块并连接起来,组成长度为21的特征向量,这样固定地划分块使得经过SPP处理后,输出的维度固定。对于SPP的输入是进行等比例缩放,使得宽高比保持不变而不产生畸变。另外,R-CNN是对每一个候选区域分别进行CNN,使得CNN不共用而花费大量资源;而SPP-net对整个待测图像进行CNN,得到卷积层特征图像后,利用空间映射关系直接将原图候选区域映射到卷积层特征图像中,这使得只对图像进行一次CNN,相当于共用了资源。

目标检测算法Fast R-CNN

对于Fast R-CNN,核心一是利用简易版的SPP进行特征提取;核心二是改进损失函数,使其同时包含分类损失和位置损失。

简易版的SPP称为RoI pooling(感兴趣区域池化层),SPP采用多个尺度的池化(4*4、2*2、1*1),而RoI pooling只采用一种尺度。此外,对于损失函数的改进,分类损失使用softmax代替SVM,主要是softmax在互斥的类别分类中要优于SVM;位置损失的出现使得今后对候选框精度的改进提出了新的方向。并且两种损失可以并行运算,综合考虑两种损失使得最终结果更加准确。

目标检测算法Fast R-CNN