基于改进多尺度Retinex的墙体开槽机器人目标检测与定位

2024-01-21 13:09颜承壮皇攀凌周军叶丰林乐彬
科学技术与工程 2023年36期
关键词:坐标系预处理像素

颜承壮, 皇攀凌, 周军, 叶丰, 林乐彬

(山东大学机械工程学院, 济南 250012)

在装修作业过程中,为了避免线管、水管因裸露在外部而被后续的其他施工损坏,要对墙体进行水电开槽。传统的开槽作业主要由人工完成,但是人工开槽作业存在着一些问题,如开槽效率低,具有安全隐患,切割出来的墙槽深度、宽度大小不一,割槽时会产生大量的粉尘,导致影响操作人员健康和污染环境等问题。因此,急需开展机器人代替人工操作方面的研究。

随着机器视觉的不断发展,其应用场景已经从工业生产线扩张到建筑行业的施工作业中[1]。刘付渝杰等[2]设计一种基于机器视觉的砌墙砖自动检测系统,能快速准确地对砌墙砖完成外观质量和几何尺寸的检测。李伯犀等[3]以图像为输入,在大数据、云计算和人工智能等技术的支持下,完成施工图纸的语义解析,实现了图纸元素的自动识别。郑龙海等[4]针对现有建筑垃圾分类不清,且自动化程度不高的情况,提出了一种基于机器视觉与称重技术相结合的分类方法,能够有效地将建筑垃圾中常见的木头和砖石进行自动分类并回收利用。成佳明等[5]基于线结构光视觉传感技术建立了一种适用于施工现场钢结构焊缝坡口识别方法,识别精度较高,为后续焊接机器人的应用提供了关键技术支持。许文稼等[6]针对当前建筑垃圾分选中存在的分选效率不高、自动化程度较低等问题,提出了一种基于机器视觉和深度学习的建筑垃圾智能分选系统,实现建筑垃圾的智能化分选。刘同[7]基于机器视觉技术设计了建筑结构施工中房屋裂缝智能检测方法,具有较高的检测精度。

综上所述,机器视觉技术在建筑机器人领域有着广泛的应用前景,合理地运用该技术可大大促进墙体开槽作业的自动化和智能化。将机器视觉技术运用到开槽作业中时面临的一大挑战是复杂恶劣的作业环境,光线条件差、粉尘污染等问题会较大影响图像的成像效果。鉴于此,为了改善图像在低照度区域和高照度区域的颜色呈现效果,解决在复杂多变的光照条件下特征提取失败、错误提取等问题,提出一种改进的多尺度Retinex用于图像预处理。在将原始多尺度Retinex应用到图像亮度分量得到每个像素位置亮度的变化量的基础上,使用衰减函数抑制高亮区域的亮度值增量,然后将亮度通道变化量转化为RGB三通道的变化量。基于此,结合常用的图像处理算法和点激光测距获取外参的方法,最终实现墙体开槽机器人的目标检测与空间位置精确定位。通过试验验证机器人基于改进的预处理算法的目标检测效果与定位精度。研究成果为机器视觉技术在智能建造行业中的应用,以及智能墙体开槽机器人的开发奠定试验基础。

1 墙体开槽目标检测

1.1 目标检测流程

建筑墙体管线开槽打孔的目标检测是将工人用粉笔在墙上做好的标记检测出来,其中开槽标记为直线,打孔标记为圆。目标检测流程如图1所示。

图1 目标检测流程Fig.1 Target detection process

步骤1预处理。首先,使用改进的多尺度Retinex对原始图像进行预处理,包括对原图中的亮度分量使用原始多尺度Retinex(multi-scale Retinex,MSR),并抑制高亮区域的MSR结果,再将MSR结果分别作用在原图的RGB(red-green-blue)通道。

步骤2转HSV(hue-saturation-value)。将预处理后的图像转换到HSV色彩空间,使用预先调试好的阈值提取颜色特征。

步骤3形态学处理。使用形态学方法进行特征膨胀是特征更明显。

步骤4获取像素坐标。使用霍夫圆检测确定圆孔槽的像素坐标,使用轮廓检测、最小矩形框等方法获取线槽的两端点像素坐标。

步骤5坐标转换。预先标定相机内参,使用点激光来测量摄像头到墙面的外参,将目标的像素坐标转换到机器人坐标系。

1.2 图像预处理

