基于改进YOLOv5的飞机舱门识别与定位方法研究

2024-02-04 04:14张长勇李玉洲张朋武
计算机测量与控制 2024年1期
关键词:单目舱门货舱

张长勇,郭 聪,李玉洲,张朋武

(1.中国民航大学 电子信息与自动化学院,天津 300300;2.南航股份公司 工程技术分公司北京基地,北京 102602)

0 引言

现代民航客机,由于本身的尺寸设计,绝大部分的地面服务工作,例如装卸行李、上下旅客、检查维修等,都需要借助相应的地面设备或特种车辆才能完成。目前国内外机场地面设备与特种车辆的靠机作业均由人工操作完成。参与作业的工作人员通常分为两部分:一部分为监护员,在设备上(如航食车舱门口)或飞机旁负责引导特种车辆靠近飞机,并监督车辆是否停靠到位;另一部分为特种车辆驾驶员,在车辆距离飞机5~10 m外,先进行车辆与飞机的预对正,然后再依据监护员指挥,最终完成地面设备与特种车辆的靠机任务。人工作业费时费力且不易于统一管理,因此特种车辆自动靠机已成为智慧机场的发展趋势之一[1]。

飞机舱门的准确检测与定位是实现特种车辆自动靠机的关键。由于采用视觉的方式比使用非视觉方式能够获得更多的信息,且有着更强的泛化性和可靠性,成为目前的主流检测方式。基于视觉的目标检测算法可分为一阶段和二阶段两种。二阶段目标检测算法[2-5],主要有R-CNN、SPP-net、Fast R-CNN、Faster R-CNN等系列方法,算法先通过区域提取网络产生候选框,然后用卷积神经网络对候选框作分类和回归;一阶段目标检测算法,主要有 YOLO 系列[6]、SSD[7]等,通过一个网络直接回归出目标的类别和位置。一阶段算法相对于二阶段算法,更适用于轻量级速度较快的实时检测。

激光定位、双目定位、单目定位是目前较为常用的3种定位方法。激光定位[8]具有测量精度高、体积小和速度快的优点,但存在集成度低,成本高的问题;双目定位[9]具有精度高、设备集成度高的优点,但相机的装配过程复杂且系统体积较大;单目定位[10]具有设备简易、集成度高、体积小、系统简单稳定的优点,但由于单个摄像头丢失了深度信息,所以需要给出待测物体的宽度或者高度才能进行定位。

鉴于舱门尺寸可以事先通过飞机维修手册(AMM,aircraft maintenance manual)和结构修理手册(SRM,structural repair manual)查找获得,在综合考虑系统成本、算法性能、系统稳定性后,提出一种基于单目视觉的飞机舱门识别与定位方法,先采用改进YOLOv5算法实现目标舱门的检测,再利用单目相机实现舱门定位。通过在原始YOLOv5s模型中添加卷积注意力模块CBAM[11],并使用改进的空间金字塔池化结构SPPCSPC代替了原有的快速空间金字塔池化结构(SPPF,spatial pyramid pooling-fast),使目标检测模型能更好地学习目标特征。在舱门识别的基础上,通过获取候选框中角点的像素,利用空间几何关系,对传统的单目相机单维度定位方法进行改进,以实现飞机舱门的三维定位。在北京大兴国际机场进行实际测试后,表明算法的识别与定位精度能达到预期设计要求。

1 基于改进的YOLOv5舱门检测算法

1.1 YOLOv5s算法

YOLOv5算法根据权重、深度和宽度的不同,共分为YOLOv5s、YOLOv5m、YOLOv5l 和YOLOv5x四个版本[12]。其中YOLOv5s算法网络结构最小,速度最快,更能贴合机场中舱门的实时检测要求,因此可以作为舱门检测的基本算法。YOLOv5s框架主要有4个部分,分别是输入端、主干特征提取网络、颈部和输出端[13]。YOLOv5s 目标检测算法在识别目标时,同时兼备检测精度高和速度快的优势。但为了能更加快速准确的实现对飞机舱门的专有化识别检测,仍需要对算法进一步改进。

1.2 融合CBAM注意力机制

飞机舱门距离相机越远,则舱门在成像平面中占有的像素比例越少。为解决远距离舱门难以识别的问题,需引入注意力机制,使YOLOv5s这种轻量级的网络,在大区域上关注目标,同时不会增加时间开销[14],以此来提高算法对飞机舱门的特征提取能力。

