路径聚合网络PANet(Path AggregationNetwork)介绍
微信公众号:幼儿园的学霸
目录
结构介绍
网络架构
路径聚合网络(Path Aggregation Network,简称PAN,PANet)是一种深度学习网络结构,用于图像分类和目标检测任务。它采用了多尺度特征融合和路径聚合的方法,能够有效地提高模型的性能和准确率,PAN网络结构包括主干网络和特征金字塔网络两部分,其中特征金字塔网络用于生成多尺度特征图,主干网络则用于将这些特征图进行路径聚合和特征融合。
在浅层的特征图中,通常分辨率较高、定位信息准确但语义信息不丰富. 而在深层的特征图中,通常分辨率较低、语义信息丰富但定位信息不准确. FPN解决了浅层特征语义信息不丰富的问题,但没有解决深层特征图定位信息不准确的问题. 定位信息对pixel-wise的任务来说尤为重要. 因此,用于实例分割任务的PANet在FPN的基础上又增加了一条由下而上的路径,用低层特征融合高层特征,以增强高层特征的定位信息. 同时,为减少低层特征信息的传递损失,在 P 5 、 N 5 P_5、N_5 P5、N5处与backbone的第一个stage的特征图增加了short-cut分支.
在传统的目标检测模型中,如 Faster R-CNN,多尺度特征的处理通常采用金字塔结构或特征融合的方式。PANet 通过引入自上而下和自下而上的路径聚合,有效利用不同层次的特征图,使得模型能够更好地适应不同尺度目标和场景。
PANet 包含两个主要的模块:
- 自上而下的路径聚合模块(PA): 该模块从较低分辨率的特征图开始,通过上采样操作逐层向上传递信息。在每个层级,低分辨率特征图与高分辨率特征图进行横向连接和逐点加法操作,以整合不同尺度的信息。
- 自下而上的路径聚合模块(PAM): 该模块从高分辨率的特征图开始,通过下采样操作逐层向下传递信息。同样,在每个层级,高分辨率特征图与低分辨率特征图进行横向连接和逐点加法操作。
这两个路径聚合模块相互协作,构成了 PANet 的核心结构。通过这种设计,PANet 能够更好地整合不同尺度的特征信息,提高了目标检测模型对小目标和遮挡目标的检测性能。PANet 的设计结构提供了一种通用的多尺度信息聚合方法
特点进行简单概括,就是先下采样,然后再上采样,上采样和下采样的这两个分支之间还有两个跨层融合连接。(也可以反过来,先上采样,再下采样)
采用双塔战术,同时使用了自顶向下和自底向上的两个金字塔,以综合考虑不同层次的语义信息和定位信息,从而更全面地捕捉目标的特征。
Bottom-up with augmentation
Bottom-up with augmentation即上图中的(b)
部分,其具体结构如下图所示.
更浅层的
N
i
N_i
Ni将通过一个3x3
(stride=2
)的卷积层,特征图尺寸缩减为原来一半,得到和
P
i
+
1
P_{i+1}
Pi+1的shape一致的特征图
N
i
′
N^{'}_{i}
Ni′ , 然后
N
i
′
N^{'}_{i}
Ni′和更深层的
P
i
+
1
P_{i+1}
Pi+1进行逐项素地相加,相加的结果再通过一个3x3,stride=1
的卷积对特征进行融合,增加融合之后的特征的表征能力,此时的结果即为下一层
N
i
+
1
N_{i+1}
Ni+1.
最后融合得到的特征层是N2、N3、N4、N5,其中N2是直接复制的P2的值,这些特征层用于后续的预测框分类、回归和mask生成。
YOLO的改进
PANet通常使用自适应特征池化将相邻的层相加到一起进行mask预测。但是,在YOLOv4中使用PANet时,这种方法做了点修改:不是相加相邻的层,而是对它们应用一个张量拼接(concat)操作,以提高预测的准确性。如下图所示:
张量连接concat也是一种融合方式,只不过把如何融合交给了下一层卷积核的学习。
而add有一种先验在里面,就是假设特征图的每层代表着不同的语义信息,而待融合的两个特征图每个层是对应的,并且相比于concat,add操作使得相加以后,对应的层对应的特征分享相同的权重。
对于特征图融合的两种方法的理解:
add
:将两个特征图直接相加,是resnet
中的融合方法,基于这种残差堆叠相加,可以有效地减小因为网络层数加深而导致的cnn网络退化问题.add
改变特征图像素值,并没有完全保留原本特征图信息,更多的可以看作对原特征图信息的一种补充,深层特征图在卷积过程中丢失了许多细节信息,通过add
的方式得以补全,是在二维的平面上对特征图的增强.因此我认为add
在进行图像特征增强时使用最佳.concat
:将两个特征图在通道数方向叠加在一起,原特征图信息完全保留下来,再对原特征图增加一些我们认为是较好的特征图,丰富了特征图的多样性,是在空间上对原特征图的增强,这样在下一次卷积的过程中我们能得到更好的特征图.
Yolov8依旧采用了PAN思想,只不过是将PAN中的上采样阶段中的卷积结构删除,将C3模块替换为了C2F模块;
YOLOv8中仅仅在P3、P4、P5三个特征层上构建了FPN和PAN特征金字塔结构,主要有以下几个考虑:
- P3-P5对检测任务影响最大。大量研究表明,在目标检测任务中,P3-P5对代表不同尺度目标的效果最好,因此重点增强这三层特征已能达到很好的效果。
- 计算资源受限。FPN和PAN都会引入额外计算量,作者需要考虑实际部署的速度指标。因此只在最关键的几层特征图上进行多尺度特征融合是一种折中。
- 高分辨图的语义值有限。YOLOv8中只有P3-P5三层进行下采样,更高分辨率的特征层语义信息有限,因此作者可能认为没必要构建超过三层的金字塔结构。
- 保证实用性。仅在三层特征图上使用FPN和PAN,就足以使YOLOv8在速度和精度上达到最优的平衡,比构建更深的金字塔结构更实用。
参考资料
1.PANet论文
2.PANet(路径聚合网络)
3.【PANet】用于实例分割的路径聚合网络
4.解读PANet
5.YOLOv8-详细模块学习
6.使用yolov8计算test集pr yolov4算法