人像分割任务作为许多任务的一个中间阶段,对实时性要求极高,并且当前缺乏大规模的人像分割数据集,为此论文提出ExtremeC3Net模型和用于进行数据扩充的简单方法。ExtremeC3Net基于改进的C3模块,能够实现精度较高速度极快的人像分割,并且这种极轻量化的分割网络也在其他任务中给了我们应用的启发。
1. 改进的C3模块
之前的文章提到过C3模块,即Concentrated-Comprehensive Convolution Module,其指出了轻量化语义分割网络中常用的深度可分离空洞卷积的不足并设计了C3模块来对该设计的信息丢失问题进行应对,C3模块结构如下图所示:
文章对该模块进行调整与改进,模型结构如下所示:
其中不同层的改进C3模块的扩张率不再相同,而是采用了不同的扩张率,如下表所示:
2. ExtremeC3Net 架构
ExtremeC3Net基于双分支结构,如下图所示,分为CoarseNet分支和FineNet分支,前者用于提取生成的语义信息而后者用于提取千层的位置细节,最终将二者的特征图逐元素相加。
CoarseNet分支由一系列改进的C3模块组成,能够给出一个粗糙的分割结果。该分支首先通过一个步长为2的卷积和一个改进的C3模块,将特征图尺寸缩小至原来的四分之一,接着7个C3模块依次产生特征图(不进行下采样,该分支在两个特定的点进行下采样),每个C3模块都有不同的扩张率组合,最后应用一个点卷积,使得其与FineNet的输出特征图通道数相同。FineNet分支用于产生精细的分割边界,首先下采样为原始图像尺寸的一半,然后应用C3module进行空间细节信息的提取。然后应用双线性插值上采样(CoarseNet上采样因子为4,FineNet上采样因子为2),最后进行一个逐元素的相加。
文章在训练模型的时候使用了Lovasz损失,这个损失不但用于主分割流程,还用于边界位置辅助分割网络(使用二进制掩码的形态学腐蚀和膨胀的差作为分割结果的边缘),最终损失为:
3.数据扩充方法
从通用数据集上跳出包含人像的数据和分割结果;使用DeepLabV3+通用目标分割网络再在人像数据上微调,用于产生人像分割的掩码。(这种方法有什么好特意说的,我也没想明白哈哈~)
4.实验结果
EG1800数据集:
欢迎关注 深度学习与数学 [获取免费的大数据、AI等相关的学习资源、经典和最新的深度学习相关的论文研读,算法和其他互联网技能的学习,概率论、线性代数等高等数学知识的回顾]