基于上下文情景结构的图像语义分割
2020-05-01陈乔松申发海弓攀豪孙开伟
陈乔松,陶 亚,申发海,弓攀豪,孙开伟,王 进,邓 欣
(重庆邮电大学 计算机科学与技术学院, 计算智能重庆市重点实验室,重庆 400065)
0 引 言
随着人工智能理论和技术的日益成熟,场景理解、无人机着陆点判断以及自动驾驶等应用对图像识别分割技术提出了更高要求。而与深度学习结合的分割方法,即语义分割,能够较好地实现对复杂场景的划分。语义分割就是将图像中的像素根据其所属类别的语义不同进行分割,将每一像素都标记为它所属类别指定的颜色,不同类别间颜色互异。
然而,使用CNNs(convolutional neural networks)进行语义分割的任务仍然存在不小的挑战:①深度卷积神经网络包含重复的池化层和下采样使得图像的分辨率明显缩小,丢失了很多有用的细节(如图1)。在图1a中可以看出FCN(fully convolutional network)[1]的输出具有一定的粗糙性;②由于目标的尺度不确定性,经常会导致漏分割或误分割比感受野更大或者更小的目标,特别是当图像中的目标过大或者连续时,可能会发生同一目标误分割为多个语义的情况,如图1b所示,连续的目标被分割为3种不同的语义;③CNNs里的全连接层将特征图连接成一维向量不仅损失了空间信息而且导致了大量参数的产生。这些问题影响了分割过程中目标的定位准确性以及完整性。
考虑到卷积神经网络提取的特征随着层数的加深更趋向于全局化且丢失了大量细节信息,但全局信息并不足以精确定位目标,本文基于全卷积神经网络在融合低高层特征的基础上提出了上下文情景结构(contextual structure,CS)层并对实验结果进行了进一步的框选优化。为解决大目标误分割的问题,在增强结构中应用了对传统卷积核改进后的全局卷积,提升了大型目标的分割准确率并降低了大型或连续目标的误分割率,采用改进后的卷积核也改善了因使用过大的卷积核造成大量参数的问题。为解决多尺度目标检测的问题,在多尺度结构中使用了多通路的策略,结合空洞卷积实现了分割不同尺度目标的目的,以此解决现实生活中存在的目标不确定性问题,多尺度结构的选择可以根据实际数据调整通路数或尺度大小。通过实验结果显示,本文提出的结构在避免粗糙分割的同时降低了大型目标及连续目标的误分割率,在保证算法有效性的同时控制了运行时间效率。
1 相关工作
传统的图像分割在于前景背景的分割,主要有基于阈值的分割方法、基于边缘的分割方法、基于区域的分割方法、基于图论的分割方法等。基于阈值的分割方法[2]主要根据图像的灰度特征,设定阈值以此区分图像不同区域,分割速度快,但对噪声较敏感;基于边缘的分割方法主要依赖图像边缘的检测来分割不同目标,速度快,但容易产生大量碎边缘;基于区域的分割方法,其基本思想是将相似的像素集合构成区域,但对噪声较敏感;基于图论的分割方法则是遵循子图之间相似性最小,子图内部相似性最大的法则将图分为若干子图,主要有GrabCut[3]等方法。
近年来依靠简单视觉特征进行图像分割的传统方法已经逐渐被深度学习算法所取代。自从Krizhevsky等在2012年公布了AlexNet的网络架构,深度学习已经被广泛应用于计算机视觉的许多领域。Long等[1]2015年提出了用于语义分割任务的FCN网络模型,其提取的语义信息由浅至深,通过端到端的训练产生分割结果,但是由于恢复原分辨率的放大方式过于粗糙而导致了结果不精确。
为了优化FCN网络模型的结果图像,2015年Noh等提出了DeconvNet[4],Hong等提出了DecoupleNet[5]。2016年Badrinarayanan等提出了SegNet[6],该模型基于FCN延展了编码-解码结构,结果图像通过解码器后恢复原始分辨率,分割结果较FCN有了进一步的提升,但是这类方法的反卷积操作同样需要训练参数。Zeiler等[7]提出了重建输入图像的方法,主要通过存储下采样时的位置信息,再通过特征图反卷积重建图像原始分辨率。
2016年Paszke等提出的E-Net[8]和2017年Lin等提出的RefineNet[9]将多尺度信息应用在网络结构中并取得语义分割任务中的进一步发展。Eigen等[10]采用多尺度深层网络架构,一定程度上解决了不能同时兼顾大小目标的问题。另一方面,Islam等提出的LRN[11]采用特征融合的策略,合并不同尺度的监督信息达到优化分割的目的。同样地,Liu等[12]也通过特征融合的方式,将同一网络模型下的不同层次特征图进行融合,达到了更好的效果。
语义分割任务在CNNs的推动下发展迅速,Zheng等提出的CRF-RNN[13]和Chen等提出的DeepLab-CRF[14]加入了条件随机场(conditional random field,CRF)作为后处理方法对实验结果进行了优化并衍生出了新的网络框架。2016年Lin等已经成功地开展了CNNs和CRF的联合学习[15],如今该系列方法已逐渐演变为端对端的结构,但同时也增加了网络的训练时间。
2 方 法
本文基于上下文情景结构提出了新的语义分割方法—情景结构分割法,其整体框架如图2。图2中,图像经过基础网络之后,特征图分辨率缩小为原图的1/8并进入上下文情景结构中继续提取增强信息和多尺度信息,最后通过双线性插值将图像恢复原始尺度。网络结构基于VGG16,基础网络中包含4类基本内容,分别是卷积层、池化层、修正线性单元以及空洞卷积层,并去除全连接层改为卷积层。在基础网络上增加了CS层并融合了前层提取的细节特征,最后将该结构提取到的特征进一步整合得到分割结果。
2.1 基础网络结构
原始VGG16网络严重减小了特征图的分辨率,文献[5]使用反卷积将图像恢复为原始尺度,然而对等地付出了更多的内存和时间消耗,但是恢复的像素很大程度上已经不具备原先的细节特征。
为了在不损失更多细节的同时对更大区域进行采样,从而得到包含更多空间信息的结果,本文的基础网络包含3层参数为2和2层参数为1的池化层,所以情景结构分割法只会将分辨率缩小为原来的1/8。因摒弃池化层而被影响的感受野由空洞卷积[14]补偿,此算法允许我们不缩小图像就可以增大感受野,只需要将卷积核上采样到原来的2倍,即在初始卷积核的核值中间填充0,卷积核的尺寸增大了,但是实际上我们并没有增加任何不必要的操作。
基础网络中对输入图像进行的操作公式为
gi(I)=dilated(conv3×3(gi-1(I),pool))
(1)
(1)式中:dilated表示空洞卷积;conv3×3表示卷积核为3×3的卷积操作;pool表示池化操作,不同层池化参数不同;gi(I)表示第i层的输出特征图。
2.2 上下文情景结构(CS)层
大多数用于分类的框架如VGG Net[16],GoogleNet[17]应用全连接层获得高维特征向量便于分类,而分割任务需要得到尽可能丰富的特征图,这就是类似于SegNet,DeconvNet等网络结构中选择使用全卷积网络的原因。性能优良的语义分割要求不仅实现分类还要完成分割,因此,本文认为兼顾全局信息和细节特征才能达到两者的最优结合,为处理如何将两者结合的问题,本文提出了CS层,该结构的提出不仅解决了大规模目标的检测分割问题,同时解决了同一图像中不同尺度目标的分割问题。
糖尿病是临床常见的内分泌疾病,也是引起心血管疾病的独立危险因素之一。长期高血糖状态下可导致靶器官损伤,引起糖尿病慢性并发症,进而影响患者的生存质量和生命安全。心脏是糖尿病常见的受累器官之一,心脏病变是糖尿病患者的主要死亡原因之一[1]。冠心病、心脏自主神经病变、糖尿病心肌病是糖尿病患者心脏并发症的三种表现形式,前两者临床比较常见,但糖尿病心肌病却未引起足够重视[2]。
CS层结构如图3。为解决大目标的分割问题,考虑将感受野变得更大,即尽可能容纳整个目标,因为感受野不够大的情况下,卷积操作可能只会包含目标的一部分,目标被割裂会造成同一类别的误分割。但简单的扩大卷积核(k×k)将占用系统更多的内存,同时造成大量参数的产生。而CS层的加入则解决了该问题,在扩大感受野并提取更多上下文相关信息的同时并没有带来成倍增长的参数。图3中,图像特征在增强结构(蓝色)中得到加强,并在后续的多尺度结构(黄色)中得到更多尺度信息,多尺度结构中的参数Rate为尺度参数。
CS层的输出特征图公式为
(2)
(2)式中:gfinal(I)表示基础网络中最终层提取的特征图;φ表示增强结构的操作;ρ表示多尺度结构的操作;n表示CS的层数。
图3所示增强结构中使用改进后的卷积核代替传统卷积核,即1×k+k×1和k×1+1×k的双通道合并卷积[18],计算损耗和参数数量都比k×k卷积核要少得多,我们称为全局卷积(Global Convolution)。
增强结构的处理操作公式为
φ(I)=(convgc)pre(I)
(3)
(3)式中:pre(I)表示上一层的输出特征图;convgc表示全局卷积的操作,具体公式为
convgc=conv1×k+k×1+convk×1+1×k
(4)
(4)式中:conv1×k+k×1和convk×1+1×k分别代表卷积核为1×k+k×1和k×1+1×k的卷积操作。
考虑到如果卷积核足够大,我们可以提取全图大小的全局特征,但是本文的目标是实现语义分割,则希望尽可能地提取完整目标的全局特征而不是整幅图像的全局特征。本文的网络结构呈顺式结构,每经过CS层感受野都在持续变大,这也是增强结构选取k=7的全局卷积核的原因。同时,鉴于目标的多样性和随机性,图像中的一些目标可能过大或者过小,所以在CS层中加入了多尺度的应用。
图3所示多尺度结构中摒弃了将原始图像多尺度化的做法,利用空洞卷积实现稀疏性的卷积核,从而在减少计算复杂度的基础上实现了分割多尺度目标的要求。像前文提到的一样,只要将卷积核按照所需比例扩大,在3×3的卷积核核值之间按参数(Rate)比例插入一定数量的0以构建不同的稀疏性多尺度卷积核。该过程没有增加参数和多余的操作达到了多尺度化的目的。在增强结构之后加入该多尺度卷积,目的是提取每一层增强结构中的多尺度特征信息。
多尺度的操作公式为
(5)
(5)式中:φ(I)表示增强结构的输出特征图;Multi-ScaleRate_i表示第i种Rate不同的稀疏多尺度卷积;n表示多尺度的通路数。本文中应用三通路,对应的不同Rate分别为2,4,6,最后将不同尺度的特征图进行融合输出。
由于对中间层也进行了多尺度化使得我们比只在网络的最后一层运用多尺度的方法得到了更多的尺度信息。最后将融合得到的多尺度信息送入下一层。对于尺度差别不同的数据集多尺度结构的通路可以相应地作出调整。
2.3 双线性插值层(Bilinear层)
CNNs中的每个池化层会将图像下采样为原来分辨率的1/2,情景结构分割法采用了3个池化层,所以最后得到的特征图分辨率仅为原图的1/8。为了保持输出图像与原图像分辨率相同,本文采用双线性插值[19]方法将结果图恢复至原图分辨率。对于一个待插入像素,其坐标通过映射得到浮点坐标(i+u,j+v)对应原图中的位置,其中i,j是非负整数,u,v是[0,1)的浮点数。该目的像素的数值由距离该点最近的4个点的值加权求得,即坐标为(i,j),(i,j+1),(i+1,j),(i+1,j+1)所对应的数值。
3 实验结果与分析
本文将在运行时间(Speed)、平均交并比(mean Intersection-over-Union,mIoU)、准确率(Accuracy)指标上评价情景结构分割法。所有的实验在Python TensorFlow工具下运行,GPU版本为NVIDIA GeForce GTX 1070(8G),训练过程中batch参数设置为5,我们将通过实验验证该方法的有效性。
本文中提出的增强结构和多尺度结构对于网络的必要性在PASCAL VOC 2012[23]验证集上的实验中得到了证实,实验数据如表1。从表1中可以看出,增加的结构对于基础网络确实提高了mIoU值,验证网络的运行次数为20 k。
表1 本文提出的方法在VAL数据集的测试数据Tab.1 Results on the VAL dataset of proposed method
在运行时间数据上,基于相同硬件环境以及相同数据集下,FCN-8s的训练时间为0.96 s/step,Deeplab-CRF的训练时间为0.93 s/step,本文的情景结构分割法的训练时间为0.82 s/step。本文方法在增加框选优化之后,mIoU高于FCN-8s和Deeplab-CRF的同时,处理时间仍优于这2种方法,同时实验结果也取得了更好的表现。框选优化主要针对分割结果中的目标进行框选,对框内的目标整体及边缘进行评测,判断框内标记是否属于同一类别,达到优化分割的目的。
3.1 平均交并比评估
本文使用PASCAL VOC 2012对mIoU指标进行评测,该数据集分为21类(包含背景类),其中,10 582张图像用于训练模型,1 449张图像用于验证,1 456张图像用于测试。情景结构分割法在VOC 2012验证集上的结果如图4,分别对比了FCN和Deeplab-CRF[20]方法。
从图4中可以看出,本文方法和Deeplab-CRF相对于FCN更细致。在第2行数据结果中,可以看到FCN和Deeplab-CRF都没有分割出重叠部分的人腿,而情景结构分割法在此状况下分割出了马背上的人腿部分;在第1行和第3行结果中,本文的方法分割出了更完整的目标,既没有出现FCN的误分割问题也没有出现Deeplab-CRF的未检全问题;在第4行的结果中本文的分割结果最为贴合标签图像,与其他方法相比,本文分割法更加完整准确;在第5行的结果中由于图像场景本身具有一定的复杂性(背景杂乱、前景目标相似度高),所有方法均未分割出较好的结果,但是本文方法在分割图像背景中较小尺度的人这一类目标时分割结果优于其他方法。因为test数据集的标签图未公布,所以本文将实验结果上传到VOC评估系统得到的实验数据如表2。从表2中可以看出情景结构分割法在所有对比方法中取得了最好的结果,表2中加下划线的数据代表我们在该类别上的数据结果高于其他方法。另外,本文在VOC 2012 验证集上的部分实验结果展示在图5中。
表2 PASCAL VOC 2012 test数据集上的mIoU测试结果Tab.2 Comparison results of mIoU on the PASCAL VOC 2012 test dataset %
3.2 准确率评估
本文使用CamVid道路场景数据集对Accuracy指标进行评测,其中包含367张训练数据集,233张测试数据集。数据集包含白天和黄昏场景的测试图像,分辨率为360×480,对道路、建筑、汽车等11类进行分割,实验结果如图6,测试数据集上的Accuracy指标数据如表3。从图6中可以看出,情景结构分割法对于大型物体的检测比较有效,即使在黄昏场景中,对于道路、车辆、建筑等目标仍做出了明确的分割,并未因光线问题出现误分割。如图6,道路场景下情景结构分割法仍取得了较好的分割结果。本文在该数据集上训练次数为20 k,准确率达到了83.9%,Deeplab在相同训练环境下准确率达到了81.3%(见表3),本文在所有对比方法中取得了最好的结果。
表3 Camvid数据集上的准确率结果Tab.3 Results of accuracy of Camvid dateset
4 结 论
通过对语义分割的分析,本文发现大的卷积核对于识别对象很重要,所以使用改进后的卷积核来获得目标比较大的对象并将上下文情景结构中提取的特征与基础网络提取的特征融合,用前层的细节特征补足特征图,达到更好的分割效果。此外,还添加了多尺度来解决实际图像中存在多目标的问题,有效分割图像中的不同尺度目标。将本文提出的算法和现存的语义分割算法作对比,实验结果显示本文算法对于大目标或连续目标具有更好的分割效果。