基于YOLOv3-tiny的列车轮对踏面缺陷定位与测量方法

2022-05-24 02:01金楷荣王俊平陈胜蓝
控制与信息技术 2022年2期
关键词:傅里叶算子边缘

金楷荣,王俊平,陈胜蓝

(株洲中车时代电气股份有限公司,湖南 株洲 412001)

0 引言

轮对作为列车走行部的关键部件,在钢轨上长时间的运行容易导致踏面发生损伤,将直接影响列车运行的安全性。

国内外轮对检测方法可概括为两类:静态检测和动态检测[1]。目前国内车辆段对于列车轮对踏面的损伤检测,大多数是基于人工的静态检测,存在效率低、实时性差以及耗时较长等明显缺陷。动态检测是通过在轨旁安装的传感器、补光装置等设备,在列车通过时采集轮对信息并完成检测,在效率和实时性上具有较大优势。各国相关研究人员分别提出了振动加速度法[2-4]、超声法[5-7]和图像法等动态检测技术。其中,图像法因安装简单、非接触式、展示直观以及追溯和回放方便等优点,具有较大的发展空间。文献[8-9]利用平稳小波和Canny算子实现对缺陷的检测和定位。文献[10]利用灰度共生矩阵和反向传播(back propagation,BP)神经网络对缺陷进行分类,能够准确识别出擦伤区域。但是上述方法鲁棒性较差,在图像光照不均匀或踏面表面生锈等极端情况下,检测效果不佳。这是因为Canny算子、灰度共生矩阵等特征都是人工设定的。近年来,基于深度学习的目标检测算法在不断发展,目标检测算法按照设计思想的差异性可分为两类,一类是以区域卷积神经网络(regionbased convolutional neural network,R-CNN)[11]、Faster R-CNN[12]等为代表的Two-step算法,另一类是以单步检测(single shot detection,SSD)[13]、YOLO[14]为代表的One-step算法。文献[15]采用Faster R-CNN实现了踏面二维图像缺陷检测和分类,检出率能够达到85%。文献[16]提出一种基于改进VGG16模型的踏面检测算法,有效降低了推理计算量。文献[17]提出了一种基于Canny-YOLOv3的踏面损伤检测方法,其首先通过Canny算子分割出踏面区域,再采用YOLOv3算法检测出踏面区域的损伤位置。

上述深度学习算法都实现了踏面缺陷的检出,但检测算法本身不论是对大目标(人、车、建筑物等)还是小目标(车牌、螺栓、缺陷等),检测框尺寸都会出现过大或者过小的情况。实际上,目前国内的车辆检修段大都会根据长度对缺陷进行分级并执行不同的修理计划。针对该问题,本文提出了一种轮对缺陷的定位与测量算法,主要技术思路如下:(1)基于YOLOv3-tiny算法模型和OpenVINO组件实现低CPU消耗的轮对踏面缺陷的粗定位;(2)得到感兴趣区域(region of interest,ROI)区域后,利用传统的图像处理方法进行尺寸测量并优化检测框。

1 踏面缺陷检测问题描述

列车轮对的检测棚通常建造在列车入库位置的前方,在列车慢速通过的过程中,轨道两旁的8个可见光相机和8个补光装置被依次触发,以采集轮对图像信息。动态采集的图像会存在一定的拖影;同时由于补光装置和轮对的新旧程度不同,图像中也会出现不同程度的反光现象。踏面缺陷主要包括擦伤和剥离,经过预处理后的图像如图1所示。

图1 轮对踏面缺陷样例Fig.1 Example of wheel tread defect

1.1 缺陷定位算法

YOLO算法发展迅速,版本不断更迭,其中YOLOv3版本是目前公认综合性能最好的。本文采用的YOLOv3-tiny算法是YOLOv3的轻量级版本,二者的主要区别在于特征提取网络的深度和YOLO层尺度。YOLOv3-tiny网络模型是由13个卷积层和6个池化层组成,前5个池化层的步长为2,剩余一个池化层步长为1。在卷积网络中,输入的图片尺寸决定了输出图片尺寸,浅层网络容易表征小目标物体,深层网络容易表征大目标物体。YOLOv3-tiny根据该种思想,采用两尺度预测方式,使用尺度为13×13和26×26的两个YOLO输出层。YOLOv3-tiny网络模型结构如图2所示。

