基于全卷积网络的砂石图像粒径检测

2020-07-15 08:56朱大庆
计算机与现代化 2020年7期
关键词:砂石粒径卷积

朱大庆,曹 国

(南京理工大学计算机科学与工程学院,江苏 南京 210094)

0 引 言

近年来,随着土木工程产业的快速发展,国内外各类建筑行业对砂石的需求量不断增多,从高楼建筑到高速公路建造均对砂石粒径有一定的规格要求。不同粒径的碎石按照一定比例混合起来,达到符合要求的密实度,则称这些碎石为级配碎石[1]。在对不同粒径大小的砂石进行混合之前,首先要做的是要获得砂石的粒径大小。因此,良好的砂石粒径检测方法对后期的砂石混合精确度起着至关重要的影响,也对铺设的高速公路质量以及楼房质量有着决定性的影响[2]。传统的砂石粒径检测方法是通过人工抽样进行检测,耗时费力;或者是通过工业砂石筛分机[3]进行筛分,获得的结果较为粗略,并不能获得砂石粒径的精确大小数据,因此会影响后期的砂石级配的精度。

除了使用上述人工或者工业砂石筛分机方法,也可以从计算机视觉的角度出发,利用传统的图像分割技术对砂石图像进行砂石目标分割,然后计算砂石的粒径大小。传统的图像分割方法主要有基于阈值的分割方法[4]、基于区域的分割方法[5]以及基于边缘的分割方法[6]等。阈值分割方法适用于分割目标与背景像素差异较大的图像,而本文处理的砂石图像,砂石目标互相遮挡,被遮盖的砂石目标成为了表面砂石目标的背景,因此前景与背景的差异很小,所以无法选定一个合适的阈值将砂石目标准确地分割开来。分水岭分割方法是常见的区域分割方法,由于砂石紧密粘连,不符合目标区域封闭且独立的条件,因此该类分割方法对于砂石图像的分割效果也较差。基于边缘的分割方法通过边缘像素与背景像素间的梯度差异来解决分割问题,对于紧密粘连的砂石,无法获得鲁棒的边缘线,因此无法进行后续的砂石粒径计算操作。

传统图像分割方法可以适用于常见的普通图像分割任务,但对紧密相连的复杂砂石图像分割效果均不理想。为此,本文从深度学习角度出发,使用基于全卷积网络的分割模型对砂石图像进行分割,获得更好的分割效果。目前在深度学习领域可以对图像进行目标分割的方法中,主要是基于语义分割的全卷积网络(FCN)[7]以及在其基础上发展的医学图像领域的U型网络(U-Net)[8]等。

卷积神经网络(CNN)能够对图片进行分类[9-13],而FCN可以对图像进行像素级的分类,解决了语义级别的图像分割(Semantic Segmentation)问题。通常CNN网络在卷积层之后会接上若干个全连接层(Fully connected layer),将卷积层产生的特征图映射成一个固定长度的特征向量。而全卷积网络与CNN不同,FCN把CNN最后的全连接层换成卷积层,输出的是一张标记好的图片。除了全连接层,使用卷积神经网络进行语义分割存在的一个问题是池化层(Pooling layer)的存在造成了像素位置信息的丢失,但是,语义分割又需要保留像素的位置信息。为了解决这一问题,在医学图像分割领域,出现了一种基于编码器-解码器结构的U-Net网络。U-Net约有20个卷积层,4个下采样,4个上采样,整个网络没有全连接层,只有卷积和上下采样,网络形状似U型,故得名U型网络。FCN可以对常见的图像目标进行语义分割,U-Net可以对医学图像进行分割,然而,对于本文研究的砂石目标,由于其体积微小、紧密粘连且存在相互遮挡,所以现如今的FCN、U-Net等分割模型在砂石图像的目标分割任务上,效果并不令人满意。

本文通过两阶段深度学习网络模型(分割模型、分离模型)进行砂石目标的分割和分离,可以将砂石目标很好地分割开,得到每个独立的砂石目标,提升了计算砂石粒径大小的精度。

1 方法过程总述

本文最终目的为获得砂石粒径大小,在粒径计算之前,首先要做的是将砂石目标分割开来,所以实验过程总体上分为2个部分:砂石分割和粒径计算。

对于砂石分割部分,首先构建一个砂石分割网络模型,在训练模型阶段,选取部分原图手工标记砂石目标边缘作为分割模型的训练样本,训练完成后得到砂石分割模型;在检测阶段,将原图直接经过分割模型处理,再经过形态学处理后得到初次分割结果图。然后再构建一个砂石分离模型,在模型训练阶段,选取部分初次分割结果图手工标记砂石粘连处的凹点作为分离模型的训练样本,训练完成后得到砂石分离模型;在检测阶段,将初次分割结果图经过分离模型处理后得到自动标记了凹点的结果图,经过凹点匹配得到最终分割且分离的结果图。

