目标检测—Faster-RCNN

本文记录的目的是方便自己学习和复习,有误之处请谅解,欢迎指出。

    从之前Fast R-CNN文章的介绍中知道,它已经把很多工作集成到一个端对端CNN网络进行训练,但是依然存在一个外部的前提工作——候选框生成。此前R-CNN、Fast R-CNN的候选框生成一直采用选择性搜索(Selecter Search SS),为了尽可能加快网络速度和集成一个网络,Faster R-CNN被提出。

    主要创新的提出一种区域推荐网络(Region Proposal Networks,RPN),集成在Fast R-CNN网络中,共享卷积层,生成候选区供Fast R-CNN使用,其他与Fast R-CNN基本一致。其整体框架如下图所示。

Faster R-CNN网络

    基本流程:

        1、特征提取。使用常见CNN网络,如VGG16,ResNet等,取其前几层网络作为基础共享卷积网络,然后输入图像提取特征。

        2、RPN候选区生成。前向传播经过一些列的卷积操作得到 feature map,将feature map 输入RPN网络生成许多候选区,并进行筛选。

        3、将不同大小候选区映射至原图特征,得到区域特征,输入ROI pooling提取特征。

        4、区域特征输入全连接层,输出分类结果和边框修正

一、Region Proposal Networks(RPN)与锚框(Anchors)

        Anchors

            介绍RPN之前需要的一个前提知识是锚框(Anchors),锚框是RPN生成候选框的核心。高层特征图中每个元素点都代表了原图的一个小区域信息,在这个小区域周边生成9种面积(3种面积 x 3种比例)的Anchors用来框住物体,如下图所示。

     例如原图,经过VGG下采样16倍,所以此Anchors的数量为:

int(800/16)\times int(600/16)\times 9=50\times 38\times 9=17100

    RPN

        一些经典的候选框检测方法非常耗时,例如滑动窗口+图像金字塔、Selective Search等。Faster R-CNN放弃传统滑动窗口和选择性搜索方法,提出基于卷积的候选框生成方法,极大的提升了检测速度。

RPN

    如上图所示,主要有两条传播线路。1)通过3\times 3卷积生成256维度特征图,再经过1个1\times 1卷积生成18维度的特征(数字含义后面解释),最后经过一个Softmax进行前景和背景的二分类。2)同样经过3\times 31\times 1的卷积,输出36维的特征坐标信息,最后选出候选区。

        对于每个Anchors需要知道的信息是,否包含物体以及它的坐标信息。如何判断是否包含物体,这就是为什么第一条线路输出通道为18,RPN的分类属于Softmax二分类,输出前景和背景的概率,所以每个锚点的9种Anchors需要2\times 9输出;同理,如何判断锚框坐标位移信息,就是4\times 9个特征通道。

        接下来就是正负样本的选择与损失函数。

        正样本:(1)anchor与ground_truth box有最大的

IoU重叠;(2)IoU重叠超过0.7

        负样本:(1)IoU小于0.3

        损失函数与Fast R-CNN基本一致,区别是RPN分类损失属于二分类。

二、训练方式

        (1)交替训练:训练RPN,得到的region proposals来训练fast r-cnn进行微调;此时网络用来初始化RPN网络,迭代此过程;

        (2)近似联合训练:把RPN与Fast R-CNN的损失一起训练(没太搞懂,相加?)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容