1.常见卷积操作
- Pointwise Convolution(逐点卷积,简称 PWC) 是 1 × 1 1 \times 1 1×1 卷积,即使用 1×1 大小的卷积核,在每个像素点上进行通道间的信息融合。
pointwise = nn.Conv2d(in_channels, out_channels, 1)
- **Depthwise Convolution(深度卷积,DWC)**每个卷积核 仅作用于 单个通道(channel-wise 卷积)。缺少通道间的信息交互,因此通常搭配 Pointwise Convolution(1×1 卷积),构成 Depthwise Separable Convolution。
depthwise = nn.Conv2d(in_channels, in_channels, kernel_size, stride,
padding, groups=in_channels)
- Dilated Convolution(膨胀卷积,DConv) 标准 3×3 卷积中插入空洞(Dilation Rate),扩大感受野,不增加计算量。
#二维膨胀卷积
conv2 = nn.Conv2d(in_planes, out_planes, kernel_size=kernel_size,
stride=stride, padding=padding, dilation=dilation, groups=groups, bias=bias)
轻量化方法 | 作用 | 应用 |
---|---|---|
Depthwise Conv | 降低计算量,每个通道独立卷积,缺乏通道间信息 | MobileNet, EfficientNet |
Pointwise Conv | 处理通道信息(1×1 卷积) | MobileNet, ResNet |
Grouped Conv | 计算量减少 G 倍 | ResNeXt, ShuffleNet |
Deformable Conv | 适应性卷积,增强目标检测 | DCN, YOLO |
Dilated Conv | 扩大感受野,适用于分割任务 | DeepLabV3+ |
Channel Shuffle | 让通道信息混合,提高分组卷积效果 | ShuffleNet |
CondConv | 根据输入动态调整卷积权重 | EfficientNet |
Low-Rank Conv | 低秩分解,减少计算量 | Xception |
Depthwise Separable Convolution(DwConv + PWC) | 先进行 Depthwise,再用 PWC 进行通道融合 | 计算量低,信息保留完整 |
2.论文
ERFNet: Efficient Residual Factorized ConvNet for Real-Time Semantic Segmentation
ERFNet:实时语义分割的有效剩余因子分解卷积网络 Code TITS 2018
ERFNet 使用 1D 分解卷积(残差因式分解卷积 Residual Factorized Convolution)代替传统 3×3 标准卷积:
传统的瓶颈模块是降维再升维为了降低参数量如图a,Bottleneck 通过 1×1 降维 + 3×3 处理 + 1×1 升维;ERFNet的是用分解的卷积(3×1,1×3)代替,如图b。
DABNet: Depth-wise asymmetric bottleneck for real-time semantic segmentation
DABNet:实时语义分割的深度非对称瓶颈 Code arxiv2019
DAB模块(虚线框中的卷积是按深度方向计算的卷积)。也就是用膨胀卷积代替之前的分离卷积。
LEDNet: A lightweight encoder–decoder network for real-time semantic segmentation
LEDNET:一种用于实时语义分割的轻量级编解码器网络 ICIP 2019
同上,把瓶颈块设计成如下:
LMFFNet: A well-balanced lightweight network for fast and accurate semantic segmentation
LMFFNet:一个平衡良好的快速和准确的语义分割的轻量级网络
深度可分离膨胀卷积(Depthwise Dilated Convolution)
RTSNet˖ Real-Time Semantic Segmentation Network For Outdoor Scenes
RTSNet˖针对户外场景的实时语义分割网络 IEEE CYBER 2019
ESNet: An E cient Symmetric Network for Real-time Semantic Segmentation
ESPNetv2: A light-weight, power efficient, and general purpose convolutional neural network CVPR2019
ESP:
- 采用 1×1 卷积 进行降维(减少计算量)。
- 将通道划分为 K 组,并施加不同膨胀率 d=1,2,3,…,K 的 3×3 膨胀卷积(DConv-3):
小膨胀率(d=1) 负责捕捉局部细节。
大膨胀率(d=K) 负责获取全局上下文信息。 - 逐步融合不同膨胀率的特征:每个 DConv 结果进行 Add 操作,融合不同尺度的信息。通过 Concatenate 连接多尺度特征。最终使用 Add 进行进一步融合。
EESP-A(Enhanced ESP-A) 采用了 深度可分离膨胀卷积(DDConv) 和 1×1 逐点卷积(Conv-1) 进行计算优化。
- 引入 GConv-1(Group Convolution)采用 分组卷积(GConv-1) 替换标准 1×1 卷积,进一步减少计算量。
- 使用 Depthwise Dilated Convolution(DDConv-3)不同组采用不同的膨胀率,类似于 ESP,但计算量更低。
- 融合低级特征:通过 Conv-1 进行特征融合,使得不同尺度的信息更好地交互。
EESP(Enhanced ESP) 是 ESPNetv2 的核心单元,进一步优化了 EESP-A,使用 Group Pointwise Convolutions(GConv-1) 来提升计算效率。
- 先采用 GConv-1 进行降维,与 EESP-A 类似,但分组策略更优化。
- 使用 Depthwise Dilated Convolution(DDConv-3)采用 更大的膨胀率 d=K,提高感受野。
- 层次特征融合(HFF):在不同尺度特征之间进行 Add 和 Concatenate,增强信息交互。
- 使用 Group Pointwise Convolution(GConv-1) 进行最终融合,替代标准 1×1 卷积,降低计算量。
EPRNet: Efficient Pyramid Representation Network for Real-Time Street Scene Segmentation TITS 2022