对于粒径计算部分,对得到的最终分割且分离的结果图,计算砂石目标的最长径,取均值后得到砂石图像的平均粒径大小。砂石图像粒径检测的总体流程如图1所示。

图1 砂石粒径检测方法流程图

2 砂石目标分割与分离

2.1 分割模型

在进行砂石粒径大小计算之前,需要先将砂石目标分割开,本文构建了如图2所示的基于全卷积的神经网络,用于砂石目标的分割任务,它是由4个数据输入层(Data)、6个卷积层(Convolution)、6个激活层(Activation function)、1个输出层(Output)和1个计算损失层(Loss)串联而成。

其中卷积层中使用的参数Output为该卷积层中卷积核的个数,也是输出的数量;Pad为是否对输入image进行padding操作,此处根据所用的卷积核大小选用不同的padding大小,可以保证卷积操作所得的特征图(feature map)与原图尺寸一致;Conv_kernel为卷积核的内核大小;Stride为卷积核的步长;Weight为权值的初始化方法,本模型中使用了高斯分布初始化权值(gaussian);Bias为偏置项的初始化方法,本模型中使用了constant,且值为0。对于卷积层的参数配置详情,如表1所示。

图2 砂石目标分割模型结构图

表1 卷积层中各个参数配置表

其中在激活层中,对输入数据进行激活操作(即函数变换),本模型的激活函数采用线性整流函数(ReLU)[14],其函数表达式为:

f(x)=max (0,x)

(1)

在神经网络中ReLU作为神经元的激活函数,定义了将神经元在线性变换wTx+b之后的非线性输出结果,也就是说,对于神经元的来自上一层网络的输入向量x,使用ReLU激活函数的神经元的输出为:

max (0,wTx+b)

(2)

在计算损失层(Loss)中,计算模型得到的结果score与真实结果label之间的误差,本模型采用Caffe中的SoftmaxWithLoss,即多项逻辑损失层(Multinomial Logistic Loss Layer)和Softmax层。

对获得的原始砂石图像,预处理后随机抽取部分图像作为训练样本,使用Photoshop进行手工标记砂石目标的边缘,作为训练集标签。通过如图2所示的分割模型的训练学习,测试后可以得到如图3所示的分割结果图,其中图3(b)为模型直接得出的结果图,图3(c)为对图3(b)进行二值化处理[15]以及形态学操作[16]后的效果图,以此作为初次分割结果图。

图3 砂石目标分割结果图

2.2 分离模型

在分割模型处理后,对得到的初次分割效果图的研究发现,结果图中仍有很多砂石目标粘连在一起,这将无法进行后续的砂石粒径计算工作,所以本文构建了如图4所示的基于全卷积网络的分离模型,用于砂石目标的分离任务。由于分离模型的模型结构与参数配置和分割模型相同,所以在本节不再重复介绍。在分离模型中,输入图像为初次分割效果图,输出图像为模型自动标记了凹点的结果图。其中凹点是指砂石目标粘连处的转折点,标记粘连处的一对凹点,将这对凹点连接即可实现粘连的分离效果。

图4 砂石目标分离模型结构图

对分割模型获得的初次分割效果图,随机选取部分图像作为训练样本,手工标记砂石目标粘连处的凹点,作为分离模型的训练集标签,通过如图4所示的分离模型训练学习,测试后可以得到如图5所示的自动标记了凹点的结果图,其中图5(a)为手工标记的凹点,图5(b)为模型自动标记凹点的结果图。由图中可以看到模型能够准确地标记出砂石图像中的凹点。

当通过分离模型自动获得砂石目标的凹点之后,需要做的就是将凹点配对连接[17],实现砂石目标的最终分割且分离的效果。对于得到的砂石凹点图,首先去掉不在砂石边缘上的无效凹点,再将距离非常接近的凹点过滤为一个凹点,然后根据“凹点匹配规则”进行凹点配对[18-19]。对于凹点匹配规则,如图6所示,点A1、A2分别为2个凹点,向量A1M1、A1N1分别为凹点A1前后2边边界的切线,向量A2M2、A2N2分别为凹点A2前后2边边界的切线。如果凹点A1、A2是一对凹点对,则应满足以下条件:凹点A1、A2连线在向量A1M1与向量A1N1的夹角和向量A2M2与向量A2N2的夹角之间。满足此配对条件的2个凹点将其归类为一对,凹点配对成功。将一对凹点间的连线作为砂石粘连处的分割线,最终实现砂石粘连的分离效果。

