基于Halcon 及VS 的动车组制动闸片厚度自动识别模块

2021-03-03 08:26谢克宇
铁路计算机应用 2021年2期
关键词:自动识别拖车动车

谢克宇

(中铁第五勘察设计院集团有限公司 东北院,哈尔滨 150006)

动车组旅客列车是指时速在200~300 km 之间的列车。由于动车组运行速度快,在制动时对闸片的磨损非常严重,曾出现因闸片过薄,导致在制动时整个车轮呈红热的不安全状态。制动闸片的厚度,直接影响动车组的运行安全。由于制动闸片均分布在车辆底部,利用人工检测,存在效率低下、漏检和误判的情况;利用检测装置[1]检测,前期需投入大量检测装置,后期需更新维护;利用测量仪[2]检测,除需投入测量仪、更新维护外,还有使用次数的限制。针对上述情况,本文利用Halcon[3]机器视觉软件及VS[4]程序开发环境,开发了一个动车组制动闸片厚度自动识别模块,该模块可实现动车组通过时自动检测,对过薄的闸片进行自动报警,以提醒检修人员及时更换,避免不安全状态发生,对确保动车安全运行,具有十分重要的意义。

1 动车组制动闸片厚度自动识别模块

动车组制动闸片厚度自动识别模块是利用Halcon 及VS2010 软件中的图像处理方法和VC++语言编程实现的。动车组的型号有很多,本文对车型CRH5A 和CRH380B 进行了研究及大量测试,以闸片位置比较复杂的CRH380B 车型为例进行介绍。

该模块根据线阵相机拍摄的动车组底部图片、磁钢采集的轴距信息及识别的车号信息,自动对所有闸片进行厚度计算并报警。该模块的工作流程,如图1 所示。

1.1 拼图

图1 动车组制动闸片厚度自动识别模块工作流程

动车组的车辆分为动车和拖车。装配有驱动车轮的车辆是动车,无驱动装置车辆是拖车。在实际的动车编组中,动车车辆和拖车车辆是根据车号来区分的。动车车辆底部有2 个制动盘,拖车车辆底部有3 个制动盘。根据线阵相机L1~L10 通道拍摄部位,L4 拍摄的是整个车辆底部,分辨率为1 400×2 048;L9、L10 分别拍摄车辆底部的两侧,分辨率均为1 400×1 024。由于L4 与L9、L10 均有拍摄重合的部分,因此,只需对L4 拍摄的拖车中间部位闸片、L9 和L10 拍摄的动车拖车闸片进行厚度识别。

本文闸片厚度自动识别模块是根据动车组通过时,线阵相机拍摄的车辆底部图片、磁钢采集的轴距信息及车号自动识别模块识别的车号信息,结合动车、拖车轴偏移距离,进行轴距校正,再对校正的轴距邻近的2 张图片进行拼图,根据闸片所在部位特点,截取2 000×750 像素大小的图片进行处理。本文仅以处理情况复杂且具有代表性的L9 通道相机拍摄的拖车底部图像为例,如图2 所示。

图2 L9 拍摄的拖车底部拼图截图

1.2 图像预处理

在现场环境影响下,线阵相机所拍摄的图像中存在大量的噪声干扰信息,对闸片厚度的计算有较大的影响,因此为去除噪声干扰,需对线阵相机拍摄的图片进行图像预处理。

图像预处理[5]可以有效地提高图像特征提取、分割、匹配和识别的可靠性,是图像处理前必不可少的步骤。在模型定位之前,先调用mean_image 对拼图截图进行均值滤波[6],调用zoom_image_factor 对拼图截图进行按比例缩小,以提高图像处理速度,得到500×188 像素大小的图片,如图3 所示。

图3 L9 拖车拼图截图的图像预处理

1.3 模型定位

