基于人工智能的车载瞌睡检测预警系统研究

2021-04-03 05:15林桂佳蔡海文朱贤泽陈代荷罗海明
现代信息科技 2021年19期
关键词:人工智能

林桂佳 蔡海文 朱贤泽 陈代荷 罗海明

摘  要:车载瞌睡检测系统是一种内部设有GPS及通讯录,以数据准确可靠、全程跟踪、精细化以及便捷高效为特色的瞌睡检测系统。当驾驶员打着瞌睡驾驶时,该系统会自动通过AI人脸检测进行判断,将瞌睡状态及车辆所在位置等信息通知给中央控制中心或交通事故研究所,同时系统能够连接到外部求助中心的移动电话,以综合性和多层性方法防止事故发生。

關键词:人工智能;GPS;面部识别技术;疲劳睡眠检测

中图分类号:TP18;TP391.4              文献标识码:A文章编号:2096-4706(2021)19-0084-05

Research on the In-car Drowsy Driver Detection and Early Warning System Based on Artificial Intelligence

LIN Guijia, CAI Haiwen, ZHU Xianze, CHEN Daihe, LUO Haiming

(School of Computer Science, Jiaying University, Meizhou  514015, China)

Abstract: In-car drowsy driver detection system is a kind of drowsiness detection system with GPS and address book inside, which is characterized by accurate and reliable data, whole process tracking, refinement, convenience and efficiency. When the driver is dozing, the system will automatically judge through AI face detection, and notify the central control center or Institute of Traffic Accident Research of the information of dozing status and vehicle location and so on. At the same time, the system can be connected to the mobile phone of the external help center to prevent accidents in a comprehensive and multilayer method.

Keywords: artificial intelligence; GPS; face recognition technology; fatigue sleep detection

0  引  言

在我国,每年因为疲劳驾驶发生交通事故的事例数不胜数。有数据显示,中国每年发生近20万起交通事故,死亡人数逾6万,其中因疲劳驾驶造成近3千人死亡。国家统计局的数据显示,2019年全国发生交通事故24.8万起,死亡人数为62 763人,其中因疲劳驾驶造成3 056人死亡,占4.9%,在北京其比例更高达总数的1/5。在世界范围内,交通事故中约85%是人的因素造成的,其中驾驶员疲劳驾驶因素占据较大比例。据美国国家公路交通安全管理局发布的数据,每年约有10万起交通事故是由驾驶员在驾驶过程中打瞌睡造成的,其中约1 500起直接导致死亡,7.1万起导致人身伤害。欧洲的情况大致相同:根据德国保险公司协会的数据,在德国高速公路上造成人员伤亡的交通事故中,约25%是由疲劳驾驶引起的。2019年,在美国进行的一项调查发现,有53%的被调查者曾在驾驶时打过瞌睡。人们很多时候不得不持续驾驶,持续驾驶容易导致身体疲劳,人们在疲劳状态下容易打瞌睡。生理学家研究表明,当睡意向驾驶员来袭时,会产生5至10秒的短暂型睡眠,此时驾驶员的眼睛虽然是睁开着,但是大脑实际已经是进入睡眠状态。因此,针对人们行车驾驶打瞌睡的问题,开发一种能有效遏制驾驶员因驾驶瞌睡发生事故的安全设备就显得非常迫切,这也是本课题的研究意义和价值。

1  原理分析

基于人工智能的车载瞌睡检测预警系统设计原理只要有以下几点:

(1)获取到图像信息是否为有效的信息,除去遮挡、清晰度不够无法判断的信息。车载瞌睡检测主要检测的是人脸信息,如图1所示,首先对人脸信息进行识别,如果是有效信息,则使用算法进行判断;如果清晰度不够,则重新获取人脸信息,再重新识别;如果无法检测到人脸,则重新获取信息再进行信息处理。

