刘奇 于斌 孟祥成 张晓宇
(东南大学 交通学院,江苏 南京 211189)
路面在长时间高负荷使用过程中,表面的多种病害形式会逐渐显现(如裂缝、车辙、坑槽等)[1]。裂缝是最常见的路面破损形式之一[2],路面裂缝检测是评价路面使用状况和防止路面产生更严重病害的关键。随着检测设备的升级和检测技术的发展,自动或半自动检测方法逐渐取代了人工检测[3- 4];但是,现阶段自动检测算法的精确性和鲁棒性瓶颈使得检测系统的识别模块无法摆脱人工的监督和复核[5]。传统的路面图像裂缝识别算法主要是基于图形学或统计学的图像处理算法[6];中值转换裂缝识别方法处理过程较为复杂,当对大批量路面图像进行处理时,对算力要求较高[7];最小代价路径搜索裂缝识别算法,准确性高,但易受外部光照条件的影响[8- 9]。
近年来,随着卷积神经网络(CNN)的崛起,深度学习方法在裂缝图像识别中的应用发展迅速。传统的识别算法涵盖小波变换、图像阈值、手工特征分类、边缘检测、最短路径等方法,深度学习方法则涉及机器视觉的图像分类、图像分割、目标检测三大任务[10]。自Krizhevsky等[11]提出Alex-Net以来,CNN在图像分类领域的应用已日渐成熟。Cha等[12- 13]研究发现,与传统的裂缝自动识别算法相比,CNN具有良好的稳定性。Doranfshan等[5]将神经网络方法与边缘检测方法进行了对比,证明了CNN在图像处理中具有明显的优越性。但由于路面(宽度在3.5~4 m)图像尺度较大,通常将原始图像裁剪为较小的子块来减少运算量,提升CNN网络计算效率和经济性。狄亚平[14]首先对裂缝图像阀值分割进行二值化,然后对图像标注连通域,并求出连通域矩形参数,去噪处理后采用Alex-Net进行训练识别。常见的目标检测模型有多目标卷积神经网络(SSD)、快速区域卷积神经网络(Faster R-CNN)和YOLO卷积神经网络,而为了更加精确地描述裂缝信息,路面病害图像识别领域多采用具有像素级精度的图像分割方法。为了实现端到端的网络输入/输出,一般存在两种选择:全程不降采样的网络结构、降采样-升采样结合的网络结构。前者的代表是Zhang等[15]提出的CrackNet系列模型,该模型取消了池化层以保证特征图全程尺寸不变;后者的代表是全连接卷积网络(FCN)[16- 17]和U-Net[18]。为提升裂缝图像识别效率和节约算力,沙爱民等[19]构建了3个CNN模型分别用于病害识别、裂缝特征提取和坑槽特征提取。Yu等[20]提出了一种两步卷积神经网络分类-分割结构模型,在保证精度的同时提升了计算效率。孙朝云等[21]提出了一种由特征提取网络和上采样分割网络组成的卷积神经网络;特征提取网络对裂缝形态特征进行提取,上采样分割网络通过联合多种尺度下的神经网络特征图,实现裂缝图像的分割。上述方法可以较为准确地提取路面图像中的裂缝信息,但得到的语义分割图像仍存在裂缝不连续、存在较多断点、单条裂缝部分缺失等问题。
在理想情况下,每个裂缝目标都应该是独立的连续个体,分割结果连续性的丢失,说明网络中仅注重每个像素的邻近区域,而对较远处的关联像素没有产生应有的响应。故此,本研究提出一种层间特征融合策略,以实现对语义分割结果的优化;该策略利用分类网络的中间层(以抽象程度较高的层为主)信息,通过转置卷积网络的方法,将感受野较大的高层信息与常规方法进行结合,使得网络对裂缝目标的连续性特征更加敏感,弥补分割网络对高层特征重视不足的缺陷。
裂缝像素占路面图像总像素的比例很小,采用CNN进行图像分割时,会因为不含裂缝的空白部分消耗了绝大部分的运算资源而降低分割效率。因此,可以将路面图像首先分为若干个小区域,利用分类方法,快速抛弃不含裂缝的子块,对于判定含裂缝的子块,再进行分割,这样可以降低对硬件性能的要求,并大幅提升分割训练速度。同时为提升语义分割图像中裂缝的连续性和精度,通过转置卷积网络进行层间特征融合后输出结果。三阶段网络系统的构建过程如图1所示。首先,采集路面图像并进行预处理[22];然后,对用于区域判定的CNN-Ⅰ和用于裂缝提取的CNN-Ⅱ分别进行训练。所用数据集具有相同的样本值,而两者采用的标签不同,CNN-Ⅰ采用长度为1的0/1分类标签,CNN-Ⅱ采用尺寸与样本相同的像素级标签。另外,还选用了Crack500和裂缝森林数据集(CFD)两个外源图像集对模型进行训练,其中Crack500是一个包括500张路面裂缝图像(2 000像素×1 500像素)的数据集,CFD数据集包括118张480像素×320像素的路面图像。将训练完成的网络模型放入系统,预处理后的路面图像,子块输入CNN-Ⅰ,进行有或无裂缝的判定,被判定为无裂缝的子块直接被判定为全0标签,被判定为有裂缝的子块送入CNN-Ⅱ进行分割,取CNN-Ⅰ的池化层进行转置卷积融合,最后与CNN-Ⅱ的输出层合并构建转置卷积网络CNN-T,算法流程如图1所示。
文中的分类网络CNN-Ⅰ是由VGG-16根据任务特性经简化和改进建立的。VGGNet[23]由牛津大学的视觉几何组(Visual Geometry Group)和Google DeepMind公司的研究员共同提出,包括A、A-LRN、B、C、D和E共6种网络结构,其中D网络是在图像特征提取中应用最为广泛的VGG-16,其拥有5段卷积,每段卷积内有2~3个卷积层,同时每段的最后一个卷积层都会连接一个最大池化层用来降采样。每段内的卷积核数量保持一致,越深的段卷积核数量越多,依次为64、128、256、512和512。路面裂缝目标不具有复杂的高级特征,VGG-16较深的网络结构不能对特征的提取产生更多帮助,反而会拖慢计算时间。故此,对VGG-16模型进行简化和改进,形成了用于区域判定的分类网络CNN-Ⅰ。
图2为VGG-16和CNN-Ⅰ的结构示意图,其中所做的改进如下:
(1)保留了5段卷积结构,去掉了每个卷积段内重复的3*3卷积层,使得网络的层数(卷积层+全连接层)由16变为8。
(2)减少了各层的卷积核数量;VGG-16的5个卷积段内卷积层的卷积核数量分别为64、128、256、512和512,CNN-Ⅰ将5个卷积段内的卷积核数量减少为16、32、32、32和64。
(3)减少了全连接层尺寸;VGG-16中的3个全连接层尺寸分别为4 096、4 096和1 000,CNN-Ⅰ将3个全连接层的尺寸改为128、128和1。
(4)针对二分类任务,将最后一层的激活函数由softmax改为sigmoid。
CNN-Ⅱ是一个端到端网络,取消了降采样以保持由输入到输出的全程特征图尺寸不变。这是一种包含5个卷积层的全卷积网络,其中前4层使用了递增的卷积核,而第5层为1×1卷积层,用以代替全连接层。CNN-Ⅱ的网络结构如图3所示。
随着降采样的进行,卷积核的感受区域在逐渐增大,通常CNN结构的各层卷积核尺寸从浅到深是逐渐减小的。但在本研究中,采用了完全相反的设计:4层卷积层的卷积核尺寸由浅到深分别为(3,3)、(5,5)、(7,7)、(9,9)。由于池化层的取消,为了由浅到深地学习到更加抽象的特征,卷积核需自行扩大覆盖像素对应的输入层的窗口。CNN-Ⅱ的另一个特点是用1×1卷积层代替了全连接层。这样做具有以下优点:一是此操作大大减少了参数数量,使得计算时间更短;二是输入图像的尺寸可以是任意的。
图4为前两阶段分类-分割网络的处理过程示意图。CNN-Ⅰ模型训练的损失函数为二值交叉熵,选用SGD优化器。采用recall(召回率)和precision(精确度)两个重要指标来表征模型的精度,召回率和精确度按下式计算:
(1)
(2)
(3)
式中:true-positive表示把含裂缝样本判为含裂缝样本的数目;true-negative表示把不含裂缝样本判为不含裂缝样本的数目;false-negative表示把含裂缝样本错判为不含裂缝样本的数目;false-positive
表示把不含裂缝样本错判为含裂缝样本的数目。F-1表示一个常用的平衡精确度和召回率的系统评测指标。
当召回率设置为0.95时,阈值δ=0.003 152,同时精确度为0.496 5。将VGG-16模型与CNN-Ⅰ模型在相同平台进行测试,其模型损失函数值随迭代次数的变化如图5所示。
图5 CNN-Ⅰ与VGG-16收敛速率的对比Fig.5 Comparison of convergence rate between CNN-Ⅰ and VGG-16
由图5可以看出,由于特征提取器的减少,CNN-Ⅰ模型需要更多的迭代次数才能达到最优表现。但同时,由于参数量的压缩,CNN-Ⅰ单次训练用时减少至VGG-16用时的1/24。因此,CNN-Ⅰ的计算耗时仍远小于VGG-16。在CNN-Ⅱ的训练中,损失函数采用二值交叉熵,优化器采用随机梯度下降。CNN-Ⅱ的召回率为0.77,精确度为0.78。结合CNN-Ⅰ和CNN-Ⅱ的训练结果得出分类-分割网络的性能指标,并与CrackNet进行对比,如表1所示。
表1 分类-分割网络模型与CrackNet的性能指标Table 1 Performance index of classification-segmentation network and crackNet
3 分类-分割网络的层间特征融合优化
本研究提出一种层间特征融合策略,采用转置卷积神经网络的方式,对分类-分割网络结构进行优化,以提升语义分割结果的精确度。
区域判定是语义分割的一项子任务,用于区域判定的分类网络CNN-Ⅰ总共有5个卷积+池化单元的输出特征图,5个卷积层的参数量分别为160、4 640、9 248、9 248和18 496。这些参数中由浅到深包含了大量从底层到高层的信息,最后全连接网络将其压缩为1个标签,中间层所含的大量特征被丢弃了。本研究通过转置卷积神经网络,将某些中间层的信息加以整合,作为分割网络输出结果的补充。
感受野的值可以用来大致判断每一层的抽象层次。感受野可按照式(4)逐层计算:
Fi=(Fi+1-1)×Si+Ki
(4)
式中,Fi是第i层在前一层的感受野,Fi+1是第i+1层在前一层的感受野,Si是第i个卷积或池化的步长,Ki是第i个卷积核或池化核的大小。
通过计算得CNN-Ⅰ 最后一个池化层的感受野为94,CNN-Ⅱ 最后一层Conv 5的输出特征图在各层的输入上的感受野为25。对比可见,CNN-Ⅰ同为5层卷积结构,CNN-Ⅰ的感受野要远大于CNN-Ⅱ。CNN-Ⅰ中的感受野提升主要来自池化层,以2为步长,(2,2)为池化核的池化层,每层即可将最终感受野提升1倍;相比之下,(3,3)卷积层对感受野的提升作用是较小的。对于CNN-Ⅱ来说,为了保证全程特征图尺寸的一致,取消了池化层,这也是CNN-Ⅱ感受野较小的主要原因。如前所述,为了尽量增大高层卷积核的感受区域,CNN-Ⅱ中采用了逐渐增大的卷积核尺寸,前4层的卷积核大小分别为(3,3)、(5,5)、(7,7)、(9,9)。相比之下,如果采用4层(3,3)卷积核的卷积层,其最终感受野将只有9。但即使如此,CNN-Ⅱ的感受野仍偏小。
由于CNN-Ⅱ感受野的限制,网络对连续性特征的捕捉能力成为CNN-Ⅱ性能的短板,表现为裂缝的断裂较多、不成整体。由于CNN-Ⅰ较高层的感受野大,其特征图可通过升采样与CNN-Ⅱ的输出结果融合。
转置卷积可以被认为是一种特殊的卷积操作。在卷积层中,步长是决定输出升降维的关键,当步长为1时,输入与输出尺寸基本保持不变,当步长大于1时,输出降维,体现为降采样。理论上,当步长小于1时,可实现升采样,但一般意义上,卷积核的步长应为大于等于1的正数。实现升采样的卷积被称为转置卷积,故转置卷积也被叫做小数步长卷积,步长为1/2的转置卷积层升采样过程如图6所示。
图6 步长为1/2的转置卷积层升采样Fig.6 Transposed convolution layer up sampling with 1/2 step size
由图6可知,通过在输入图元素之间添0可实现小数步长的转置卷积。其等价于用(3,3)的卷积核,以1为步长,在输入间插入1行0,在外侧增加2步长的填充。小数步长卷积的输入输出尺寸按式(5)计算:
(5)
式中:s′=1/s,p′=k-1,k′=k,o′、i′、s′、p′、k′分别为转置卷积的输出尺寸、输入尺寸、步长、填充、卷积核大小,s和k分别为卷积的步长和卷积核大小。
表2 转置卷积超参数Table 2 Hyper-parameters of transposed CNN
由此可以构建3个简单的转置卷积网络:CNN-T-Ⅲ、CNN-T-Ⅳ、CNN-T-Ⅴ,分别表示由CNN-Ⅰ的第3、4、5个池化层的输出特征图进行转置卷积构建的网络,如图7所示。
图7 转置卷积网络Fig.7 Transpose CNN
以CNN-T-Ⅲ为例,Pool 3层的输出层作为该网络的输入,其通道数为32,因为CNN-Ⅱ的输出层通道数为1,故首先要将输入层进行1×1卷积实现通道压缩。将压缩后的特征图进行8倍升采样,升至与CNN-Ⅱ输出层相同的维度,并与CNN-Ⅱ的输出相加,进行非线性激活后可计算损失函数并进行反向传播。值得注意的是,反采样后的特征图是可以随着网络迭代而更新的,而CNN-Ⅱ的输出层是固定值。可以认为,CNN-Ⅱ的输出层是CNN-T-Ⅲ加上一个权重很高的偏置项。其他两个网络结构与CNN-T-Ⅲ类似,区别仅在于转置卷积层升采样的倍数不同。
构建转置神经网络,首先输入Pool 5并进行通道压缩,通过转置卷积层进行2倍升采样,此时其与Pool 4通道压缩后尺寸相同,二者求和,将求和结果通过转置卷积层进行2倍升采样,此时其与Pool 3通道压缩后尺寸相同,二者求和,将求和结果通过转置卷积层进行8倍升采样,此时其与CNN-Ⅱ输出层尺寸一致,二者求和并通过非线性池化层,计算损失函数并进行反向传播。最终构建了一个融合了CNN-Ⅰ的Pool 3、Pool 4、Pool 5和CNN-Ⅱ输出层的多层转置卷积网络CNN-T,如图8所示。
图8 CNN-T 结构示意图Fig.8 Structure diagram of CNN-T
在测试集中随机挑选的部分样本(样本-Ⅰ、样本-Ⅱ、样本-Ⅲ和样本-Ⅳ)经CNN-T处理后的结果如图9所示。由图9可见,相较于未经特征融合的结果,经融合多个中间层特征后,转置卷积神经网络的输出结果与真值更加接近。经CNN-T处理后的结果具有如下几方面特点:①融合了CNN-Ⅰ的中间层信息后,裂缝的连续性更好,断裂情况得到改善;②散乱的椒盐噪声由于不具备连续性,未得到中间层的信息支持,大部分被消除了;③一些被误判为背景的较细的裂缝得到了恢复;④裂缝的位置判定较为准确,相比之下裂缝的宽度(粗细)识别准确性下降。
图9 不同网络对路面图像的处理结果Fig.9 Processing results of road images by different networks
为优化二维路面灰度图像中裂缝等病害的自动识别效果,针对路况采集设备线阵相机采集到的路面图像,文中提出了一套基于转置卷积神经网络的包括区域判定、图像分割、多层特征融合的路面裂缝提取算法优化策略,并得出了以下主要结论:
(1)基于改进VGG-16的裂缝图像子块分类模型CNN-Ⅰ与VGG-16模型相比,CNN-Ⅰ的参数和结构更加简单,计算也更快,最终的准确性没有受到影响;与VGG-16相比,CNN-Ⅰ随迭代次数的增加收敛较慢,但单次训练用时减少至VGG-16用时的1/24,因此总的计算时间仍是减少的。
(2)文中提出的基于转置神经网络的层间特征融合策略,可以实现对语义分割结果的优化;解决了语义分割图像中存在的裂缝不连续、存在较多断点、单条裂缝部分缺失等问题。
(3)中间层的升采样通过小数步长卷积进行,分别基于分类网络后3个池化层的输出特征图,将3个池化层通过逐层转置卷积融合,构建了具有3个转置卷积层的转置卷积网络CNN-T;结果表明,CNN-T在基本保留了分割结果细部特征的基础上,很大程度上完善了裂缝特征的连续性,提高了语义分割结果的准确率。