基于深度学习的飞行员行为检测算法研究

2021-05-08 04:06张江勇周一林陈金皖
中国新技术新产品 2021年4期
关键词:残差飞行员卷积

张江勇 周一林 陈金皖

(中国直升机设计研究所,江西 景德镇 333000)

0 引言

随着航空工业的快速发展,飞机的生产量和保有量都得到极大的增长,越来越多的人选择飞机作为长距离出行的交通工具。虽然飞机是目前安全系数最高的出行方式,但是飞机一旦发生事故,乘客基本无法逃生,还会造成大量的经济损失。目前,人们在提升飞机的安全性上付出了巨大努力,但是飞机飞行仍然存在极大的安全隐患。根据已知事实,引起飞机事故的原因主要包括飞行员失误、机械故障以及天气问题等。由飞机性能缺陷引发坠机事故的比例逐渐下降,而飞行员不佩戴安全带、疲劳驾驶等违规行为是造成飞行员失误的重要原因,这些违规行为造成的危害是巨大的,因此,该领域对自动检测飞行员违规行为有很大的需求。

目前,国内外对飞行员违规行为的研究非常少,对汽车驾驶员违规行为的研究要稍多一些,这些研究多采用传统目标检测算法对其进行检测[1]。传统的目标检测方法需要先进行极其复杂的特征提取工作,而且根据研究对象的不同,要获取不同的特征。该方法对图像预处理的专业性有极高的要求,需要大量的时间成本,而且在实际应用中误测和漏测的情况比较多,检测速度也不快。

近年来,深度学习[2]因其强大的学习能力在计算机视觉领域取得了巨大的发展。作为计算机视觉的1个重要分支,目标检测算法也从基于手工特征的传统算法转向了基于神经网络的检测技术。与传统方法相比,基于深度学习的目标检测算法全面提升了检测的精度和检测的速率[3]。飞行员行为监控实质上也是1个目标检测问题,为了适应机载硬件环境,该文基于YOLO算法进行改进,在电脑上进行训练,将训练后的模型导入Atlas500智能小站进行预测。实验表明,通过改进较大地提高了算法的精度和检测的速度。

1 深度学习卷积神经网络模型

1.1 网络结构

目前,基于深度学习的目标检测算法主要分为以下2种:1) 需要分成2步的检测算法,先获取候选区域,再进行分类。2) 将目标检测统一为1个回归问题,将整张图片作为网络的输入,直接在输出层对分类框的位置和类别进行回归,例如YOLO算法。由于YOLO算法在检测精度和检测速度上都有优势,因此该文将采用YOLO作为算法框架,基础结构如图1所示。

图1中,Conv.Layer为卷积层,Maxpool Layer为最大池化层,Conn.Layer为全连接层。其中,特征提取网络是整个结构中最重要的部分,在YOLO中使用的GoogleNet,共包括16个卷积层。实验证明,在一定范围内增加卷积神经网络的深度会提升网络模型的性能,随着网络越来越深,模型训练也会越来越困难,并且网络模型的性能反而会下降。但是通过残差模块成功训练出了152层的深度网络,在ImageNet比赛top5上的分类误差仅为3.57%,一般来说,在图像分类任务中表现越好,其特征提取能力和网络性能也越好。1个基本的残差模块如图2所示。

在图2中,F(x)为训练目标,ReLU(线性整流函数)为激活函数。输入为x,期望输出为H(x),如果在一般的神经网络中,会直接训练得H(x),而在残差模块中建立了1条输入输出的通道,训练目标变成了F(x)=H(x)-x,即残差,中间层只需要学习输入和输出之间的残差,因此拟合残差变得更加容易。残差网络参与训练的参数越少,图像分类的性能就越优秀,因此将残差网络作为目标检测的特征提取网络会取得更好的效果。

虽然残差模块可以提高网络的性能,但残差网络仍然有很大的计算量,有限的机载硬件并不能满足其所需要的计算力,因此需要进一步降低网络的计算量。网络模型预测计算量过高的1个重要原因是网络优化中的梯度信息重复,该文通过将梯度变化从头到尾地集成到特征图中,在一定程度上可以解决该问题,该处理思想与残差模块相结合可以得到CSP-ResNet基本模块,如图3所示。

该文将上层的特征图分成2个部分,一部分不执行卷积操作,一部分通过残差模块执行卷积操作,通过该方式增加梯度路径,另外设计局部过渡层使梯度组合差异最大化。部分过渡层是1种层次化的特征融合机制,它采用截断梯度流的策略来防止不同层出现学习重复的梯度信息。

图1 YOLO网络结构

图2 ResNet基本模块

图3 CSP-ResNet模块

该文采用ResNet101网络作为基准网络,使用CSPResNet模块代替原本的残差模块,该网络可以在减少了计算量的同时保证计算的准确率。

1.2 优化方法

要设计1个好的卷积神经网络,仅搭建好网络结构是不够的,如果没有对网络进行优化,即使是1个很好的结构,其优势也很难发挥出来。

在训练神经网络时,往往会因网络模型而对样本数据的过度学习造成过拟合,具体表现为随着迭代次数的增多,训练误差不断下降,但是其在验证集上的误差反而先降低后升高。目前,绝大部分目标检测算法使用Droupout方法,即通过随机减少神经元数量解决该问题。但是卷积层对这种随机丢弃并不敏感,卷积层仍然可以从相邻的激活单元学习到相同的信息。因此,在全连接层上效果很好的Dropout,在卷积层上效果并不好。该文随机对每层特征图的局部区域进行删减丢弃,对网络的正则化过程进行了全面改进。

除此之外,该文还使用了Mish激活函数,在ImageNet数据集上做分类任务时,使用了Mish激活函数的Top-1和Top-5的精度比没有使用时都要高一点。

