基于FHRNet的钢化玻璃颗粒度检测算法

2022-07-27 02:54珊,高
河南城建学院学报 2022年3期
关键词:钢化玻璃卷积颗粒

赵 珊,高 雨

(河南理工大学 计算机科学与技术学院,河南 焦作 454003)

颗粒度检测是钢化玻璃生产过程中的一项强制检验内容,其目的是定量分析钢化玻璃破碎时的危害程度。钢化玻璃颗粒度检测通常由质检人员人为观察计数[1]。由于玻璃碎片数量较多,面积小,裂纹交错复杂,且光线会在裂纹内部反射投影形成虚假边缘,极易造成视觉疲劳,人为计数不仅成本大,消耗时间多,通常还存在漏读、错读、重读的问题,影响检验结果的准确性。为解决人为计数存在的问题,周雪芹等[2-3]结合边缘检测、区域生长、分水岭分割技术对安全玻璃碎片检测与识别方法进行了系统性的研究。陈慧龙[4]提出一种基于分水岭和动态阈值分割的玻璃碎片提取方法,完成边缘提取,并有效排除了条纹对玻璃碎片检测结果的影响。苏中华等[5-6]设计了一套钢化玻璃碎片状态快速检测装置,该装置利用基于边缘的分割方法对碎片进行分割,然后利用HSV(Hue,Saturation,Value)颜色控件对碎片进行识别和二值化处理,最后将得到的二值图像进行形态学膨胀并统计出封闭轮廓区域,得到计算结果。付江伟[1]结合玻璃碎片缝隙线检测和改进的一遍扫描算法,提升玻璃碎片的检测效果,设计开发了一套安全玻璃质量自动检测平台。

上述算法采用传统图像分割技术来检测钢化玻璃颗粒度,简单高效,但外部约束条件复杂,通常需要固定背景和光线等约束条件来解决碎片图像中的假边缘问题,以保证碎片的纹理清晰,便于边缘提取。随着深度学习理论的快速发展,基于卷积神经网络的图像分割技术被提出。2016年,J.Long等提出用于语义分割的全卷积网络(Fully Convolutional Networks,FCN)[7],创造性地将CNN中的全连接层转换为卷积层,实现了端到端的语义分割。同年,用于医学图像分割的U-net[8]网络被提出,采用对称U形结构和skip-connection上下文特征融合的方法,在医学图像分割任务中取得优异成绩。Zhao Hengshuang等构造了PSPNet(Pyramid Scene Parsing Network)[9],采用金字塔池化模块聚合不同尺度上下文信息,提高模型对局部、全局特征的感知能力。谷歌团队在DeepLab V3+[10]中延续采用DeepLab V3[11]中的ASPP+ (Atrous Spatial Pyramid Pooling Plus)模块,使用改进的X-ception[12]网络进行特征提取,压缩了模型的推理时间,并引入了encoder-decoder结构做进一步的多尺度特征融合。上述语义分割模型的特点都可以抽象为编码器-解码器结构。编码器一般包含一个主干特征提取网络[12-14],它负责将输入的图像进行下采样,提取图像不同尺度的特征,解码器将这部分特征融合并上采样恢复到原始图像大小。值得注意的是编码器通常会采用池化操作进行下采样。池化操作虽然有助于模型压缩、抑制过拟合,但会降低特征图分辨率,导致信息的丢失,这对于语义分割任务是不利的。与上述语义分割网络设计思路不同,Sun Ke等提出了采用并行重复融合多分辨率卷积的高分辨率网络HRNet (High-Resolution Network)[15]取得了Cityscapes数据集上SOTA(State of the Art)分割效果。由于钢化玻璃碎片图像中裂纹轮廓、形状、宽度都不具有规律性,细小裂纹特征极有可能在下采样中丢失,因此编码器-解码器网络并不适用于其颗粒度检测任务。

受到HRNet的启发,针对钢化玻璃颗粒度检测问题,本文提出一种以改进的高分辨率网络为核心算法的钢化玻璃颗粒度检测方法,利用该方法可以实现对钢化玻璃颗粒度端到端的检测。首先基于HRNet并行网络的思想,引入改进的ASPP+结构对HRNet网络进行重构,提出一种全高分辨率网络FHRNet (Full High-Resolution Network)。该网络继承了HRNet自始至终使主干特征图保持高分辨率的思想,利用改进的ASPP+结构中的空洞卷积组[16-17]提取感受野大小不同的特征信息,然后将其与前项特征融合得到语义更加丰富的特征信息。这样不仅保留了原图像目标的全部信息,还融合了前后序列特征,增强分割区域的特征信息,提升小目标检测与分割效果,在没有特定光线、背景等约束条件下,钢化玻璃颗粒度检测效能有较大提升。

