一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于双目视觉的立面特征检测及立面特征处理方法与流程

2021-12-07 21:11:00 来源:中国专利 TAG:


1.本发明涉及船舶维护技术领域,具体而言,涉及一种基于双目视觉的立面特征检测及立面特征处理方法。


背景技术:

2.船舶维修清洗由于受停泊时间限制,一般只对那些无法工作和工艺参数接近或超过极限的单台设备进行突击抢修性质的冲洗。航修清洗的特点是时间紧、工期短、操作空间小、清洗难度大。为保障船舶正常航行,船舶在停靠码头装卸期间对问题设备或管系的各类污垢进行清洗,一般在码头或锚地进行。
3.在航船舶厂修清洗分为船体外部清洗和机仓系统管路和设备清洗。船体外部清洗主要是甲板、船壳涂白、清除油漆层和船体下部各类海生物,其目的是减少船舶航行阻力和垢下腐蚀,增加新涂装防腐漆的附着力。厂修清洗时间一般较航修清洗宽松,工程项目一般较多,但都会提前获知,产前准备较充分,清洗范围涉及船舶所有系统及系统内配套的各类热交换设备及各类舱室。
4.目前,船舶除锈清洗主要有以下三种方式:
5.(1)喷丸或喷砂的方法,是利用磨料的打击力除锈、剥层。其除锈质量较好、效率较高,但是弊端也很多,会对海水和空气造成严重污染,日积月累的铜砂还会使船坞淤积,作业场所条件恶劣,产生的大量矽尘无法清除,除锈工人难以避免严重影响健康的矽肺病和眼疾。
6.(2)采用高压水射流清洗技术,可以清洗很多结构复杂的地方或不规则的表面,不管结构怎样,用高压水清洗船舱、底舱及压载箱都很容易,脏物和脏水可以很容易地被排出去,它们不会有尘埃产生到大气中去,也不会污染环境。采用150~250mpa的超高压纯水射流或较低压力下的特种射流进行除锈作业,大大提高了水射流除锈的适应性。然而,该方法通过人工操作,劳动强度大,人工成本高。
7.(3)采用爬壁机器人进行自动作业,爬壁机器人能够吸附在船体或罐体等立面上进行除锈和喷漆作业,操作者遥控爬壁机器人进行喷漆、除锈等作业从而取代了人工作业,现有的爬壁机器人可以参考申请公开号为cn112389559a的发明专利申请以及专利号为202021430043.0的实用新型专利,也可以参考德国falch公司生产的cleaning爬壁机器人。然而,针对船舶的立面或储罐的立面作业环境,现有爬壁机器人工作时只能应对规则的平面或曲面,对凸起部位(比如法兰、管路等)不能作业,还需依靠人工。此外,立面的作业效果检测也是需要操作人员在高空中通过观察进行评估,存在劳动强度大、人工成本高、评估不准确的问题。


技术实现要素:

8.本发明就是为了解决现有爬壁机器人只能应对规则的平面或曲面,对凸起部位不能作业的技术问题,提供一种能够使爬壁机器人对立面的凸起部位进行作业的基于双目视
觉的立面特征检测及立面特征处理方法。
9.双目立体视觉技术原理,通过图像匹配算法计算视差,得到三维场景信息。通过计算机对图像的理解使机器人既能够感知三维场景中物体的几何信息,又能对物体进行测距和检测。基于以上情况,将通过双目视觉技术对船舶和储罐的立面特征进行深度测量,让爬壁机器人能够获取周围不规则凸起的三维信息。
10.本发明公开一种基于双目视觉的立面特征检测及立面特征处理方法,包括以下步骤:
11.第一步,建立一个包含凸起特征的类别和三维形状信息的立面凸起特征数据库;
12.第二步,基于双目视觉的三维重建系统搭建;
13.步骤1,双目相机选型;
14.步骤2,标定双目相机;
15.步骤3,图像立体矫正预处理;
16.步骤4,立体匹配;
17.步骤5,获得视差图;
18.步骤6,获得点云三维重建,实时测距;
19.步骤7,获得立面特征的尺寸信息和深度信息;
20.第三步,识别立面上的凸起特征;
21.步骤1,构建立面特征数据集;
22.步骤2,基于yolov4目标检测算法训练特征识别模型;
23.步骤3,优化特征识别模型;
24.步骤4,双目相机实时采集待处理物体的立面图像,控制器将实时采集的立面图像输入特征识别模型,从而识别出立面上的凸起特征。
25.优选地,第三步中:
26.步骤1,构建立面特征数据集,
27.制作的数据集格式为voc2007数据集,通过手动创建出包含整个特征的最小边界框,然后指定标注框内特征的名称;创建完成后会自动生成相应的xml文件,该文件中以固定格式存储着图像的尺寸、物体类别名称以及在图像中的位置等信息;
28.步骤2,基于yolov4目标检测算法训练特征识别模型,
29.模型训练采用的基本学习率是0.0004,变化比率gamma设置为0.1,具体的训练参数见表3

