多阶段双路人体解析网络
2020-10-19罗文劼田学东
罗文劼,倪 鹏,张 涵,田学东
河北大学 网络空间安全与计算机学院,河北 保定 071002
1 引言
人体解析任务需要对图像中每个像素进行精确的分类,识别出人体语义部位。目前人体解析已经应用在很多领域,例如人体重识[1]、人体行为分析[2]、自动化推荐[3]、姿态估计[4]等。与传统的语义分割任务相比,人体解析是一种更加精细化的分割任务,它与姿态估计任务不同,在姿态估计任务中需要定位人体的关节点,而人体解析任务需要定位人体的各个部位。人体解析目前面临的主要困难有人体多变的姿态、奇异的服装和复杂的场景等。早期存在的方法包括结构图模型[4]和概率图模型[5-8]。这些方法虽然有很大的进步,但需要手动地设计特征提取器,处理过程相对复杂。同时还存在识别区域不连续、过度识别、错误识别等问题,影响识别精度。
卷积神经网络具有强大的特征学习能力,能够有效地进行端到端的学习。最近基于卷积神经网的方法在人体解析任务中获得了很大的成功,如文献[9-13],这些方法直接对原始图像进行卷积操作并输出解析结果。但在持续的池化操作与不断卷积过程中,特征图分辨率下降与低维特征的不足,导致图像局部细节无法准确识别。在姿态估计任务中hourglass 网络[14]采用编码解码网络结构,通过上下采样,能够学习更加细节的特征信息,保留更加原始的特征信息。与其类似的还有特征金字塔模型[15]能够自底向上、自上而下地学习不同尺度特征。在语义分割领域空洞卷积被广泛使用,通过向卷积核嵌入值为零的参数来增大感受野,使其能够学习更大尺度的特征信息。
基于编码解码网络与空洞卷积的优点,本文提出一种双路网络MTCnet,该网络由三个子网组成,分别是两个特征提取子网和一个融合改进子网。其中一个特征提取子网使用hourglass网络,另一个子网使用空洞卷积网络,同时设计了融合改进子网,其目的是将两种类型网络提取的人体语义特征信息进行融合学习,并输出整合后的结果。MTCnet通过首尾相连的级联方式进行多阶段的学习,每个阶段学习的结果会作为下一个阶段的输入,多阶段的优化学习结果,最终达到最优的输出结果。本文堆叠六个MTCnet其整体结构如图1所示。中间监督的训练方法在文献[16]和文献[14]已经得到了很好的应用,该方法能够有效训练多阶段的网络模型,在每个阶段应用分类器并结合损失函数进行学习,可以提升模型的整体表现,本文使用这种方法对网络进行训练。本文主要工作如下:提出一种可以进行多模块堆叠多阶段预测的人体解析网络MTCnet。在MTCnet 中加入了一种空洞卷积网络,并与编码解码网络相结合进行人体语义特征提取。训练阶段应用中间监督方法去训练网络模型。
图1 本文方法的整体结构图
2 相关工作
2.1 卷积神经网络
从AlexNet[17]在ImageNet图像分类比赛大放异彩开始,卷积神经网络迅猛发展。在训练Alexnet 网络时引入dropout 方法[18]能够防止数据过拟合,而后VGG[19]网络增加了网络的深度,GooleNet[20]不仅深度更深同时也拓展了网络的宽度,同时使用批量正则化[21]加快收敛。ResNet[22]解决了网络达到一定深度后,效果下降问题。DenseNet[23]拥有更密集的连接,更好地关注网络前后多层的特征,减轻了梯度消失问题。
2.2 人体解析
在人体解析方面非卷积神经网络的方法有,文献[2,5,7]基于条件随机场的方法进行人体解析,这些方法虽然取得了一些成功,但依然存在多变的人体形态、奇异的人体着装带来的识别错误问题。Chen 等人[8]将SVM与CRF 结合,先执行人体姿态估计,然后执行人体解析。文献[4]使用一种与或图结构的框架用人体姿态估计结果去指导人体解析,这种与或图结构能够处理一些由于人体姿势、着装等原因造成的较大的人体外观变化。此后基于卷积神经网络的方法具有更高的精确度,能够应对更复杂的场景。文献[13]提出将人体解析作为一种活动模板回归问题,并使用超像素平滑方法去改进解析结果。Liang 等人[10]基于卷积神经网络的方法提出多尺度上下文模型整合多尺度人体部位特征与语义边界特征进行人体解析。Liu 等人[24]将卷积网络与聚类算法相结合提出了一种卷积神经网络KNN 非参数模型。文献[25]将人体解析与姿态估计任务一起进行操作,并设计了一种转换解析结果去辅助姿态估计的网络。文献[9]引入了更有挑战的更多样性的人体解析数据集Look Into Person(LIP)弥补了大数据集的缺失。
在其他领域Wei 等人[16]提出多阶段预测逐步提升结果的卷积姿态机,这种方法在实际应用中具有非常好的鲁棒性。文献[26]使用空洞卷积和一种全连接的CRF 的方法进行语义分割。文献[27]使用双分支网络进行姿态估计,该方法能够提取不同的特征进行相互辅助。目前人体解析比较好的方法是将人体解析与其他任务相结合,相互进行辅助操作如文献[25,28],如果在只有人体语义部位标注信息的情况下,将无法进行训练。本文提出的方法可直接进行人体解析操作而不需要其他任务的辅助,减少了网络的训练时间,避免了额外的开销。接下来的部分将会详解介绍本文设计的网络模型。
3 本文方法
MTCnet 网络的结构如图2。模型的输入为一张h×w×3 的图像,在这里h是图像的高度,w是图像的宽度,3为通道数。其目标是输出人体解析结果P={pij},其中pij代表第i个像素为第j类。MTCnet 首尾相连可堆叠多个,每个MTCnet相当于一个学习阶段,每个阶段都会进行分类学习。MTCnet 由三部分组成,一个是编码解码网络用于提取多尺度融合的特征,一个是空洞网络用于提取更加关注整体的上下文特征,最后是一个融合调节网络用于融合调节两个特征。为了更加关注低维特征,在使用多个MTCnet 时会将每个预测的结果以及之前输入的特征相结合作为下一个阶段的输入。下面将具体介绍各个部分细节。
图2 MTCnet结构图
3.1 编码解码网络
编码解码网络使用hourglass网络,这里做了一些改变,将编码阶段与解码阶段对应的特征相连接而不是之前的直接相加,下采样和上采样各进行三次,其结构如图3所示。每次下采样之前会分成上下两路,上路用于保存当前尺度信息,下路进行下一步的下采样操作。每次上采样后会和对应尺度的上路特征图相连接。为了保证上下两路特征拥有不同的权重,在每次相连接前对上下两路进行一次1×1 的卷积操作。每次下采样之前和上采样之后都会进行卷积操作,这里的卷积操作使用两层ResNet网络来实现,下采样使用平均池化,上采样使用双线性插值的方法。其整体表达式为:
其中,ht是第t阶段被提取的特征,Gt为第t阶段网络的函数表达式,It-1为上一个阶段输出特征,为其需要学习的参数。
图3 编码解码网络结构
3.2 空洞网络
空洞卷积在语义分割网络DeepLab 中得到了很好的应用,空洞卷积在不增加学习参数的情况下可以扩大卷积核,使其能够增大感受野,学习更大尺度的上下文信息。空洞网络以ResNet 网络模型为基础,增加了一条空洞卷积分支,结构如图4所示。其表达式为:
图4 空洞网络基础层结构图
其中,zn和zn+1代表每层的输入特征和输出特征,p(zn)为恒等映射,q(zn+1)代表普通卷积操作,k(zn)代表扩张率为2的空洞卷积操作。c()代表连接操作。空洞网络一共有七层,每层的通道数量相同,特征尺寸大小相同。空洞网络的表达式为:
其中,Jt是第t阶段被提取的特征,At()为第t阶段网络的函数表达式,It-1为上一个阶段输出特征。
3.3 融合调节网络
融合调节网络结构如图5 所示。在得到编码解码网络和空洞网络输出的特征后,融合调节网络将提取的两种特征相连接,进行调节融合,并输出每个阶段调整后的结果,融合调节网络使用普通的ResNet网络,拥有三层,其表达式为:
其中,pt为第t阶段输出的总体特征,ht和Jt分别为第t阶段编码解码网络特征和空洞网络提取的特征,为其学习到的参数。得到输出pt后,然后使用分类器去预测语义部位概率图,这里使用1×1的卷积去实现这个分类器。
图5 融合调节网络结构图
在训练网络时,每个阶段应用像素级别的分类损失函数即多分类交叉熵损失函数,其表达式为:
其中,Lt为第t阶段的交叉熵损失,分别为第i张图片预测结果和真实标注结果。
在每个中间阶段,为了更加关注低维特征,保留图像局部细节,将上一个阶段的输入特征与输出特征相结合作为下一个阶段的输入特征。
4 实验
4.1 数据集
LIP数据集一共包含50 462张图像。其中30 462张用于训练的图片,10 000 张用于测试,10 000 张用于验证。包括背景在内一共有20种用于人体解析的标注信息。该数据集从真实场景收集,具有非常高的人体遮挡,多变的外表,尺度不一的分辨率,还有不同的视角和多样姿态等。本文使用LIP数据集进行对比实验,来验证本文方法的有效性。
4.2 数据增强
在训练阶段,输入网络的图像被调整为相同的大小,这里使用256×256 的图像大小,同时在-10°到10°之间随机旋转图片,在0.8 到1.5 比率之间随机进行缩放,在-10 px到10 px之间随机裁剪平移。
4.3 实现细节
本文使用Pytoch 实现MTCnet 网络,操作系统为Linux,显卡为Nvidia GTX1080ti。使用标准差为0.001的高斯分布初始化网络参数。使用RMSProp算法进行参数优化。初始化学习率为0.000 5。在LIP 数据集迭代200 次训练MTCnet 模型。输入MTCnet 网络的特征图分辨率均为64×64,通道数为256。在测试阶段移除损失函数,在进入网络之前图片会被调整到256×256大小,输出的结果会被还原到原始的尺寸。
4.4 实验结果
在LIP 数据集上分别计算平均交并比mIoU、像素精度PA、均像素精度MPA 三种人体解析评价指标。在LIP 验证集的结果如表1。从表中可以看到MTCnet 相比较于其他模型mIoU达到41.8%,PA达到82.9%,MPA达到了52.1%。比较DeepLab模型PA提高了0.2个百分点,MPA提高了0.5个百分点,mIoU提高了0.2个百分点。
表1 在LIP验证集下不同方法的结果 %
图6展示了不同方法可视化后的解析结果,SegNet解析结果出现大范围的解析区域不连续,并且识别错误与未能识别问题严重。SegNet采用编码解码的结构,解码器将低分辨率特征图还原为高分辨特征图,这样还原出来的特征图很难保留局部细节信息。而FCN-8s对整体轮廓有较好的识别效果,但解析结果相对粗糙,其通过多次pooling,虽然间接增大了接受域,但导致特征图分辨率下降,特征信息保留不足。DeepLab 方法采用ASPP池化能够进行多尺度学习,但从解析结果看,依旧存在解析区域不连续、细节处理不足等问题。从图6中可以看出本文方法与其他方法相比能有效改善解析区域不连续问题,拥有更好的细节处理能力,解析结果更接近标注图像。图7 展示了不同方法随epoch 增加时mIoU 的变化情况,从中可以看出本文方法比其他方法收敛更快,精确度更高,并随着epoch次数的增加其结果相对平稳。
图6 不同方法解析结果可视化
图7 不同方法mIoU变化情况
在实验中,MTCnet 堆叠不同数量的模块结果会不同,其结果如表2。实验中分别使用2、4、6阶段,随着模块数量的增加,结果也得到提升。在使用2 阶段时,mIoU为33.4%,PA为80.3%,MPA 42.2%,在使用4阶段时mIoU 为37.7%,PA 为81.6%,MPA 为48.1%,相比较使用2 阶段各个结果都得到提升,尤其mIoU 与MPA 提升特别明显,分别达到了4.3 个百分点和5.9 个百分点,当使用6 阶段时其mIoU 达到41.8%,PA 到达82.9%,MPA达到52.1%。
表2 在LIP验证集下对比实验结果%
此外,由于堆叠数量的增加会造成额外时间和显存的开销,当模块堆叠超过6 个时,其结果并没有得到明显提升。综合考虑其最佳结果为堆叠6个模块。
为了比较双路网络与单路网络的性能,在实验中只使用hourglass网络进行训练与验证,其结果展示在表2,从中可以看到在堆叠2、4、6个不同数量的模块时,其结果均不及使用双路网络,说明双路网络特征提取能力优于单路网络。
对MTCnet 的解析结果进行可视化如图8 所示,第一列为输入图像,第二列为图像真实标注,第三列为4阶段预测结果,第四列为6阶段预测结果。可以看到在不同阶段MTCnet 的输出结果存在差异,与真实标注图像对比可以发现随着阶段数增加解析结果得到了改善。
图8 可视化人体解析结果
5 结论
本文提出一种多阶段双路人体解析网络,该网络将编码解码网络与空洞卷积网络相结合,使用双路特征提取结构,能够融合学习多尺度特征信息,相比单一的特征提取网络,能够提取更加丰富的特征信息。不同于一般的方法,本文方法需要进行多阶段学习,通过不断优化输出结果最终达到最优的人体解析结果,其拥有更高的精准性。通过实验也验证了本文方法在特征提取能力和精确性方面拥有更好的效果。