基于神经网络学习的公共汽车驾驶安全识别

2023-02-18 08:58王文斌柏月鸿孟宇佳
汽车实用技术 2023年3期
关键词:人脸公交车驾驶员

王文斌,刘 征,柏月鸿,孟宇佳

基于神经网络学习的公共汽车驾驶安全识别

王文斌,刘 征,柏月鸿,孟宇佳

(沈阳理工大学 汽车与交通学院,辽宁 沈阳 110159)

文章针对目前公交车驾驶员身体突发疾病、乘客抢夺方向盘以及现阶段L2级别的智能驾驶中驾驶权转移的空白等行车安全问题,设计了表情识别和危险动作识别两款程序。其中表情识别程序是利用基于Python语言的Opencv计算机视觉库,以Qt5作上位机设计的一款在视频中实时采集的人脸表情识别程序。首先通过输入图像的处理提高有关信息的可监测性,进而提高监测质量,其次进行表情模型训练和数据采集等,最终实现识别功能。同时还介绍了基于LabVIEW的危险动作识别程序。通过摄像头传入的视频信息,采用帧间差分法以及背景学习等算法监测出运动物体,实现监测范围内可能对驾驶安全构成威胁的外来物体的实时捕捉。实验数据表明,两款程序能够准确、快速地捕捉相应表情和危险动作,在解决上述问题的同时还大大提高了公共汽车的行车安全性。

驾驶安全识别;神经网络学习;智能驾驶安全;公共汽车

1 绪论

1.1 项目背景

在飞速发展的二十一世纪,随着交通系统的不断完善,公共汽车道路系统被认为是费用最低的公共道路系统,公交车成为不可或缺的交通工具之一。然而近几年公交车内发生的重大安全事故造成的负面影响不可忽视。比如早些年在重庆万州发生了因乘客坐过站要求驾驶员停车未果,从而抢夺驾驶员方向盘,最终使公交车驶入江内造成十几个生命逝去的事件。据以上事故可见,在公交车正常行驶途中,由于驾驶员本身的安全因素或乘客抢夺方向盘的行为,都会对公交车内安全造成影响。

1.2 发展现状

1.2.1国内外公交车安全维护现状

英国的公交车因安全性而闻名世界,驾驶室是全封闭独立的空间,为防止驾驶员被袭击,驾驶室配备了专门的透明保险门,投币机器也置于室内。上锁的部位位于门的下半部分,而驾驶员的呼吸或与乘客进行交流则要依靠门上半部分原有预留的小孔。此外,驾驶室安装有袭击报警器,当突发危险时,驾驶员可以按下报警按钮保证公交车驾驶员和乘客的安全。但当驾驶员自身突发疾病时,驾驶员或将来不及按下报警按钮,公交车行驶安全仍存在隐患。

公交车乘客抢夺驾驶员方向盘的问题并非个例,随着问题的不断发生,国内很多城市给各公交车配备了安全门,将驾驶员分隔在安全的驾驶范围内。但防护门只能保证驾驶员不在乘客的干扰下驾驶公交车,当驾驶员自身突发疾病或窗外有物体飞来砸向驾驶员时,因为有防护门的阻隔,乘客无法给予驾驶员帮助,若没有及时停车同样会造成安全事故的发生。

1.2.2智能驾驶发展现状

智能驾驶活跃于现代生活中,但是智能驾驶技术尚不成熟,目前只能停留在人车驾驶权相互转移的L2级别阶,因此,当突发危险时驾驶员无法及时将驾驶权转移给车辆,无法保证公交车的行车安全。

1.3 项目研究现状

在驾驶员驾驶途中,面临着不同的突发情况,在这些突发情况面前,每一秒都弥足珍贵,如果能将人工驾驶和智能驾驶相结合,解决智能驾驶中驾驶权转移空白的问题,公交车行驶安全性就将大幅度提高。

为解决以上问题,本项目设计了两种识别程序。其中表情识别是采用Opencv进行分类定义识别;通过摄像头实时捕捉人脸的情绪特征,当识别到驾驶员痛苦或消极情绪,并且超过设定的阈值后,将会发出警报。同时搭配基于LabVIEW的危险动作识别程序。当摄像头在一定范围内捕捉到外来物体时即定义为危险动作发出警告从而保证驾驶安全。