2:
30.表3

2训练参数设置汇总
[0031][0032]
采用训练得到的yolov4模型对测试集中立面特征样张进行检测。
[0033]
优选地,所述第一步中:
[0034]
步骤3,图像立体矫正预处理的具体过程是通过bouguet算法进行立体矫正:
[0035]
步骤4,通过sgbm(semi

global block matching)算法进行立体匹配:
[0036]
(1)sgbm的图像预处理过程是通过水平sobel算法实现的,采用公式为(3

2):
[0037][0038]
接着利用一个映射函数,能够把预处理图像上的所有像素点转换到另一张新的图像中,将经过水平sobel算子处理后的图像上的每个像素点映射成一个新的图像,p代表通过水平sobel算子处理得到的像素值,p
new
表示新图像上的像素值,所采用的映射函数为式(3

3)所示:
[0039][0040]
公式(3

3)中,prefiltercap为常值;
[0041]
预处理得到的图像梯度信息,保存供后面进行代价计算;
[0042]
(2)代价计算:
[0043]
sgbm的代价由两部分组成:在之前进行的图像预处理获得的梯度信息按照采样的方式计算代价值以及直接对原图像进行采样获取sad代价值,sad代价计算公式如式(3

4):
[0044][0045]
式(3

4)中,i
r
(u d,v)表示右图像像素点;
[0046]
i
l
(u,v)表示左视图像素点;
[0047]
p(u,v,d)表示左右视图像素点之间的匹配代价;
[0048]
(3)动态规划:
[0049]
sgbm在不同方向上受到不同程度的一维约束,进而构建出一个马尔科夫能量函数,每一个像素最终的匹配代价都是所有路径上信息的叠加;
[0050]
针对不同方向遵从动态规划算法完成能量聚集,再把这些方向上所聚集的匹配代价进行求和,如式(3

5)所示:
[0051][0052]
式(3

5)中,l表示当前路径积累的代价函数;
[0053]
p1、p2表示像素点与相邻点视差的较小和较大值的平滑惩罚,p1<p2;
[0054]
总匹配代价的计算通过求和所有r方向的匹配代价所得,如式(3

6)所示:
[0055][0056]
默认的四条路径,其中p1、p2的设定方式如式(3

7)所示:
[0057][0058]
式(3

7)中,sadwindowsize表示sad窗口的大小,奇数;cn表示图像的通道数;当确
定了图像的通道数和sad窗口的大小,可得到p1和p2两个常数;
[0059]
(4)后处理视差精细化,sgbm的后处理包含了三个过程,包括唯一性检测、左右一致性检测和亚像素插值,左右一致性检测可以对图像中遮挡的位置进行优化,然后再通过亚像素插值进行处理;
[0060]
步骤5,获得视差图,在ubuntu18.04系统下配置clion编译软件及opencv3.4.5计算机视觉库完成的;
[0061]
步骤6,获得点云三维重建,实时测距;
[0062]
通过双目立体匹配获取视差图后,根据双目视觉测距原理,使用深度计算公式(2

16),
[0063][0064]
公式(2

16)中,u
l
,u
r
)表示像素平面的坐标;d表示左右像素横坐标之差;f表示焦距;焦距f和基线b已知;
[0065]
带入标定得到的焦距f、基线b及视差信息d从而能够求解目标点的深度信息。
[0066]
优选地,控制器在立面凸起特征数据库进行类别检索,检索到特征类别后,匹配爬壁机器人相应的作业参数,爬壁机器人进行相应的作业。
[0067]
本发明的有益效果是:通过视觉系统识别立面的特征,能够准备识别不规则凸起部位。并通过视觉系统对表面作业效果进行检测评估,
[0068]
智能化程度高,实现了爬壁机器人自主化作业。
[0069]
本发明进一步的特征和方面,将在以下参考附图的具体实施方式的描述中,得以清楚地记载。
附图说明
[0070]
图1是检测方法的流程图;
[0071]
图2是双目相机标定过程采集的图片,其中图a)是左目20张标定图片,图b)是右目20张标定图片;
[0072]
图3是共面行不对准图像平面;
[0073]
图4是选取室内标定板图像作为校正前的图像;
[0074]
图5是校正后的图像;
[0075]
图6是代价计算原理图;
[0076]
图7是多方向能量聚集示意图;
[0077]
图8所示为不同光照下的双目图像,其中图a)是室内光照环境,图b)是室外逆光环境,图c)是是外顺光环境。
[0078]
图9是sgbm算法视差图,其中图a)是室内光照环境,图b)是室外逆光环境,图c)是室外顺光环境。
[0079]
图10是sgbm测距效果,其中图a)是室内光照环境,图b)是室外逆光环境,图c)是室外顺光环境。
[0080]
图11是优化特征识别模型训练结果;
[0081]
图12是yolov4训练模型检测效果,其中图a)是晴天,图b)是阴天。
[0082]
图13是双目视觉的测距原理几何建模图。
具体实施方式
[0083]
以下参照附图,以具体实施例对本发明作进一步详细说明。
[0084]
原油储罐的罐体上常见的立面特征尺寸和类别都有国标规定,比如油罐维修的工作范围包括罐底、罐壁及附件,如阀门、进出油管、人孔、排水系统、电器仪表、盘梯、抗风圈等部分的修理或更换,需要根据检测报告和设计文件进行维修方式。明确立面特征类别后,可以通过基于深度学习的目标检测算法让爬壁机器人辨识立面作业对象类别。基于卷积神经网络的图像识别算法能够以高准确率检测目标,但能够达到实时检测的算法较少,其中ssd能够满足准确性的要求,但是对特征的检测存在实时不高的问题,yolo的实时性较高但是很难达到实时检测,可以通过对yolov4改进使得yolov4在保证高准确率的基础上实现实时检测。
[0085]
选择zed双目相机,以nvidia jetson tx2为图像处理计算平台,围绕船体立面或罐体立面上的法兰、管路等凸起部位的识别、测距、三维重建进行研究。
[0086]
如图1所示的流程图。检测具体过程如下:
[0087]
第一步,确定罐体立面作业所遇到的凸起特征,建立一个包含凸起特征的类别和三维形状信息的立面凸起特征数据库,为后期进行凸起特征作业提供精确的三维尺寸。凸起特征的类别有法兰、管路、电器仪表、盘梯等等。
[0088]
大型的远洋船舶或者化工储罐上都会使用较多具有国家标准的零件用于船舶或者储罐的外表面,也就是我们所定义的立面特征。完成立面特征的识别与检测前,需要对船舶或储罐的立面特征进行归类,根据船舶或储罐的实际情况,我们能够建立立面凸起特征数据库用来记录常见的立面特征的尺寸信息。
[0089]
第二步,基于双目视觉的三维重建系统搭建。
[0090]
步骤1,双目相机选型,选择zed双目相机。
[0091]
步骤2,标定双目相机。
[0092]
具体标定过程是使用matlab语言编写的程序,用到matlab自带的webcam包打开双目相机,然后对双目图像进行采集,并且将采集到的图片分割为左右两张图片进行相同命名。左右目图像分别采集了20张,如图2中图a)和图2中图b)所示。
[0093]
提取角点后,接着在不考虑畸变的情况下对单目内外参数进行标定求解,然后calibrator工具箱会使用最小二乘法求出左右目的畸变参数,出结果之前通过立体联合标定并优化各参数,最终标定得到的各参数如表1所示。
[0094]
表1 stereo camera calibrator工具箱标定结果
[0095][0096]
步骤3,图像立体矫正预处理
[0097]
bouguet算法的立体矫正,其思想是降低重投影次数,使得其数值最小化,其具体的方式主要包括以下几点:
[0098]
(1)旋转左右相机坐标系使得图像平面实现共面
[0099]
为了降低重投影畸变,需要通过一个旋转矩阵将右相机平面分成像图像那样的两部分,这两个旋转矩阵使得左右相机分别旋转一半,旋转过后,左右相机的平面就能够实现共面,但是还不能行对准。
[0100]
(2)旋转图像平面实现共面行对准
[0101]
旋转相机坐标系后,左右图像平面存在一定的夹角如图3,将左右图像平面分别以各自主心顺时针旋转α1和α2,此时左右目图像即可实现行对准。
[0102]
我们将能够让极线对准的旋转矩阵r
rect_l
通过极点变换得到,然后再设一个由极点e1为起始的旋转矩阵。左相机图像的原点是主点(c
x
,c
y
),方向是左右相机投影中心的平移向量的方向。
[0103][0104]
而e2与e1需要正交,从图中我们能够看到比较好的做法是与主光线正交,通过求解e1和主动光线的叉积可以得到,将所得到的向量进行归一化:
[0105][0106]
如式(2

19)所示计算e3的方向,通过叉积得到,它需要和e1、e2正交:
[0107]
e3=e1×
e2ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2

