DeepLab系列的空洞卷积与ASPP
DeepLab系列是语义分割领域最具影响力的工作之一。请解释DeepLab v1到v3+的发展历程,重点说明空洞卷积(Atrous Convolution)和ASPP模块的设计。
回答
屠龙少年
DeepLab系列由Google团队提出,核心思想是利用空洞卷积在不降低分辨率的情况下扩大感受野。
DeepLab v1(2015):
- 核心:空洞卷积(Dilated/Atrous Convolution)+ 全连接CRF后处理。
- 将VGG-16的最后两个池化层步长改为1,全连接层改为卷积,后续卷积替换为空洞卷积(rate=2),保持输出特征图分辨率。
DeepLab v2(2017):
- 引入ASPP(Atrous Spatial Pyramid Pooling):
- 在特征图上并行使用多个不同扩张率(rates=6,12,18,24)的空洞卷积。
- 不同扩张率的卷积捕获不同尺度的上下文信息。
- 输出拼接后通过1×1卷积融合。
- 骨干网络改为ResNet-101。
DeepLab v3(2017):
- 改进ASPP:加入1×1卷积和全局平均池化(Image-level features),处理远距离信息。
- 移除CRF后处理(因为ASPP已能捕获足够的上下文信息)。
- 采用Batch Normalization并改善训练细节。
DeepLab v3+(2018):
- 引入编码器-解码器结构:
- 编码器:DeepLab v3(带ASPP的骨干网络)。
- 解码器:从编码器深层特征上采样4倍,与编码器浅层特征(1×1卷积降维后)拼接,再上采样到原图大小。
- 解码器恢复边界细节,弥补纯空洞卷积结构丢失的空间信息。
- 骨干网络可选Xception(深度可分离卷积加速)。
空洞卷积的优势:在不增加参数量的情况下,指数级增大感受野,特别适合密集预测任务如语义分割。