计算机视觉应用领域中的注意力大体有两类:一类是以SE(Squeeze and Excitation)为代表的通道注意力机制,另一类是以CBAM为代表的空间注意力机制。其中,SE注意力机制是对整个通道内的所有数据进行平均池化,这样就忽视了每一条通道内的细微差别,而CBAM注意力机制可以结合通道和空间机制构建更高层次的空间结构,使得所有输入特征在通道和空间结构上的联络更加紧密,从而更高效地获取目标的有效信息,其网络结构如图1所示。

图1 CBAM网络结构图

CBAM注意力机制由通道注意力模块 (CAM,channel attention module)和空间注意力模块 (SAM,spatial attention module)组成[15]。

CAM用于输入图片中重要信息的提取,其计算公式为:

MC(F)=σ(MLP((AvgPool(F))+

MLP((MaxPool(F)))=

(1)

MS(F)=σ(f(7×7))([AvgPool(F);MaxPool(F)]=

(2)

式中,MS为空间注意力图;f(7×7)为滤波器大小为7 × 7的卷积运算。在YOLOv5s算法中的CSP1_3中加入CBAM注意力机制,改进后的网络结构如图2所示。

图2 CSP1_3添加CBAM模块

1.3 添加SPPCSPC

空间金字塔池化的最开始提出是为了实现一个自适应尺寸的输出。YOLOv5作者Glenn Jocher基于此思想提出了SPPF,网络结构如图3所示。SPPF[16]用连续3个卷积核做池化可以与YOLOv4算法达到同样的输出效果,同时与前者比起来,可以减少计算量,所以速度也有所加快。图形化的结构可以有效地扩展感知范围,使算法能够适应各种分辨率的图像,而最大池化技术则可以实现这一目标。

图3 SPPF网络结构图

SPPCSPC是改进后的空间金字塔池化操作,主要解决了因裁剪、缩放操作导致的图像失真问题和算法对重复特征提取的问题[17]。

SPPCSPC网络结构如图4所示,该结构和YOLOv5s中自带的SPPF结构是有些相似的,都有1*1、5*5、9*9、13*13的池化层,前后也均有卷积,不同的是有一个1*1的残差边[18]。这4种池化代表着4种感受野,用来区别于大目标和小目标。它们采用CSP思想,将特征包括两部分,一部分用于常规处理,另一部分用于SPP结构处理,最后将两部份合并,可以大大减少运算量,加快运算速率,同样也能提升精确度。

图4 SPPCSPC网络结构图

1.4 使用分组卷积

分组卷积与普通卷积的区别为将输入特征图分成组,每个卷积核也相应地分成组,在对应的组内做卷积[19],如图5所示。

图5 分组卷积示意图

实验表明,如果只考虑浮点乘,不考虑浮点加,在输入输出特征图尺寸相同的情况下,分组巻积的参数量是常规卷积的1/g,其中g是分组的个数(图5中是两个)。在yolov5s.yaml中使用SPPCSPC代替原有的SPPF后,并将分组的个数改为4后,参数量(Params)与计算量(GFLOPs)的参数对比表如表1所示。

表1 各空间金字塔池化结构参数对比表

在YOLOv5s算法中的CSP1_3中加入CBAM注意力机制,并使用改进的空间金字塔池化结构SPPCSPC代替了原有的快速空间金字塔池化结构SPPF,再将分组卷积改为4,最终得到改进后的YOLOv5s舱门检测模型网络结构如图6所示。

图6 改进后的YOLOv5s网络结构图

2 改进的单目相机三维定位算法

2.1 单目相机畸变参数

由于相机无法实现完美安装,故单目相机可能会存在切向畸变和径向畸变的现象,从而影响后期的摄像头成像和定位结果[20]。以上两种情况都会导致摄像头的成像不准确,通过摄像头标定工具,可以矫正上述的两种成像畸变,使输出的图像质量更好;通常假设上述两种畸变呈多项式关系,径向畸变关系式如下:

xrdis=x(1+k1r2+k2r4+k3r6)

(3)

yrdis=y(1+k1r2+k2r4+k3r6)

(4)

式中,x,y为图像坐标系中的理想坐标;xrdis、yrdis为径向畸变坐标,r=(x2+y2)1/2、k=(k1,k2,k3)T为切向畸变参数。

切向畸变关系式如下:

xtdis=x+2p1xy+p2(r2+2x2)

(5)

ytdis=y+p1(r2+2y2)+2p2xy

(6)

式中,x、y为图像坐标系中的理想坐标,xtdis、ytdis为切向畸变坐标,r=(x2+y2)1/2、k=(p1,p2)T为切向畸变参数。

本文选用海康威视DS-E12摄像头,分辨率为1 920×1 080,固定焦距为3.6 mm。使用matlab进行相机标定,矫正了摄像头的5个畸变参数(k1,k2,k3,p1,p2)。标定之后,还可以得到该摄像头的焦距(fx,fy)与光心在成像平面的位置(Cx,Cy),以及相机内参矩阵A:

2.2 单目相机测距原理

如图7所示,假设一个宽度为x的物体,在距离相机为z的位置。测得该物体在相机成像平面的像素宽度为x[21]。

图7 单目相机测距原理图

则相机焦距f的计算公式为:

f=(X′×Z/X)

(7)

其中:以货舱门为例,根据改进的YOLOv5算法识别出来货舱门矩形框,得到货舱门在水平和竖直方向上的像素宽度分别为Wh1和Wv1。

根据AMM查得B737-800前货舱尺寸为1.22×0.89 m,则货舱门与相机在Z轴方向上的距离为Z1和Z2,它们的计算公式为:

Z1=f×1.22/Wh1

(8)

Z2=f×0.89/Wv1

(9)

接下来可以得到货舱门在检测舱门平面下,水平和竖直方向上单位像素对应真实的比值分别为S1和S2。它们的计算公式分别为:

S1=1.22/Wh1

(10)

S2=0.89/Wv1

(11)

图8 图像原点与检测框原点示意图

根据公式(10),(11)分别算出货舱门真实X轴上的距离X1,X2,真实Y轴上的距离Y1,Y2。其计算公式分别为:

(12)

(13)

客舱门的定位原理与货舱门定位原理相同。根据SRM查得B737-800前客舱门尺寸为0.86×1.83 m。根据改进的YOLOv5算法识别出来客舱门矩形框,得到客舱门在水平和竖直方向上的像素宽度分别问Wh2和Wv2。则货舱门与相机在Z轴方向上的距离为Z3和Z4。计算公式为:

Z3=f×0.86/Wh2

(14)

Z4=f×1.83/Wv2

(15)

再得到在检测舱门平面下,水平和竖直方向上单位像素对应真实的比值分别为S3和S4。它们的计算公式分别为:

S3=0.86/Wh2

(16)

S4=1.83/Wv2

(17)

根据公式(16),(17)分别算出客舱门X轴上的真实距离X3,X4,舱门真实Y轴上的距离Y3,Y4。其计算公式分别为:

(18)

(19)

至此,根据货舱门和客舱门的识别框在水平和竖直方向上对应的像素宽度,得到了两套货舱门三维定位方案,它们分别是为X1,Y1,Z1和X2,Y2,Z2。也制定了两套客舱门的三维定位方案,它们分别是为X3,Y3,Z3和X4,Y4,Z4。

3 实验结果与分析

3.1 软硬件资源配置

采用AutoDL云服务平台进行舱门检测模型训练,其中CPU类型为Intel,使用存储器为45GB,GPU类型为NVIDIA GeForce RTX 3090*1,内存大小为24 GB。数据集随机拆分为训练集、验证集和测试集,使用YOLOv5s、Pytorch1.9.0、CUDA版本和1.11.1的框架。根据经验,将初始和终止学习率均设置为0.01[22],批量大小设置为32,迭代轮数设置为500。表2提供了软硬件配置和实验参数的详细信息。

表2 舱门检测平台软硬件参数表

3.2 实验数据集

舱门检测数据集由国内某机场自主采集。如图9所示。在经过亮度、对比度和饱和度的数据增广后,舱门检测数据集共包含开启的客舱门(open_cabin door)、关闭的客舱门(closed_cabin door)、开启的货舱门(open_cargo door)、关闭的货舱门(closed_cargo door)各1 200张,总共4 800张图像,其中包含的舱门目标约10 000个。

图9 数据集展示

3.3 评价指标

为了对改进后的算法性能做出评估,本文选取了精确度(P,Precision)、召回率(R,Recall)、平均精度(mAP,mean average precision)作为评价指标[23]。精确率、召回率以及平均精度的计算式如式所示:

(20)

(21)

(22)

(23)

式中,TP为飞机舱门状态被正确检测出的数目;FP为飞机舱门开启或者关闭但被检测错误的数目;FN为飞机舱门标志丢失的数量;psmooth(r)为进行平滑处理后的P-R曲线,psmooth(r)=maxr′≥rp(r′),0≤r≤1,0≤r′≤1。n为类别,而N则为总类别数。

加入CBAM后,mAP由原来的90.9%提升到了92.8%。如图10所示。

图10 添加CBAM后的mAP

在添加CBAM后,又使用SPPCSPC代替原有的SPPF后,并将分组卷积改为4后,mAP由原来的92.8%提升到了96.5%,如图11所示。

图11 添加CBAM和分组的SPPCSPC后的mAP

原始模型和改进后的模型在准确率、召回率和平均精确度方面的对比结果如表3所示。

表3 实验对比结果

由表3可知,添加在原有的YOLOv5s中加入CBAM后,mAP提升了1.9%。在此基础上添加改进的分组SPPCSPC后,mAP又提升了3.7%。综上,添加注意力机制和SPPCSPC算法的YOLOv5算法mAP达到96.5%,相比原始YOLOv5提升了5.6%。且收敛速度更快,相比之前算法达到了提升模型检测精确度的目的。

3.4 三维定位验证

根据货舱门和客舱门的识别框在水平和竖直方向上对应的像素宽度为依据,在2.2节中分别制定了货舱门和客舱门各两套定位方案。为了验证两套定位方案的优劣性,保持相机平面平行于,机身纵轴和立轴所形成的平面,将单目相机P摆放在与舱门中心点O的不同的空间位置处,如图12所示。

图12 空间位置说明图

在图12中,单目相机初始摆放在距离舱门中心点O在X、Y、Z轴上分别-15 m,-0.75 m,19 m的位置处,如图11中的P1。随后X间隔5 m,Y间隔0.25 m,Z间隔6 m为一组,对应图中表示为P2~P7。

在实际实验中发现,由于飞机本身的横剖线为椭圆形,所以识别图像中的竖直方向识别框比水平方向上的识别框更贴合舱门实际轮廓,故将算法中货舱门和客舱门与相机在Z轴方向上的距离分别定为Z2和Z4,在X轴上的距离分别定为X2和X4,在Y轴上的距离分别定为Y2和Y4。

在实际实验中发现,算法预测值略小于实际值,将得到的实验数据通过matlab拟合,得到X、Y、Z轴的线性方程来修正误差。

Xcor=1.045*Xpre-0.005 971

(24)

Ycor=1.049*Ypre+0.003 024

(25)

Zcor=1.053*Zpre-0.086 27

(26)

式中,Xcor,Ycor,Zcor分别为加入线性拟合方程后算法在X、Y、Z轴的最终预测距离,Xpre,Ypre,Zpre分别为加入线性拟合方程前算法在X、Y、Z轴的预测距离。

再加入线性拟合方程后,继续相机平面平行于,机身纵轴和立轴所形成的平面,保持摄像头离地高度1.5 m(距离舱门中心点Y轴距离0.30 m),距离舱门中心点Z轴距离1.85 m处位置不变,将摄像头放置在分别在距离舱门中心点X为-1.00 m,0 m和0.30 m的3个位置处,使用Intel (R )Core (TM )i5-5200U CPU @2.20 GHz ,运行内存为12.0 GB的处理器在北京大兴机场晚上21:30运行时,得到的检测结果如图13所示。

图13 算法实时检测结果

将上述实时检测结果汇总得到表4,由表4分析可知,加入线性拟合方程后的算法,在舱门正前方1.8米处平均误差只有0.03米,且算法预测值可以达到0.302秒更新一次,满足实时定位的速度需求。

表4 算法实时定位结果

继续保持相机平面平行于,机身纵轴和立轴所形成的平面,将摄像头P摆放在与图12中的相同位置处,将加入线性拟合修正前后的算法预测结果整理如表5,验证改进后定位算法的准确性。

表5 定位实验结果

实验数据表明,随着摄像头与舱门距离的增大,测量误差逐渐增大。修正前,预测值均略小于实测值,在舱门前方19米处测得最大误差为0.96米;修正后,在舱门前方13米范围内,预测值略高于实测值,13米范围外时,预测值略低于实测值,在19米处的最大误差降低到0.15米,舱门正前方1米处的实时定位误差为0.01米。定位算法平均检测时间约为0.302秒,定位精度满足特种车辆靠机完成后,与舱门保持5~10厘米的安全距离要求。

4 结束语

飞机舱门的准确识别与定位是实现机场特种车辆自动靠机的重要前提。本文先采用改进后的YOLOv5算法对舱门进行识别,再利用单目成像模型法进行舱门定位。在机场环境下测得的舱门定位速度和精度能够满足特种车辆靠机作业要求。方法具有成本低、体积小、方便调试等特点,可为特种车辆自动靠机系统的设计提供借鉴和参考。

猜你喜欢
单目舱门货舱
飞机舱门失效乘客减载计算方法的探讨
运输机尾舱门收放液压控制系统的改进设计
空中客车A330 飞机货舱通风系统
基于虚拟铰链打开机构的舱门提升机构研究
5万吨长货舱多用途船舶开发设计
民用飞机复合材料舱门优化设计
民用飞机货舱烟雾探测系统研究
一种单目相机/三轴陀螺仪/里程计紧组合导航算法
民用飞机货舱地板设计研究
单目SLAM直线匹配增强平面发现方法