为保证定位结果的准确性,本文采用2 次定位的模式,并调用find_shape_model 进行模型定位[7]。若第1 次定位成功,则调用gen_rectangle1 生成矩形、reduce_domain[8]获取新的标记区域及crop_domain 对图像的尺寸进行裁剪,从而截取含有制动闸片的图片,并进行第2 次模型定位;反之,则记录第1 次定位失败,并返回。若第2 次定位成功,同样调用上述3 个算子,截取闸片部位图片并保存;反之,则记录第2 次定位失败,并返回。两次模型定位截取的图片,分别如图4~图5 所示。

图4 拖车L9 上、下闸片第1 次定位图

图5 拖车L9 上、下闸片第2 次定位图

1.4 闸片厚度计算

对第2 次定位截取的闸片部位图片,依次调用mean_image、 dyn_threshold、 connection[9]及region_to_bin 算子,进行均值滤波、动态阈值分割、生成区域以及计算区域的二值图像[10],再调用累计概率霍夫变换HoughLinesP[11]计算该二值图像中的直线。

累计概率霍夫变换计算后,会得到很多条直线。

(1)根据已知二值图像的大小及闸片位置特征,利用纵坐标信息,将该二值图像分成上、下2 个部分;

(2)分别计算上、下2 个部分的角度在173°~180°之间且长度最长的直线,从而得到目标上、下直线;

(3)分别计算目标上、下直线的纵坐标均值,并作上、下均值的差值计算,该差值就是闸片厚度。

同时,调用算子line 在闸片截图上画出上、下直线的位置并保存,从而得到闸片厚度画线图,如图6 所示。

图6 拖车L9 上、下闸片厚度画线图

1.5 闸片厚度自动报警

根据线阵相机拍摄的图像像素信息特征及经验总结,本文将闸片厚度的阈值设置为15 个像素点,当闸片厚度小于15 个像素点时,画出该闸片所在相机拍摄的原图中的位置,保存并自动报警。

该CRH380B 动车组的报警位置图,如图7 所示,对应的闸片截图及闸片厚度画线图,如图8 所示。

图7 报警闸片位置图

图8 报警闸片截图及闸片厚度画线图

2 报警结果准确性验证

为验证报警结果的准确性,将该报警原图与其后张图像进行拼接,截取制动闸片部位,作为原始图。将原始图与保存的报警闸片截图、以及随机选取的2 张闸片截图,分别进行特征点匹配[12]。依次调用SurfFeatureDetector、FlannBasedMatcher、SurfDescriptorExtractor 及drawMatches 算子,进行特征点检测、计算特征点及特征点匹配,并画出匹配的特征点。匹配结果,如图9 所示,从左至右依次是闸片截图(a)、随机闸片截图(b)、随机闸片截图(c)。

图9 特征点匹配结果

由图9 可见,报警闸片与原始图的特征点完全匹配;而非报警闸片,虽与报警闸片几乎只有厚度之别,匹配结果却大相径庭,充分验证了报警结果的准确性。

3 结束语

本文闸片自动识别模块的检测速度非常快,即动车组通过后,1 min 内即可完成检测并自动报警,远超人工检测速度,同时保证了检测结果的可靠性。通过对150 多列动车组的测试和验证,证明了该模块具有很好的鲁棒性。

但是,该模块的闸片厚度阈值是统一设置的,应该根据动车、拖车及闸片位置特点进行动态设置;同时,该模块仅对动车组CRH380B 和CRH5A 车型进行了大量测试和验证,下一步将完善车型种类,提高其应用范围。

目前,动车组已成为人们出行的首选交通工具。若动车组制动闸片厚度过薄,在动车组制动时,将直接影响整个动车组的安全,因此,对闸片厚度进行自动识别的进一步研究,具有实际应用价值。

猜你喜欢
自动识别拖车动车
基于数据挖掘的船舶航迹自动识别系统
基于VR技术的X射线图像安检危险品自动识别
山西11个地级市实现动车全覆盖
坐上动车去西藏
船舶自动识别系统对船舶救助的影响
一种基于卷积神经网络的人脸表情自动识别方法
乐!乘动车,看桂林
亲子运动拖车
不值得帮助的家伙
儿童拖车