基于机器学习的机车乘务员确认呼唤判别系统
2020-07-08吕佳欢陈子昂冷佳昱银培宇于杭
吕佳欢 陈子昂 冷佳昱 银培宇 于杭
摘 要:确认呼唤作为机车乘务员行车过程的重要制度,通过物件指示、口诵确认、心手并用,将人的安全意识水平提升到清醒状态,以减少人为失误导致的意外,在我国铁路安全方面起到了重要作用。本项目组设计的基于机器学习的机车乘务员确认呼唤判别系统,分为视频取帧、目标检测、机器识别、语音识别、判断提醒五大模块,达到对司机的确认呼唤行为进行监测,对错误行为进行及时提醒的效果,创新性地解决了目前人工察看机车乘务员驾驶行为的效率低、工作量大、时效性差等问题,有效提高铁路安全技术的智能化、数字化与信息化水平。
关键词:确认呼唤;机器学习;目标检测
中图分类号:TP181 文献标识码:A 文章编号:1671-2064(2020)06-0041-02
1研究背景
火车作为一种特殊的交通工具,它为人们出行带来了巨大的方便。机车乘务员在驾驶过程中需进行指差确认来保持良好的注意力以确保驾驶的安全。目前和谐机车上安装的车载安全防护系统(6A系统)能对驾驶员在驾驶过程中的确认呼唤作业进行视频监控,但视频数据的地面分析采用人工浏览察看方式,此方式不仅需要配备大量的视频数据分析人员和设备,分析效率低、工作量巨大、容易遗漏,并且无法对驾驶员在机车运行过程中不当行为进行实时提醒。
目前国内外已有不少学者进行了相关研究:专利公告号为CN101639894B[1]的中国发明专利公开了在线监测列车驾驶员行为和疲劳状态的方法及其检测系统,其仅是通过检测视野范围内是否有人脸来判断驾驶员是否脱岗,但无法对列车驾驶员所做出的动作或手势进行进一步识别。论文《基于表情及姿态的机车司机疲劳驾驶检测技术》(北京交通大学)[2]通过混合高斯模型提取运动目标,然后利用帧间差分法和肤色模型提取手部,利用形状上下文和HOG+Adaboost的方式对手势进行判断,该技术仅检测手部手势,并不对整个上臂的动作进行识别,因此容易造成误报,此外采用HOG+Adaboost的方式的鲁棒性不高。
我们基于机器学习技术设计了机车乘务员确认呼唤判别系统,此系统能大幅降低回看录像的人力、时间成本,实现不规范行为的实时提醒,保障机车运行安全,有效节省铁路局运营成本。
2技术原理
2.1 技术路线
本系统的功能是通过GPS定位,当机车运行到某个路段时,事先向系统输入标准的动作序列和标准用语,启动车内摄像头拍摄视频,即可实时地监测乘务员是否按要求执行确认呼唤作业。若动作缺失或用语不正确,则实时向驾驶室发出语音提醒,减少机车乘务员的失误,进而提升列車的运行安全性。最终将产品的全部功能集成在APP中。
本系统的核心部分为监测乘务员是否按要求执行确认呼唤作业,其工作流程如下:由列车驾驶室的摄像头采集一段视频,对视频进行取帧处理获取图片,用ImageAI主体识别将图片中的人裁剪生成主体图像,之后并行实现另外两个功能。其一是语音提取及语音识别,由判别器鉴别口令是否正确;其二是根据主体图像,利用训练好的CNN网络将姿势分成几个大类,再将姿势较像的几种动作做手部截取及手势识别,进一步细化分类,提高分类准确度。两个功能完成后,最终由判别器输出判别结果,输出语音提醒,告知机车乘务员,如图1所示。
2.2组成模块
本系统主要组成结构为:数据集图片预处理模块、CNN卷积分类模型准备模块、视频处理取帧模块、ImageAI主体识别模块、CNN网络分类模块、手部截取及手势识别模块、动作分类输出模块、语音识别及判别模块、产品界面模块。
2.2.1数据集图片收集与预处理模块
(1)收集。在开始项目之前,我们对机车乘务员的确认呼唤机制做了充分的研究,弄清了每个动作和用语的含义,并从中挑选了一部分动作与用语用于系统实现。通过上网搜索、自行拍摄等方法,对直行通过、正向径路停车、侧向径路运行等常规动作进行规范的数据采集,要求每个动作采集到的图像数据达到500张。
(2)预处理。利用打标签工具LabelImg为图片添加label,将图片和xml保存在不同文件夹。新建一个带有2个子文件夹的文件夹,分别存放测试图片与训练图片。这两个文件夹下再分别建立N个子文件夹,按照xml中的标签数据将目标剪裁后按类别保存在不同子文件夹,每个子文件夹代表一个分类,一共有N类。
在图片输入训练模型之前将图片尺寸统一为256×256,之后将图片转换为计算机可以识别的tensor数据类型并归一化。测试集图片和训练集图片处理方法相似。
2.2.2 CNN卷积神经网络模型的建立、训练与优化模块
本系统的核心就是建立机器学习模型,训练神经网络使其具备对图片分类的能力。由于涉及图片处理及分类,所以我们选择神经网络模型中的卷积神经网络(CNN)对图片数据进行学习,并根据实际情况调整模型参数,优化算法性能。
神经网络(neural networks)的基本组成包括输入层、隐藏层、输出层。而卷积神经网络的特点在于隐藏层分为卷积层和池化层(pooling layer,又叫下采样层)。
卷积层和池化层的工作就是提取特征,并减少原始图像带来的参数。然而,为了生成最终的输出,我们需要应用全连接层来生成一个等于我们需要的类的数量的分类器。[3]
在整个卷积网络中,有卷积(CONV)、激活(RELU)、池化(POOL)等步骤,每一层神经网络都必须包含CONV、RELU和POOL三个部分。最后是一个全连接层(FC)输出类别,这个和目标值的类别个数有关[4]。
在我们的模型中,我们使用的输入图片尺寸为256×256,3通道RGB图像,采用16个输出高度,卷积的观察窗口大小为5×5,步长为1,批训练的数据个数32,学习率0.001的设置下学习,最终得到的模型准确度达到98%。
2.2.3视频处理取帧模块
此模块模拟列车摄像头采集视频数据,由于我们的模型基于图像分类且需要进行语音识别,所以需要对视频进行处理,分为帧序列和声音部分。为了不产生较多图片占用内存且不会错过每一个动作,我们此处设置为每2帧取一张图片,在接下来的模块中再对帧序列进行主体识别。
2.2.4 ImageAI主體识别模块
由于训练模型时的输入为图片中只有人的部分,所以对驾驶员姿势判别之前需要先实现主体识别,将图片中只有人的部分提取出来。在该模块,我们采用python中的ImageAI库对视频中图片进行主体识别。
2.2.5 CNN网络分类模块
主体识别之后,需要对驾驶员的姿势进行判别。此处我们利用之前训练好的CNN网络,输入主体识别之后的图片,对动作进行大体分类,即除手部姿势外都一样的姿势当做一类。
2.2.6手部截取及手势识别模块
对上一模块中获得的大类进行进一步细化分类,对手部进行截取,运用手势识别模块再次识别,以实现更高性能更加精准的动作分类。
2.2.7动作分类输出模块
每一张图片都会产生一个代表类别的数字,则一个视频会产生一个序列。由于图片来自于视频取帧,所以驾驶员的同一个姿势会产生多个图像,从而一个姿势在输出序列中不只有一个数字。此处我们设置为只有三个以上连续的数字有效算为一个动作,对序列进行处理后输出与视频动作匹配的短序列。
2.2.8语音识别及判别模块
利用ffmpeg获取视频中的声音为MP3格式,之后格式转换为pcm形式,再对声音部分进行语音识别,与标准用语进行比较。图1为语音识别之后产生的文件。
2.2.9产品界面模块
我们整合了视频取帧、ImageAI主体识别、CNN判别、手势提取及识别、语音识别等各个模块,最终实现了从MP4视频中判别并输出动作及口令的正误情况。
为了实现友好的人机交互,提高系统的适用性,我们利用tkinter模块实现可视化界面。
通过路径选择来选择视频检测,进行主体识别时同时播放视频,并将主体识别结果显示在视频上。视频播放完毕之后进行语音识别和动作识别,并将结果显示在界面上,其中蓝色进度条显示程序进度。
3创新特色
基于机器学习的机车乘务员确认呼唤判别技术具有效率高,实时性强等优点,所以利用它代替人工识别具有深远的意义和研究前景。本课题的创新点如下:(1)新功能:系统在提升动作识别专业度的基础上,增加了语音识别功能。(2)及时性:系统在列车员做手势以及说口令时可以检测并起到实时提醒作用。(3)高效性:系统可以提取列车的运行状态及道路信息产生相应的行为序列,并与司机的行为比对。(4)准确性:细化识别:先识别姿势,再识别手势,大大提高识别系统的准确率。(5)复杂环境适应性:从形态学、色彩信息以及亮度信息等多个方面进行探索,找到适用于复杂环境的人体行为检测方法。(6)低成本:系统所需成本低,能够节省大量的人力成本,同时也为人工检测存在的一些缺陷提供了可行的解决方案。
4结语
本文介绍了基于机器学习的机车乘务员确认呼唤判别系统的基本架构,目前已经实现了部分指差确认的手势和口诵识别。该系统不仅可以运用到铁路领域,在民航领域、建造业、制造业、机电工程业等需要进行指差确认的地方都很适用。例如,在民航领域,空姐在每次飞机起飞前要对乘客进行一整套的应急疏散教育,包括严格的动作和语言提示。我们的系统可对这一套动作进行判别,从而对空姐的行为进行监督。同时也可以应用于飞机乘务员的培训。
后期还需要录入整套手势信号、扩大数据库以提高判别系统在不同背景下的准确率。该确认呼唤判别系统运用到识别机车乘务员行为的时候还需与列车原有6A系统等安全控制系统相结合,以便判断是否在正确时间点完成指差确认作业。同时,为应对更复杂的驾驶环境和更严苛的评判标准,可以在不同的角度增加摄像头数量,以此保证对多个机车乘务员动作的识别准确率。
参考文献
[1] 秦华标,程东旭,倪向东.在线检测列车驾驶员行为和疲劳状态的方法及其检测系统,CN101639894[P].2010-02-03.
[2] 王莹.基于表情及姿态的机车司机疲劳驾驶监测技术[D].北京:北京交通大学,2012.
[3] 袁冰清.深度学习[J].数字通信世界,2019(6):01.
[4] 张莉.神经网络概述[J].中国高新技术企业,2008(21):109+114.