(2)可判断驾驶员是否真正的处于瞌睡状态:主要通过判断眼睛和嘴巴的闭合度和闭合时间来进行判断。分析在连续20帧内的眼睛的闭合情况,如果在连续帧内眼睛闭合,并且没有睁开,就发送“请醒醒”的语音提示;如果闭眼次数达到了20次,则发送“请睁大眼睛”的语音提示;如果嘴巴张开尺度过大的话,则发送“你疲劳了”的语音提示信息。

通过图2的面部标志我们可以很简单的来获取到眼睛所处的位置,每只眼睛共用了6个点来进行表示,其中,37-42为右眼,43-48为左眼。图3为眼睛闭合度示意图。

眼睛闭合度计算公式为:

(1)

眨眼次数在连续帧达到一定次数时才判定该驾驶员有困意。

(3)对用户请求进行负载均衡设计,让每一个请求能够分散地落在每一个服务器上,减少单一服务器的负担。目前的想法是设计一个轮询的算法,如图4所示,首先按权重排序,然后接受请求,再建立连接。如果建立成功,则权重减重新排序,然后结束;如果建立连接失败,则进行相应标志置位,然后all down,如果是,则恢复初始状态,结束;如果不是,则重新接受请求。

(4)使用深度学习算法对人脸模型进行优化。目前的想法是通过卷积神经网络来进行优化,其结构如图5所示,首先输入图片,通过卷积层1分析图片,然后通过池化层处理;再通过卷积层2分析图片,再一次通过池化层2处理图片;然后再分别进入全连接层1、全连接层2然后得到分类结果。其中在卷积神经网络中最重要的就是过滤器,它可以将当前的层神经网络上的一个子节点矩阵转化为下一个单位节点矩阵。

(5)获取车辆位置信息。当打着瞌睡驾驶时,系统会自动通过AI人脸检测进行判断,将瞌睡状态及有关车辆所在位置信息通知给中央控制中心或监控中心。如图6所示,首先系统进行初始化,如果失败,则MCU进入低功耗,提示用户重启;如果初始化成功,则接受位置命令,调出监控中心号码,读取GPS信息,将GPS信息通过短信发送到中心。如果未收到GPS信息,则提示用户错误。

2  实施方案

2.1  实施人群

实施人群主要为中长途汽车驾驶员。

2.2  计划阶段

2.2.1  理论阶段

查阅Python相关的资料,学习车载程序的相关理论知识,了解并分析该系统的原理,小组讨论出可行性,提出算法的方案及功能如何实现,确定我们所采用的技术。

2.2.2  开发阶段

本系统开发分为三个阶段:

(1)开发出程序原型,在PC端进行测试效果,检测并优化以及对程序进行调整,测试完移植到电脑中进行实际测试。

(2)本程序内部设有GPS+AI人脸检测,连接服务器,在驾驶员打瞌睡驾驶时将瞌睡驾驶状态及有关车辆所在经纬信息通知给中央控制中心。

(3)建立相关的MySQL数据库,储存车辆经纬度信息,运用Dubbo服务框架,可视化车辆的位置信息。

2.3  技术支持

本方案设有六种技术支持,分别是Python编程语言、Dlib库、OpenCV(开源计算机视觉库)、GPS、MySQL数据库、Dubbo服务,下文对这六种服务逐一进行介绍:

2.3.1  Python 编程语言

在国外利用Python做科学计算的研究机构日益增多,因为Python语言拥有简洁性、容易阅读性以及可扩容性等显著优势。例如SciPy、NumPy和matplotlib这3个十分经典的科学计算扩展库,它们分别为Python提供了数值运算、快速数组处理以及绘图这三种强大功能。因此由Python语言及其众多的扩展库所构成的开发环境非常适合工程技术、科研人员进行处理实验数据、制作图表、开发科学计算应用程序等工作。

2.3.2  Dlib 库