2 建立真实数据集

2.1 数据采集

根据规定,飞行员在飞行中除非为了履行职责和生理需求,必须系好安全带。在四川航空8633号班机事故中,风挡碎裂的瞬间,产生的吸力非常大,副驾被吸出舱外,但是安全腰带勾住了他,才避免了发生更严重的事故。系好安全带能够增加安全的保障,因此检测飞行员是否系安全带是十分必要的。另外,如果飞行员在飞行中有抽烟、玩手机等危险驾驶行为,会分散飞行员的注意力,严重影响飞行员的正常操作,存在极大的安全隐患,因此及时监控到这些危险驾驶行为也十分重要。

深度卷积神经网络的训练需要大量的样本数据,否则很难训练出1个性能良好的网络模型。以用于国际计算机视觉竞赛的Pascal VOC数据集为例,训练集、测试集和验证集加起来总共11530张图片,其中包括了20类常见物体。由于该文讨论的是基于深度学习的飞行员行为检测,因此准备了1份飞行员违规行为数据集,包括飞行员不系安全带违规行为图片500张和飞行员抽烟违规行为图片300张,共800张。

2.2 数据集制作

深度卷积神经网络的训练属于监督学习,因此需要给图像数据添加标签。该文使用LabelImg作为标注工具,导入样本数据,直接手动标注飞行员违规行为并保存。保存经过标注的数据集会生成XML文件,该文件包括了实现目标检测训练的重要基础信息,包括标注的图像的像素、通道数以及标注框内部对象的类别及其坐标信息。

深度学习网络模型的训练要求是将样本数据随机分为训练集、验证集和测试集。训练集主要用来训练网络模型,通过反向传播算法拟合网络模型的最优参数。测试集主要用来评估最终网络模型的泛化能力,一般主要根据测试集在网络模型上的误差判断它的优劣。验证集的作用是对网络模型进行初步评估,它被输入模型训练中,但是并不参与训练,例如模型在训练集上的准确值是0.9,而在验证集上的准确值只有0.4,就可以知道网络模型发生过拟合。这样在训练中就可以对模型做初步评估,与训练完再在测试集上评估相比,该方法节省大量时间。

因为该文样本数据集有限,所以需要更大比例的训练集,因此只在每种违规行为中取30个作为测试集,30个作为验证集。完成上面所有步骤后就完成了数据集的制作,可以直接将该数据集输入卷积神经网络中进行训练和测试。

3 实验结果及对比分析

3.1 实验平台

深度学习模型的运算主要依靠计算机的GPU来完成,要对飞行员的行为监控进行实时检测,就需要GPU有足够的算力,一般GPU的性能越好,需要的主机体积也越大。但是由于机载环境有限,不能使用占用空间很大的主机来运行深度学习模型。Atlas 500 智能小站是华为面向广泛边缘应用场景的轻量边缘设备,具有超强计算性能、大容量存储、配置灵活、体积小、支持温度范围宽、环境适应性强以及易于维护管理等特点。Atlas 500 智能小站满足机载环境区域的应用,符合该文实验的硬件要求,因此该文使用该设备作为实验平台。

Atlas 500Host侧的CPU使用的是Hi3559A,Hi3559A是Armv8-a架构的64位CPU。由于Atlas 500没有可以在Hi3559A上运行的编译工具,因此在编译程序时,需要先在x86平台上进行交叉编译,再将编译后的软件拷贝到Atlas 500的Hi3559A上运行。开发机配置见表1。

表1 实验训练环境

3.2 实验结果分析

由于该文数据集有限,因此在输入端使用了Mosaic数据增强方法,即随机使用4张图片,随机缩放,再随机分布进行拼接,大大丰富了检测数据集,而且随机缩放增加了许多小目标,增强了检测小目标的能力,让网络的鲁棒性更好。

实验结果见表2。网络模型的训练都设置了60000次迭代,使用Mini-Batch梯度下降法,初始学习率设为0.01。

表2 飞行员违规行为数据集在不同网络模型上的运行结果比较

由表2可以看出,与GoogleNet基础网络相比,ResNet101基础网络的检测精度和检测速度都有很大的提升;另外,该文提出的CSP-ResNet101网络可以大幅减少计算量,同时大幅提升检测速度,但是检测准确率保持不变或者略有提升,每秒传输帧数只有58,达到了实时检测的要求。综上所述,该文所提出的基础网络优化方法提升了飞行员行为检测的准确性和速度,可以实现监控飞行员的功能。

4 结语

该文对于飞行员行为监控方法进行了深度研究,提出了1种基于深度学习的检测方法,其在基于YOLO算法的框架下,针对基础网络进行改进,利用残差模块拟合残差,将网络的深度提升至101层,大幅提升了网络的性能,并提出将梯度的变化从头到尾地集成到特征图中,避免了大量的信息重复,进一步减少了计算量。另外,为了满足机载使用,该文在体积很小的Atlas500智能小站上进行实验,实验结果证明,该算法能够有效、实时检测到飞行员的违规行为,通过提醒飞行员,可以在一定程度上避免飞行事故的发生。

猜你喜欢
残差飞行员卷积
基于双向GRU与残差拟合的车辆跟驰建模
很皮很皮的飞行员
基于3D-Winograd的快速卷积算法设计及FPGA实现
2021年7月22日,演习期间,美军飞行员从F-16战隼中挥手
基于残差学习的自适应无人机目标跟踪算法
基于递归残差网络的图像超分辨率重建
从滤波器理解卷积
飞行员是一种什么样的职业
基于傅里叶域卷积表示的目标跟踪算法
飞行员的酷装备