Faster-RCNN

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

目标检测框架Faster-RCNN目标检测框架Faster-RCNN框架中用到的一些技术介绍Faster-RCNN整体框架训练时采用的一些策略与参数设置RCNN系列检测算法介绍RCNN、fast-rcnn、faster-rcnn此系列算法采用策略:1、提取建议区域,R代表regionproposal。2、利用CNN对建议区域进行分类提取建议区域方法的发展:滑动窗口、selectsearch/edgebox、rpn其它深度学习检测策略,利用CNN强大的表述能力直接对目标位置进行回归,例如YOLO。SPPNet1.结合空间金字塔方法实现CNNs的多尺度输入一般CNNs后接full-connectlayer或者classifier,它们都需要固定的输入尺寸。因此不得不对输入数据进行crop或warp,这些预处理会造成数据的丢失或几何学上的失真。SPPNet的第一个贡献是将空间金字塔的思想加入到CNNs中,实现了数据的多尺度输入。SpatialPyramidPoolingLayer(SPP)如图,在卷基层和全连接层之间加入SPPlayer。此时网络的输入可以是任意尺寸,在SPPlayer中每一个pooling的filter会根据输入调整大小,而SPP的输出尺寸始终是固定的。2.只对原图提取一次卷积特征在R-CNN中,每个proposedregion先rescale成统一大小,然后分别作为CNNs的输入,这样是很低效的。在SPPNet中,只对原图进行一次卷积得到整张图的featuremap,然后找到每个proposedregion在featuremap上的映射patch,将此patch作为每个proposedregion的卷积特征输入到SPPlayer和之后的层。节省了大量的计算时间,比R-CNN有一百倍左右的加速。FastR-CNN整体结构如图,FastR-CNN的网络有两个输出层,一个softmax,一个bboxregressor(相对的R-CNN,SPPNet中分类和回归是两个部分,这里集成在了同一个网络中)。而且加入了一个RoIpoolinglayer(类似于一个尺度的SPPlayer)。注意:FastR-CNN提取建议区域的方法依然是selectsearch。RoIpoolinglayer这是SPPpooling的一个简化版本,可以看做是只有一个尺度filter的‘金字塔’。输入是N个整幅图的featuremap和一组R个RoI(proposedregion)。每个特征映射都是H*W*C,每个RoI是一个元组(n,r,c,h,w),n是特征映射的索引,r,c,h,w分别是RoI的左上角坐标和高与宽。输出是max-pooling过得特征映射H’xW’xC,如上图中红色框线。Faster-RCNN整体框架FasterR-CNNFasterR-CNN的主要贡献是设计了提取建议区域的网络RegionProposalNetwork(RPN)。代替了费时的selectsearch,使检测速度大为提高。下图为FasterR-CNN的结构图,黄色部分为RPN,可以看出除了RPN,其它部分继承了FR-CNN的结构。RPN整体结构RPN的网络结构类似于FR-CNN,连接与最后卷基层输出的featuremap,有一个RoI层,两个输出层,一个输出滑窗为建议区域的概率,另一个输出bbox回归的offset。其训练方式也类似于FR-CNN。注意:RPN与FR-CNN共用卷积层。RPNRPN通过一个滑动窗口(图中红色框)连接在最后一个卷积层输出的featuremap上,然后通过全连接层调整到256-d的向量,作为输出层的输入。同时每个滑动窗对应k个anchorboxes,在论文中使用3个尺寸和3个比例的3*3=9个anchor。每个anchor对应原图上一个感受野,通过这种方法提高scale-invariant。Multi-tasklossFR-CNN的有两个网络输出层,将原来与网络分开的bboxregression的操作整合在了网络中。并设计了一个同时优化两个输出层的loss函数。Lp,𝑘∗,t,𝑡∗=𝐿𝑐𝑙𝑠𝑝,𝑘∗+𝜆𝑘∗≥1𝐿𝑙𝑜𝑐𝑡,𝑡∗其中,第一部分是softmax层的loss函数,𝑝是每个建议区域为目标的概率,𝑘∗是一个表示类别的标签。第二部分是bboxregression层的loss函数,𝑡∗=(𝑡𝑥∗,𝑡𝑦∗,𝑡𝑤∗,𝑡ℎ∗)是bbox的标签offset,t=(𝑡𝑥,𝑡𝑦,𝑡𝑤,𝑡ℎ)是bbox预测的offset。RoI-centricsampling与Image-centricsamplingRoI-centricsampling:从所有图片的所有RoI中随机均匀取样,这样每个SGD的mini-batch中包含了不同图像中的样本(SPPNet采用)。SPPNet的反向传播没有到SPPpooling之前的层,因为反向传播需要计算每一个RoI感受野的卷基层,通常会覆盖整幅图像,又慢又耗内存。FR-CNN想要解决这个限制。Image-centricsampling:mini-batch采用分层采样,先对图像采样,再对RoI采样。将采样的RoI限定在个别图像内,这样同一图像的RoI共享计算和内存。通过这种策略,实现了端到端的反向传播,可以fine-tuning整个网络。RPN与FR-CNN共享卷基层为了使共用的卷积层在训练RPN和FR-CNN时都会收敛,论文里设计了一个四步训练的策略:(1):对RPN进行end-to-end的训练,这里网络使用ImageNetpre-trainedmodel进行初始化。(2):使用第一步RPN生成的建议区域训练FR-CNN,这里也使用ImageNetpre-trainedmodel进行初始化。(3):使用上一步FR-CNN的参数初始化RPN,固定卷基层,只fine-tuneRPN独有的层。(在此步已共享卷积层)(4):固定卷基层,只fine-tuneFR-CNN独有的层。训练时采用的一些策略与参数设置1、使用ImageNet分类模型初始化。使模型具有一定的提取图像通用特征的能力,是目前在训练数据较少和检测任务中的常用做法。2、solver配置文件中的参数初始学习率0.001,学习率衰减系数0.1,SGD方法,权重衰减项0.0005。在RPN和Fast-RCNN中都是这样。3、训练样本选择方法与其参数设置训练时采用的一些策略与参数设置3、训练样本选择方法与其参数设置RPN中参数的设置按照Image-centricsampling,每个batch中的图片数。ims_per_batch1或2每个batch中的正负样本数。batch_size256每个batch中正样本占得比率。fg_fraction0.5与GroundTruth的IOU大于阈值0.75的ROI作为正样本。fg_thresh=0.75与GroundTruth的IOU在阈值0到0.35之间的ROI作为负样本。bg_thresh_hi=0.35、bg_thresh_lo=0featuremap到原图映射的变化率为16,这个数值主要是由池化降维算出,与其步长选择有关。feat_stride=16训练时采用的一些策略与参数设置3、训练样本选择方法与其参数设置Fast-RCNN中参数的设置ims_per_batch1或2batch_size128每个batch中正样本占得比率。fg_fraction0.25与GT的IOU大于阈值0.6的ROI作为正样本。fg_thresh=0.6与GT的IOU在阈值0.1到0.5之间的ROI作为负样本。bg_thresh_hi=0.5、bg_thresh_lo=0.1

1 / 18
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功