人眼能够在不同环境下识别出同一种颜色,但显示设备做不到,低光照度[8]和阴影[9]条件都会使图像的色彩发生变化。基于颜色恒常性的Retinex理论认为物体的颜色是其自身对光的反射特性决定的[10],并不会随光照条件而改变。通过 Retinex 算法可以实现对图像自身光照估计,并消除光照不均匀[11]。一幅图像Ic(x,y)可表示为照度分量和反射分量的乘积[12],即

Ic(x,y)=Rc(x,y)Lc(x,y)

(1)

式(1)中:Rc(x,y)为反射分量;Lc(x,y)为照度分量。

根据Retinex理论提出的多尺度Retinex增强算法将原图像Ic(x,y)进行高斯模糊作为Lc(x,y)的估计值,采用多尺度高斯卷积模板对Ic(x,y)进行模糊,并进行加权平均,可表示为[13]

Rc(x,y)=lgIc(x,y)-lgFk⊗Ic(x,y)

(2)

(3)

(4)

原始的MSR算法应用在图像中的RGB分量,会出现图像灰化的现象[15],将MSR算法用于亮度分量I(x,y)得到增强后的IMSR(x,y),然后得到每个像素点处的处理后的值与原始亮度的比值k(x,y),可表示为

(5)

为防止高亮区域的颜色失真,使用式(6)中构造的衰减系数Fδ(x,y)对高亮区域亮度的变化量进行抑制,见式(7),最后用比值与原图RGB通道相乘,见式(8)。

(6)

k′(x,y)=Fδ(x,y)[k(x,y)-1]+1

(7)

(8)

式中:Fδ(x,y)为衰减系数;I(x,y) 为亮度分量;k′(x,y)为k(x,y)衰减后的值;R(x,y)、G(x,y)、B(x,y)分别为原图中每个像素位置3个通道的值;R′(x,y)、G′(x,y)、B′(x,y)分别为处理后每个像素位置3个通道的值。

1.3 在HSV色彩空间提取颜色特征

HSV三维空间坐标系中各坐标之间均有独立的色彩的信息,能较好地反映人对颜色的感知和鉴别能力,非常适合对色彩的图像进行颜色比较[16]。将预处理图像从RGB色彩空间转换到HSV色彩空间,再在HSV色彩图像中通过设置阈值提取颜色特征,得到表示颜色特征的二值图像。

1.4 形态学处理

图像经过阈值分割后得到特征的二值图像,在二值图像中可能存在一些点状的噪声,也有的特征因为墙体存在裂缝而断开。借助形态学的腐蚀运算可以帮助消除白色点状噪声,利用膨胀算法补偿因腐蚀而损失的特征区域。采用合适的形态学处理策略可以在不明显改变特征面积的情况下减少负面影响[17]。

1.5 获取目标的像素坐标

处理好二值特征图后,进行打孔与开槽的目标检测。检测过程分为圆检测与线检测。首先对圆进行检测,即检测打孔目标。采用的检测方法为:对提取出的颜色特征图像进行霍夫圆检测[17]。设定标记圆的半径大小范围,剔除重叠的圆。然后对开槽标记(直线)进行检测。首先提取颜色特征的轮廓,对轮廓创建最小外接矩形。在实验中轮廓长度小于200像素的轮廓被过滤,不创建最小外接矩形。接下来判断得到的最小外接矩形是否满足直线特征。先对外接矩形的长宽进行比较,得到长边与短边,对长边与短边的长度进行限制,并限制举行的长宽比不得小于8,然后将满足上诉条件的矩形拟合为一条线段,得到线段的两端坐标值。

2 像素坐标到机器人坐标的转换

得到开槽目标在图像中的位置后,需要将其转换为机器人坐标系中的空间位置。转换过程分为两步:将像素坐标转换为相机坐标;相机坐标转换为机器人坐标。

2.1 像素坐标到相机坐标

应用相机标定方法得到相机的内参矩阵K,利用单点激光测距仪获取距离信息,再采用坐标映射的方法实现彩色图像与深度图像的匹配,进而得到目标点的空间三维坐标。

使用的张正友平面模板算法[18]是目前使用最广的一种标定算法[19]。算法借助一个标准的棋盘格,首先使用相机从各个角度拍摄这幅棋盘格对象,然后提取图像中棋盘格的角点,最后通过图像中角点的坐标以及世界坐标系下角点坐标的映射关系,从而计算出相机的内参。平面模板算法默认在Z=0的平面,算法中的相机投影模型可表示为

(9)

得到相机参数后,由式(10)可以计算出目标在相机坐标系中的坐标值,计算公式为

