本文主要是介绍ProNet:Learning to propose object-specific Boxes for Cascaded Neural Networks,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
ProNet: Learning to propose object-specific Boxes for Cascaded Neural Networks
2.论文采用的是完全卷积网络的结构来同时进行分类和定位。完全卷积网络是将标准的CNN的最后两层全连接层改成了卷积层,这样它可以接收任意大小的输入,然后输出一个score map,score map上的每个元素对应原图像上的一个矩形box(感受野),采样的步长(Sampling stride)和盒子的大小(box size)取决于FCN的网络结构。如果固定box的大小,则FCN面临的困难是对不同尺度目标的处理(dealing with multi-scale object)。
3.论文使用multi-stream和multi-scale结构来处理不同尺度目标的问题,multi-stream是多输入流,所有的输入流共享参数,但输入是不同尺度大小的图像。multi-scale FCN是采用图像级的标注进行训练的,而不是目标的标注(object-level),如何训练的还不太清楚。但从另一个角度来看也是先提出一些可能包含目标的promising box,然后通过一个级联的结构进行对promissing boxes进行验证筛选,这样的一个propose,然后zoom(放大)验证的pipeling称为ProNet。
4.ProNet的框架图:
ProNet有两个基本组成单元:Object-specific box proposal unit和verification unit
4.1 Proposal的生成
(1)我们框架的第一步是要生成object-specific的proposal,即对于一个输入图像I,和目标类别c,希望学习到一个proposal分值函数(proposal score function):
其中表示一个矩形图像区域的左上角和右下角的位置坐标。
(2)论文使用完全卷积网络FCN,对于一个3通道的W*H的图像,输出的特征图,C是类别数,特征图中的每一个元素表示原图的一个图像区域对某一特定类别的激活(activation response);
(3)用多输入流FCN来处理尺度问题(Scale adaption with multi-stream FCNs):FCN的一个问题是卷积核和感受野的大小通常是固定的,但图像中物体的尺度可能是变化的,论文中采用多输入流来处理尺度问题。将FCN扩展成多个输入流,每个输入流共享参数和预训练模型。给定一个输入输入图像I,先对I进行尺度变换,生成I的多个尺度图像,每个流的输出特征图对应原图像的一个尺度,如下图所示:
LSE pooling:(log-sum-exp)
其中C是类别数,K是FCN的输入流数,M是所有这样元素的总和,r是超参数。
LSE pooling可以作为一个层来实现,连接在K-streams FCN的最后一层的后面,经过LSE pooling层后,每幅图像得到一个C维的向量(C*1*1)。
(4)计算proposal的分值(Computing the proposal scores):FCNs训练好后,就可以从特征图计算机proposal的分值了。具体地从单个FCN的最后一层开始,最后一层特征图上的每个神经元,它的感受野作为位置1(Location1),这个神经元的激活值就是这个proposal的分值。假设卷积层的采样步长为,最大池化层的核大小为,则总体采样步长D为:
其中C表示所有的卷积层,M表示所有的最大池化层。
5.ProNet结构:
6.看完后自己存在疑惑的地方:这个Multi-Stream FCN如何训练的,Verification CNN如何训练的?
这篇关于ProNet:Learning to propose object-specific Boxes for Cascaded Neural Networks的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!