19)
[0108]
式(2

20)表示的是左目相机的极点变换到无穷远处的计算公式:
[0109][0110]
通过上述的方式,计算得到右图像的旋转矩阵,且r
rect_l
=r
rect_r
,引入新参数r
rect
,且使得:
[0111]
r
rect
=r
rect_l
=r
rect_r
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2

21)
[0112]
设立体矫正过程左右图像所需的旋转矩阵为r
l
和r
r
,则有:
[0113]
r
l
=r
rect
r
l
[0114]
r
r
=r
rec
tr
r
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2

22)
[0115]
式(2

22)矩阵能够让所拍摄的左右目图像的极线变水平,通过旋转得到,且极点位于无穷远处,bouguet立体矫正算法在已知r和t后,具有计算快捷、高准确度的优点。
[0116]
为验证bouguet的矫正效果,在ubuntu系统下以clion opencv3.4.5软件环境,选取室内标定板图像如图4所示,该图像已完成畸变校正。
[0117]
图4在进行畸变校正后,通过图示能够看出,左右目图像存在较明显上下错位不对齐现象,图5为采用bouguet算法进行立体矫正后的结果。通过图中的绿色线条能够看出,矫正后的图像基本实现行对齐。
[0118]
步骤4,立体匹配。
[0119]
通过sgbm(semi

global block matching)算法进行立体匹配,在opencv中实现后才称为sgbm,通过分析sgbm的原理能够很好的理解立体匹配的过程,并进行相应的优化。
[0120]
(1)图像预处理
[0121]
sgbm的图像预处理过程是通过水平sobel算法实现的,采用公式为(3

2):
[0122][0123]
接着利用一个映射函数,能够把预处理图像上的所有像素点转换到另一张新的图像中,将经过水平sobel算子处理后的图像上的每个像素点映射成一个新的图像,p代表通过水平sobel算子处理得到的像素值,p
new
表示新图像上的像素值。所采用的映射函数为式(3

3)所示:
[0124][0125]
公式(3

3)中,prefiltercap为常值,一般情况下取63。
[0126]
预处理得到的图像梯度信息,保存供后面进行代价计算。
[0127]
(2)代价计算
[0128]
sgbm的代价由两部分组成:1.在之前进行的图像预处理获得的梯度信息按照采样的方式计算代价值;2.直接对原图像进行采样获取sad代价值,代价计算原理如图3