1 基于FHRNet的钢化玻璃颗粒度检测方法

HRNet网络能同时提取多种分辨率的特征,不同分辨率特征对应图像中不同尺度的区域,而且特征间存在一定的互补性,有效组合这些特征可以提高图像分割的效果。借助于HRNet网络强大的表征能力,结合钢化玻璃碎片的特点,对HRNet网络进行改进。以引入残差模块的ASPP+结构为特征提取单元,用首尾相接的方式构造FHRNet分割网络用于钢化玻璃颗粒度的检测。

1.1 HRNet网络

HRNet通过交错卷积并行连接维持高分辨率,使不同分支之间的特征可以有效进行信息的交互融合,进而提取更全面的特征。HRNet网络强调网络的宽度,同一分支的分辨率不随深度变化而改变,一个典型的HRNet网络结构如图1所示。显然,HRNet高分辨率的主干网络中包含着一些低分辨率的特征,这在一定程度上增大了像素感受野并减小了模型的计算量,但由此造成的信息损失也非常明显。需要注意的是,HRNet为了减少GPU内存的占用和计算量,在网络开始的位置已经进行了2次下采样,实际输入HRNet主干网络的分辨率只有输入图像的四分之一,显然这种策略对于分割精度要求较高的钢化玻璃颗粒度检测任务是不友好的。

图1 典型的HRNet网络结构

1.2 FHRNet网络

FHRNet网络结构如图2所示。

图2 FHRNet结构

FHRNet继承了HRNet自始至终使主干特征图保持高分辨率的思想。但与HRNet不同的是,在网络的初始位置,FHRNet首先采用2组带填充的普通卷积对输入图像进行特征升维,此过程可以保证提取的特征和输入图像分辨率大小相同。同时,为保持高分辨率,降低信息损失,FHRNet采用贯穿式的特征提取方法,使推理预测过程和特征提取过程相融合。与HRNet不同,FHRNet除了在改进ASPP+中的image pooling使用了下采样层外,其他过程均没有下采样层,充分避免了信息的损失,减少了大量上采样过程,在一定意义上也能降低网络的复杂程度和模型参数量。FHRNet中引入若干改进的ASPP+模块来增加感受野大小,每个改进的ASPP+模块中都包含了一个采样率大小呈金字塔形的空洞卷积组,用以提取感受野大小不同的特征图。这些改进的ASPP+模块首尾相接,横向延伸组成了FHRNet的主体。根据任务的不同每个FHRNet结构中改进的ASPP+模块数量可能有所不同。

ASPP (Atrous Spatial Pyramid Pooling)是DeepLab V2[17]中基于空洞卷积设计的一种用于提取多尺度特征的结构,它使用4个核大小为3×3,采样率分别为{6,12,18,24}的空洞卷积来并行获取包含图像不同尺度上下文信息的特征,这些特征经过单独的分支处理后被融合进而得到语义信息更加丰富的特征图。ASPP结构如图3(a)所示。DeepLab V3 在ASPP的基础上通过改进得到ASPP+结构如图3(b)所示。在DeepLab V3中Liang-Chieh Chen等人发现当空洞卷积的采样率足够大时,只有卷积核中间的权重有效,空洞卷积会退化成一个1×1的卷积。因此ASPP+中将原始ASPP中采样率为24的空洞卷积用1×1卷积替换。ASPP+中的Image Pooling层则可以获取图像级别的上下文信息。另外ASPP+中引入的BN层可以加快网络的训练和收敛速度,防止梯度消失和梯度爆炸,避免过拟合。

(a)ASPP结构 (b)ASPP+结构

ASPP+结构的输入特征包含了感受野相对较小的特征,这部分特征往往表示的是图像中相对较小的细节,映射到钢化玻璃碎片分割任务中,这些细节包括碎片纹理特征、碎片几何特征和假边缘梯度特征以及这些特征组合的高维表示,因此经过ASPP+结构之后,这部分特征在后续的预测任务中有较大的参考价值。残差网络[14]不仅可以解决CNN网络深度过深引起的梯度弥散和网络退化问题,而且还能将不同层次的特征进行融合,进而增强网络对细小特征的感知能力,提升碎片和裂纹分割精度。