图2 YOLOv3-tiny结构Fig.2 Structure of YOLOv3-tiny

1.1.1 网络训练

不同于人脸识别或者车辆检测等场景下的检测,轮对踏面缺陷检测无法提供深度学习所需的数据量。为了避免出现过拟合现象,采用数据增强技术对原始样本进行扩充,即对原图进行平移、翻转、旋转、缩放以及亮度增强等操作。图像增强效果如图3所示。

图3 图像增强效果Fig.3 Image enhancement effect

从扩充后的样本集中随机选择600张图像用于模型评估,其中500张作为训练样本,100张作为测试样本。每个检测器只检测缺陷,故将类别数和滤波器filter数分别设置为1和18。训练参数如表1所示。

表1 训练参数Tab.1 Training parameters

1.1.2 评价指标

为了分析定位模型的性能,将平均精度和平均交并比(average IoU)作为衡量指标。Tp和Fn分别表示正样本被预测正确和错误的数量,Tn和Fp分别表示负样本被预测正确和错误的数量。具体评价指标如下:

(1)召回率(RRecall)。其为在实际为正的样本中被预测为正样本的概率,计算公式为

(2)精确率(PPrecision)。在检测为正样本的样本中,实际也为正样本的样本所占比例,其计算公式为

(3)平均精度(AP)。其能够直观反映检测正确的样本比例,计算公式为

为了更加直观地显示,平均精度经常使用由PPrecision-RRecall曲线和坐标轴围成的面积表示。

(4)平均交并比。其为检测样本交并比IoU的平均值,IoU为预测检测框BP、实际检测框Bgt的交集面积和并集面积之比,见式(4)。很明显,IoU值越大,说明重合度越高,检测框定位精度越高。

1.2 尺寸测量算法

为了优化定位模型给出的检测框尺寸,本文基于傅里叶变换提出了尺寸测量算法。

1.2.1 傅里叶变换

在图像处理中,时域和频域下的图像表示完全不同的信息:在时域下,数字图像表示二维空间矩形区域上的离散函数;在频域下,图像表现出来的是频率的分布、各频率的相位和比例[18]。通过频域和时域滤波都能够实现图像增强。傅里叶变换提供了一种从空域到频域自由转换的方法,其将图像从灰度分布转化到频率分布上进行分析。下面给出二维离散傅里叶变换(DFT)[19]。

f(x,y)是一副M×N图像,对应的二维傅里叶变换F(u,v)被定义为

式中:e-j2π(ux/M+vy/N)和 ej2π(ux/M+vy/N)分别为正变换核和逆变换核;x,y为空间域采集值;F(u,v)为f(x,y)的频域图像谱,是两个实频率变量u,v的复值函数,其中频率u对应x轴,频率v对应y轴;u,v为频域采样值,u=0,1,2,…,M-1,v=0,1,2,…,N-1。

傅里叶变换的振幅谱F(u,v)、相位谱φ(u,v)和能量谱E(u,v)分别为

式中:Re(u,v),Im(u,v)——F(u,v)的实部和虚部。

二维离散傅里叶变换因计算量较大而限制了其在工程上的应用。快速傅里叶变换(FFT)在傅里叶变换的基础上,消除了重复或者多余的运算,大大提高了计算效率。当图像的宽度或者高度为2的幂时,直接采用FFT进行变换;否则,需要先对图像进行填充。

1.2.2 带阻滤波

对频域下的图像处理而言,高频分量表示突变部分,其包含边缘信息和各种噪声;低频分量表示灰度变化平缓的部分,即图像背景。但由于踏面缺陷的纹理较为复杂,边缘交错分布,单一的低通和高通滤波不能满足要求。低通滤波虽能滤除噪声,但也会平滑缺陷边缘噪声;高通滤波则会在增强边缘噪声的同时放大噪声的干扰。大量的试验结果证明[20],带阻滤波的方法能够在抑制噪声的基础上增强缺陷边缘的对比度。图像滤波的数学表达式如下:

