您的位置:首页 > 其它

R-CNN:Faster R-CNN 模型学习笔记

2018-07-02 21:39 295 查看
版权声明:Copyright (c) strongnine https://blog.csdn.net/weixin_39679367/article/details/80372987

R-CNN 系列模型是目标检测里的经典模型,同时也是 Caffe 的经典模型,所以为了学习 Caffe 和目标检测算法的知识,通过观看论文、网上的资料以及试着用自己的数据训练一个 Faster R-CNN 后,对于 Faster R-CNN 有了初步的了解,在此把论文内容和自己的理解整理并写下来。

一、R-CNN 的历史

R-CNN 是一个经典的目标检测模型,发展到现在已经成为了一个系列,从一开始的 R-CNN 模型,到 Fast R-CNN 模型,一直到 Faster R-CNN 模型,代表了目标检测的前沿水平。
R-CNN 模型出现较早,一开始使用了 Selective Search 算法来生成区域建议候选框,在当时是一个创新,但是现在看起来,无论是从速度还是准确率上看,都不算是很好的。在随后推出的 Fast R-CNN 中,参考了 SPPnet 的特点,大幅提高了模型的训练速度和检测速度。而在 Faster R-CNN 中,采用共享的卷积网组成 RPN(Region Proposal Network),使用 RPN 可以直接预测出建议候选框,平均每张图片 300 个,大部分计算在 GPU 中完成,且卷积网络和 Fast R-CNN 共享,大幅提升了目标检测的速度。

二、区域建议网络 —— Region Proposal Network

在 Faster R-CNN 中引入了一个新的网络 —— 区域建议网络(Region Proposal Network,RPN), RPN 是一个全卷积网络,可以在每个位置同时预测物体边界和 objectness scores 。RPN 通过端到端的训练来生成高质量的区域建议,然后被 Fast R-CNN 用来做检测。通过一种简单的交替优化方法, RPN 和 Fast R-CNN 可以共享卷积特征。在 VGG-16 模型上,能够达到 5 FPS 的帧率(使用GPU),在 PASCAL VOC 2007 和 2012 上分别取得了 73.2% 和70.4% 的 mAP 。

(一)Region Proposal Network

为了生成区域建议,在最后的共享卷积层所输出的特征映射(feature map) 上滑动一个小网络。这个网络被全连接到输入卷积特征映射的一个 n×nn\times nn×n(在论文中 n=3n = 3n=3) 的空间窗口上,每个滑动窗口被映射到一个更低维向量(在 ZF 上为256维,在 VGG 上为512维)。这个向量被喂进两个同级的全连接层 —— a box-regression layer ( regregreg ) and a box-classification layer ( clsclscls ) .注意输入图片的有效感受野很大(ZF 上为171像素,VGG 上为228像素)。Figure 3 在其中一个位置上说明了一个迷你网络。要注意的是,因为这个迷你网络以滑动窗口的方式运作,全连接层在所有空间位置上共享。这种结果由一个后接两个同级的 1×11 \times 11×1 的卷积层的 n×nn\times nn×n 的卷积层自然地实现。ReLUs 应用在 n×nn\times nn×n 的卷积层的输出。

(二)具有平移不变性(Translation-Invariant)的 Anchors

在每个滑动窗口的位置,同时预测 kkk 个区域建议,所以 regregreg 层有 4k4k4k 个输出代表了 kkk 个 boxes 的坐标。clsclscls 层输出 2k2k2k 个得分(scores)来估计每个建议选框的为 目标/非目标 的概率。kkk 个建议选框被 kkk 个对应的 boxes 参数化,这些 boxes 就称为 anchors 。每一个 anchor 都在上述滑动窗口的中心,对应着一种尺度和一种宽高比(aspect ratio),在每个滑动位置上都有3个尺度和3个宽高比的 anchors,总共就有9个。

(三)给 anchors 分配正负标签

在训练 RPN 时,给每个 anchor 分配一个二元标签(是否为目标)。
给两种 anchor 分配正标签:
1.与 ground-truth box 重叠有最高的 IoU(Intersection-over-Union) 的 anchor。
2.与任何一个 ground-truth box 重叠都有高于0.7的 IoU 的 anchor。
一个 ground-truth box 可能会分配正标签给多个anchor。
-给与所有的 ground-truth boxes 的 IoU 都小于0.3的 anchor 分配负标签。
即不为正也不为负的 anchor 对于训练没有贡献。

