基于OpenCV 的地铁故障检测机器人
2022-09-14裴小辉孙嘉俊康征征孙千祎
裴小辉,孙嘉俊,康征征,孙千祎,王 锐*
(石家庄铁道大学,河北 石家庄 050043)
1 系统的功能要求
现阶段地铁车辆的检修主要是利用传统的人工作业,工作繁重,工作强度大,影响维修人员身体健康,因此也影响到检修的质量,使检修的可靠性降低。检修人员也会受检修环境的限制,难以介入检修[1]。利用检修视觉机器人可多方位、精确地观察检测[2],极大地提高了检修效率,同时降低人工成本。
2 系统实现方案
2.1 机械结构底盘的设计与搭建
初始建模采取四轮驱动、两轮从动的方式,车身宽度大约为沟道的1/3~2/3。利用Solidworks 进行虚拟模型搭建,对机械结构进行了较为全面的分析和设计。出于对空间地形的考虑(掉头不易,空间狭小等),选择采用麦克纳姆轮车轮,应用较为广泛的类似与麦弗逊悬挂来缓冲整个车体压力。前轮的两轮共用型悬挂,该悬挂先将两个前轮连接在一起,然后通过螺栓连接到另一侧的悬挂一体箱上,悬挂一体箱又由两个连接到车身底盘之上,构成前轮的独特悬挂,见图1。
图1 3D 模型
2.2 机械臂设计
机械臂采用eye in hand 结构,摄像头在机械臂的最前方,开始两个摄像头会以固定的姿态识别到轮对轴,使用单目测距,当达到设定值时,会以此时的坐标作为起始坐标。由于本项目所使用的摄像头不同,且双目摄像头计算较为复杂,因此暂时使用单目测距,后续将升级为双目测距。
图2 实物模型
2.3 逆运动学应用
正运动学分析是通过已知关节的角度,解算出末端执行器的运动学方程[3]。而逆运动学研究的问题是,已知末端执行器的运动学方程或者位姿,解算出各关节对应的姿态,逆运动学最基本的思路,是将正运动学反过来,对于机械臂而言,就是已知末端执行器的位置和朝向,求每个关节的角度。由于机械臂的三维运动较为复杂,这里对模型进行精简,去掉下方云台的旋转关节,只观察上方机械臂部分,因此可以在二维的平面上进行分析。
图3 逆运动学坐标
其中:θ1,θ2是各个关节的角度;未知量P(x,y)是末端执行器的位置;x 和y 是在OXY 平面的坐标;θ3是末端执行器与水平面的夹角。
通过同样的方法可求得θ2,这样就完成了逆运动学的计算,最终有2 个正确的解,如图所示,两解中取虚线解,此解关节受力较小。
2.4 OpenCV 的视觉处理
进行防松线检测和裂缝检测时,通过腐蚀、膨胀、高斯模糊、高斯滤波和梯度运算等函数综合应用实现初步处理,使图像呈现较为理想的状态,其中通过Canny 函数算法对其进行进一步处理,此时再应用相关的角度和面积计算进行螺栓松动检测和裂缝检测[4]。
2.4.1 HSV 的概念 数字化的图像用RGB 空间与HSV 空间来描述图像,HSV 空间比RGB 空间更能直观地将图像色彩的特点分离开展示,如图像色彩的色调、鲜艳和明暗,在图像处理中使用较为广泛,彩色图像一般为三通道,分别对应HSV 空间H,S,V3 条通道,图像处理过程中通过对各个像素点H,S,V3 条通道进行赋值使得图像呈现出目标效果,同时也便于追踪颜色。
常用于分割指定颜色的物体。HSV 由3 部分组成,见图4。
图4 颜色空间模型
(1) H 代表色调,H 通道的数值表现为角度数值,范围为0~360°,不同的角度数值表示不同的色调,红,黄,绿,青,蓝,紫数值分别为0°、60°、120°、180°、240°、300°。
(2)S 代表饱和度,范围为0~100%,饱和度的取值越高,代表图像颜色色彩组合中光谱色的占比越大。白光占比较小表示颜色接近光谱色的程度。饱和度高,颜色深而鲜艳。其中光谱色的白光成分为0 时,饱和度达到最高。
(3)V 代表明度,即颜色的明暗,范围0~100%,其中取值0 为黑色,取值100%为白色,对于不同类型的颜色,影响明度的因素也不同。对于光源色,明度值与发光体的光亮度有关;对于物体色,明度值与物体的透射比或反射比有关。
HSV 颜色空间模型:
2.4.2 识别原理 防松线识别流程见图5。(1)高斯滤波使图片模糊,减小图像噪点。
图5 操作流程
(2)将RGB 模型转换为HSV 模型,RGB 模型适宜显示,但却并不适宜作为颜色识别的模型。HSV 更加符合人眼的感受,因此将其作为颜色识别的模型。由于HSV 模型颜色识别减少了对环境的依赖,这将在很大程度上提高识别的鲁棒性。
(3)设置阈值,去除背景,保留所设置的颜色。
(4)使用开运算,再进行腐蚀与膨胀的操作,移除图像中带有的噪声,此处主要是针对图像中的斑点噪音进行处理,消除噪声后识别出目标区域,提取图像中的红色区域。
(5)对此时的图像进行轮廓处理操作,并将一些多余杂乱边框消除。
(6)对所提取轮廓在图像绘制最小外接矩形,并标出中心点,同时计算相邻区域的角度差,最后通过每一对区域的角度来判断是否对齐。
裂纹识别流程见图6。
图6 识别流程
(1)图像灰度化。
(2)增加对比度。
(3)Canny 边缘检测。
(4)用形态学连接临近裂缝。
(5)提取连通域,删除裂缝区域意外的噪声。
(6)提取每个连通域骨架,并测量连通区域长度和宽度。
2.5 函数应用
2.5.1 腐蚀函数 用erode(s,k,i)表示腐蚀函数,其中参数s 表示处理对象,即输入图像;参数k 表示进行图像处理中卷积核的大小;参数i 表示迭代次数。
原理:定义一个卷积核,对待处理图像的每个像素点进行卷积操作,将卷积值为0 的像素点赋值为0。
2.5.2 膨胀函数 用dilate(s,k,i)表示膨胀函数,其中参数s 表示处理对象,即输入图像;参数k 表示进行图像处理中卷积核的大小;参数i 表示迭代次数。
原理:定义一个卷积核,对待处理图像的每个像素点进行卷积操作,并与每个像素点进行与操作,将卷积值为1 的像素点赋值为1。
2.5.3 梯度运算函数 用morphologyEx(s,o,k)表示梯度运算函数,其中参数s 表示待处理的图片;参数o 表示进行变化的方式;参数k 表示进行图像处理中卷积核的大小。
原理:将膨胀以后的图像与腐蚀后的图像进行相减操作,提取出目标边缘轮廓。
2.5.4 高斯模糊 用GaussianBlur(s,d,k,sX)表示高斯模糊,其中参数s 表示待处理的图片;参数d 表示处理后的图片;参数k 表示进行图像处理中内核的大小;参数sX 表示类型变量double 表示X 方向上的高斯核标准差(模糊程度)。
原理:定义一个卷积核,对待处理图像的每个像素点进行卷积操作,用邻域内像素的加权平均灰度值去替代模板中心像素点的值。
2.5.5 Canny 边缘提取 Canny(s, d, double t1, double t2),其中参数s 表示待处理的图片;参数d 表示处理后的图片;参数t1,t2为函数人为设定的两个阀值。
(1)图片经过高斯函数处理,消除图像噪声,目的是提取图像强度梯度。
(2)非极大抑制。此时图像提取的轮廓较模糊,非极大抑制使得轮廓更加清晰,取得每个像素点的强度极大值保留,消除其他数值。将每个像素点得到梯度 方 向 近 似 取 值 , 取 值 范 围 为(0,45,90,135,180,225,270,315)。将每个像素点与其对应梯度方向正负方向的梯度强度进行比较。如果此像素点梯度强度较大则保留,否则赋值为0。
(3)双阈值。此时处理后的图像中仍存在许多的噪声。Canny 算法的核心为双阈值操作。即人为设定参数max 和min,分别为阈值上下界限,若图像中的像素点的数值大于参数max,即阈值上界,则判定为强边界,小于参数min,即阈值下界,则判定为弱边界,数值在两者之间的则认为是待处理项。
(4)通过有滞后的边界进行跟踪处理。找出弱边界与强边界相连的边界,将此外的其他弱边界消除。
2.6 产品实物图及识别图像效果
图7 为成果整体视图,图8 为识别结果。
图7 成果整体视图
图8 识别结果图
3 结论
本项目代替传统的人工检测方法[5],加入信息化、智能化的机器人,通过自动化图传识别来检测地铁车辆故障,以弥补现有人工检修的缺陷,能够减小工人的工作强度,提高工作安全性。