李博涵,许 敏,王 凯,孙 翔,谭守标
(安徽大学 电子信息工程学院, 合肥 230000)
语义分割是目前计算机视觉领域一个非常关键的问题.从宏观上来讲,语义分割解决的问题是根据某种规则将图片的每一个像素点分配与其相对应的类别标签,所以语义分割可以被看作是像素级别的分类任务[1].语义分割能在很多具有挑战性的视觉任务中应用,比如:遥感测绘、自动驾驶、人机交互、医疗图像分割[2]等等.
在传统语义分割算法中,有阈值分割法、区域分割法、边缘分割法、基因编解分割法、小波变换分割法等等[3].传统语义分割算法对特征的描述能力有限,在场景复杂的情况下难以有良好的表现.
自从Alex在2012年的ImageNet比赛上使用卷积神经网络取得了惊人的效果之后,卷积神经网络进入了快速发展的时期,尤其是在计算机视觉领域,卷积神经网络替代了大部分的传统机器学习算法.由于其强大的特征学习能力,目前卷积神经网络对于图片的分类技术已经非常成熟,但是将其运用到语义分割中却是计算机视觉领域一项非常具有挑战性的任务.2015年,Long等人[4]提出了一种全连接卷积神经网络(Fully Convolutional Network,FCN),该网络将全连接层用对应尺度的卷积层去替代,然后通过上采样的方式把特征图恢复成原始输入图片的大小.该算法首次以端到端的形式进行图像分割,并且在自然场景下取得了较好的效果.由于FCN算法的提出,类FCN算法也被相继提出.Badrinarayanan等人提出了编解码网络SegNet,该网络由两部分组成,原始图片由编码网络提取深层语义信息,再由解码网络恢复到输入图片的分辨率,并输出相应的分割结果[5].SegNet提出的编码-解码思想是目前语义分割领域中最热门的设计思路之一.Ronneberger 等人提出了一种全新的特征融合方法,即在维度上进行拼接,先对原图进行多次卷积下采样,再将底层特征图上采样与次底层特征图进行维度拼接,重复多次后恢复到原始输入图像大小,由于该网络结构在形状上酷似大写的字母U,作者命名为Unet[6].Zhao H等人提出的金字塔场景解析网络,利用不同层次的上下文信息,把全局特征与局部特征加入到预测中,增强了网络的表现力,在多个数据集上验证了算法的有效性[7].
人体解析作为语义分割的一个子问题,其忽略背景信息,只对目标人体进行精细分割,如图1上半部分所示,而语义分割则会对图片中的所有目标进行解析,如图1下半部分所示[8].
图1 人体解析与语义分割Fig.1 Human parsing and semantic segmentation
人体解析对于给定一张包含人的图片,将人按照身体部位以及服饰衣着分割开来,包含的类别一般有人的脸、头发、外套、裤子、背包、帽子等等[9].人体解析在诸多领域中都有应用,如智能安防、行人重识别、虚拟穿搭等等.因此,人体解析由于其潜在的广泛应用,受到了越来越多的关注[10].Gong等人提出了一种自监督结构的敏感学习方法用于人体解析,在不需要额外监督的前提下,将人体姿势结构加入到了解析结果中[11].Liang等人提出了一种局部到全局再到局部的框架,从底层提取语义信息,将交叉层的语义信息、全局语义信息、局部超像素语义信息进行融合,取得了state-of-the-art的效果[12].Ruan T等人提出了一种多任务学习来进行人体解析,通过增加边缘检测网络辅助优化模型表现[13].
人体解析数据集的特点是输入分辨率较低以及类别多且错综复杂.本文提出的结合编解码网络的人体解析模型如图2所示.输入图片(a)首先会经过编码网络即卷积神经网络(b)得到初步的特征图,针对输入分辨率低的问题,本文在卷积神经网络下采样阶段选择了合适的下采样倍数以确保在上采样时能够保留足够的语义信息.初步特征图尺度单一且无法体现各像素、各通道间的权重性.于是本文将初步特征图经过上下文提取网络(c)后得到多尺度的特征图,再将该特征图经过双注意力模块(d)给像素和通道赋予权重,最终上采样输出得到预测结果.
图2 人体解析模型网络结构Fig.2 Network structure of human parsing model
在深度学习领域,尤其是在计算机视觉领域,卷积神经网络有着无可替代的重要地位.卷积神经网络是一种端到端的前馈神经网络,由卷积层、池化层以及全连接层构成.近年来,更多的学者采取用1*1的卷积层去代替全连接层,这样会带来两个好处,一个是不会改变图像的空间结构,第二点是由于全连接层的输入尺寸是固定的,导致全连接层的参数个数由图像的大小而定,这显然违背了端到端训练的思想,而卷积层的输出尺寸是任意的,是因为卷积核的参数个数与输入图像的信息无关.
1998年,LeCun首次提出卷积神经网络,即LeNet-5网络.LeNet-5的设计主要用于手写数字识别,且大大促进了手写数字识别的商业化使用.然而在这几十年间里,卷积神经网络由于技术限制等因素,发展较为缓慢.2014年,牛津大学视觉几何组提出了VggNet,其创新性的采用多个小卷积核来代替大卷积核,如一个5*5的卷积核,可以被两个3*3的卷积核所替代,一个7*7的卷积核可以被三个3*3的卷积核替代,成功构建了16和19层的神经网络.之所以采取小卷积核,是因为在减少参数量的同时,还增加了层与层之间的非线性变换,使得神经网络对特征的学习更强.同年,Google提出Inception-v1网络,即GoogLeNet网络,其主要解决了网络的无限堆叠导致的过拟合以及计算量增加的问题.但是这些操作从根本上,都没有解决网络加深导致梯度弥散的情况,直到2015年何恺明提出的残差网络Resnet,其主要思想就是在网络中增加了直连通道,Resnet在ILSVRC2015比赛上夺得冠军,且参数量远小于VggNet.
此前的网络结构是将输入做一个非线性变换,而直连通道的思想则是将当前网络块输出的结果和之前网络块的结果直接进行数值上相加的一个操作,允许保留之前网络块的一定比例的输出[14],如式(1)所示:
Xi=Fi(Xi-1)+Xi-1
(1)
其中,Xi表示第i层的输出,F表示非线性变换.残差结构的思想解决了传统卷积神经网络在信息传递的时候导致的信息丢失、梯度消失和梯度爆炸等情况,以至于很深的网络无法训练.
Gao[15]等人提出的Densenet的思路和Resnet一致,都是如何复用特征以达到梯度不弥散,其主要区别在于Densenet建立的连接不只与前一层,而是前面所有层和后面层的连接以及Resnet是将前面层与后面层进行逐像素数值上的相加,而Densenet采取的是通道的合并,如式(2)所示:
Xi=Fi([X0,X1,…,Xi-1])
(2)
其中,第i层输入Xi为之前所有层的特征拼接,即[X0,X1,…,Xi-1],Fi定义为3个连续的函数,即Batchnormalization、Relu以及3*3的卷积.如此巧妙的设计使得Densenet在计算量更少的前提下比Resnet拥有更好的效果.
图3 卷积神经网络提取特征Fig.3 Feature extraction by convolution neural network
本文的特征提取网络采用的是修改后的Densenet-121,结构如图3所示.由于人体数据集,分辨率相对来说较小,多次下采样会导致特征图更加小,损失过多的空间细节,于是本文取消了第3个和第4个Dense Block后的池化层,因此,特征图的分辨率为输入图片的1/8.为了达到端到端的效果,本文取消了网络的全连接部分.
由于卷积神经网络提取的特征是单一尺度,无法很好的表达上下文信息,而人体数据集各类别信息紧密连接,所以针对该情况,特征图需要同时包含全局特征和局部特征才能够在上采样恢复时,在边缘处更加平滑,更接近真实值.本文借鉴金字塔池化模块[7]来提取上下文信息,并且针对人体解析数据的特殊性,选择合适的池化方式,使其更符合情形,达到特征增强的目的,如图4所示.
图4 上下文提取网络Fig.4 Context extraction network
对于卷积神经网络提取的特征图,经过平均池化层后得到B*C*1*1,B*C*2*2,B*C*3*3,B*C*6*6这样四种尺度的特征图(C代表通道数,与输入特征图的通道数一致).这四种尺度的特征图会经过1*1的卷积,将其通道数降至原来的1/4,再上采样至池化之前的宽高,最后与原特征图进行通道合并.
注意力模块可以理解为用一个参数很小的网络来修正我们的特征图.本文在上采样阶段引入双注意力模块[16],来整合上下文网络提取的高维特征图.其中该注意力模块分为空间注意力模块和通道注意力模块,如图5所示.由于人体数据
图5 双注意力模块Fig.5 Dual-attention model
对于特征提取网络输出的高维度特征图,经过金字塔上下文提取模块后,维度进一步提升.而卷积操作只是在一个局部的空间进行操作,无法有效提取通道间的关系[18].因此本文将一个通道的特征编码成一个向量,将每个通道赋予一个权重,信息丰富的通道赋予高权重增强信息表达,信息匮乏的通道赋予低权重.通道注意力模型如图5下半部分所示.对于特征图a′∈RC*H*W经过通道压缩得到query′∈RC*N,其中N=H*W.同样,a′经过通道压缩并转置得到key′∈RN*C.query′与key′的矩阵相乘便得到通道与通道之间的相似度map′∈RC*C.该相似度经过softmax生成权重与value图相乘得到权值,与原特征图相加便得到了通道注意力模型的输出.最后注意力模块分别输出空间注意力的结果、通道注意力的结果以及两个注意力进行元素求和后的结果.三个分支的输出分别进行卷积、上采样后与真实标签图进行损失函数的计算,其公式如式(3)所示:
(3)
本文实验数据集用的是Look Into Person(LIP)公开数据集.LIP数据集是目前为止,数量最大的单人人体解析数据集,一共包含50462张图片,20个类别(包括背景类).其中训练集共有30462张图片,验证集和测试集分别为10000张图片.由于LIP数据集规模庞大,且人体姿势幅度大,衣饰、背景复杂,所以LIP数据集是人体解析任务中最有挑战性的数据集.
本文将从三个指标去评价本文模型的表现,即像素精度(PA)、均像素精度(MPA)、均交并比(MIOU).以下公式中k表示类别,p表示像素.
1)像素精度(PA):计算识别正确的像素占所有像素的比例,如式(4)所示:
(4)
2) 均像素精度(MPA):对于每一个类,计算其中识别正确的像素占该类所有像素的比例,最后求所有类的平均,如式(5)所示:
(5)
3)均交并比(MIOU):对于每一个类,计算每个类的交并比(IOU),最后求每个类的平均.均交并比能够预测像素集和真实像素集之间的比例.均交并比是语义分割领域使用最广泛的一个评价指标[8],如式(6)所示:
(6)
本实验的软件平台为Ubuntu16.04,硬件平台为NVIDIA RTX2080Ti显卡、i7-7700k处理器以及16G内存.网络训练采用的是Pytorch1.3框架,本文的特征提取网络使用ImageNet的预训练模型进行参数初始化,在训练和测试的时候,网络的输入缩放到256*256的宽高,Batchsize设定为14,共训练70个epoch,其中每隔10个epoch学习率衰减至原来的十分之一,图片经过卷积神经网络后的初步特征图大小为1024*32*32.由于人体数据集背景类占比最多,数据较稀疏,所以本文选择Adam优化器,其中初始学习率采用默认值0.001,为了加速收敛,本文的损失函数采用交叉熵损失.
本文在LIP数据集上与Segnet、Unet、Deeplabv3+网络进行对比,为了保证计算结果的可对比性,这三种网络在训练时候的数据预处理、损失函数、优化器、学习率都与本文方法保持一致.测试阶段分别计算其PA,MPA,MIOU三种评价指标,实验结果如表1所示.
表1 不同方法在LIP数据集的结果Table 1 Results of different methods in LIP dataset
从表1中可以看到,本文的方法与其他三种方法有着显著的提升.像素精度、均像素精度与均交并比都是最优的.其中,Deeplabv3+是近年来编解码网络中精度最高的网络之一,本文方法与Deeplabv3+(Resnet101)相比,在像素精度上提升了0.54%,均像素精度上提升了1.98%,均交并比上提升了1.93%.因为均交并比最能够反映预测图与真实图的对比情况,所以均交并比是语义分割领域最为常用和关键的指标.本文较Deeplabv3+在MIOU上有1.93%的提升,说明了本文方法在人体解析问题上的有效性.为了更直观的看到各个网络的对比,本文将网络的输出进行可视化,如图6所示.
图6 不同方法的可视化效果Fig.6 Visual effects of different methods
从第一组图中可以看到,Unet在左手处的分割不连续,Segnet则是出现了大范围的误识别且左手处分割混乱,而Deeplabv3+则是将部分右手区域分割成了左手.从第二组图中可以看到,Unet网络易将部分外套类别识别成上衣且左右鞋子分割混乱,Segnet网络虽然没有大面积的出现外套识别成上衣的情况,但是在头部的边缘分割处不够细腻且弄反了左右鞋子,而Deeplabv3+则是在整个头部区域都分割地十分粗糙.可以看出,本文方法在正确分类的同时,在边缘分割处也更为细腻.
表2 本文模块在LIP数据集的对比结果Table 2 Comparison results of this module in LIP dataset
为了探究改变下采样倍数、上下文提取高维特征网络以及注意力解码高维特征网络的有效性,本文在LIP数据集上进行对比实验,结果如表2所示,其中B代表本文的基础特征提取网络Densenet-121,其中32s代表从原图中下采样32倍再恢复至原图,16s代表从原图中下采样16倍再恢复至原图,8s代表从原图中下采样8倍再恢复至原图,P代表使用金字塔上下文提取网络提取高维度特征,A代表用双注意力模块去解码高维度特征.从表2中,可以看出,对于人体解析问题,采用256*256的输入分辨率,8、16、32倍下采样的效果是逐步递减的.本文在8倍下采样的基础上增 加了金字塔池化和双注意力网络这样的解码网络后,在像素精度上能够提升0.55%,均像素精度能够提升1.25%,均交并比能够提升1.64%.
表3 各方法的IOU值Table 3 IOU value of each method
为了更加仔细地比较各个网络在每个类别上的表现,本文以MIOU指标为例,展示各个网络在每个类别的IOU,如表3所示.从表中可以看出,Segnet、Unet对于连衣裙、围巾类别识别效果较差, Deeplabv3+整体表现较好,但是在围巾类识别同样不理想.本文在基准网络上增加了解码网络,最直观的提升在于左右手臂、左右脚以及左右鞋子类别上.实验表明,本文方法能够很好的将各类别之间的相关信息进行提取,高效地融合全局以及局部的特征.
本文提出了一种结合编解码网络的人体解析方法,图片经过编码网络,即修改后的Densenet-121网络后输出特征图,然后用上下文金字塔加上双注意力模块的组合进行解码输出预测图.对比实验验证了取消编码网络的两个下采样模块和解码网络的有效性,并且在目前最大的人体解析数据集上进行了测试,均优于目前主流的编解码网络.