式中:H(u,v)——滤波器函数;G(u,v)——经过滤波后的频域。

带阻滤波器函数表达式为

式中:Dl,Dh——截止频率;n——滤波器的阶数;D(u,v)——点(u,v)到傅里叶频率原点的距离。

本文利用开源机器视觉软件Halcon制作带阻滤波器,通过对比多组参数(Sigma1,Sigma2)的滤波效果后,选择(8,1)作为滤波器参数。

1.2.3 算法流程

本文测量算法主要采用傅里叶变换、阈值分割及最小外接矩形求解等方法,效果如图4所示。该测量算法的主要步骤如下:

图4 缺陷测量过程Fig.4 Process of defect measurement

(1)获取感兴趣区域ROI。在检测框周围分别添加20个像素的宽度后进行裁剪。

(2)获取初步的缺陷边缘信息。通过傅里叶变换,将ROI区域变换到频域,构建合适的带阻滤波器进行卷积。

(3)获取包含边缘的连通域。进行阈值分割,保留亮度较高(前60%)的部分。

(5)计算长和宽。针对最终保留的边缘,求解最小外接矩形。

2 实验结果和分析

本文的踏面缺陷检测实验主要包括定位和测量两个实验,实验环境具体如下:

(1)系统及硬件,采用联想Thinkpad P53电脑和Windows 10操作系统,显卡为Nvidia Quadro T2000;

(2)软件及生存环境,训练框架为DarkNet、CUDA 10.0和cuDNN7.4.1,部署框架为 VS2017、OpenVINO2019R3和OpenCV4.4。

2.1 缺陷定位实验

为了评价YOLOv3-tiny模型性能,选择目前综合性能很好的YOLOv3模型进行对比,图5示出IoU阈值0.5下的精确率-召回率(PPrecision-RRecall)曲线,简称“PR曲线”。表2给出了两种模型的AP、平均IoU和置信度为0.5时的RRecall。

图5 PR曲线(IoU阈值为0.5)Fig.5 PR curves(IoU threshold is 0.5)

表2 两种模型的AP和平均IoUTab.2 APand averageIoUfor both models

对于一个优秀的检测器,准确率会随着召回率的提高缓慢下降,曲线会尽可能地往右上角延伸,即PR曲线包含的面积越大,检测性能越好。从图5可以看出,YOLOv3-tiny和YOLOv3两个模型的PR曲线比较接近,YOLOv3-tiny在召回率为0.5时开始下降,在0.75左右开始急剧下降,AP值为89.4%,对比模型YOLOv3的AP值为91.5%。模型YOLOv3-tiny作为一个简化版的YOLOv3,虽然在精度方面略有下降,但能够满足缺陷检测的要求[17,21],并且在速度方面具有一定的优势。

图6示出缺陷定位实验的效果图,并把检测到的缺陷放大展示出来。可以看出,图中部分检测框尺寸偏大。

图6 定位实验效果Fig.6 Performance of positioning experiment

为了降低程序在推理过程中的CPU消耗,采用OpenVINO组件进行部署。表3示出直接推理和使用OpenVINO组件进行推理的测试结果。

表3 两种部署方式的CPU消耗情况Tab.3 CPU consumption of the two deployment methods

可见,使用OpenVINO组件部署深度学习模型能够大幅度地降低推理过程中的CPU消耗,这是因为Intel公司的硬件能够加速读取描述神经网络拓扑结构的.xml文件和储存模型权重参数的.bin文件。

2.2 尺寸测量实验

缺陷定位实验的检测框尺寸难免会出现偏差,因此需利用尺寸测量算法对其进行优化,使最终的检测框更贴合缺陷边缘。

2.2.1 边缘检测算法对比

