多尺度学习框架被认为是促进语义分割的模型。然而,这个问题并不是微不足道的,特别是对于现实世界的部署,这通常需要高效率的推理延迟。在本文中,我们从轻量级语义分割的角度彻底分析了卷积块的设计(卷积类型和卷积中的通道数),以及跨多个尺度的交互方式。通过如此深入的比较,我们总结出三个原则,并相应地设计了轻量级和渐进式可扩展网络(LPS-Net),它以贪婪的方式扩展了网络的复杂性。从技术上讲,LPS-Net 首先利用这些原理来构建一个微型网络。然后,LPS-Net 通过一次扩展单个维度(卷积块的数量、通道的数量或输入分辨率)逐步将微型网络扩展到更大的网络,以满足最佳速度/准确性权衡。
多尺度学习是对语义分割的性能提升的关键。目前的研究中,涉及利用多尺度学习主要可分为三个方面:U-shape、Pyramid Pooling和Multi-Path Framework。
该网络采用的就是 Multi-Path Framework 这种多路径的思想,并同时兼顾了速度和准确性。其设计理论主要是两方面:
(1)用于语义分割的轻量级计算单元
(2)逐步扩大网络规模,同时平衡准确性和速度
对于(1),作者通过探索卷积块的基本单元,包括卷积的类型和卷积中的通道数;
对于(2),作者构建了一个微小的模型,然后沿着多个可能的维度逐步扩展微小模型,并在每一步中选择一个实现最佳权衡的单一维度,以缓解精度/速度平衡问题。
作者将标准 3×3 卷积和深度可分离卷积进来了比较,发现标准卷积的FLOPS比深度可分离卷积高。根据经验和实验,LPSNet最后使用标准的 3×3 卷积。
def bi_interaction(x_h, x_l):
sizeH = (int(x_h.shape[-2]), int(x_h.shape[-1]))
sizeL = (int(x_l.shape[-2]), int(x_l.shape[-1]))
o_h = x_h + upsample(x_l, sizeH)
o_l = x_l + upsample(x_h, sizeL)
return o_h, o_l
def tr_interaction(x1, x2, x3):
s1 = (int(x1.shape[-2]), int(x1.shape[-1]))
s2 = (int(x2.shape[-2]), int(x2.shape[-1]))
s3 = (int(x3.shape[-2]), int(x3.shape[-1]))
o1 = x1 + upsample(x2, s1) + upsample(x3, s1)
o2 = x2 + upsample(x1, s2) + upsample(x3, s2)
o3 = x3 + upsample(x2, s3) + upsample(x1, s3)
return o1, o2, o3
确定好卷积块和交互模块后,LPSNet 架构可以定义为 N = {B, C, R},其中 B, C, R 是的可调参数。因此,网络复杂度由这些参数从3个维度决定。
在设计 LPSNet 架构时,为了平衡这3个维度,首先构建一个微型网络,然后以渐进的方式一次扩展一个维度。最后通过实验给出的架构如下:
该模型没有使用复杂的操作与模块,仅在卷积块和双线性插值中使用3×3 Conv来实现路径间的交互。然后在这些基础上,构建一个小网络,通过探究扩展宽度、深度或分辨率的一定维度,将小网络扩展到一系列较大的网络。实现了模型性能与效率的良好平衡。
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- awee.cn 版权所有 湘ICP备2023022495号-5
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务