Dlib库包含了機器学习的很多算法,是一个机器学习的开源库,他的使用方式非常简便,直接包含头文件即可使用,并且Dlib不依赖于其他库(自带图像编解码库源码)。Dlib是一个使用现代C++技术编写的跨平台的通用库,遵守Boost Softwarelicence。目前Dlib已经被广泛应用在机器人、嵌入式设备、移动电话以及大型高性能计算环境等行业和学术领域,这充分地说明了Dlib可以帮助使用者创建许多复杂的机器学习方面的软件来帮助解决使用者的实际问题。Dlib有以下主要特点:

(1)可移植代码:代码符合ISOC++标准,不需要第三方库支持,支持win32、Linux、MacOSX、Solaris、HPUX、BSDs和POSIX系统。

(2)线程支持:提供简单的可移植的线程API。

(3)网络支持:提供简单的可移植的 SocketAPI和一个简单的HTTP服务器。

(4)图形用户界面:提供线程安全的GUIAPI。

(5)数值算法:矩阵、大整数、随机数运算等。

(6)深度学习算法。

(7)图形模型算法。

(8)图像处理:支持读写WindowsBMP文件,不同类型色彩转换。

(9)数据压缩和完整性算法:CRC32、Md5、不同形式的PPM算法。

(10)测试:线程安全的日志类和模块化的单元测试框架以及各种测试assert支持。

2.3.3  OpenCV(开源计算机视觉库)

该库是用C和C++语言编写的,可以在Windows、Linux和Mac OS X系统上运行。该库的整个代码都经过了优化,计算效率非常高,因为它更关注于为实时系统设计一个开源库。OpenCV是用C语言优化的,在多核机器上运行得更快。近年来,OpenCV在入侵检测、目标定位、人脸识别、人脸跟踪等领域发挥了重要作用,这些只是其应用的冰山一角。

2.3.4  GPS

整个GPS系统分三大部分:地面站、卫星、接收机。地面站负责监控,通过接收和测量各种卫星信号,他们计算出卫星的轨道,并将轨道信息发送给卫星进行传输。卫星负责以无线电的形式向地面发送信号。norbit和来自卫星信号的其他信息,并通过c计算。

2.3.5  MySQL数据库

数据库(Database, DB)是按照数据结构来组织,存储和管理数据的仓库。典型特征:数据的结构化、数据间的共享、减少数据的冗余度,数据的独立性。

关系型数据库:使用关系模型把数据组织到数据表(table)中。现实世界可以用数据来描述。主流的关系型数据库产品:Oracle(Oracle)、DB2(IBM)、SQLServer(MS)、MySQL(Oracle)。

数据表:数据表是关系数据库的基本存储结构,二维数据表有行(Row)和列(Column)组成,也叫作记录(行)和字段(列)。

2.3.6  Dubbo 服务

Dubbo是一个分布式服务框架,致力于提供强大而透明的RPC远程服务调用系统和SOA服务治理系统。简而言之,Dubbo是一个服务框架。如果没有分布式需求,则不必使用它。只有当它是分布式的时,才需要像Dubbo这样的分布式服务框架,它本质上是一个服务调用的项目。

换句话说,它是一个用于远程服务调用的分布式框架,其核心部分包括:

(1)远程通信:它提供了基于长连接的各种NiO框架的抽象封装,包括“请求—响应”模式的各种线程模型、序列化和信息交换方法。

(2)集群容错:基于接口方式的透明远程进程调用,包括多协议支持、软负载平衡、容错、地址路由、动态配置等集群支持。

(3)自动发现:基于目录服务,服务用户可以动态查找服务提供方,使地址透明,并允许服务提供商平稳地添加或减少计算机。就像调用本地方法一样,调用远程方法时可以轻松配置且无API入侵。

(4)软灰尘补偿和容错功能可以取代F5和intranet上的其他硬件负载平衡器,以降低成本和单个点。

(5)服务被自动注册和检测。不再需要写入服务提供商的地址。注册中心向服务提供商的IP地址询问接口名称,并可以轻松添加或删除服务提供商。

(6)Dubbo的体系结构图如图7所示。