图4展示了传统神经网络和带有残差块的神经网络结构。图4(a)表示在传统神经网络中,输入特征x经过权重层(卷积层)后再通过一个非线性激活函数F(x)得到非线性变换后的特征,然后再将其传递给下一层网络。常用非线性激活函数有ReLU、Sigmoid、Tanh等,本文中的激活函数一并采用ReLU。图4(b)表示在残差网络中,将次权重层的输出与前权重层的输入相融合再通过非线性变换得到H(x)并传递到下一层。其中F(x)=H(x)-x表示为该残差块的残差。

(a)传统神经网络结构 (b)残差网络结构

改进的ASPP+结构合理地运用了残差块的网络结构,在加深网络深度的同时,使不同层次的特征之间产生交互,进而增加了网络的学习能力。其具体做法是将输入特征和ASPP+的输出特征做了通道上的concat融合操作,随后经过一个1×1的普通卷积进行通道维度的降维。需要注意的是原始的ASPP+结构中相邻的2个空洞卷积的采样率跨度较大,在钢化玻璃的碎片分割任务中并不适用,本文中一个改进的ASPP+结构的空洞卷积组采样率设置遵循以下2个原则:(1)采样率由上至下依次递增,空洞卷积组感受野呈现金字塔形状;(2)相邻两个空洞卷积采样率差值为1。一个典型的改进ASPP+结构如图5所示。为了表示简洁,经过image pooling层后特征的上采样过程并未在图5中体现。

图5 一个典型的改进的ASPP+结构

1.3 钢化玻璃颗粒度检测

为了实现端到端的钢化玻璃颗粒度检测,本文将检测过程分为待检测区域提取、碎片分割、颗粒度计算3个阶段。待检测区域提取和碎片分割都采用FHRNet完成分割任务,由于分割目标不同,分割模型的结构略有不同,分别使用FHRNet-p1和FHRNet-p2表示。颗粒度计算则使用图像轮廓原理统计碎片轮廓数量即为钢化玻璃颗粒度。完整的流程如图6所示。将采样图像输入FHRNet-p1后的分割结果与采样图像进行组合,通过适当旋转、裁剪和缩放得到待检测区域图像,将待检测区域图像有序拆分成若干互不相交的子图并逐一输入FHRNet-p2进行推理,然后将推理结果按序拼接成待检测区域的分割结果,最后将此分割结果简单滤波之后统计出满足限定要求的碎片轮廓数量即为该检测样本的颗粒度。

图6 钢化玻璃颗粒度检测流程

1.3.1 待检测区域提取

待检测区域提取阶段主要负责分割出原始图像中的待检测区域。根据现行国家标准GB 15763.2-2005《建筑用安全玻璃 第2部分:钢化玻璃》[18]规定颗粒度检测需要在被检测样本的任意50 mm×50 mm区域内进行。本文中待检测区域使用内边长为50 mm,外边长为56 mm的正方形黑色边框标记,标记样例如图7(a)所示。待检测区域的分割精度直接影响后续阶段的检测准确度,为了提高待检区域的分割精度,采用了结构如表1所示的FHRNet-p1网络。

表1 FHRNet-p1结构

该网络共有6个block组成,其中block_0的作用是特征升维,block_1~4分别对应4个改进的ASPP+模块,其作用是将模型的特征提取和推理过程相融合,表1中给出了block_1内部的参数细节,block_2~4与block_1保持一致,block_5负责最终的预测。其中,x、y分别表示输入图像和模型预测结果,ri表示block_i的输出特征,ri会被作为输入传递到block_i+1中,tij表示block_i中第j个分支的临时输出特征,Si是集合{ri-1,ti1,ti2,ti3,ti4,ti6,ti7}中元素的有序组合。为了简明扼要,block_0~4内所有普通卷积和空洞卷积后的BN层和激活层在表1中并未体现。实际情况中,分割准确度往往难以达到100%的理想效果,分割得到待检测区域的轮廓通常是不规则的封闭图形,为了便于裁剪,本文采用轮廓的最小外接矩形来近似替代待检测区域。由于图像在采样时成像设备拍摄角度的不确定性,待检测区域轮廓的最小外接矩形通常不是水平的,需要通过一定角度的旋转才能利用矩阵切片进行定向裁剪。

1.3.2 碎片分割

