李喜柱 陈智超 汪顺利 王飞亚 王永根
(1. 中国商飞5G创新中心,上海 201324; 2. 上海飞机设计研究院,上海 201210)
某型号民用飞机是我国具有自主知识产权的民用飞机,其外观损伤检查是其试飞和航线运营阶段必要的适航性安全检查工作。本文中所述表面损伤包括但不限于飞机外观表面的损伤、裂纹、污染等情况。目前,世界范围内的飞机外观表面检查还是主要依靠人工进行绕机目视检查,成本高、效率低,且检查效果易受人员视力、身体状态等人为因素影响。
相对于人工绕机目视检查的手段,利用机器视觉技术,对飞机外观损伤进行智能检测与分类的方法,具有效率高、成本低和不受人为因素影响的优势。本文研究基于YOLO V3视觉算法处理,主要解决深度学习网络智能检测已知类别的损伤,同时对未知损伤具有一定的检测分析。现场测试和应用表明,本文提出的方法可以克服传统人工目视检测的弊端,有效缩短飞机外观表面检测的时间,提高飞机维修维护检查的效率。
利用机器人进行飞机外观损伤检查的关键与难点在于表面损伤区域的准确定位、不同损伤类型的快速分类识别和对损伤的定量检查分析。本文首先采用YOLO检测网络粗略获取损伤位置,并对外观损伤进行分类;其次针对不同的损伤类型特点,采用区域生长算法和水平集算法获取图像块中更精准的损伤位置;最后根据精细化后的结果,对表面损伤进行量化分析,定量判断外观表面损伤分为两个步骤:(1)对采集的图像进行损伤的智能检测;(2)对检测到的损伤通过相机内部参数和拍摄距离推算损伤真实尺寸。
本文解决了机器人绕机检查模式中,基于机器视觉技术实现对飞机外观表面损伤的快速定位、分类和定量预估分析问题,检查方法和模式能够解决深度学习网络智能检测已知类别的损伤,对未知损伤具有较强容忍度,使得算法具有较大的灵活性与适应性。
飞机外观检查工程实践中,不同类型损伤的特征差异性较大,部分损伤类型并无明确的边界,因此无法直接通过分割算法实现损伤的精准定位。针对飞机外观损伤快速定位和分类难题,采用基于YOLO的检测算法可以实现损伤的粗定位和分类,网络结构如图1所示。其检测准确率评估公式如式(1)所示:
图1 YOLO 结构示意图
(1)
其中,tp和fp分别代表真阳性和假阳性个数。
为进一步精确定位损伤位置,针对不同的损伤类型,采用不同的传统算法进行精准定位。在常见的飞机外观损伤类型中,磕碰、污染会引起外观表面的凹陷和凸起,外表面凹陷和凸起处在光照下则会有不均匀的光反射。根据图片或视频关键帧采集特征,通过增强对比度,采用LOG
算子的检测算法提取目标损伤所在区域,LOG
算子如式(2)所示:其中损伤检测的主要原理是检测图像中比周围像素灰度值大或小的区域。相似地,磕碰、磨损也具有表面凹陷的特点,但不同之处则是磨损在表面上可能存在间断。为解决上述问题,可采用区域生长算法进行处理:首先对图像进行损伤类型检测,其次将损伤检测结果作为区域生长初始点来获取损伤的完整轮廓,从而实现损伤的精准提取。根据上述方法可以得到表面损伤的精准定位,通过计算其最小外接矩阵,将矩阵的长和宽作为标准来进行定量分析。与上述两种损伤不同,污染难以根据尺寸来进行定量分析,其主要特点是:形状随机、种类多样,例如血污、油污(液压油、燃油、润滑油)、污垢等。针对外观表面污染的特点,通过对污染类图像梯度预设范围区间,获取图像梯度直方图,以对应梯度在预设范围中的频率作为污染标准进行量化测量。
在机器视觉领域,利用水平集方法可实现图像的分割,水平集法处理前图像处理流程如图2所示。
图2 外观损伤图片处理流程
以变量n为实值函数的水平集函数表示如下:
这时函数f
就可以描述一个曲面。3个变量能得到一个等值面,大于3则为水平超面,其对应的图像如图3所示。图3 曲面的等高线集合
图3类似于等高线图,每一条线对应着一个常数c
的水平集,目标区域在图3上变成四个圆圈密集的点。在图像分割中,每个物体的包络曲线在xy坐标系下演化,在二维图像平面上曲线函数为:y
=g(x
)(4)
此函数求解可用水平集的思想和方法来解决:
1)将这个曲线看成是某个三维曲面下的某一条等高线:z=f
(x,y),f
(x,y)就可以看做是一个xy的隐函数方程。2) 在二维图像领域将函数z=f
(x,y)设置为0,曲面的零水平集就是图像上的边缘包络。z
=f(x
,y
)=0(5)
或者更为标准的形式如下:
Γ=(x
,y
)∣z
(x
,y
)=0(6)
这时,z(x,y)=f
(x,y)就是辅助函数,用三维的曲面来辅助表示二维的曲线。为获得与图像边缘相适应的结果,z需要进行演化才能使得其0水平集所描述的曲线很好地包裹住需要分割的物体,那么此时就涉及到方程的演化:
Γ(t
)=(x
,y
)∣z(x
,y
)=0(7)
z/t
=v
|Δz
|tz
=v
|Δz
|(8)
要促使边缘演化成包络object
的形式,需利用图像中的梯度作为图像力组成部分驱动曲线演化接近边缘。利用水平集法进行图割所获得的下列检测示意图,表面油迹污染检测效果如图4所示,表面摩损检测效果如图5所示,表面磕碰损伤检测效果如图6所示。图4 表面油迹污染检测示意图
图5 表面磨损检测示意图
图6 表面磕碰损伤检测示意图
利用水平集算法可以在三维的空间进行曲线、曲面的演化而不需要知道其曲线、曲面的参数,正适应于飞机外观智能检测过程中用来拟合损伤。
通过前述的飞机外观表面损伤检测技术,可以得到每个损伤的类型、位置、最小外接矩形区域和最小外接曲形区域。利用小孔成像原理,根据上述获取的损伤在物理成像平面上的信息,可以求解出外观表面损伤的真实尺寸,如图7所示。
图7 表面小孔成像原理示意图
整个测量过程中,绕机机器人携带高清变焦相机Z
30对绕飞机外围进行外观表面进行图像采集,测距雷达同时进行相机到飞机表面距离d的计算。通过查阅Z
30相机的规格型号表得到相机的焦距和感光元件尺寸数据,查询可得相机的CMOS
参数为1/
2.8″,12.8mm
*9.6mm
的标准面积,对角线长为16mm
,计算出相机感光元件长宽尺寸:4.571 4mm
*3.428 5mm
。由于Z
30相机分辨率为FHD
:1 920×1 080 25/
30p
,进一步可以解算出相机在像素平面上,每一像素点在长宽方向上所对应的像元大小为(4.571 4/
1 920)*(3.428 5/
108 0)=0.002 38mm
*0.003 17mm
。假设当前时刻下,测距雷达测算出Z
30相机与飞机外观表面之间的距离d=2 000mm
,采集的外观表面图像检测出的损伤如图4所示,该损伤的外界矩形像素尺寸大小为:(1 055p
-1 004p
)*(774p
-443p
)=51p
*331p
那么该损伤所占的总像元大小为:
(51p
*0.002 38mm
)*(331p
*0.003 17mm
)=0.120 469 136mm
*1.048 839 506mm
最后,通过下式可以反推出飞机表面损伤的真实尺寸:
(9)
那么该损伤计算出的真实大小为5.252 615 9mm
*45.734 277mm
:在工程应用实践过程中,由于飞机试飞或航线的航前、航后工作时,可能有临时性工作介入,如临时工作梯介入(如图8所示),统筹安全因素,为保障绕机机器人在绕机线路上不被临时障碍物所阻挡,机器人绕机线路一般要求与飞机保持必要的工作距离。
图8 机器人绕飞机现场检查应用
应用实践中,绕机机器人的绕机线路一般离飞机的距离设定为3m
,绕机部分路线图如图9所示,由于飞机机体的曲面结构,相机与飞机外观目标检测点实际距离需要机器人自配测距激光根据各个点位拍摄目标具体测量。图9 机器人绕机检查运行线路
为了评估本文算法的性能,本文测试了两类摄像机,一种是定焦超高分辨率相机,另一种是30倍变焦相机。通过测试发现,定焦的超高分辨率相机在绕机检测的环境下无法工程应用,本文研究选取了30倍变焦相机Z
30作为项目的图像采集设备。经实验室测试,Z
30能够自动检测外观表面划伤、污染、磕碰等损伤,外观损伤检查准确率达到90%
以上;通过相机内参与拍摄距离推算损伤真实尺寸,在静止情况下,精度小于0.5mm
,在行驶拍摄过程中,精度可达到0.5mm
~4mm
。由于目前现场验证主要集中在飞机的生产试飞阶段,某型号飞机的相关损伤相对较少,因此现场采集的原始样本数较少。如表1所示,研究机器人绕机采集到的损伤图片发现,图片中往往不只有单个损伤,且受采集时飞机的光线环境、位置及拍摄角度等影响,因此可以通过裁剪、翻转、亮度、位移等图像增强方式将原始图片数量大幅度增多。通过将样本集按照90%
和10%
的比例分成训练样本和测试样本,本文达到的平均精度在90%
以上。表1 损伤图像检测样本及精度
对于检测正确的损伤,我们利用损伤的最小外接矩形尺寸,以及相机内参与拍摄距离,可以推算出真实的损伤尺寸。通过查阅Z
30相机的规格型号表得到相机的焦距和感光元件尺寸数据,具体数据如表2。表2 相机规格型号表
查表可得相机的CMOS
参数为1/
2.8″,根据相机感光元件12.8mm
*9.6mm
的标准面积,对角线尺寸为16mm
,可以计算出Z
30相机mm
单位下的感光元件尺寸大小:1/
2.8″CMOS
=(12.8/
2.8)*(9.6/
2.8)=4.571 4mm
*3.428 5mm
(10)
由于Z
30相机分辨率为FHD
:1 920×1 080 25/
30p
,进一步可以解算出相机在像素平面上每一像素点在长宽方向上所对应的像元大小为4.571 4mm/
1 920mm
*3.428 5mm/
1 080=0.002 38mm
*0.003 17mm
。在不同运动状态、不同拍摄距离下,相机拍摄测量会影响机器视觉测量的准确度。工程实践中,分别对3组样本进行不同距离下的静止拍摄和运动拍摄,飞机表面损伤尺寸的机器视觉测量值与实际尺寸测量值及误差值如表3和表4所示。表3 静止拍摄测量误差 (单位:mm)
表4 运动过程拍摄误差 (单位:mm)
本文对静止状态绕机机器人拍摄图像的测量误差(表3)以及行驶状态绕机机器人拍摄图像的测量误差(表4)分别进行评估,通过调整绕机机器人不同的拍摄距离,来衡量拍摄距离对误差的影响,测量误差与拍摄距离关系如图10所示。
图10 测量误差与拍摄距离关系
通过分析表3、表4可知,静止拍摄测量的误差能够达到0.5mm
左右;而行驶过程中拍摄损伤的测量误差最高超过3mm
。行驶过程中的平均误差要大于静止状态拍摄的,由于行驶过程中的机器人定位误差、飞机三维重建误差以及控制误差,拍摄距离增大后,损伤真实尺寸与像平面的尺寸的比例增大,导致图像检测的误差在反投影到飞机曲面后的真实尺寸误差也相应地增大。具体而言,当前方案为绕机机器人搭载Z
30相机在距飞机表面3.6m
线路点上进行拍摄,相机6.5倍变焦的情况下,经过测算,视野范围约为64cm
* 37cm
;在距离飞机表面3.78m
时,视野范围约为67.1cm
* 38.8cm
。当绕机机器人定位误差为80mm
,三维重建误差为100mm
时,以绕机机器人距飞机表面3.6m
和3.78m
时为例,视野范围分别为64cm
* 37cm
和67.1cm
* 38.8cm
,放大倍数为1.05。设损伤直径尺寸为X:
X
×1.05≥X
+0.1(11)
解得X ≥ 2.00,因此任何直径达到2.00mm
的损伤在绕机机器人定位误差下都将产生0.1mm
的尺寸检测误差。现场应用相机的分辨率为1 920 * 1 080,在绕机机器人距离飞机表面3.6m
并采用6.5倍变焦时,拍摄到的实际画面大小为64cm
* 37cm
。因此,每个像素对应的实际尺寸约为(64cm/
1 920)*(37cm/
1 080)=0.33mm
*0.34mm
。因此,绕机机器人携带相机可检测损伤的尺寸测量精度达到0.34mm
。实践应用证明,在试飞和航线演示的航前、航后绕机检查过程中,人工绕机检查和机器人绕机检查在同等实施条件下,机器人绕机检查可以发现一些人工绕机目视检查难以发现的细微外观损伤,优于人工一般目视检查的标准要求。本文针对飞机表面的外观损伤检查工作,提出了一种基于机器视觉技术的飞机外观表面损伤检测框架和机器人绕机检查工程应用方法。该框架能够解决机器深度学习网络智能检测已知类别损伤,对未知损伤也具有较强容忍度,使得检查具有较大的灵活性与适应性。本文研究方法能够满足飞机外观表面损伤智能化检测与分类需求,也可提供一定误差范围内的量化分析,可以为机器人智能绕机检查工作的工程应用实施提供技术参考和支撑。