Pcamera(3×1)=K(3×3)Ppixel(3×1)depth

(10)

式(10)中:K为相机内参矩阵;Ppixel为像素坐标系中的齐次坐标;depth为检测目标点在相机坐标系中的深度。

图2为机器人各关键部件位置关系示意图,图3、图4分别为机器人俯视图和左视图。世界坐标系设定为位于相机视野中心的墙面上,机器人在工作过程中相机镜头正对着墙面。如图3所示,理想情况下机器人平行于墙面(θ=0°),目标点在相机坐标系中的深度depth为相机光心到墙面的距离t3,然而,由于机器人在行进过程中与墙面的平行存在误差,导致depth不等于相机光心到墙面的距离,这就导致实际坐标点与计算出来的坐标点存在误差。

Ow-Xw-Yw-Zw为世界坐标系;Oc-Xc-Yc-Zc为相机坐标系;Or-Xr-Yr-Zr为机器人坐标系图2 机器人各关键部件位置关系示意图Fig.2 Schematic diagram of position relationship of key components of robot

Θ为机器人与墙面间的角度;θ为机器人与墙面之间的角度;d1、d2分别为左右点激光测距值;lx、l′x分别为p、p′相对于相机在Xc方向的偏移;w1、w3分别为相机与左右点激光间的横向距离;w2为相机与机械臂间的横向距离图3 机器人俯视图Fig.3 Top view of robot

t3为相机光心到墙面距离;h为相机安装高度;d3为点激光测距仪与相机在Zc方向的偏差;ly、l′y分别为P、P′相对于相机在Yc方向的偏移图4 机器人左视图Fig.4 Robot left view

H_min、H_max分别为图像色度的最小、最大阈值;s_min、s_max分别为图像饱和度的最小、最大阈值;v_min、v_max分别图像亮度的最小、最大阈值;rvec为相机调试旋转向量;tvec为相机调试平移向量图5 模拟实验平台Fig.5 Simulation experiment platform

(11)

(12)

式(11)中:d1、d2分别为左右激光测距得到的距离值;w1为两激光测距仪间的距离;θ为机器人与墙面间的角度,即实际墙面与理想墙面之间的角度差;d3为激光测距仪在相机坐标系中的深度;w3为左侧激光测距仪相对于相机在Xc方向的偏移。

两直线联立解得

(13)

(14)

由式(13)、式(14)可得目标点的真实depth,其中,lx为目标点p相对于相机在Xc方向的偏移,l′x为目标点p′相对于相机在Xc方向的偏移。

再次将depth代入式(10)即可得到检测目标在相机坐标系中的实际坐标点p′。

2.2 相机与机械臂的手眼标定

为使机器人能准确找到目标点的位置,需要将相机坐标系下的坐标转换到机器人坐标系中。如图2所示,机器人坐标系固定在机械臂的始端,相机固定在支架上,下面结合实际应用场景进行手眼标定。

机器人实际作业时,将检测到的圆心坐标作为打孔的位置,将直线两端点作为开槽的位置。为保证标定时获取坐标的准确性,使用打印的标准圆进行标定。标定步骤如下。

步骤1将机器人放置在工作状态下的位置,尽量与墙面平行。将标记贴在墙面上一个位置,使用测试软件获取到相机坐标系下的位置并记录。

步骤2调整机械臂末端执行机构的位置,使之对准墙面上的标记,获取此时末端执行机构的位置。

步骤3重复步骤1、步骤2多次。

步骤4由图2中的各坐标系之间的关系,设相机坐标系与机器人坐标系间的转换关系见式(15)。

(15)

式(15)中:(xr,yr,zr)为机器人坐标系中的坐标值;(xc,yc,zc)为相机坐标系中的坐标值;a、b、c为待定系数,取多组对应点对求出待定系数的平均值。

3 试验验证

如图5所示,为了测试本文目标检测算法的有效性及定位精度,搭建了模拟实验平台。采用的相机分辨率为720×960,将相机置于距离墙面约1.5 m处粉笔标记进行拍摄。

如图6所示,第一行为测试图像在正常光线、光线较强和较暗环境下的原始图像,第二行对原始图像直接转换到HSV空间提取的颜色特征。图7第一行为使用直方图均值化对3种不同光照条件下的图像进行处理,第二行为提取颜色特征的结果。图8第一行为使用原始MSR算法进行预处理,第二行为提取颜色特征的结果。图9为使用改进的MSR算法进行预处理并提取颜色特征得到的结果。图10第一行为对本文算法提取的特征使用形态学处理,第二行为检测结果在图像中的位置。

圆表示检测到圆形标记;直线表示检测到直线标记;图像像素:720×960图6 不同光线条件下原始图像中提取颜色特征Fig.6 Extract color features from original image between different light bars

圆表示检测到圆形标记;直线表示检测到直线标记;图像像素:720×960图7 使用HE预处理并提取颜色特征Fig.7 Extract color features using HE pretreatment

圆表示检测到圆形标记;直线表示检测到直线标记;图像像素:720×960图8 使用MSR预处理并提取颜色特征Fig.8 Extract color features using MSR pretreatment

圆表示检测到圆形标记;直线表示检测到直线标记;图像像素:720×960图9 使用改进的MSR预处理并提取颜色特征Fig.9 Preprocessing with improved MSR, Extract color features

圆表示检测到圆形标记;直线表示检测到直线标记;图像像素:720×960图10 对图9的颜色特征进行形态学处理在图像中定位Fig.10 Morphological processing of color features in Fig.9 for image localization

从图7~图9可以看出,使用HE处理得到的图像一致性较高,但出现了严重的色偏,使用MSR处理的图像在光线较暗时出现红色色偏,另外两张出现灰化现象,使用改进的MSR算法得到了较一致的图像且抑制了色偏现象。在提取颜色特征阶段,设置的HSV三通道阈值都为正常光照条件下的图像经不同算法预处理后可以检测到目标的阈值。对比不同算法预处理后的图像提取颜色特征的效果,在不使用预处理算法时,只能在单一的光照条件下提取到完整的目标特征,在使用3种预处理算法后均能在3种不同的光照条件下提取到完整的颜色特征,其中在经HE和改进的MSR预处理过的图像中提取特征的效果明显优于使用原MSR的特征提取效果。考虑到HE处理的图像存在严重色偏,所以改进的MSR算法的使用效果优于HE。

得到目标在机器人坐标系中的坐标值p1(x1,y1,z1)后,控制机器人的机械臂末端执行机构的位置对准标记目标,得到末端执行机构的坐标值作为标记的实际坐标p2(x2,y2,z2)。将两坐标值之间的距离ε作为定位误差。多次检测不同位置的开槽目标并通过机械臂获取实际目标坐标,得到的多组误差如表1所示,其表达式为

(16)

表1 计算得到的坐标值和实际坐标值Table 1 Calculated coordinate value and actual coordinate value

试验表明,本文目标检测方法中通过改进的MSR进行预处理能够实现图像不同光照条件下的色彩恒常性,并抑制原始MSR算法中的色偏和灰化现象,保证了后续特征提取的稳定性。通过对提取的颜色特征进行形状判断和定位,验证了本文目标检测方法的有效性。然后将方法检测到的机器人坐标系中的坐标与实际目标的坐标进行对比,得到两种坐标值的误差在4 mm以内,该精度已满足建筑墙体开槽的作业要求。

4 结论

针对现有开槽目标检测算法在复杂多变的光照条件下特征提取失败、错误提取的问题,提出了一种改进的多尺度Retinex算法。对于机器人不平行于墙面时导致的坐标点误差,提出了点激光测距技术获取相机外参的方法。将机器视觉技术运用到开槽作业中,弥补了开槽目标检测与定位算法的空缺。得到如下结论。

(1)提出的图像预处理算法有效改善了在复杂照明环境下图像颜色呈现效果,实现了图像在不同亮度下的色彩恒常性,为后续提取准确的特征并进行目标检测奠定了基础。

(2)提出的点激光测距技术获取相机外参的方法有效减少了图像坐标点转换为相机坐标点的误差,实现了开槽目标在三维空间中的精准定位。

(3)试验结果表明,使用基于所提预处理算法的墙体开槽机器人目标检测与定位算法使得机器人在复杂多变的光照条件下依然能够实现准确的目标检测与精准定位,坐标定位误差在4 mm以内,该精度已满足建筑墙体开槽的作业要求。

猜你喜欢
坐标系预处理像素
赵运哲作品
像素前线之“幻影”2000
“像素”仙人掌
解密坐标系中的平移变换
坐标系背后的故事
基于预处理MUSIC算法的分布式阵列DOA估计
基于重心坐标系的平面几何证明的探讨
浅谈PLC在预处理生产线自动化改造中的应用
高像素不是全部
络合萃取法预处理H酸废水