碎片分割阶段主要完成待检测区域内碎片的分割,为后续颗粒度计算提供支持。表2给出了FHRNet-p2的网络结构。表2中的一些参数说明参考1.3.1节。表2中的Si是集合{ri-1,ti1,ti2,ti3,ti4,ti5,ti7,ti8}中元素的有序组合。FHRNet-p2与FHRNet-p1相比减少了一个block模块,这是因为待检测区域分割任务中单个前景目标区域所占图像的比例较大,需要较大的感受野,而碎片分割任务中,单个碎片区域都普遍较小,需要的感受野也相对较小。由于不同样本在第一阶段提取的待检测区域图像尺寸往往不同,将待检测区域统一使用双线性插值法调整至1 024×1 024大小,然后在宽度和高度方向上分别进行4等分操作,得到16个256×256的子区域。这些子区域被顺序输入FHRNet-p2网络中得到有序的分割结果,最后这些分割结果按照相同的顺序依次拼接起来得到待检测区域内碎片的最终分割结果,该过程如图5中碎片分割阶段所示。在拼接子区域的分割结果时,由于图像边界区域的裂纹或碎片信息可能不完整,实际分割结果中边界区域往往存在错误噪声,在完成拼接操作后,需要对拼接结果进行一次核大小为5的中值滤波,然后将结果作为颗粒度计算阶段的输入。

表2 FHRNet-p2结构

1.3.3 颗粒度计算

经过前2个阶段的处理,得到待检测区域碎片分割结果的二值图像。采用轮廓统计法进行颗粒度计算。OpenCV内置的轮廓统计函数可以方便快捷地得到一副二值图像内的所有轮廓,但由于语义分割的本质是对像素点类别的概率估计,难免会有分错的情况,这些轮廓中往往存在着部分面积较小的噪声轮廓,为了精确提取碎片噪声,设定阈值t来过滤面积较小的噪声轮廓,得到最终的碎片轮廓,其数量即为该样本的颗粒度。经过大量样本的统计分析,得出t的经验值为34。

2 实验

2.1 实验环境与参数设置

本文中实验软硬件平台为基于CentOS 7.9.2009操作系统,中央处理器单元为Intel(R) Xeon(R) Silver 4214 CPU,搭载了NVIDIA RTX8000显卡,配备了64G内存,编程语言为Python3.6,使用torch1.4深度学习框架。模型参数细节方面,在待检测区域提取阶段和碎片分割阶段中使用2组不同的参数设置方案。其中,学习率均采用指数衰减策略进行更新。表3展示了FHRNet-p1和FHRNet-p2训练参数设置。

表3 模型训练主要参数

2.2 实验数据集

实验数据源于自主采集,采样设备为华为P30 Pro手机。一共采集带有模板标记的RGB图像2 305张,使用labelme工具标注图像。在待检测区域分割提取阶段,考虑到分割效果与处理速度,统一将图像处理为360×480。随机从2 305个样本中选择2 075个作为训练集,剩余230个样本作为交叉验证集。由于训练过程中数据集是随机乱序的,所以验证集在实验过程中可以充当测试集。在碎片分割阶段,随机从2 035个样本中选择100个,使用经过训练的FHRNet-p1网络对其进行待检测区域分割,并从原始图像中裁剪出对应待检测区域的RGB图像,然后使用labelme工具对其进行标注。随后将上述标注完成的100个待检测区域图像和标签使用最近邻插值法调整至1 024×1 024后再进行相同的随机裁剪,得到5 000个大小为256×256子区域作为碎片检测阶段分割玻璃碎片的数据集。从上述5 000个样本中随机选取4 500个作为碎片检测阶段的训练集,剩余500个作为交叉验证集。为增加数据的多样性,在训练FHRNet-p1和FHRNet-p2过程中使用了随机水平翻转、水平镜像和随机亮度3种数据增强方法。待检测区域提取阶段和碎片分割阶段数据标注方法如图7所示。

(a)待检测区域标记原图 (b) labelme标记待检测区域 (c)待检测区域标记标签

2.3 实验结果及对比

2.3.1 FHRNet-p1和FHRNet-p2的准确率和平均交并比变化曲线

为了对钢化玻璃待检测区域分割和碎片分割效果进行定量分析,采用精确度(Accuracy,ACC)和平均交并比(Mean Intersection over Union,mIoU)2种图像分割评价指标对2个模型进行评价。图8展示了FHRNet-p1和FHRNet-p2在训练集和验证集上的ACC和mIoU的变化曲线。分析绘图数据可知,FHRNet-p1经过70次迭代后在训练集和验证集上的ACC和mIoU变化都趋于平缓,在验证集上FHRNet-p1的最高ACC和mIoU分别达到99.37%和0.986 7。FHRNet-p2经过50次迭代后在训练集和验证集上的ACC和mIoU变化都趋于平缓。在验证集上FHRNet-p2的最高ACC和mIoU分别达到99.94%和0.998 7。综合分析,2个模型的分割效果都比较理想,为后续的颗粒度计算碎片轮廓数量统计奠定了较好基础。