(a) 手工标记 (b) 自动标记图5 砂石目标凹点标记图

图6 凹点匹配规则示意图

至此砂石图像的分割、分离操作已完成,得到了分割最终的效果图如图7所示。图中分别使用椭圆和矩形标记出2处对应位置的砂石分离结果作为示例,其他位置的分离结果与示例类似。其中图7(a)为初次分割结果图,发现很多砂石粘连在一起,图7(b)为最终分割且分离的结果图,对比发现大部分的粘连处均已实现目标分离。

(a) 初次分割结果 (b) 最终分割且分离的结果图7 砂石目标最终分割分离结果图

2.3 网络训练

本实验所使用的砂石图像数据集均为手工拍照采集,共12张砂石图像,其中选取6张图像进行手工标记作为训练样本。

训练时使用的参数test_iter为完成一次测试需要的迭代次数;test_interval为测试间隔;base_lr为基础学习率,在参数梯度下降优化的过程中,学习率会有所调整;lr_policy为学习率在梯度优化过程中的变化策略,本次训练采用的是“step”,因此还需要一个stepsize参数,表示学习率变化的频率,momentum表示上一次梯度更新的权重;weight_decay表示权重衰减,用于防止过拟合;gamma表示学习率变化指数。对于网络训练过程中的参数配置详情,如表2所示。

表2 网络训练参数配置表

3 砂石目标最长径计算

当分割且分离完成得到最终效果图后,就可以计算砂石目标的最长径了[20-21]。对于分割分离结果图,获得图像中每个砂石目标的边界后[22],对于每一个砂石目标边界,边界上的所有像素点记为一个集合U。对于集合U中的每一个像素点i,使用欧氏距离公式计算i到集合U中其余像素点的距离,取最大值,作为从i出发到砂石目标边界的最远距离,记为L(i)。对于集合U中所有像素点的最远距离,取其最大值作为集合U所成边界的最大直径,记为max(L(i))。由此,max(L(i))即为每个砂石目标边界的最长径。

值得注意的是,由于砂石目标存在紧密相连且相互遮挡的情况,所以砂石图像中的那些非常小的砂石个体并不能代表真实数据,因此需要有所舍弃。本实验中,当获得一张分割分离效果图中所有砂石目标的最长径后,一方面舍弃最长径max(L(i))小于10个像素值的砂石目标,另一方面,在剩余的砂石目标中,按最长径max(L(i))从大到小排序,取其前70%的最长径数据作为有效数据。图8展示了获得砂石最长径后的效果图。

图8 砂石目标最长径效果图

4 实验结果分析

4.1 数据集

本实验的研究对象为砂石图像,由于目前已有的对砂石图像的研究并不多,并没有公共数据集,所以本实验所用的砂石图像均为手工拍照获得。共12张砂石图像,图像尺寸为1296×972,由于图像尺寸较大且图像中的砂石目标众多且紧密粘连,所以12张图像数据已足够实验所用。实验拍摄器材使用海康相机,型号为MV-CE100-30DC。为了保证本实验方法能够具有较高的鲁棒性,拍摄图像来自于不同场景下的砂石样本,其光照条件、砂石本身颜色差异、砂石颗粒尺寸等因素均互不相同。

4.2 评价指标

本实验虽然以砂石分割过程为研究重点,但最终目的为计算砂石粒径大小,所以对实验结果的评价分为2个部分:砂石分割准确度评价和砂石粒径计算精确度评价。

1)在砂石分割准确度评价方面,本文采用了重叠率来度量砂石图像分割模型的性能[23]。重叠率表示分割预测砂石区域与真实标记砂石区域之间的重叠比例,重叠率计算方式为:

(3)

其中,AR表示本实验网络预测的砂石目标区域(Result Area),AGT表示实际的砂石目标区域(Ground Truth Area),此分割结果对应的Ground Truth为手工标记砂石目标获得。使用Photoshop对砂石目标边缘进行标记,将砂石个体与模糊不清的无效背景区分开,然后对标记图进行二值化,砂石目标为白色,无效背景为黑色,最终得到的砂石个体相互独立的图像作为Ground Truth。Score越大,表明预测砂石目标区域与实际砂石目标区域的重叠部分越多,表示分割越接近真实,即分割效果越好。

2)砂石粒径计算精确度评价方面,本文采用了计算误差来表示砂石粒径计算结果与真实结果间的差距,单位为像素,计算误差的计算方式为:

error = |NumR-NumT|

(4)

