1、FasterRCNN网络所针对的问题
(1)RCNN算法流程及存在问题:
流程:
(a)、利用SS(Selective Search)算法生成候选区域;
(b)、将候选区域输入CNN中获得特征向量;
(c)、利用SVM计算获得的特征向量,进行分类。
存在问题:
(a)、SS算法生成候选区域耗时较长;
(b)、训练过程中不仅要训练CNN,还要训练SVM;
(c)、对每一个候选区域都进行CNN处理,时间耗费过多;
(e)、输入网络的图像需要固定大小。
(2)FastRCNN算法流程及存在问题:
(a)、利用SS(Selective Search)算法生成候选区域;
(b)、利用卷积网络对输入图像进行卷积,获得特征图;
(c)、根据候选区域位置,获取对应特征图;
(d)、利用ROP算法处理候选区域对应的特征图;
(e)、全连接层,生成特征向量;
(f)、分类和定位
改进及存在问题:
fast RCNN是在RCNN基础上的改进,主要改进点是使用一个网络同时进行目标和分类,且通过提出的ROP算法,消除了对输入图像大小的限制。虽然相对RCNN做出了很大的改进,但生成候选区域这块没有改进,影响了效率。
针对遗留的问题以及为进一步提高检测效率,作者提出了faster RCNN网络,其主要创新点为提出了RPN(Region Proposal Networks)网络。
2、RPN网络
针对RCNN和Fast RCNN网络中候选区域获取耗时过长问题,提出了RPN网络,极大的提高了获取效率。
(1)、RPN网络流程
(a)、输入卷积层生成的特征图;
(b)、使用n*n的空间窗口在特征图上滑动,窗口在特征图上的每一次滑动都生成一个256-d的特征向量;
(c)、将生成的特征向量分别输入网络box回归层和box分类层,分别输出box的4个坐标数值和两个类别(包含目标或者不包含目标)。
(d)调整窗口大小比例,共生成k个大小不同的窗口,重复(b)、(c)步骤,共生成4k个box坐标信息和2k个box是否包含目标的scores信息。
网络流程示意图如图1所示:
(2)、RPN特点
(a)、输入为任意大小图像,输出为一系列目标候选区域;
(b)、卷积共享:与后续的目标分类以及目标定位共享卷积层,使用同一卷积特征图;
(c)、生成不同比例大小的anchor box。
(3)、RPN学习训练
给每一个anchor都分配一个二分类标签,分配方式为:
正标签:与真是box有最大IOU的anchor以及与真实box的IOU>0.7
负标签:与真实box的IOU<0.3的anchor
损失函数:
利用端到端的反向传递以及SGD训练参数。
3、Faster-RCNN网络
(1)、网络流程
(a)、输入任意大小图像,利用多个卷积生成卷积特征图;
(b)、将卷积特征图输入RPN网络中,生成候选区域坐标以及判断是否包含目标;
(c)、利用Rpl处理候选区域对应的候选区域特征图,获得ROI特征向量;
(d)、对ROI特征向量进行分类处理和回归处理,分别获得目标类别以及目标位置。
(2)、网络训练
(a)、训练RPN网络,获得卷积层参数;
(b)、利用Fact RCNN在RPN训练好的卷积层参数基础上训练检测网络;
(c)、利用训练好的检测网络参数初始化RPN训练,具体方式为:固定卷积层参数,微调RPN独有层参数;
(d)、固定共享卷积层,微调Fast RCNN的fc层参数。