(a)FHRNet-p1 ACC变化 (b) FHRNet-p1 mIoU变化

2.3.2 与其他模型的对比实验

为了检验本文所提算法的综合表现,将FHRNet-p1和FHRNet-p2与FCN-8s[7]模型、U-net模型、DeepLab V3+模型、PSPNet模型在ACC、mIoU、模型计算量(Giga Floating Point of Operations,GFLOPs)和参数量上进行了对比,结果如表4所示。约定S1和S2分别表示待检测区域提取和碎片分割任务,统计模型计算量时S1和S2的输入图像尺寸分别为360×480和256×256。

表4 与其他模型的对比实验

由表4可以看出:本文提出的FHRNet-p1和FHRNet-p2在S1和S2任务中准确度和平均交并比都优于其他模型,并且由于FHRNet没有主干特征提取网络,所以参数量也远远小于其他模型。但由于FHRNet模型在每一步运算中特征图大小都和输入图像保持一致,模型计算量同输入图像大小成密切相关,FHRNet-p1计算量方面稍有劣势。

2.3.3 与人工检测结果的对比实验

为了证明本文算法在解决钢化玻璃颗粒度检测问题上的有效性,随机选择了10块长160 cm、宽80 cm、厚5 mm的钢化玻璃,在对其进行冲击爆破后的2 min内,随机采集了20幅无特殊光照和背景并带有模板标记的原始图像,使用经过训练的FHRNet-p1和FHRNet-p2网络对待检测区域、碎片进行分割,然后利用轮廓相关理论对分割结果进行碎片轮廓提取,得到20组样本的检测结果。随后邀请了2名经验丰富的检验员对20个样本分别进行了5次人工读数,将检验的平均值作为人工读数结果。人工读数与本文提出的算法检测结果见表5。

表5 人工检测与算法检测对比

由表5可以看出算法检测结果的误差在±4%的范围以内,检测效果比较理想。从经济实用性方面分析,在不考虑检验员工作状态的前提下,2名检验员经过采样、读数过程检测一个样本的平均时间为3.5 min。本文所提算法经过一次采样、模型预测过程耗时约11 s,其中人工采样占据检测时间的96%左右,算法实际推理时间约为0.45 s。从单个样本检测效率分析,算法检测比人工检测速度快约19倍。在实际应用中,计算机通常采用批处理的方式单次预测多个样本,其处理速度远快于人工检测速度。因此,利用本文提出的算法进行钢化玻璃颗粒度检测可以节省大量的人力和物力,具有较好的经济实用性。

为了验证1.3.3节过滤较小面积轮廓所采用的经验阈值t取值的合理性。在t取不同值的情况下,对比了上述20个样本的人工检测结果和算法检测结果如图9所示,其中MAE (Mean Absolute Error)为平均绝对误差,其计算公式为:

图9 t取不同值的平均绝对误差

(1)

式中:X为20个样本的集合,m为样本数,h(xi)为使用本文所提算法对第i个样本的检测结果,yi表示人工检测结果。从图9可以看出在t≤34时,MAE呈现单调递减趋势,当t>34时,MAE呈现单调递增趋势,因此t取34时检测精度较高。

3 结论

结合ASPP+结构和HRNet模型提出了一种用于语义分割的全高分辨率模型FHRNet,并将其应用于钢化玻璃颗粒度检测问题。FHRNet通过使用改进的ASPP+结构避免了常见的语义分割网络中下采样过程出现信息损失的现象,串联改进的ASPP+结构设计继承了HRNet特征图始终保持高分辨率的思想。与现有的大多数网络相比,FHRNet具有优异分割效果的同时,能极大地压缩模型参数量。基于FHRNet网络的钢化玻璃颗粒度检测方法将检测误差控制在±4%以内,基本满足了工业检测要求,有效提升了检测效率。

猜你喜欢
钢化玻璃卷积颗粒
玻璃
管式太阳能集热器的颗粒换热模拟
基于3D-Winograd的快速卷积算法设计及FPGA实现
卷积神经网络的分析与设计
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法
基于近场散射的颗粒粒径分布测量
钢化玻璃菜板
镇咳宁颗粒的质量标准研究
Huber集团的新型颗粒捕集器再生系统