【每日一网】Day25:R-FCN简单理解

R-FCN

算法背景

作者提出了基于区域的全卷积神经网络,与之前的基于区域的检测器,论文的基于区域的检测器利用的是全卷积网络,并且几乎所有的计算都在整张图片上共享。
论文主要解决了”分类网络的位置不敏感性“和“检测网络的位置敏感性”之间的矛盾,在提升精度的同时利用“”位置敏感得分图“,提升了检测速度。
Faster RCNN的是首个利用CNN来完成proposal的预测的,faster RCNN的思想可以分为两个部分,第一个部分是直接用普通的分类网络的卷积层来提取共享特征,然后一个roi pooling层在第一个部分的最后一张特征图上进行提取针对各个roi的特征向量,然后将所有roi的特征向量都交由第二部分进行分类和回归,第二部分一般都是一些全链接层,在最后由两个并行的loss函数,softmax和smoothL1,分别用来对每一个ROI进行分类和回归,这样就可以得到每个ROi的真是类别和较为精确的坐标和长宽。
这里要注意,第一部分都是类似于VGG,resnet之类的基础分类网络,所以这些网络的计算都是所有ROI共享的,但是第二部分的作用是进行分类和回归,因此不能共享计算。首先第一部分具有位置不敏感性,如果我们将所有卷积层放在第一部分来提取特征,第二部分只剩全连接层,那么这样的目标检测网络则是位置不敏感的,所以其检测精度会降低,并且浪费了分类网络的强大的分类能力。

网络结构

【每日一网】Day25:R-FCN简单理解_第1张图片
如图为R-FCN的网络结构图,其设计思想是”位置敏感得分图“。如果一个ROI含有一个类别c的物体,那么作者将ROI划分成kxk个区域,表示该物体的各个部位,如果目标为人,k=3,那么将人划分成了9个区域,top-center则应该是人的头部,而bottom-center应该是人的脚,而将ROI划分kxk个区域就是希望这个ROI在其中的每一个区域的都应该含有该类别的的物体的应有的各个部位,只有所有子区域都含有的各自对应的物体该物体的相应部位后,该分类器才会将ROI判断为该类别,物体的各个部位和ROI的这些子区域是一一对应的关系。
如果该物体的很多部位都没有出现在相应的子区域中,那么就判断该ROI为背景类别,那么如何判断ROI子区域是否含有物体的相应部位呢?

位置敏感得分图

R-FCN会在共享卷积层的最后再接上一个卷积层,这个卷积层就是位置敏感得分图,首先它就是一层卷积层,它的h和w与共享卷积层的是相通的,但是他的channel=k^2(C+1),如上图所示,C表示物体类别数加上一个背景类别,每个类别都有k方个score map。假设我们的目标是人这个类别,那么他有k方个score map,每一个score map表示“原图image中的哪些位置含有人的某一个部位”,而该score map 会在含有“该score map对应的人体的某个部位”的位置有“高响应值”,所以只要将ROI的各个子区域对应到属于人的每一个得分图上,然后获取响应值即可。
由于一个响应图只属于一个类别的一个部位,所以ROI的第i个子区域一定要到第i个得分图上去找对应区域的响应值,那么现在该ROI的kxk个子区域都已经分别到k方个响应图上寻找对应的响应值了,如果这些响应值都很高,那么证明这个ROI是人。

位置敏感ROI池化

【每日一网】Day25:R-FCN简单理解_第2张图片
此部分,将讲述通过池化操作找寻位置敏感的子区域。
通过RPN提取出来的ROI区域,是包含了坐标和长宽的四个值的属性的,也就是说不同的ROI区域能够对应到的的得分图上的不同位置,而一个ROI会分成kxk个bin(子区域),每个bin都对应得分图上的某一个区域,那么池化操作就是在该bin对应的得分图的子区域上执行,执行的是平均池化。我们在上一部分已经讲了第i个bin对应在第i个得分图上找响应值,那么也就是在第i个得分图上的第i个bin对应的位置上进行池化操作,且池化提取的是bin这个范围内所有值的平均值,并且由于有c+1个类别,所以每个类别都要进行相同方式的池化【每日一网】Day25:R-FCN简单理解_第3张图片
【每日一网】Day25:R-FCN简单理解_第4张图片
上图画出了池化方式,对于每个类别都有k方个得分图,按照上述池化方式,可以针对该类别得到k方个值,那么一共有C+1个类别那么一个ROI就得到在这里插入图片描述
个值,就是上图在这里插入图片描述
的特征图,那么对于每个类别,该类别的k方个值就表示该ROI属于该类别的响应值,那么将这k方个数相加就得到该类别的得分,共有C+1个得分,使用softmax函数就可以得到属于各个类别的概率了。

位置敏感回归

前面的任务完成了分类,接下来讲解回归操作,按照前面的思路,会让每一个ROI得到C+1个数作为每个类别的得分,那么还需要 4个数作为回归的偏移量,所以仿照分类的设计思想,还需要一个类似于位置敏感得分图的用于回归的得分图。作者在resnet的共享卷积层的最后一层上,接上一个与位置敏感得分图并行的得分图,该得分图用于回归,,暂且命名为回归得分图,而该回归得分图的维度应该是4k方,在经过位置敏感ROI池化之后,每个ROI就会得到4个数作为坐标和长宽的偏移量了。

你可能感兴趣的:(每日一网,深度学习,机器学习,人工智能,计算机视觉)