1.4 人工智能学习的公共汽车驾驶安全辅助识别未来发展方向

传统公交车增加防护门只能保护驾驶员不受到乘客的干扰,不能保证驾驶员因为个人身体原因或者异物飞入导致驾驶员不能及时停车从而造成安全事故的发生。二十一世纪是信息化的世纪,将计算机的深度学习融入到生活中会带来更多的便利,将复杂的问题简单化,让科技体现在方方面面。通过智能驾驶和人工驾驶的结合恰好能弥补这一空缺。当摄像头检测到有突发情况时,发出警报,项目后续也可以应用于智能驾驶的安全检测中,从而达到最大程度的安全性。经过安全性和性价比等特点综合比较,基于神经网络学习的公共汽车驾驶安全辅助识别更符合未来的发展方向。

2 面部识别原理

2.1 面部识别程序简介

识别驾驶员表情的程序是以Python语言作为基础,采用Opencv分类器进行分类处理定义,同时搭载了诺基亚公司的Qt5作为上位机,将Qt5的功能与Python的丰富生态结合,更高效地开发程序。设计人脸监测系统时,采用当下很热的Adaboost算法[1]与计算机视觉类库,输入相应的代码函数处理得到的数据。人脸识别过程如图1所示。此外,为了使人脸表情监测的速度更快且更加准确,系统的开发基础运用了VC++6.0,方便快捷地进行了类管理,并且能自动生成框架,简化了开发步骤。

图1 人脸识别过程

2.2 人脸检测程序

在程序运行时,需先找到人脸,构建识别框。本程序的人脸检测主要是基于统计的神经网络方法:当已知训练样本的数据加到网络输入端时,网络的学习机制一遍又一遍地调整各神经元的权值,使其输出端达到预定的目标。程序中采用的Python语言提供高级数据结构。检测人脸:具体是将人脸看作一个整体的模式——二维像素矩阵(二维是基于一维的基础算法,是指相对于坐标原点和坐标轴进行的几何变换,包括平移、比例、旋转、反射和错切5种变换),用统计的方式用大量人脸图像样本构造人脸模式空间,根据相似度量来判断人脸是否存在。

2.3 对输入图像的处理

将输入程序的人物视频进行处理。图像分析(特征提取、分割、匹配和识别等)中,识别算法的设计与效果的精度受图像质量的影响,因此,本程序在图像分析前,进行了图像预处理,消除图像中无关的信息,恢复有用的真实信息,增强有关信息的可检测性,从而改进特征提取、图像分割、匹配和识别的可靠性。

首先将图像进行灰度化处理,假设采集到的图像是一个行阶矩阵,其中的元素代表原图像中的像素,即

颜色模型则采用红、绿、蓝三种颜色作为基色绘制空间模型,使每种颜色具有相同的分量。最后利用公式转化为灰度图像。将处理好的图片进行纠正,去掉头发等干扰内容,提高监测的准确性以保证识别的正确性。

在图像提取中难免会有光照对图像检测造成影响,因此,下一步则直方图等进行图像的规定化。其函数为(r)=n,其中为第级的灰度值。规定化就是用概率函数(r)=n/计算其出现的概率以此代替出现的次数。设输入和输出灰度值级数为和,则其对应的概率密度分别为p()和p()令积分变量为,随机变量为,通过积分变换等将灰度级数看做连续,进而将直方图化为连续形式。

由于数学中积分值与积分变量无关,可以得出在数字条件规定化时,利用概率函数(r)表示灰度值,并根据连续公式得

式中,为积分变量,为输出灰度级,最后得到输出函数

z=-1[(r)]=-1[s] (7)

同态滤波是为消除光线影响的一种最常用的方法,主要是通过傅里叶变换和对数变换增强来对比度的方法,减少光线对图像可能造成的干扰,同态滤波变换如图2所示。将图像用表示;和分别代表照度、反射部分。由于不能直接用傅里叶进行直接变换,所以要先将分量进行对数变换,将之后的结果进行傅里叶变换。为计算结果。

(,)=(,)(,)

()=ln(,)+ln(,) (8)

[()]=[ln(,)]+[ln(,)] (9)

分别用、和表示上式,设滤波函数为,处理后可表示为

(,)=(,)(,)+(,)(,) (10)

对上式转到空间域得

(,)=-1((,)) (11)

图2 同态滤波变换

