基于深度学习的航空发动机安装位置识别
2020-11-17陈科山宋鹏亮
陈科山,宋鹏亮,薛 旭,郝 宇
(北京交通大学 机械与电子控制工程学院,北京 100044)
发动机是飞机整机中的核心部分,为保证飞行安全,对航空发动机的定期保养和维修要求十分严格.发动机具有体积大、重量大等特点,且在发动机安装仓内布满油管和线路,这给保养和维修后的发动机安装工作带来极大的困难.目前,大部分民航飞机采用的是翼吊发动机的安装方式,即借助吊挂装置,将发动机装配到两侧机翼下方[1].在国内这种安装工作仍普遍采用手工定位或半自动的安装方式,手工作业方法存在自动化程度低、调姿精度低、安装效率低等问题,且安装质量受安装人员的主观因素的影响较大[2].此外,发动机的安装位置还会随着安装过程中机翼的变形而发生变化,这使发动机安装位置的定位更加复杂.鉴于此,有必要对航空发动机的自动化安装方法进行研究.
发展航空发动机自动化安装技术,首要解决的就是在安装过程中的安装工位的检测技术.为此,国内外学者进行了广泛的研究.文献[3]利用激光测量技术,进行了飞机发动机数字化安装工艺的研究,将传统的发动机人工安装模式上升到数字化安装模式的研究层面,但是该方法不能对安装位置进行识别;文献[4]基于视觉监测的方法研制了一台具有调姿安装功能的发动机运输车,可以实现发动机运输车工作姿态的调整,但是没有涉及发动机吊装过程中安装位置的定位.文献[5]提出了利用自动轨道的方法完成飞机发动机的对接,这种有轨道的安装方法对施工现场有特殊要求,不具有普适性.随着计算机科学与人工智能的发展,基于深度学习的目标检测算法在目标识别与定位领域具有较好的应用效果,主流的深度学习目标检测算法框架可根据检测思路的不同分为两大类[6]:第1类是基于候选窗口的目标检测框架,做法是在预测阶段首先选出目标概率较大的区域,之后对所选区域进行预测.这类框架检测的精度比较高,但检测速度比较慢,如RCNN(Rich feature hierarchies for accurate object detection and semantic,用于精确物体定位和语义分割的丰富特征层次结构),FastRCNN等[7-9];第2类是基于回归的目标检测框架,如 YOLO(You Only Look Once)、SSD(Single Shot MultiBox Detector),该类方法将检测问题看成回归问题,将分类和预测一步完成.这类框架检测速度比较快,但在识别精度方面一般弱于第1类目标检测框架[10-11].
综上,目前在航空发动机自动化安装领域,对发动机的安装工位的识别与定位没有着重研究.针对以上问题,本文作者提出基于深度学习的目标检测算法,以某型号客机为研究对象,研究发动机安装位置的识别方法.
1 航空发动机安装位置识别方案
发动机翼吊式安装是民航飞机发动机常用的安装方案,机翼下前后安装位置上的4个螺栓将发动机固定如图1(a),1(b)所示.前安装位置近似为上底170 mm、下底240 mm、高240 mm的等腰梯形,后安装位置近似为153 mm×536 mm的矩形,如图1(c),1(d)所示.发动机自动化安装过程要求对前后两个安装位置进行识别,以满足发动机与机翼安装时的对接要求.
发动机安装主要有两种方法[12]:1)采用具有升降功能的吊车将发动机直接运送至安装位置,再使用螺栓将发动机固定;2)采用具有升降和平移功能的运输车将发动机推送到安装舱内,使发动机与机翼下方的安装点完成对接.两种方法都需要将发动机运送到机翼下的安装位置处,之后通常需要安装人员依靠以往的工作经验,以目测的方式将发动机与安装点相对应的位置进行对准,这是发动机安装流程中最难以掌控的环节.本文应用深度学习中的目标检测算法对发动机前、后两个安装位置进行识别定位,从而引导发动机的安装.
安装识别方案的硬件系统主要包括发动机运输车、视觉采集系统及控制系统等,图像采集系统布置在运输车上.识别方案流程如图2所示.首先将待安装的发动机吊装至运输车上,在运输车前进的过程中通过车载视觉系统进行图像采集并保存到计算机中;然后由使用训练完成的目标检测器对采集到的图像进行前后安装位置的识别;根据识别结果判断发动机的位置是否满足安装要求,如果不能满足安装要求,则通过运输车继续调整,直到发动机到达准确的安装位置.
2 YOLO目标识别检测算法
YOLO系列算法的核心思想是将整张图像作为输入,对图像进行网格划分,只进行一次前向运算直接在输出层回归出边界框的位置、类别及置信度,这样可以极大地提高算法效率.鉴于YOLO网络的实时性和简洁性,本文以YOLOv3算法为基础,实现对航空发动机前后安装工位的识别.
2.1 基于深度残差网络的特征提取
相对于YOLOv1、YOLOv2, YOLOv3的主干网络结构调整非常大,主要体现在网络的深度上及残差结构的引入.YOLOv3的主干网络是由一个53层卷积构成的Darknet-53卷积网络,如图3所示.为保证YOLOv1,YOLOv2快速检测的特性,提高识别的正确率和对小目标的识别精度,YOLOv3在Darknet-19的基础上加深网络的层数.
为了避免深层网络造成的网络训练过程中的梯度消失的现象,YOLOv3借鉴ResNet残差神经网络的思想[13],将深度残差网络结构运用到网络的构建当中,残差网络结构如图4所示.残差网络由一系列的残差块组成,每个残差块包含两个分支:恒等映射和残差分支,用公式可表示为
H(x)=F(x)+x
(1)
残差块将输入x和经过两次卷积后输出的F(x)进行张量求和,这样不仅增加了网络中信息的流动性,且没有增加网络的复杂度,有助于加快网络的训练进程.
2.2 多尺度特征融合
YOLOv3借鉴了SSD算法的特征金字塔网络(Feature Pyramid Network,FPN)的思路,从3个不同的尺度上提取特征,如图5所示.3个尺度的特征图大小分别是y1(13×13)、y2(26×26)、y3(56×56),分别由输入图像经过5、4、3次下采样得到.将输入图像划分为S×S个网格,每种尺度上的候选框数量为A,预测的类别是C,则最终每个特征尺度上预测得到的结果是一个S×S×A×(4+1+C)维度的张量.
不同于SSD算法,YOLOv3没有将主干网络的中间特征图直接作为输出,而是将下一层的网络特征图进行上采样后与上一层特征图拼接.将3种尺度的特征图进行融合,丰富了网络结构,这也是YOLOv3检测效果要优于SSD算法的原因之一.
3 算法改进与模型训练
YOLOv3利用深度残差网络提取图像特征,并利用多尺度融合进行检测,可以较好实现目标检测任务中的目标分类任务.本文中的研究对象包含了大量颜色、形状等相近的背景噪声,直接使用原始算法效果比较差,如图6所示.从改进前安装位置检测效果中可以看出传统的YOLOv3算法可以检测出目标并做出正确分类,但是检测出的目标边界框出现了偏移或过大情况,这种情况不利于发动机的自动化安装.
由于YOLOv3借鉴了FasterR-CNN候选框(Anchor Box)的思想,从数据集中聚类出候选框.在训练的过程中,随着网络的训练和学习不断深入,对真实边框相对于初始预测的边框偏差进行修正,最终预测出最优的边界框位置.因此,本文采用优化候选框的方法,提高算法检测的位置精度.
3.1 算法改进
原始YOLOv3算法的候选框参数是在公共的COCO数据集获得的,不能直接应用到本文的数据集中.采用K-means聚类算法,在本文构建的数据集中重新聚类出候选框.标准的K-means算法使用欧氏距离(Euclidean Distance)作为度量,使用这种方式聚类候选框会导致较大边框比较小边框产生更多的误差.在本文中,最优的候选框是能够得到最优的候选框与真实框的面积的交并比(Intersection over Union,IOU),如图7所示,候选框与数据集中标定的真实边界框重叠度越大越好.
为了避免候选框尺寸带来的误差,采用IOU代替传统的欧氏距离作为K-means算法当中的目标变量,d(box,centroid)=1-IOU(box,centroid).如图8所示,使用不同数量的候选框观察平均IOU的变化趋势.可见,随着候选框数量的增加,平均IOU增加.但候选框数量达到一定值时,平均IOU变化不明显.过多的候选框数量,会因计算量的增加导致模型的检测速度变慢,最终本文选取12组候选框.
对于不同尺度的特征图,特征图越大,对包含的输入图像的视觉感受区域就越小,对于小目标的检测就越敏感,所以应选用小的候选框;相反,小的特征图应当匹配大的候选框.12组候选框在3个尺度的特征图上的分配情况见表1.
表1 不同特征图对应的候选框
3.2 模型训练
本文的数据集使用的数据来源于北京某飞机维修基地,其中包含了不同背景、不同位置关系、分辨率、不同距离的素材.为丰富数据集,采用光照变化、平移、旋转剪切等操作,尽量使图片的场景具有多样性和代表性.共计1万张,将训练集、测试集和验证集按照8∶1∶1的比例进行分组,最终构成本文的数据集.
使用Keras作为YOLOv3算法实现的基础框架,以Tensorflow作为后端. 实验所用主要计算机配置GPU: NVIDIA GeForce GTX1050Ti、CPU:Intel i5-8400、操作系统:Ubuntu18.04.在模型训练时,分别使用9组和12组候选框单独进行训练.整个训练过程共进行了200次迭代,学习率参数设置为0.000 01.输入图片分辨率为416×416,批次大小为2.
4 实验结果与分析
建立的数据集中有10 000张含有航空发动机前后安装位置的图片,其中有1 000张用来进行模型的测试,选用的评价指标分别是平均精度均值和平均交并比.试验对比结果如下:
1)模型收敛效果更好.从图9可以看出,在进行模型训练的过程中,随着迭代次数的增加,改进后的模型的收敛速度快于原始的模型.因为真实边界框是相对于候选框进行修正得到的,最终通过预测出偏移量从而确定真实框的位置,所以优化后的候选框参数可以加快模型的训练,收敛速度更快.
2)检测精度更高.模型对目标识别的效果由平均精度均值(mAP)表示,mAP是由所有类(Nc)的平均精度(APC)的平均值得到
(2)
通过实验可得,前安装位置的平均精度由91%提高到93%,后安装位置的平均精度由57%提高到68%,所以优化参数后的模型的mAP从73.71%提高到80.48%.
3)模型对边界框的位置检测更准确.改进后的模型对前后安装工位的位置检测更加准确,如图11所示.对比图10(a),10(b)和图10(c),10(d),同一检测环境条件下,改进后的模型对前安装位置检测的更加准确,目标检测框更能准确的将检测目标包围,且置信度也分别从0.62、0.69提升到0.85、0.93.从图110(e),10(f)和图10(g),11(h)的对比中可以看出改进后的模型对后安装位置同样检测的更加准确,且置信度也分别从0.71、0.66提升到0.96、0.88.
平均交并比可以表现算法对位置精度的检测能力.对测试集上的1 000张图片,原始算法与改进算法的平均交并比结果分别为75.23%和83.75%.平均交并比位置越大,说明检测的结果越接近真实的边界框位置.优化参数后的模型检测结果的平均交并比提高了8.52%,说明优化后的模型对边界框的位置预测更准确.
此外,还使用了传统的图像处理的方法,提取通过形态学操作形成的连通区域,实现对安装工位的分割.3种不同算法对比见表2.可见,基于深度学习的方法在识别准确率上远远高于传统的图像处理方法.
表2 算法的准确率和定位速度
5 结论
首先分析了现有的航空发动机安装方法,在此基础上提出了基于深度学习的航空发动机安装位置识别方法,将深度学习应用于航空发动机安装位置的识别过程中.通过对原始YOLOv3算法进行改进,实现了:
1)基于深度学习,通过构建数据集,实现了航空发动机安装过程中安装位置的识别.
2)对数据集中标记的目标候选框重新进行聚类,选取12组候选框应用到算法中,加快了网络的收敛速度,且Loss曲线收敛效果优于原始算法.
3)提高了对前后两个安装位置的识别精度,使mAP由73.71%提高到80.48%,并提高了目标预测的位置精度,平均交并比由75.23%提升到83.75%,可满足发动机自动化安装过程中的安装要求.