1,sad代价计算公式如式(3

4):
[0129][0130]
式(3

4)中,i
r
(u d,v)表示右图像像素点;
[0131]
i
l
(u,v)表示左视图像素点;
[0132]
p(u,v,d)表示左右视图像素点之间的匹配代价。
[0133]
(3)动态规划
[0134]
在动态规划算法中,当视差突变时会产生误匹配现象,半全局立体匹配将整合不同方向上的数据,进而来消除误匹配对算法本身的干扰,这样能够明显减弱动态规划存在的拖尾效应。
[0135]
sgbm在不同方向上受到不同程度的一维约束,进而构建出一个马尔科夫能量函数,每一个像素最终的匹配代价都是所有路径上信息的叠加,每个像素点视差的选择都是通过胜者为王策略决定,多方向上的能量聚集如图7所示。
[0136]
针对图7所示的不同方向遵从动态规划算法完成能量聚集,再把这些方向上所聚集的匹配代价进行求和,如式(3

5)所示:
[0137][0138]
式(3

5)中,l表示当前路径积累的代价函数;
[0139]
p1、p2表示像素点与相邻点视差的较小和较大值的平滑惩罚,p1<p2;
[0140]
总匹配代价的计算通过求和所有r方向的匹配代价所得,如式(3

6)所示:
[0141][0142]
默认的四条路径,其中p1、p2的设定方式如式(3

7)所示:
[0143][0144]
式(3

7)中,sadwindowsize表示sad窗口的大小,奇数;
[0145]
cn表示图像的通道数。
[0146]
从式看出当我们确定了图像的通道数和sad窗口的大小,我们便可得到p1和p2两个常数。
[0147]
(4)后处理视差精细化
[0148]
sgbm的后处理包含了三个过程,包括唯一性检测、左右一致性检测和亚像素插值,左右一致性检测可以对图像中遮挡的位置进行优化,然后再通过亚像素插值进行处理,从而能够有效的提高分辨率,使得误差更小,结果更优化。通过以上过程,sgbm相对于其他立体匹配算法能够获得一个较好的视差效果。
[0149]
步骤5,获得视差图。
[0150]
在ubuntu18.04系统下配置clion编译软件及opencv3.4.5计算机视觉库完成的,如图8所示为不同光照下的双目图像,图9为采用sgbm立体匹配算法得到的视差图。
[0151]
步骤6,获得点云三维重建。实时测距。
[0152]
先说明一下双目视觉测距原理,本发明所研究的是平行双目视觉,同时采集周围环境图像,针对同一个目标在采集的左右视图中所成像的位置一定不同,由此便会产生视差。双目视觉原理可以看成是两个三角形相似,也就是通过立体匹配去获得匹配点的视差值,然后通过三角原理得到距离双目相机的深度信息。现对双目视觉的测距原理进行几何建模,如图13所示。根据图13所示的几何建模,设o
l
,o
r
为左右相机的光心,通过相似三角形关系得:
[0153][0154]
进一步整理得:
[0155][0156]
公式(2

16)中,u
l
,u
r
)表示像素平面的坐标;d表示左右像素横坐标之差;f表示焦距。焦距f和基线b已知。
[0157]
通过双目立体匹配获取视差图后,根据双目视觉测距原理,使用深度计算公式(2

16),带入标定得到的焦距f、基线b及视差信息d从而能够求解目标点的深度信息。这样便建立视差图上点的二维坐标到其对应空间三维坐标的位置关系,不同光照下的距离如图10,为更好区分距离的远近,深度图赋予彩色信息,不同的颜色代表距离的远近。
[0158]
步骤7,获得立面特征的尺寸信息和深度信息。
[0159]
第三步,识别立面上的凸起特征。
[0160]
步骤1,构建立面特征数据集,
[0161]
制作的数据集格式为voc2007数据集,通过手动创建出包含整个特征的最小边界框,然后指定标注框内特征的名称。创建完成后会自动生成相应的xml文件,该文件中以固定格式存储着图像的尺寸、物体类别名称以及在图像中的位置等信息。
[0162]
步骤2,基于yolov4目标检测算法训练特征识别模型。
[0163]
模型训练采用的基本学习率是0.0004,变化比率gamma设置为0.1,当迭代40000次后学习率就会衰减为基本学习率的0.1倍,也就是缩小了十倍,权重衰减项为损失函数添加的惩罚项,用于预防出现过拟合现象,具体的训练参数见表3