2.3.1神经网络的表情识别模型训练

表情识别模型中,神经网络利用表情数据集进行训练,使模型自动地朝着识别更准确的方向更新。神经网络中包含很多的处理单元,各单元同时计算的结果构成网络。神经网络通过上文提到的二维矩阵的训练方法克服单个神经元功能受限的问题,使复杂的神经网络得以对人类表情进行学习与分类。网络中的处理单元会将大量来自不同的输入内容进行结果的叠加统一输出。换句话说,神经网络最终的输出结果取决于不同的输入内容,当输入内容超过原本设定好的阈值(255)时,处理单元才开始工作。它可以通过阈值来处理各个变量间的关系,从而达到分类目的。同时数据集是神经网络模型的学习基础,数据集与模型的好坏有一定的关系。本文所采用的表情识别方法是按照有监督学习的方式进行的,所用数据集是带有标签的。也就是说数据集中,每个表情样本图像都标注出真实的类别。通常数据集在实验之前需要分成三类,即为用于训练的训练集(模型学习和训练)、加以检测的验证集(监控学习情况)和最后成果的测试集。

2.3.2面部表情数据集

本程序数据集采集了123个人的表情样本,呈现了面部的8种表情。每个表情由一组表情序列构成,包括多帧图像,呈现了一个人从无表情到表情峰值的状态。程序整个数据集一共有593个表情图像序列,包含了八种类型,除了生气、讨厌、开心、恐惧、惊讶、悲伤外,还增加了无表情和蔑视。

3 危险动作程序设计

3.1 危险动作程序简介

危险动作的程序设计是基于LabVIEW虚拟仪器[2]的程序开发环境,以电脑作为上位机,同时使用电脑摄像头进行实时监控,将视频信号进行图像的预处理,采用帧间差分法进行目标检测,当在目标区域外检测出物体就发出警告。表情识别过程如图3所示。程序中前面板[3]中主要是人为操作板块、数字控制和数字显示。前面板构件如图4所示。后面板是编写的具体程序。

图3 表情识别过程

图4 前面板构件

3.2 基本算法

3.2.1帧间差分法

帧间差分法[4]是检测视频中运动目标常用的方法,其处理过程是在视频图像的序列中,相邻两帧之间作差分运算以此得到运动目标的轮廓,非常适合程序中除驾驶员外,其他外来干扰驾驶员驾驶的运动物体的实时监测。当监测视频中出现异常物体运动时,两帧之间会出现较为明显的差别,将两帧相减,就可以得到两帧图像亮度差的绝对值,以此来判断它是否大于原本设定好的阈值(本程序中最大阈值为100),从而分析视频或图像序列的运动特性,确定图像序列中有无外来干扰的物体运动。检测运动目标过程如图5所示。

图5 检测运动目标过程

3.2.2背景学习

在项目设计的程序中采用背景学习主要是检测背景中的值是否发生改变。当按下背景学习的按钮后,程序立即采集20张图片,将采集到的图片转为灰白,将图像进行裁剪后转换为二维数组,获取数组的尺寸后,一方面统计每个像素点中20次的众数即为像素点的背景值;另一方面将产生的背景数组保存,再用二维数组将图像表示出来进行背景学习。背景学习过程如图6所示。

图6 背景学习过程

3.3 主要步骤

3.3.1创建程序与电脑摄像头的联系

在程序后面版使用IMAXdx Open Camera.vi开启摄像头,创建并连接“打开摄像头”控件,然后创建一个IMAXdx类的属性节点,如图7所示,进行采集图片的配置。

图7 创建与摄像头的联系

3.3.2设计程序事件

设计两个线程事件,如图8所示。开启两个while循环,第一个线程做背景学习,第二个线程做检测。

图8 创建事件

3.3.3建立背景学习

在前面板做触发按钮,并在事件中添加对应的触发按钮,分别进行背景学习和启动检测,如图9所示。创建图像引用和灰度图,连接背景学习的线程,然后创建节点把彩图转换成黑白[5],再把图片转换成二维数组,连接到下一个for循环的索引数组,得到输入序列的估计众数,VI进行多众数分析,最后将产生的背景用数组保存。

图9 背景学习

3.3.4建立实时检测