2.4  主要算法代码

下文为主要算法代码:

# 垂直眼睛坐标

A = dist.euclidean(eye[1], eye[5])

B = dist.euclidean(eye[2], eye[4])

# 水平眼睛坐标

C = dist.euclidean(eye[0], eye[3])

# EAR计算公式

EAR = (A + B) / (2.0 * C)

return EAR

A = dist.euclidean(mouth[13], mouth[19])

B = dist.euclidean(mouth[14], mouth[18])

C = dist.euclidean(mouth[15], mouth[17])

# MAR计算公式

MAR = (A + B + C) / 3.0

2.5  已有成果

本研究已取得一定的成果,如图8~13所示,當前已经完成了对眼睛闭合度算法的设计,疲劳驾驶状态算法有效性的测试,对车辆数据可视化的设计,当天疲劳驾驶时间段数据可视化的设计,车辆驾驶员个人信息展示和对车辆所处于位置的地图界面设计。

3  结  论

通过对驾驶员脸部进行识别获取到脸部图像,判断获取到图像信息是否为有效信息,除去无效信息。然后对图像信息进行算法计算,判断眼睛的闭合度和闭合时间,进而来确定驾驶员是否打瞌睡,并实现对其打瞌睡情况进行报警,对其信息进行上传保存,获取车辆位置信息,当驾驶员打着瞌睡驾驶时,系统进行判断并将瞌睡状态及有关车辆所在位置信息通知给中央控制中心或监控中心。通过对这些数据的实时监控,以及对这些数据的分析、可视化,能够提醒驾驶员安全驾驶,让驾驶员生命更加有保障。

参考文献:

[1] 陈金辉,韩媛媛,杜永.驾驶室酒精浓度监测和司机瞌睡监视复合仪器设计 [J].科技创新导报,2009(1):7-8.

[2] 佘翔,刘冬梅.疲劳驾驶检测技术发展研究 [J].河北交通职业技术学院学报,2013,(1):71-73+77.

[3] 金嘉琦,陈健.驾驶员疲劳驾驶的面部检测与定位 [J].机械,2015,42(1):74-76.

[4] 栾柱晓,唐琎,郑群英.一种改进的人眼模板匹配算法 [J].计算机系统应用,2009,18(12):75-78.

[5] 孙洋,孙新宇,李珺珺,等.基于Dlib库的驾驶员疲劳及心率血氧检测系统设计 [J].电子技术与软件工程,2021(2):108-110.

[6] 赖力潜,余星洁,曾晓勿,等.大数据校园招聘平台设计及初步实现 [J].电子技术与软件工程,2021(5):184-186.

[7] 梁晶,史记征.基于Python库的人脸识别方法研究 [J].网络安全技术与应用,2019(7):46-47.

[8] 黄子豪,孙沐阳,时田野.基于Python与OpenCV的人像检测和识别的研究 [J].电子测试,2021(13):79-80+124.

[9] 郭岩冰,缪玲娟,李传军,等.地理坐标系下GPS定位误差的定量研究 [J].北京理工大学学报,2020,40(4):416-420.

[10] 王琪,卢军.基于Dubbo的分布式能效管理系统的设计与实现 [J].电子设计工程,2018,26(11):174-178.

作者简介:林桂佳(2001—),男,汉族,广东揭阳人,本科在读,研究方向:软件工程;蔡海文(2001—),男,汉族,广东茂名人,本科在读,研究方向:软件工程;朱贤泽(2000—),男,汉族,广东汕头人,本科在读,研究方向:软件工程;陈代荷(2001—),女,汉族,广东清远人,本科在读,研究方向:地理科学;通讯作者:罗海明(1987—),男,汉族,广东梅州人,讲师,硕士,研究方向:思想政治教育、计算机科学与技术。

猜你喜欢
人工智能
我校新增“人工智能”本科专业
2019:人工智能
人工智能与就业
数读人工智能
下一幕,人工智能!
下一幕,人工智能!