本文来自公众号“每日一醒”
目标检测或者实例分割不仅要关心语义信息,还要关注图像的精确到像素点的浅层信息。
所以需要对骨干网络中的网络层进行融合,使其同时具有深层的语义信息和浅层的纹理信息。
PANet整体结构
PANet(Path Aggregation Network)最大的贡献是提出了一个自顶向下和自底向上的双向融合骨干网络,同时在最底层和最高层之间添加了一条“short-cut”,用于缩短层之间的路径。
PANet还提出了自适应特征池化和全连接融合两个模块。
其中自适应特征池化可以用于聚合不同层之间的特征,保证特征的完整性和多样性,而通过全连接融合可以得到更加准确的预测mask。
PANet的整体结构:
PANet的网络结构如图1所示,它由5个核心模块组成。
其中(a)是一个FPN,(b)是PAN增加的自底向上的特征融合层,(c)是自适应特征池化层,(d)是PANet的bounding box预测头,(e)是用于预测掩码的全连接融合层。
FPN
在FPN中,因为要走自底向上的过程,浅层的特征传递到顶层需要经过几十个甚至上百个网络层,当然这取决于BackBone网络用的什么,因此经过这么多层传递之后,浅层的特征信息丢失就会比较严重。
(a)的最左侧是一个线性网络结构,通过这个自底向上模块,可以得到 [C1、C2、C3、C4、C5] 五组不同尺寸的Feature Map。
FPN通过自顶向下的路径得到4组Feature Map: [P5、P4、P3、P2] 。
其中上采样采用的是双线性差值, Pi 和Ci 的融合采用的是单位加的方式。
FPN的融合方式
PANet
PANet在FPN的自底向上的路径之后又添加了一个自底向上的路径,通过这个路径PANet得到 [N2、N3、N4、N5] 共4个Feature Map。
PANet通过一个更浅层的Ni 和更深层的Pi+1 融合的方式得到它的下一层Ni+1 ,以N2 到N3 的计算为例。
它先通过一个步长为2的3*3 卷积对N2进行下采样,再通过单位加的方式将P3和下采样之后的Feature Map进行特征融合。
接着再使用一个3*3的卷积对特征进行融合,增加融合之后的特征的表征能力。
最后使用ReLU激活函数对特征进行非线性化。
在PANet中,[N3、N4、N5]均是采用上面的融合方式,而N2是直接复制的P2的值。
PANet的融合方式
此外PANet还在自顶向下模块和自底向上模块各添加了一个跨越多层的shortcut,如图中的红色和绿色虚线。
自适应特征池化
在FPN中,每个Feature Map都会输出一个预测结果。
FPN这么做的原因是出于感受野和网络深度成正比的关系,即网络越深,网络上的像素点的感受野越大。
但其实不同的层次的Feature Map的不同特性并不仅仅只有感受野,还有它们不同的侧重点,基于这个思想,PANet提出了融合所有层的Feature Map的池化操作:自适应特征池化层。
自适应特征池化先将通过RPN提取的ROI压缩成一维的特征向量,然后通过取max或者取和的方式进行不同Feature Map的融合,最后在融合之后的基础上记性bounding box和类别的预测。
全连接融合
全连接和FCN都被广泛应用到分割图的预测,但是FCN和全连接都有它们各自的优点。
FCN给出的像素点级别的预测是基于它的局部感受野和共享的卷积核。
全连接的特点在于它是对位置敏感的,因为它对于不同的空间位置的预测都是使用不同的参数进行预测的,因此全连接层具有适应不同空间位置的能力。
同时全连接的每个像素点的预测都是基于整个图的信息,这对于区分物体是否是同一个对象也非常重要。
基于这个动机,PANet提出了对FCN和全连接融合的结构。
其主分支由4个连续的3*3卷积核一个上采样2倍的反卷积组成,它用来预测每个类别的mask分支。
全连接融合的另一个分支是从conv3叉出的一个全连接层,它先通过两个3*3卷积进行降维,然后将其展开成一维向量,然后通过这个向量预测类别不可知的前景/背景的mask。
最后再通过一个reshape操作将其还原为 28*28的Feature Map。
这里一般只使用一个全连接层,因为两个以上的全连接会使空间特征遭到破坏。
最后在单位加和一个sigmoid激活函数得到最终输出。
Yolo v4中的PANet
PANet位在于YOLOv4模型的neck,主要通过保留空间信息来增强实例分割过程。
当图像经过神经网络的各个层时,特征的复杂度增加 ,同时图像的空间分辨率降低 。
YOLOv3中使用的FPN使用自顶向下的路径来提取语义丰富的特征并将其与精确的定位信息结合起来。
但对于为大目标生成mask,这种方法可能会导致路径过于冗长,因为空间信息可能需要传播到数百个层。
另一方面,PANet使用另一条自底向上的路径,而FPN采用的自顶向下的路径。
通过使用从底层到顶层的横向连接,这有助于缩短路径。
这就是所谓的“shortcut”连接,它只有大约10层。
PANet通常使用自适应特征池化将相邻的层相加到一起进行mask预测。
但是,在YOLOv4中使用PANet时,这种方法做了点修改,不是相加相邻的层,而是对它们应用一个拼接操作,以提高预测的准确性。
张量连接concat也是一种融合方式,只不过把如何融合交给了下一层卷积核的学习。
而add有一种先验在里面,就是假设特征图的每层代表着不同的语义信息,而待融合的两个特征图每个层是对应的,并且相比于concat,add操作使得相加以后,对应的层对应的特征分享相同的权重。
总结
PANet是一个加强版的FPN,它通过融合自底向上和自顶向下两条路径的方式增强了骨干网络的表征能力。
自适应特征池化使模型自己选择在预测不同物体时选择不同的Feature Map,避免了目标尺寸和网络深度的硬性匹配。
最后,PANet的全连接融合的输出头通过在原来的Mask分支的基础上增加了全连接分支,提升了预测的掩码的质量。
——————
浅谈则止,细致入微AI大道理
扫描下方“每日一醒”,选择“关注”公众号
—————————————————————
—————————————————————