其中,NumR表示计算结果数据(Result Number),NumT为砂石粒径大小真实数据(True Number)。其中计算结果数据,由本实验运行结束后自动获得,数据形式为砂石目标的最长径所占的像素数。而砂石粒径大小真实数据,为人工抽样测量获得。人工测量时,使用3个人分别对采集到的6张砂石样本测试图,每张图像随机抽取60颗砂石目标,对抽取到的砂石样本进行人工测量其最长径所占像素数,取这3×60颗砂石样本测量所得数据的均值作为本张图像的粒径平均真实大小。对于“砂石图像最长径所占像素数”的人工测量方法,使用Windows系统下自带的“画图”软件,标记出砂石颗粒两端的像素坐标,即可计算得到“砂石颗粒最长径所占像素数”。

4.3 结果分析

在砂石分割效果上,为了体现本实验方法中砂石图像分割分离效果的优越性,将本文方法和U-Net分割网络进行了对比。图9展示了2张不同批次的砂石图像在使用本文方法和U-Net网络方法分割效果的对比。图中分别以矩形和椭圆标记出分割效果对比示例,其他位置的效果对比与示例类似。由图中可见,本文方法基本上可以分割且分离粘连的砂石目标,而使用U-Net网络分割方法,大部分砂石目标模糊且依旧粘连在一起,因此无法进行后续的粒径计算工作,由此可以体现出本文分割方法的优越性。

(a) 原图 (b) 本文方法 (c) U-Net网络分割方法图9 不同方法分割效果对比

为了量化体现本文方法的有效性,表3展示了6张测试图的分割重叠率和砂石粒径计算结果。在分割重叠率方面,对比可以发现U-Net网络分割重叠率均小于两阶段分割方法,这正是从量化的角度说明了在砂石图像的分割能力上U-Net网络弱于两阶段分割法。从表中可以发现3号图像和4号图像砂石粒径最大,其分割结果重叠率最高,算法计算所得粒径大小与手工测量粒径大小误差最小;而5号图像和6号图像砂石粒径最小,其分割结果重叠率最低,算法计算所得粒径大小与手工测量粒径大小误差最大。由此可以得出的结论是,当砂石颗粒较大时,分割效果较好,粒径计算结果也较为准确;相反,当砂石颗粒较小时,分割效果较差,粒径计算结果的误差也较大。虽然5号图像和6号图像的计算误差较大,但综合来看,整体的计算误差均能控制在10个像素之内,由此可见本文方法计算砂石粒径大小较为精确。

表3 砂石分割结果与粒径计算统计表

对于本文实验的分割算法时间性能分析方面,在实验中,使用的计算机硬件设备CPU为Intel八代I5、GPU为NVIDIA GeForce GTX 1080Ti。对于6张尺寸为1296×972的测试图像,两阶段分割法平均每张砂石图像测试时间为:分割阶段1.3 s、分离阶段1.1 s,而U-Net网络平均每张砂石图像测试时间为3.1 s。与U-Net网络相比,两阶段分割法由于网络结构相对简单,只有6层卷积层,而U-Net网络包括了编码、解码等一系列操作,所以两阶段分割法的平均运行速度要快于U-Net网络。因此可以说明本文的两阶段分割算法能够快速分割砂石目标。

5 结束语

本文提出了一种基于全卷积网络的砂石图像粒径检测方法,能够快速分割砂石目标,并准确计算出砂石粒径大小。在砂石目标分割效果方面,使用其他现有的传统方法或者深度网络模型,分割结束后仍然有大量的砂石个体粘连在一起,而本文方法创新点在于使用2次网络,先将砂石目标进行分割,但由于砂石目标紧密粘连,初次分割效果并不理想,所以需要对网络模型进行再训练,将已经分割的砂石目标进行分离,最终得到分割且分离完成的砂石目标。在砂石粒径大小计算方面,计算精度虽然受砂石颗粒大小的影响,但依旧可以控制在可接受范围内,计算精度较为准确。

本文方法已按“基于深度学习的砂石图像粒径检测方法”申请专利(专利号:201910201075.9),而且还可以应用于细胞检测及计数,接下来的研究重点将会放在更加微小的砂石目标图像的分割任务上,尝试优化网络结构,以期获得更好的微小目标分割效果。

猜你喜欢
砂石粒径卷积
木屑粒径对黑木耳栽培的影响试验*
基于3D-Winograd的快速卷积算法设计及FPGA实现
人工砂石料加工系统运行成本管理的探讨
砂石行情“涨势大好”
卷积神经网络的分析与设计
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法
江西省800余家砂石企业详单出炉
基于近场散射的颗粒粒径分布测量
Oslo结晶器晶体粒径分布特征的CFD模拟