赞
踩
上篇文章阐述了SPPNet网络模型,本篇文章详细阐述Fast RCNN目标检测模型。把Fast RCNN放在SPPNet之后不仅是遵循时间上前后顺序,更因为Fast RCNN也借鉴了SPPNet上面的一些技巧。
Fast RCNN论文:https://arxiv.org/abs/1406.4729
Fast RCNN论文翻译:https://alvinzhu.xyz/2017/10/10/fast-r-cnn/
Fast RCNN (Fast Regions with CNN features)一种快速的基于区域的卷积网络方法,用于目标检测。该模型是在RCNN模型的基础进行了优化,训练时间快9倍,测试时间快213倍,相对于SPPNet训练快3倍,测试快10倍。准确率方面mAP为66%,RCNN为62%(RCNN更换了特征网络结构,准确率较之Alexnet(53.3%)准确率提升了)。
【与图像分类相比,目标检测是一个更具挑战的任务,需要更复杂的方法来解决。复杂性的产生是因为检测需要目标的精确定位,这就导致了两个难点,首先必须处理大量的候选框目标位置(通常称为“提案”),其次相对于生成候选框的粗略定位,目标检测必须实现精确定位。这两点问题的解决方案经常会影响速度、准确性或简单性。】
Fast RCNN物体检测系统由三个模块组成:
1、提取特征、候选框集合、特征映射
Fast RCNN提取特征的主干网络是VGG16(ILSVRC 2014物体分类第二名),13层Conv+3层Fc,激活函数Relu。
Fast RCNN候选框也是通过Selective Search算法选取的2000个候选框集合,候选框在特征图上的映射和SPPNet的模式是一样的。
2、ROI(Region Of Interest) Pooling
ROI Pooling的作用也是为了适用用Fc网络要求的固定尺寸的输入特征向量,功能和SPP-layer的作用一样。
【ROI Pooling是SPP的一种特殊情况,SPP是采用多个尺度叠加,而ROI Pooling则是直接将特征图分成Fc层需要的7*7的网格,然后获取每个cell里面最大的那个值,组成7*7*512的特征向量。】
3、Softmax分类和线性回归
【Fast RCNN使用了一个精细的训练过程,对比R-CNN或者SPPNet分别在三个独立阶段训练特征提取、SVM和回归器,其在微调阶段联合优化Softmax分类器和检测框回归。Fast R-CNN网络具有两个同级输出层。 第一个输出在
k+1 个类别上的离散概率分布(每个RoI),p=(p0,...,pk) 。 通常,通过全连接层的k+1 个输出上的Softmax来计算p 。第二个输出层输出检测框回归偏移,tk=(tkx,tky,tkw,tkh) ,通过目标的真实目标框v ,来计算tk 指定相对于候选框的尺度不变转换和对数空间高度/宽度移位。】【卷积神经网络分为前向传播算法和反向传播算法,前向传播主要是评分函数(一系列的特征向量与权重的积加上偏置,再经过激活函数最终得到的结果),而反向传播算法主要依据损失函数,损失函数是用来量化评分函数和真实标签之间的一致性的,越大则说明预测的情况越差】
下面简短介绍下SVM和Softmax的loss函数,如下图前向传播评分类别1的得分最高,但是正确的类别是2(三个类别按0,1,2)。
右上角通过Hinge loss来演示SVM的损失计算过程。Hinge loss通常被用于最大间隔算法(maximum-margin),而最大间隔算法又是SVM用到的主要算法。。
【Hinge loss专用于二分类问题。标签值
y=±1 ,预测值y^ ∈ R。该二分类问题的目标函数要求如下:当y^大于等于+1或者小于等于-1时,都是分类器确定的分类结果,此时的损失函数loss为0;而当预测值y^∈(−1,1)时,分类器对分类结果不确定,loss不为0。显然,当y^=0时,loss达到最大值。此处这只1为阈值。】
右下角是利用cross-entropy loss来演示Softmax的损失计算过程。
【交叉熵损失函数Cross Entropy Loss】描述了两个概率分布之间的距离,当交叉熵越小说明二者之间越接近。尽管交叉熵刻画的是两个概率分布之间的距离,但是神经网络的输出却不一定是一个概率分布。为此我们常常用Softmax回归将神经网络前向传播得到的结果变成概率分布。
对比两个loss函数,当改变得值不大时,对svm可能没有影响,此时改变点没有超过边界,但是对softmax而言,无论大小的改变,结果都会发生相应的变化。【上面介绍了关于svm和softmax损失函数是为了下面阐述Fast rcnn的多任务损失做铺垫】
Fast RCNN对于每个标记的ROI区域使用多任务联合分类和检测框回归损失函数
L :这里是分类和边框回归2个计算损失,后面的Faster RCNN4个计算损失,yolov1的5个计算损失等。
1、创新(没有再提可以训练不同尺度的图片,因为这个已成为后面的标配)
2、挑战
区域提取成为影响目标检测性能的瓶颈,RCNN、SPPNet、Fast RCNN都选用搜索选择算法产生2000个候选区域集合;
训练和测试耗时,0.3秒一张的检测图片不能满足实时的需求。
总结:Fast RCNN将在RCNN和SPPNet上面的分阶段训练这一弊端,转成多任务单阶段的训练,并且可以更新所有的网络参数,这个在提高精度的同时,节省了很多预训练等很多繁琐的步骤,这个是Fast RCNN相对于以往的目标检测模型的创新点。总的来说,Fast RCNN在RCNN系列中提供的最大可借鉴的地方可能就是就是多任务但阶段训练,以及softmax loss的引进,而候选区域提取借鉴的RCNN,ROI Pooling借鉴的是SPP。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。