2。
[0164]
表3

2训练参数设置汇总
[0165][0166]
根据以上训练参数的设置训练出模型yolov4,在12万次训练结束之后对模型进行精准度评估,平均准确率达到了99.63%,训练结果如图11所示。
[0167]
采用前述训练得到的yolov4模型对测试集中立面特征样张进行检测,在测试集的检测结果表明,检测模型能够针对不同光照环境下的立面特征具有不错的检测效果。测试集图像中包含旋转、单个、多个目标特征的检测,模型都能够有效的将他们检测出来,体现
出模型具有较强的鲁棒性。
[0168]
步骤3,优化特征识别模型。
[0169]
训练出模型yolov4,在12万次训练结束之后对模型进行精准度评估,平均准确率达到了99.63%,训练结果如图11所示。
[0170]
检测模型在不同光照、不同方向环境下的圆柱特征检测置信度都比较高,并且基本能够检测出图中多个目标物体,置信度都超过0.9,检测效果较好。
[0171]
步骤4,双目相机实时采集罐体的立面图像,控制器将实时采集罐体的立面图像输入特征识别模型,从而识别出立面上的凸起特征。
[0172]
第四步,爬壁机器人对立面上的凸起特征自动作业。
[0173]
控制器在立面凸起特征数据库进行类别检索,检索到特征类别后,匹配爬壁机器人相应的作业参数,爬壁机器人进行相应的作业。例如,识别出立面上的管路类别,检索到立面凸起特征数据库中的管路,然后设置爬壁机器人喷漆作业的参数(喷枪的角度、距离等),使爬壁机器人对管路进行喷漆作业。例如,识别出立面上的法兰,检索到立面凸起特征数据库中的法兰类别,然后设置爬壁机器人除锈作业的参数(喷枪的角度、距离、压强等),使爬壁机器人对管路进行除锈作业。由此可见,实现了机器人自主作业,代替了现有技术人工遥控机器人作业。
[0174]
需要什么的是,本实施例是用罐体举例,上述方法同样适用于船舶。
[0175]
以上所述仅对本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献