林桂佳 蔡海文 朱賢澤 陳代荷 羅海明
摘? 要:車(chē)載瞌睡檢測(cè)系統(tǒng)是一種內(nèi)部設(shè)有GPS及通訊錄,以數(shù)據(jù)準(zhǔn)確可靠、全程跟蹤、精細(xì)化以及便捷高效為特色的瞌睡檢測(cè)系統(tǒng)。當(dāng)駕駛員打著瞌睡駕駛時(shí),該系統(tǒng)會(huì)自動(dòng)通過(guò)AI人臉檢測(cè)進(jìn)行判斷,將瞌睡狀態(tài)及車(chē)輛所在位置等信息通知給中央控制中心或交通事故研究所,同時(shí)系統(tǒng)能夠連接到外部求助中心的移動(dòng)電話,以綜合性和多層性方法防止事故發(fā)生。
關(guān)鍵詞:人工智能;GPS;面部識(shí)別技術(shù);疲勞睡眠檢測(cè)
中圖分類(lèi)號(hào):TP18;TP391.4? ? ? ? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):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? 引? 言
在我國(guó),每年因?yàn)槠隈{駛發(fā)生交通事故的事例數(shù)不勝數(shù)。有數(shù)據(jù)顯示,中國(guó)每年發(fā)生近20萬(wàn)起交通事故,死亡人數(shù)逾6萬(wàn),其中因疲勞駕駛造成近3千人死亡。國(guó)家統(tǒng)計(jì)局的數(shù)據(jù)顯示,2019年全國(guó)發(fā)生交通事故24.8萬(wàn)起,死亡人數(shù)為62 763人,其中因疲勞駕駛造成3 056人死亡,占4.9%,在北京其比例更高達(dá)總數(shù)的1/5。在世界范圍內(nèi),交通事故中約85%是人的因素造成的,其中駕駛員疲勞駕駛因素占據(jù)較大比例。據(jù)美國(guó)國(guó)家公路交通安全管理局發(fā)布的數(shù)據(jù),每年約有10萬(wàn)起交通事故是由駕駛員在駕駛過(guò)程中打瞌睡造成的,其中約1 500起直接導(dǎo)致死亡,7.1萬(wàn)起導(dǎo)致人身傷害。歐洲的情況大致相同:根據(jù)德國(guó)保險(xiǎn)公司協(xié)會(huì)的數(shù)據(jù),在德國(guó)高速公路上造成人員傷亡的交通事故中,約25%是由疲勞駕駛引起的。2019年,在美國(guó)進(jìn)行的一項(xiàng)調(diào)查發(fā)現(xiàn),有53%的被調(diào)查者曾在駕駛時(shí)打過(guò)瞌睡。人們很多時(shí)候不得不持續(xù)駕駛,持續(xù)駕駛?cè)菀讓?dǎo)致身體疲勞,人們?cè)谄跔顟B(tài)下容易打瞌睡。生理學(xué)家研究表明,當(dāng)睡意向駕駛員來(lái)襲時(shí),會(huì)產(chǎn)生5至10秒的短暫型睡眠,此時(shí)駕駛員的眼睛雖然是睜開(kāi)著,但是大腦實(shí)際已經(jīng)是進(jìn)入睡眠狀態(tài)。因此,針對(duì)人們行車(chē)駕駛打瞌睡的問(wèn)題,開(kāi)發(fā)一種能有效遏制駕駛員因駕駛瞌睡發(fā)生事故的安全設(shè)備就顯得非常迫切,這也是本課題的研究意義和價(jià)值。
1? 原理分析
基于人工智能的車(chē)載瞌睡檢測(cè)預(yù)警系統(tǒng)設(shè)計(jì)原理只要有以下幾點(diǎn):
(1)獲取到圖像信息是否為有效的信息,除去遮擋、清晰度不夠無(wú)法判斷的信息。車(chē)載瞌睡檢測(cè)主要檢測(cè)的是人臉信息,如圖1所示,首先對(duì)人臉信息進(jìn)行識(shí)別,如果是有效信息,則使用算法進(jìn)行判斷;如果清晰度不夠,則重新獲取人臉信息,再重新識(shí)別;如果無(wú)法檢測(cè)到人臉,則重新獲取信息再進(jìn)行信息處理。
(2)可判斷駕駛員是否真正的處于瞌睡狀態(tài):主要通過(guò)判斷眼睛和嘴巴的閉合度和閉合時(shí)間來(lái)進(jìn)行判斷。分析在連續(xù)20幀內(nèi)的眼睛的閉合情況,如果在連續(xù)幀內(nèi)眼睛閉合,并且沒(méi)有睜開(kāi),就發(fā)送“請(qǐng)醒醒”的語(yǔ)音提示;如果閉眼次數(shù)達(dá)到了20次,則發(fā)送“請(qǐng)睜大眼睛”的語(yǔ)音提示;如果嘴巴張開(kāi)尺度過(guò)大的話,則發(fā)送“你疲勞了”的語(yǔ)音提示信息。
通過(guò)圖2的面部標(biāo)志我們可以很簡(jiǎn)單的來(lái)獲取到眼睛所處的位置,每只眼睛共用了6個(gè)點(diǎn)來(lái)進(jìn)行表示,其中,37-42為右眼,43-48為左眼。圖3為眼睛閉合度示意圖。
眼睛閉合度計(jì)算公式為:
(1)
眨眼次數(shù)在連續(xù)幀達(dá)到一定次數(shù)時(shí)才判定該駕駛員有困意。
(3)對(duì)用戶請(qǐng)求進(jìn)行負(fù)載均衡設(shè)計(jì),讓每一個(gè)請(qǐng)求能夠分散地落在每一個(gè)服務(wù)器上,減少單一服務(wù)器的負(fù)擔(dān)。目前的想法是設(shè)計(jì)一個(gè)輪詢的算法,如圖4所示,首先按權(quán)重排序,然后接受請(qǐng)求,再建立連接。如果建立成功,則權(quán)重減重新排序,然后結(jié)束;如果建立連接失敗,則進(jìn)行相應(yīng)標(biāo)志置位,然后all down,如果是,則恢復(fù)初始狀態(tài),結(jié)束;如果不是,則重新接受請(qǐng)求。
(4)使用深度學(xué)習(xí)算法對(duì)人臉模型進(jìn)行優(yōu)化。目前的想法是通過(guò)卷積神經(jīng)網(wǎng)絡(luò)來(lái)進(jìn)行優(yōu)化,其結(jié)構(gòu)如圖5所示,首先輸入圖片,通過(guò)卷積層1分析圖片,然后通過(guò)池化層處理;再通過(guò)卷積層2分析圖片,再一次通過(guò)池化層2處理圖片;然后再分別進(jìn)入全連接層1、全連接層2然后得到分類(lèi)結(jié)果。其中在卷積神經(jīng)網(wǎng)絡(luò)中最重要的就是過(guò)濾器,它可以將當(dāng)前的層神經(jīng)網(wǎng)絡(luò)上的一個(gè)子節(jié)點(diǎn)矩陣轉(zhuǎn)化為下一個(gè)單位節(jié)點(diǎn)矩陣。
(5)獲取車(chē)輛位置信息。當(dāng)打著瞌睡駕駛時(shí),系統(tǒng)會(huì)自動(dòng)通過(guò)AI人臉檢測(cè)進(jìn)行判斷,將瞌睡狀態(tài)及有關(guān)車(chē)輛所在位置信息通知給中央控制中心或監(jiān)控中心。如圖6所示,首先系統(tǒng)進(jìn)行初始化,如果失敗,則MCU進(jìn)入低功耗,提示用戶重啟;如果初始化成功,則接受位置命令,調(diào)出監(jiān)控中心號(hào)碼,讀取GPS信息,將GPS信息通過(guò)短信發(fā)送到中心。如果未收到GPS信息,則提示用戶錯(cuò)誤。
2? 實(shí)施方案
2.1? 實(shí)施人群
實(shí)施人群主要為中長(zhǎng)途汽車(chē)駕駛員。
2.2? 計(jì)劃階段
2.2.1? 理論階段
查閱Python相關(guān)的資料,學(xué)習(xí)車(chē)載程序的相關(guān)理論知識(shí),了解并分析該系統(tǒng)的原理,小組討論出可行性,提出算法的方案及功能如何實(shí)現(xiàn),確定我們所采用的技術(shù)。
2.2.2? 開(kāi)發(fā)階段
本系統(tǒng)開(kāi)發(fā)分為三個(gè)階段:
(1)開(kāi)發(fā)出程序原型,在PC端進(jìn)行測(cè)試效果,檢測(cè)并優(yōu)化以及對(duì)程序進(jìn)行調(diào)整,測(cè)試完移植到電腦中進(jìn)行實(shí)際測(cè)試。
(2)本程序內(nèi)部設(shè)有GPS+AI人臉檢測(cè),連接服務(wù)器,在駕駛員打瞌睡駕駛時(shí)將瞌睡駕駛狀態(tài)及有關(guān)車(chē)輛所在經(jīng)緯信息通知給中央控制中心。
(3)建立相關(guān)的MySQL數(shù)據(jù)庫(kù),儲(chǔ)存車(chē)輛經(jīng)緯度信息,運(yùn)用Dubbo服務(wù)框架,可視化車(chē)輛的位置信息。
2.3? 技術(shù)支持
本方案設(shè)有六種技術(shù)支持,分別是Python編程語(yǔ)言、Dlib庫(kù)、OpenCV(開(kāi)源計(jì)算機(jī)視覺(jué)庫(kù))、GPS、MySQL數(shù)據(jù)庫(kù)、Dubbo服務(wù),下文對(duì)這六種服務(wù)逐一進(jìn)行介紹:
2.3.1? Python 編程語(yǔ)言
在國(guó)外利用Python做科學(xué)計(jì)算的研究機(jī)構(gòu)日益增多,因?yàn)镻ython語(yǔ)言擁有簡(jiǎn)潔性、容易閱讀性以及可擴(kuò)容性等顯著優(yōu)勢(shì)。例如SciPy、NumPy和matplotlib這3個(gè)十分經(jīng)典的科學(xué)計(jì)算擴(kuò)展庫(kù),它們分別為Python提供了數(shù)值運(yùn)算、快速數(shù)組處理以及繪圖這三種強(qiáng)大功能。因此由Python語(yǔ)言及其眾多的擴(kuò)展庫(kù)所構(gòu)成的開(kāi)發(fā)環(huán)境非常適合工程技術(shù)、科研人員進(jìn)行處理實(shí)驗(yàn)數(shù)據(jù)、制作圖表、開(kāi)發(fā)科學(xué)計(jì)算應(yīng)用程序等工作。
2.3.2? Dlib 庫(kù)
Dlib庫(kù)包含了機(jī)器學(xué)習(xí)的很多算法,是一個(gè)機(jī)器學(xué)習(xí)的開(kāi)源庫(kù),他的使用方式非常簡(jiǎn)便,直接包含頭文件即可使用,并且Dlib不依賴于其他庫(kù)(自帶圖像編解碼庫(kù)源碼)。Dlib是一個(gè)使用現(xiàn)代C++技術(shù)編寫(xiě)的跨平臺(tái)的通用庫(kù),遵守Boost Softwarelicence。目前Dlib已經(jīng)被廣泛應(yīng)用在機(jī)器人、嵌入式設(shè)備、移動(dòng)電話以及大型高性能計(jì)算環(huán)境等行業(yè)和學(xué)術(shù)領(lǐng)域,這充分地說(shuō)明了Dlib可以幫助使用者創(chuàng)建許多復(fù)雜的機(jī)器學(xué)習(xí)方面的軟件來(lái)幫助解決使用者的實(shí)際問(wèn)題。Dlib有以下主要特點(diǎn):
(1)可移植代碼:代碼符合ISOC++標(biāo)準(zhǔn),不需要第三方庫(kù)支持,支持win32、Linux、MacOSX、Solaris、HPUX、BSDs和POSIX系統(tǒng)。
(2)線程支持:提供簡(jiǎn)單的可移植的線程API。
(3)網(wǎng)絡(luò)支持:提供簡(jiǎn)單的可移植的 SocketAPI和一個(gè)簡(jiǎn)單的HTTP服務(wù)器。
(4)圖形用戶界面:提供線程安全的GUIAPI。
(5)數(shù)值算法:矩陣、大整數(shù)、隨機(jī)數(shù)運(yùn)算等。
(6)深度學(xué)習(xí)算法。
(7)圖形模型算法。
(8)圖像處理:支持讀寫(xiě)WindowsBMP文件,不同類(lèi)型色彩轉(zhuǎn)換。
(9)數(shù)據(jù)壓縮和完整性算法:CRC32、Md5、不同形式的PPM算法。
(10)測(cè)試:線程安全的日志類(lèi)和模塊化的單元測(cè)試框架以及各種測(cè)試assert支持。
2.3.3? OpenCV(開(kāi)源計(jì)算機(jī)視覺(jué)庫(kù))
該庫(kù)是用C和C++語(yǔ)言編寫(xiě)的,可以在Windows、Linux和Mac OS X系統(tǒng)上運(yùn)行。該庫(kù)的整個(gè)代碼都經(jīng)過(guò)了優(yōu)化,計(jì)算效率非常高,因?yàn)樗P(guān)注于為實(shí)時(shí)系統(tǒng)設(shè)計(jì)一個(gè)開(kāi)源庫(kù)。OpenCV是用C語(yǔ)言優(yōu)化的,在多核機(jī)器上運(yùn)行得更快。近年來(lái),OpenCV在入侵檢測(cè)、目標(biāo)定位、人臉識(shí)別、人臉跟蹤等領(lǐng)域發(fā)揮了重要作用,這些只是其應(yīng)用的冰山一角。
2.3.4? GPS
整個(gè)GPS系統(tǒng)分三大部分:地面站、衛(wèi)星、接收機(jī)。地面站負(fù)責(zé)監(jiān)控,通過(guò)接收和測(cè)量各種衛(wèi)星信號(hào),他們計(jì)算出衛(wèi)星的軌道,并將軌道信息發(fā)送給衛(wèi)星進(jìn)行傳輸。衛(wèi)星負(fù)責(zé)以無(wú)線電的形式向地面發(fā)送信號(hào)。norbit和來(lái)自衛(wèi)星信號(hào)的其他信息,并通過(guò)c計(jì)算。
2.3.5? MySQL數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)(Database, DB)是按照數(shù)據(jù)結(jié)構(gòu)來(lái)組織,存儲(chǔ)和管理數(shù)據(jù)的倉(cāng)庫(kù)。典型特征:數(shù)據(jù)的結(jié)構(gòu)化、數(shù)據(jù)間的共享、減少數(shù)據(jù)的冗余度,數(shù)據(jù)的獨(dú)立性。
關(guān)系型數(shù)據(jù)庫(kù):使用關(guān)系模型把數(shù)據(jù)組織到數(shù)據(jù)表(table)中。現(xiàn)實(shí)世界可以用數(shù)據(jù)來(lái)描述。主流的關(guān)系型數(shù)據(jù)庫(kù)產(chǎn)品:Oracle(Oracle)、DB2(IBM)、SQLServer(MS)、MySQL(Oracle)。
數(shù)據(jù)表:數(shù)據(jù)表是關(guān)系數(shù)據(jù)庫(kù)的基本存儲(chǔ)結(jié)構(gòu),二維數(shù)據(jù)表有行(Row)和列(Column)組成,也叫作記錄(行)和字段(列)。
2.3.6? Dubbo 服務(wù)
Dubbo是一個(gè)分布式服務(wù)框架,致力于提供強(qiáng)大而透明的RPC遠(yuǎn)程服務(wù)調(diào)用系統(tǒng)和SOA服務(wù)治理系統(tǒng)。簡(jiǎn)而言之,Dubbo是一個(gè)服務(wù)框架。如果沒(méi)有分布式需求,則不必使用它。只有當(dāng)它是分布式的時(shí),才需要像Dubbo這樣的分布式服務(wù)框架,它本質(zhì)上是一個(gè)服務(wù)調(diào)用的項(xiàng)目。
換句話說(shuō),它是一個(gè)用于遠(yuǎn)程服務(wù)調(diào)用的分布式框架,其核心部分包括:
(1)遠(yuǎn)程通信:它提供了基于長(zhǎng)連接的各種NiO框架的抽象封裝,包括“請(qǐng)求—響應(yīng)”模式的各種線程模型、序列化和信息交換方法。
(2)集群容錯(cuò):基于接口方式的透明遠(yuǎn)程進(jìn)程調(diào)用,包括多協(xié)議支持、軟負(fù)載平衡、容錯(cuò)、地址路由、動(dòng)態(tài)配置等集群支持。
(3)自動(dòng)發(fā)現(xiàn):基于目錄服務(wù),服務(wù)用戶可以動(dòng)態(tài)查找服務(wù)提供方,使地址透明,并允許服務(wù)提供商平穩(wěn)地添加或減少計(jì)算機(jī)。就像調(diào)用本地方法一樣,調(diào)用遠(yuǎn)程方法時(shí)可以輕松配置且無(wú)API入侵。
(4)軟灰塵補(bǔ)償和容錯(cuò)功能可以取代F5和intranet上的其他硬件負(fù)載平衡器,以降低成本和單個(gè)點(diǎn)。
(5)服務(wù)被自動(dòng)注冊(cè)和檢測(cè)。不再需要寫(xiě)入服務(wù)提供商的地址。注冊(cè)中心向服務(wù)提供商的IP地址詢問(wèn)接口名稱(chēng),并可以輕松添加或刪除服務(wù)提供商。
(6)Dubbo的體系結(jié)構(gòu)圖如圖7所示。
2.4? 主要算法代碼
下文為主要算法代碼:
# 垂直眼睛坐標(biāo)
A = dist.euclidean(eye[1], eye[5])
B = dist.euclidean(eye[2], eye[4])
# 水平眼睛坐標(biāo)
C = dist.euclidean(eye[0], eye[3])
# EAR計(jì)算公式
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計(jì)算公式
MAR = (A + B + C) / 3.0
2.5? 已有成果
本研究已取得一定的成果,如圖8~13所示,當(dāng)前已經(jīng)完成了對(duì)眼睛閉合度算法的設(shè)計(jì),疲勞駕駛狀態(tài)算法有效性的測(cè)試,對(duì)車(chē)輛數(shù)據(jù)可視化的設(shè)計(jì),當(dāng)天疲勞駕駛時(shí)間段數(shù)據(jù)可視化的設(shè)計(jì),車(chē)輛駕駛員個(gè)人信息展示和對(duì)車(chē)輛所處于位置的地圖界面設(shè)計(jì)。
3? 結(jié)? 論
通過(guò)對(duì)駕駛員臉部進(jìn)行識(shí)別獲取到臉部圖像,判斷獲取到圖像信息是否為有效信息,除去無(wú)效信息。然后對(duì)圖像信息進(jìn)行算法計(jì)算,判斷眼睛的閉合度和閉合時(shí)間,進(jìn)而來(lái)確定駕駛員是否打瞌睡,并實(shí)現(xiàn)對(duì)其打瞌睡情況進(jìn)行報(bào)警,對(duì)其信息進(jìn)行上傳保存,獲取車(chē)輛位置信息,當(dāng)駕駛員打著瞌睡駕駛時(shí),系統(tǒng)進(jìn)行判斷并將瞌睡狀態(tài)及有關(guān)車(chē)輛所在位置信息通知給中央控制中心或監(jiān)控中心。通過(guò)對(duì)這些數(shù)據(jù)的實(shí)時(shí)監(jiān)控,以及對(duì)這些數(shù)據(jù)的分析、可視化,能夠提醒駕駛員安全駕駛,讓駕駛員生命更加有保障。
參考文獻(xiàn):
[1] 陳金輝,韓媛媛,杜永.駕駛室酒精濃度監(jiān)測(cè)和司機(jī)瞌睡監(jiān)視復(fù)合儀器設(shè)計(jì) [J].科技創(chuàng)新導(dǎo)報(bào),2009(1):7-8.
[2] 佘翔,劉冬梅.疲勞駕駛檢測(cè)技術(shù)發(fā)展研究 [J].河北交通職業(yè)技術(shù)學(xué)院學(xué)報(bào),2013,(1):71-73+77.
[3] 金嘉琦,陳健.駕駛員疲勞駕駛的面部檢測(cè)與定位 [J].機(jī)械,2015,42(1):74-76.
[4] 欒柱曉,唐琎,鄭群英.一種改進(jìn)的人眼模板匹配算法 [J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2009,18(12):75-78.
[5] 孫洋,孫新宇,李珺珺,等.基于Dlib庫(kù)的駕駛員疲勞及心率血氧檢測(cè)系統(tǒng)設(shè)計(jì) [J].電子技術(shù)與軟件工程,2021(2):108-110.
[6] 賴力潛,余星潔,曾曉勿,等.大數(shù)據(jù)校園招聘平臺(tái)設(shè)計(jì)及初步實(shí)現(xiàn) [J].電子技術(shù)與軟件工程,2021(5):184-186.
[7] 梁晶,史記征.基于Python庫(kù)的人臉識(shí)別方法研究 [J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2019(7):46-47.
[8] 黃子豪,孫沐陽(yáng),時(shí)田野.基于Python與OpenCV的人像檢測(cè)和識(shí)別的研究 [J].電子測(cè)試,2021(13):79-80+124.
[9] 郭巖冰,繆玲娟,李傳軍,等.地理坐標(biāo)系下GPS定位誤差的定量研究 [J].北京理工大學(xué)學(xué)報(bào),2020,40(4):416-420.
[10] 王琪,盧軍.基于Dubbo的分布式能效管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) [J].電子設(shè)計(jì)工程,2018,26(11):174-178.
作者簡(jiǎn)介:林桂佳(2001—),男,漢族,廣東揭陽(yáng)人,本科在讀,研究方向:軟件工程;蔡海文(2001—),男,漢族,廣東茂名人,本科在讀,研究方向:軟件工程;朱賢澤(2000—),男,漢族,廣東汕頭人,本科在讀,研究方向:軟件工程;陳代荷(2001—),女,漢族,廣東清遠(yuǎn)人,本科在讀,研究方向:地理科學(xué);通訊作者:羅海明(1987—),男,漢族,廣東梅州人,講師,碩士,研究方向:思想政治教育、計(jì)算機(jī)科學(xué)與技術(shù)。