第二个线程用来实时检测[6]是否有干扰。按照上一个线程的步骤将采集的图片转成黑白后,将得到的数组与背景数组相减,创建IMAQ Array Tolmage将取绝对值得到的结果再转成图片。在事件中添加屏蔽区域的触发按钮,设计一个簇,将该簇外框放置于程序框图上,再将数值常量、布尔常量放置到该簇外框中,设置数值常量和布尔常量,同另一个簇进行比较,即同背景学习得到的进行比较,再创建一个IMAQ Count Objects 2,用来检测浅色目标,然后再创建一个for循环,以及IMAQ Overlay Rectangle用来将检测结果呈现在图片上。实时监测过程如图10所示。

图10 实时检测

4 总结

公交车已成为现代大多数人的代步工具,然而近年来多地频发乘客因自身情绪不满抢夺公交车方向盘或是驾驶员的身体原因(如心肌梗死等突发疾病),使驾驶员丧失公交车的正常驾驶能力而酿成悲剧,一个个事件让人心痛不已,如果能够及时判别出危险环境并及时让公交车正常行驶,那么车上乘客的安全就多份保障。为了更好地保护乘客的人身安全,并构建智能高效安全的公共交通环境,文章围绕公共汽车驾驶员的危险环境识别展开,利用人工智能进行危险动作捕捉和面部表情识别,有效利用计算机技术时刻关注驾驶员的驾驶状态,能够在危险发生时高效地利用最短的时间判别出风险后发出警告,或应用于智能驾驶安全监测中,让智能驾驶代替驾驶员安全驾驶车辆,就可以有效避免因为乘客与公交车驾驶员的冲突或驾驶员自身身体原因不能正确控制公交车辆而引发的危险,从而保障公交车上乘客的生命安全。

[1] 秦续洋.基于Opencv的人脸表情识别系统的设计与实现[D].郑州:郑州大学,2013.

[2] 梁硕,赵冉.基于LabVIEW编程语言的图像处理技术浅述[J].现代物业(上旬刊),2012,11(10):78-79.

[3] 宋烨.基于Labview的车辆模拟量信号量采集系统[J].汽车实用技术,2020,45(23):63-65.

[4] 陈赛楠.基于Labview平台的红外图像目标检测系统的研究与实现[D].沈阳:沈阳理工大学,2013.

[5] 李光明,孙英爽,党小娟.基于Labview的集合匹配方法的设计与实现[J].计算机工程与设计,2016,37(10): 2705-2709.

[6] 兰晶.基于Labview的人脸识别系统的研究与实现[D].北京:北京邮电大学,2015.

Safety Identification of Bus Driving Safety Based on Neural Network Learning

WANG Wenbin, LIU Zheng, BAI Yuehong, MENG Yujia

( School of Automobile and Transportation, Shenyang University of Science and Technology,Shenyang 110159, China )

This paper designs two programs, expression recognition and dangerous action recognition, such as the sudden physical illness of bus drivers, passengers grabbing the steering wheel, and the blankness of driving right transfer in the current L2 level intelligent driving. Among them, the expression recognition program is a face expression recognition program designed with Qt5 as the host computer using the Opencv computer vision library based on the Python language. First of all, the monitorability of relevant information is improved through the processing of input images, and the monitoring quality is improved, and then the expression model training and data acquisition are carried out, and finally the recognition function is realized. A LabVIEW-based dangerous action recognition program is also introduced. Through the video information transmitted by the camera, algorithms such as the inter-frame difference method and background learning are used to detect moving objects, so as to realize the real-time capture of foreign objects that may pose a threat to driving safety within the monitoring range. Experimental data show that the two programs can accurately and quickly capture the corresponding expressions and dangerous movements, which greatly improves the driving safety of buses while solving the above problems.

Driving safety identification; Neural network learning; Intelligent driving safety;Bus

U495

A

1671-7988(2023)03-39-05

10.16638/j.cnki.1671-7988.2023.03.007

王文斌(2000—),男,研究方向为交通运输,E-mail: shixiaoanyi@sina.com。

2021年沈阳理工大学大学生创新创业项目(202110144003)。

猜你喜欢
人脸公交车驾驶员
基于高速公路的驾驶员换道意图识别
基于眼动的驾驶员危险认知
驾驶员安全带识别方法综述
你们认识吗
有特点的人脸
一起学画人脸
拒绝公交车上的打扰
三国漫——人脸解锁
公交车上
公交车奇妙日