(四)学习区域建议时的损失函数

根据上面的定义,我们根据 Fast R-CNN 的多任务损失(multi-task loss)来最小化目标函数。对于一张图片,其损失函数(loss function)定义如下:
L({pi},{ti})=1Ncls∑iLcls(pi,pi∗)+λ1Nreg∑ipi∗Lreg(ti,ti∗)L({\lbrace p_i \rbrace},{\lbrace t_i \rbrace})=\frac{1}{N_{cls}}\sum_{i}{L_{cls}(p_i,p^*_i)}+\lambda\frac{1}{N_{reg}}\sum_{i}{p^{*}_{i}L_{reg}(t_i,t^*_i)}L({pi​},{ti​})=Ncls​1​i∑​Lcls​(pi​,pi∗​)+λNreg​1​i∑​pi∗​Lreg​(ti​,ti∗​)
在这里,iii 是一个 mini-batch 上一个 anchor 的索引,pip_ipi​ 是第 iii 个 anchor 为目标的预测可能性。如果 anchor 为正 ,ground-truth 标签 pi∗p_i^*pi∗​ 为1,否则为0。tit_iti​ 是一个代表预测的 bounding box 的4个参数化坐标向量, ti∗t_i^*ti∗​ 是一个代表与正 anchor 对应的 ground-truth box 的4个参数化坐标向量。分类损失 LclsL_{cls}Lcls​ 是有两个分类(目标或非目标)的对数损失。至于回归损失,使用 Lreg(ti,ti∗)=R(ti−ti∗)L_{reg}(t_i,t_i^*)=R(t_i-t^*_i)Lreg​(ti​,ti∗​)=R(ti​−ti∗​) ,其中 RRR 是
鲁棒损失函数(robust loss function)。pi∗Lregp_i^*L_{reg}pi∗​Lreg​ 这一项表示了回归损失只有在正 anchor (pi∗=1p_i^*=1pi∗​=1)有作用。
对于回归损失,采用下列的4个坐标参数化:
tx=(x−xa)/wa,t_x=(x-x_a)/w_a,tx​=(x−xa​)/wa​,  ty=(y−ya)/ha,t_y=(y-y_a)/h_a,ty​=(y−ya​)/ha​,  tw=log(w/wa),t_w=log(w/w_a),tw​=log(w/wa​),  th=log(h/ha),t_h=log(h/h_a),th​=log(h/ha​),
tx∗=(x∗−xa)/wa,t_x^*=(x^*-x_a)/w_a,tx∗​=(x∗−xa​)/wa​,  ty∗=(y∗−ya)/ha,t_y^*=(y^*-y_a)/h_a,ty∗​=(y∗−ya​)/ha​,  tw∗=log(w∗/wa),t_w^*=log(w^*/w_a),tw∗​=log(w∗/wa​),  th∗=log(h∗/ha),t_h^*=log(h^*/h_a),th∗​=log(h∗/ha​),
x,y,wx,y,wx,y,w 和 hhh 分别代表 box 中心坐标,宽和高。x,xax,x_ax,xa​ 和 x∗x^*x∗ 分别代表预测的 box,anchor box 和 ground-truth box(y,w,hy,w,hy,w,h 也一样)

三、4步训练Faster R-CNN

1.像上述训练 RPN。这个网络使用一个 ImageNet 的预先训练模型初始化并为区域建议任务进行端到端的微调(fine-tune)
2.通过 Fast R-CNN 使用第一步的 RPN 生成的建议框来训练一个单独的检测网络。这个检测网络也是由 ImageNet 的预先训练模型初始化的。在这一步,两个网络没有共享卷积层
3.使用检测网络来初始化 RPN 训练,但是固定共享卷积层,且只微调在 RPN 独有的层。现在,两个网络共享卷积层。
4.最后让共享卷积层保持固定,微调 Fast R-CNN 的全连接层。这样,两个网络共享相同的卷积层,形成了一个统一的网络。

参考:
R.Girshick,J.Donahue,T.Darrell,J.Malik. Rich feature hierarchies for accurate object detection and semantic segmentation Tech report
R.Shaoqing,H.Kaiming,R.Girshick,Jian Sun. Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks
[深度学习——Caffe之经典模型详解与实战,乐毅,王斌 编著]

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: