双目视觉技术在水工建筑水下检测中的应用研究
2022-04-02姜春萌,吴翔,杨拴柱
姜春萌,吴翔,杨拴柱
摘要:大坝、水闸、泵站等水工建筑结构在施工时可能存在某些缺陷,特别随着水工建筑物的服役期限逐渐增长,由于水流侵蚀和冻融风化作用,其水下结构会出现裂缝、凹坑、侵蚀等缺陷,严重影响水工建筑的服役安全。文章提出基于双目视觉技术提高水工建筑水下检测任务完成质量。首先进行水下双目相机标定,然后采用改进人工鱼群算法应用于最大熵阈值法完成水下图像分割,图像分割结果突出检测目标特征,为水下检测工作提供了参考和依据。
关键词:双目视觉;水工建筑;水下检测
中图分类号:TP319 文献标识码:A
文章编号:1009-3044(2022)33-0007-03
针对水工建筑水下检测任务,可以安排潜水员通过目视、水下摄像等方式进行水下检测作业,但手工检测技术对潜水操作技能和潜水员的水下操作经验要求较高,并且测试结果不够准确、客观[1]。相比而言,通过搭载摄像设备的水下潜器来完成水工建筑水下检测任务,则能实现更高的工作效率和检测精度。
双目视觉测量方法凭借着效率高、精度适宜、系统结构简单、成本低等优点,已逐渐在非接触检测领域得到了广泛应用。同时,自主水下机器人由于大多通过锂电池提供动力,可实现一定负载下的连续巡航与较大范围自主作业。因此,以自主水下机器人为载体,采用双目视觉技术对水工建筑服役状态进行检测,为水工建筑水下检测作业提供了新的探索和实践途径。
1 水下相机标定
双目视觉是一种模拟人眼进行定位的技术,通过两个型号相近或相同的相机从不同角度对同一目标进行拍摄,基于视差原理,利用三角测量法对目标进行定位,从而恢复目标的三维几何信息[2]。实现上述目标的一个主要环节是相机标定,它是三维世界坐标转换到二维图像坐标投影参数求解的过程。具体而言,相机标定的目的是获得两个摄像机的空间位置关系,具体包括求解左右相机内参数矩阵、畸变系数矩阵、摄像头之间的平移矩阵和旋转矩阵。
首先,对左、右摄像头分别进行单目标定,获得左右相机内参数矩阵和畸变系数矩阵,包括焦距([fx],[fy])、图像中心([cx],[cy])、畸变系数([k1],[k2],[p1],[p2],[k3])以及两个摄像头分别相对标定物的旋转矩阵([Rl],[Rr])和平移矩阵([Tl],[Tr])。接下来,依照下列关系可以得到右摄像头向左摄像头的平移矩阵[T]和旋转矩阵[R]。
[Pl=RlPW+Tl] (1)
[Pr=RrPW+Tr] (2)
[Pr=RPl+T] (3)
其中,[PW]是空间中的一点[P]在世界坐标系下的坐标,[Pl]和[Pr]是其在左右摄像机坐标系下的坐标。由此可得:
[R=RrRTl] (4)
[T=Tr-RTl] (5)
标定过程中,保持处于平行轴的双目相机位置不动,通过变换标定板的位姿,左、右水下相机各采集16张标定图像。鉴于水下机器人执行水下检测任务时的主要目标是变形的开裂、隆起、渗漏等[3],因此标定板布置在离相机15cm~20cm处,双目相机物理基线距离为80mm。为了获取图像的畸变信息,標定板处于图像的不同位置。水下场景相机内参数标定图像如下所示。
出于标定精度和操作便利性考量,本文选用Matlab软件完成双目相机的水下标定实验。标定完成后可以得到每组图片的重投影误差,由标定结果可知,均重投影误差为0.24pixels,如图3所示,同时得到相机相关参数数据,如图4所示。
2基于改进人工鱼群算法的最大熵水下图像分割
图像分割是目标识别预处理的关键步骤。特别在执行水下检测任务过程中,由于江河水质的复杂性,导致光线在水下的传播有折射、散射等现象的同时,浑浊的水质和湍流也是导致水下图像退化、模糊的因素,这会为水工建筑水下检测结果的识别带来困难。针对水下图像中部分目标区域与背景区域间对比度较低、目标分割结果与背景粘连或不完整等问题,采用改进人工鱼群算法对最大熵图像分割进行优化。
基本人工鱼群算法优化原理是:一片水域中,鱼生存数目最多的地方通常就是当前水域中营养物质最多的地方。人工鱼所在的空间即为待优化问题的解空间,人工鱼当前位置对应的食物浓度[X]即为一个潜在解,在其视野范围[Visual]内,对其他人工鱼个体状态[XV]进行感知。如果[XV]优于人工鱼当前位置状态[X],那么该人工鱼就根据判定条件[Evaluate()]执行觅食[Prey()]、追尾[Follow()]、聚群[Swarm()]或随机[Move()]行为向状态[XV]前进[Step]距离,到达状态[Xnext]。如果[XV]没能优于人工鱼当前位置状态[X],那么该人工鱼继续在视野范围内进行搜索,以找到更优的状态。
a)觅食行为
假设人工鱼[i]在当前[t]时刻的状态为[Xi],在视野范围内随机感知到状态[Xj=Xi+Visual⋅rand()],如果该视点所在位置的食物浓度[Yj]优于其当前所在位置的食物浓度[Yi](即[Yj>Yi] ),人工鱼[i]朝[Xj]方向前进一步,得到下一时刻状态:
[Xt+1i=Xti+Xj-XtiXj-Xti⋅Step⋅rand()] (6)
否则,人工鱼[i]重新随机选择视点[Xj],若尝试[try_number]次后仍不满足前进条件,那么人工鱼[i]随机移动一步。
[Xt+1i=Xti+Visual⋅rand()] (7)
b)追尾行为
假设人工鱼[i]当前[t]时刻的状态为[Xi],感知到当前邻域内[ns]个同伴中状态[Xj]具有最高食物浓度[Yj]且拥挤度[δc]适宜(即[Yj/ns>δc⋅Yi]),人工鱼[i]向[Xj]方向前进一步。否则,人工鱼[i]执行觅食行为。
[Xt+1i=Xti+Xj-XtiXj-Xti⋅Step⋅rand()] (8)
c)聚群行为
假设人工鱼[i]当前[t]时刻的状态为[Xi],感知到当前邻域内同伴数目[ns]及中心位置状态[Xc]。如果同伴中心位置食物浓度较高且不太拥挤(即[Yc/ns>δc⋅Yi]),人工鱼[i]向同伴中心位置[Xc]方向前进一步。否则,人工鱼[i]执行觅食行为。
[Xt+1i=Xti+Xc-XtiXc-Xti⋅Step⋅rand()] (9)
d)隨机行为
假设人工鱼[i]当前[t]时刻的状态为[Xi],如果未能在视野范围内感知到比当前更优状态,人工鱼[i]随机选择一个状态并向该方向前进一步。
人工鱼群算法对初值和参数选择要求不高,同时具备很强的全局搜索能力[4],但算法收敛速度相对较慢。针对此问题,结合最大熵图像分割优化中的特点,引入自适应视野和步长,同时强化追尾行为和聚群行为,以提高人工鱼群算法的收敛速度和搜索精度。
在改进的算法中,每条人工鱼个体通过公告板信息计算出与当前最优个体的距离,并将该距离作为自身在下一次迭代时的视野范围[Visual],同时根据预先设定的视步因子[aV∈[0,1]]计算下一次迭代时的步长[Step=aV⋅Visual]。
根据最大熵阀值法[5]图像分割原理,图像灰度级别[∈[0,l-1]],[t]是图像分割阀值;[Pt=i=0tpi],其中[pi]是灰度级别是[i]的概率,目标是选择最优的[t]使图像熵[H(t)=-i=0tpiPtlnpiPt-i=t+1l-1pi1-Ptlnpi1-Pt]最大。对于多阀值,则变为找到能使图像熵[H(t1,t2,...,tk)=-i=0t1piPt0lnpiPt0-i=t1+1t2piPt1lnpiPt1-...-i=til-1piPtklnpiPtk]最大的多阀值[tk]。
本文选择2阀值实现图像分割优化,设定人工鱼数量[total=20],尝试次数[try_number=2],视野范围[visual=8],步长[step=8],拥挤度因子[δ=0.7],算法迭代次数为50。选取2组水下检测图片结果进行分割优化后的结果如下:
从基于改进人工鱼群参数优化算法的图像分割结果可以看出,虽然初始水下图像对比度较低模糊性较强,但图像分割效果较好,有效地保留了目标的形状信息,突出了检测目标的特征,为水工建筑水下缺陷的检测和识别提供了有力依据。
3结论
面向水工建筑水下部分的检测任务,本文采用双目视觉技术对目标进行图像采集,完成了水下相机标定,得到相机参数,然后采用改进人工鱼群算法实现对最大熵阀值法参数优化,完成水下图像分割,得到的结果有效突出了目标特征,验证了方法有效性,为实际水工建筑水下检测作业提供了参考。
参考文献:
[1] 谭界雄,田金章,王秘学.水下机器人技术现状及在水利行业的应用前景[J].中国水利,2018(12):33-36.
[2] 董鹏,周烽,赵悰悰,等.基于双目视觉的水下海参尺寸自动测量方法[J].计算机工程与应用,2021,57(8):271-278.
[3] 林泓,李灵汐.有缆遥控水下机器人在水利水电工程领域的应用现状与发展前景[J].新型工业化,2021,11(2):198-200.
[4] 伍蓥芮,张志勇.基于改进粒子群人工鱼群算法的二维熵多阈值快速图像分割[J].现代计算机,2021(1):56-61.
[5] 章毓晋.图像分割[M].北京:科学出版社,2001.
【通联编辑:唐一东】