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