目标检测---Faster RCNN---详细解读(下)

本篇博客都是个人原创,哪里若有出处,还望大家多多包涵。

在这篇博客中,主要讲解Faster RCNN 从输入图片到得到识别结果的具体流程。

目标检测---Faster RCNN---详细解读(下)_第1张图片

上图就是Faster RCNN的整体流程,大致可以分为四个部分:

        1.卷积网络提取特征得到Feature map

        2.RPN网络生成候选区域,获得前景图片并进行位置回归

        3.RoiPooling 层,结合Feature map 与proposal 信息,提取proposal Feature map 用于全连接层进行分类和位置回归

       4.分类和位置回归

下面会从这四个方面来介绍Faster RCNN 模型

一、卷积网络得到Feature Map

        在上图中,Conv layers部分共有13个conv层,13个relu层,4个pooling层。卷积层的作用就是提取特征,通过不断的卷积试图寻找更高维度的图片特征。激活层的作用则是让网络的鲁棒性更强。池化层则是可以大大减少网络的参数,帮助收敛。

下图是卷积层工作的过程帮助大家理解。

目标检测---Faster RCNN---详细解读(下)_第2张图片

这幅图片经过卷积核卷积后,在该位置出现了新的数字,该数字就代表了在更高维度这幅图的一个特征。

目标检测---Faster RCNN---详细解读(下)_第3张图片

将卷积后的结果输入激活函数relu中,得到的结果即为该位置特征图上的一个值。我们通过卷积遍历这幅图片,得到的就是Feature map了。

二、RPN网络

目标检测---Faster RCNN---详细解读(下)_第4张图片

上面的截图就是RPN的全过程,下面我们会重点讲解。不难发现,RPN网络开始用了一个3*3的卷积进行了处理,然后分为两个分支。上面的分支通过softmax分类anchors 获得前景和背景的候选框,下面的分支则是通过一个1*1的卷积来计算对于anchors 的bounding box regression 偏移量,已获得较为精准的proposal。两个分支相汇于Proposal层,proposal层则负责综合前景的候选框和bounding box regression偏移量获取proposals,同时剔除太小和超出边界的proposals。

问题:3*3卷积的作用是什么?

千寻:卷积的作用就是提取更高纬度的特征,作者在这里增加了一个3*3 的卷积,猜测可能是想增加模型的鲁棒性。

问题:1*1卷积的作用?

千寻:这里面作者用到了两个1*1 的卷积,第一个卷积大小为1*1 有2k个卷积,第二个卷积大小为1*1 有4K个卷积。 其中K=anchor的个数,在这里K=9。这两个卷积的作用就是降维,不论前面3*3卷积后得到特征图的带下为多大,经过1*1卷积后纬度都变为2K,4K大小。

问题:Softmax 如何判断前景和背景?

千寻:在feature map中每个点上有k个anchor(默认k=9),而每个anhcor要分前景和背景,文中定义:对每一个标定的ground true box 区域,与其lou最大的anchor记为正样本(保证每个ground true至少对应一个正样本anchor),剩余的anchor,如果其于标定区域重叠比例大于0.7,记为正样本。若重叠比例小于0.3,记为负样本。跨越图像边界的anchor舍弃,不符合条件的anchor舍弃。补充一点,全部anchors拿去训练太多了,训练程序会在合适的anchors中随机选取128个postive anchors+128个negative anchors进行训练。

你可能感兴趣的:(Faster,rcnn,目标检测,卷积)