踏面缺陷测量的关键点是边缘提取的准确性,边缘是整个图像中灰度变化最为剧烈的点的集合。目前在空间域进行边缘检测中比较常见的算子有很多,如Canny算子、Soble算子、拉普拉斯算子和Roberts算子等。此外,在时域下对图像进行滤波,也能够实现边缘检测。各个边缘检测算子效果如图7所示。拉普拉斯算子、Roberts算子和Soble算子提出的边缘强度太过微弱。Canny算子只能提取出部分边缘。Kirsch算子的提取效果和傅里叶变换方法的效果较为接近,不同的是Kirsch算子对噪声比较敏感,对后期的边缘正确提取会造成一定的影响。

图7 各个边缘检测算子效果Fig.7 Performance of each edge detection operator

2.2.2 算法效果

各个缺陷形态差异大,边缘的变化情况也有很大区别。本文按照边缘是否清晰将缺陷分为两类:

(1)第一类(类别1)的缺陷,形状相对规则,边缘明显,通过分割后的连通域个数会相对较少,便于分析。

(2)第二类(类别2)的缺陷,磨损情况复杂,各种小的损伤分布在主缺陷区域附近,缺陷边缘不清晰;同时位于踏面边缘的缺陷还存在一定的反光现象,给边缘提取和分割造成较大的难度。

两类缺陷的测量效果示例分别如图8和图9所示。

图8 缺陷测量效果(类别1)Fig.8 Effects of defect measurement(category 1)

图9 缺陷测量效果(类别2)Fig.9 Effects of defect measurement(category 2)

对于缺陷类别1,所得到的缺陷最小外接矩形框相比定位算法的检测框更加准确。对于缺陷类别2,由于踏面缺陷情况复杂,尽管对分割后的区域进行了筛选,但仍保留了部分错误区域,效果欠佳。对于该种情况,使用定位实验中的检测框作为最小外接矩形框。从上述实验不难看出,本文所提缺陷测量算法能够更加准确地将缺陷边缘和大致形状提取出来,进一步实现缺陷位置的精确定位。图10示出检测框优化后的效果图,可以看出,优化前的检测框尺寸稍微偏大,优化后的检测框与缺陷边缘贴合更好,能够更加精确地表示缺陷的实际尺寸。

图10 检测框优化效果Fig.10 Optimization effect of detection frame

针对100个测试样本的132个缺陷,在定位实验的基础上进行了缺陷尺寸测量。其中,42个缺陷的检测框较为准确,剩余90个缺陷的检测框尺寸存在一定偏差,实验成功对其中74个检测框进行优化,具体情况如表4所示。

表4 检测框尺寸优化情况Tab.4 Optimization of bounding box size

从表4的结果可以看出,本文所提缺陷检测算法能够有效地对定位实验中大部分检测框进行优化,从而获得更加精确的缺陷尺寸。优化失败的原因是因为部分缺陷形状过于复杂,同时存在一定的反光情况。对于优化失败的情况,本文使用定位实验的检测框作为最终检测框。

3 结语

针对基于深度学习模型的踏面缺陷检测框尺寸不够准确的问题,本文提出一种融合YOLOv3-tiny算法和传统图像算法的踏面缺陷定位与测量方法,并通过OpenVINO组件对模型进行部署,实现了对踏面缺陷的精确检测。针对已有的轮对踏面样本集,在定位实验中,YOLOv3-tiny的平均精度为89.4%,与YOLOv3模型精度较为接近;在尺寸测量实验中,能够对90个检测框中的74个进行优化。同时,采用OpenVINO组件部署后,CPU的消耗率从60%降低至10%以下,大大减轻了工控机CPU的计算负担。但对于反光严重、形状复杂的缺陷,采用本文方法尚难以实现精确测量。因此,后续将继续研究更优的轮对缺陷尺寸测量算法。

猜你喜欢
傅里叶算子边缘
一种傅里叶域海量数据高速谱聚类方法
构造Daubechies小波的一些注记
关于傅里叶变换教学中的拓展
法国数学家、物理学家傅里叶
Domestication or Foreignization:A Cultural Choice
QK空间上的叠加算子
一张图看懂边缘计算
逼近论中的收敛性估计
在边缘寻找自我
走在边缘