解读1:TwinLiteNet论文中基础模块及其他相关模块总结
ESPNet:全称为 Efficient Spatial Pyramid Network
1. 空洞卷积金字塔(Spatial Pyramid of Dilated Convolutions)
在 ESP 模块中,空洞卷积金字塔确实是关键组件。空洞卷积通过增加
dilation rate
来扩大感受野,使得网络能够处理更大范围的信息而不需要增加计算量。ESP 模块使用多个空洞卷积(每个空洞卷积的dilation rate
为 2^(k−1), 其中 k 为金字塔中的级别)来提取不同尺度的特征,这使得网络能够在不增加额外参数的情况下融合多尺度信息。2. Point-wise 卷积
ESP 模块将标准卷积分解成 point-wise 卷积(通常是 1×1卷积)和空洞卷积金字塔。point-wise 卷积的作用是将输入的高维特征映射到较低维度的特征空间,从而减少计算量。通过将空洞卷积金字塔应用于低维特征,ESP 模块能有效地捕获多尺度信息而不显著增加参数量。
3. 网格纹路问题与 HFF
网格纹路(grid-like artifacts)是空洞卷积金字塔常见的问题,因为将不同膨胀率的卷积结果直接拼接(concatenate)会导致这种效应。ESP 模块通过 HFF(Hierarchical Feature Fusion) 方法来解决这个问题:在进行拼接之前,先对各个输出进行层级加和(hierarchical summation),这样可以避免因不同膨胀率卷积产生的网格效应。这个方法相较于在拼接后添加额外卷积进行后处理,计算量要少得多,同时也能有效去除网格纹路。
4. Shortcut 连接
为了保证梯度能够顺利传递,ESP 模块在其结构中增加了 shortcut 连接,即一条直接从输入到输出的路径。这有助于避免深度网络中梯度消失或梯度爆炸的问题,确保网络能够有效地训练。
- 优点:
- 提高感受野(receptive field)以捕捉全局上下文。
- 降低计算成本,适合资源有限的设备。
轻量级网络设计:
- ESPNet 使用了一个非常浅的网络结构,减少了模型参数和计算量。
- 其架构采用了模块化设计,每个模块以低计算代价逐步提取语义特征。
Hybrid Dilated Convolution
混合空洞卷积(Hybrid Dilated Convolution, HDC) 是一种结合了不同膨胀率(dilation rates)的卷积技术,用于增强深度神经网络在捕捉多尺度上下文信息方面的能力,同时避免常见的“栅栏效应”(grid effect)。
(1)什么是空洞卷积?
空洞卷积(Dilated Convolution)是一种改进的卷积操作,通过在标准卷积核之间插入空洞(即引入“膨胀率”)来扩大感受野,而不增加额外的参数或计算量。
膨胀率(Dilation Rate):控制卷积核中元素的间隔。例如:
膨胀率 = 1:标准卷积。
膨胀率 = 2:每两个像素之间插入一个空洞。
膨胀率 = 3:每三个像素之间插入两个空洞。
(2)栅栏效应(Grid Effect)
当连续应用相同膨胀率的空洞卷积时,卷积核可能会跳过一些输入像素,导致一些输入信息无法被网络捕获。这种现象被称为“栅栏效应”。
例如:如果膨胀率固定为 2,则网络只能覆盖偶数像素,跳过所有奇数像素。
(3). 混合空洞卷积的核心思想
为了缓解栅栏效应,混合空洞卷积引入多种不同膨胀率的组合,使网络能够覆盖输入的所有像素,从而更好地捕获多尺度上下文信息。
主要特点:
多膨胀率组合:在一个卷积模块中,采用多种不同的膨胀率(如 1、2、3),确保特征图的像素被均匀覆盖。
感受野增强:通过不同膨胀率的组合,可以在不同的尺度上捕获上下文信息。
缓解栅栏效应:通过膨胀率的变化避免跳过像素的现象,提高上下文信息的覆盖率。
(4)混合空洞卷积的结构
假设一个 HDC 模块包含以下三个卷积:
第一层:膨胀率 = 1(标准卷积)。
第二层:膨胀率 = 2(捕获中等范围的上下文信息)。
第三层:膨胀率 = 3(捕获更大范围的上下文信息)。
输出的特征图会融合来自不同感受野的信息。
HDC (Hybrid Dilated Convolution)
HDC 的主要思想是通过使用膨胀卷积(dilated convolutions)来增加感受野,从而捕捉更广泛的上下文信息。这种方式能够提高图像分割模型对大尺度特征的感知能力,尤其在处理边缘和物体轮廓时,膨胀卷积可以有效提升性能。此外,HDC 也非常关注消除网格化效应(grid-like artifacts),这一问题通常会出现在使用膨胀卷积时。因此,HDC 在网络设计中会采用层级加和(HFF)而非直接拼接膨胀卷积的输出,以减少网格效应。
ESPNet (Efficient Spatial Pyramid Network)
ESPNet 的核心设计是利用高效的空间金字塔池化(Spatial Pyramid Pooling)和深度可分离空洞卷积金字塔(depthwise separable dilated convolutions),以减少计算量的同时提升性能。它通过将标准卷积分解为点卷积和空洞卷积金字塔,进一步降低了参数量和内存需求。此外,ESPNet 强调通过不同尺度的卷积来融合多尺度特征,并且采用空间金字塔池化来进一步提高网络对各种尺度信息的感知能力。
总结
- HDC 强调 膨胀卷积 来扩大感受野,并通过 HFF 来消除网格化效应。
- ESPNet 侧重于通过 高效的空间金字塔卷积结构 来提升多尺度特征的融合效果,同时减少计算量。
PSPNet
PSPNet 的核心思想是通过金字塔池化模块(Pyramid Pooling Module, PPM)获取多尺度上下文信息,从而提升分割精度。(采用步长不同,pool_size不同的平均池化层进行池化,然后将池化的结果重新resize到一个hw上后,再concatenate。)
(1)PSPNet 的网络结构
PSPNet 由两部分组成:
- 基础卷积网络:通常采用 ResNet 作为主干网络(Backbone),用于提取图像的深度特征。
- 金字塔池化模块 (PPM):对主干网络输出的特征进行多尺度池化,并将池化后的特征融合,生成上下文增强特征。
整体流程
- 特征提取:通过 ResNet 主干网络提取特征图。
- 金字塔池化:将特征图输入到 PPM,使用不同尺度的池化层获取上下文信息。
- 特征融合:将金字塔池化输出的多尺度特征与原始特征图融合。
- 分割预测:对融合后的特征图进行卷积,生成语义分割结果。
(2)金字塔池化模块 (PPM)
PPM 是 PSPNet 的核心模块,它通过多个池化分支捕获多尺度上下文信息。
模块组成
- 多个全局池化操作,每个池化分支的池化窗口大小不同:
- 大尺度池化:捕获全局信息。
- 中尺度池化:捕获中等范围的信息。
- 小尺度池化:捕获局部细节。
- 全局平均池化:捕获全图的全局信息。
- 每个池化分支的输出经过卷积和上采样,与原始特征图融合。
具体实现
假设特征图大小为 H×W,则池化分支通常包含以下步骤:
- 使用不同窗口大小 k的池化操作对特征图进行降采样。
- 将池化后的特征图通过 1×1 卷积降维。
- 使用双线性插值将池化特征图恢复到原始大小 H×W。
- 将所有分支的特征图与主干网络输出的特征图拼接。
公式
融合后的特征图表示为:
其中:
- Forig 是主干网络输出的特征图。
- Pooli 表示第 i 个池化分支。
- Conv 表示卷积操作。
- Up 表示上采样操作。
- ⊕ 表示特征图的拼接。