趙江月 陳曉晴 袁燦 汪將剩 劉嵐清


關鍵詞:智能安全駕駛;監測;YOLOv5算法;輔助駕駛;行為識別
中圖分類號:TP311 文獻標識碼:A
文章編號:1009-3044(2023)08-0055-04
0 引言
近年來,我國經濟持續增長,人們對便捷交通的需求不斷上升,汽車成為居民生活的一部分,機動車數量不斷增加,中國汽車保有量將達到3億輛,安全駕駛就顯得尤為重要,例如發生的公交車墜湖,酒后駕駛引發悲痛事故等。機動車數目的增長在一定程度上增加了交通路況的復雜度、駕駛汽車行駛的難度,因此大量交通事故仍在上演。現存的各式各樣的輔助駕駛工具就是為了有效解決這個問題。就現下交通情況、數據統計、事故分析來看,駕駛輔助工具創新和研發方向在當代中國交通仍有很大的發展空間。
隨著人工智能技術的不斷革新突破,智能輔助駕駛的實現也有了更新的突破。本系統的設計目標旨在通過使用計算機視覺及駕駛員行為分析、深度學習網絡等多種技術,對車內場景駕駛員的靜態與動態行為進行識別和檢測分析,通過對駕駛員生理數據指標的檢測為駕駛員進行安全輔助,對其進行相對應的反饋、信息提示,增加駕駛員的行車安全性,以防止交通事故的發生。
1 系統功能介紹
本設計在基于移動端、物聯網、機器視覺和人臉識別技術的基礎上,開發了一套可進行人機交互設備,在終端使用的進行實時監測駕駛員狀況,收集數據進行存儲分析并實時提醒、撥號預警、實時定位的智能安全駕駛檢測系統。
1) 酒后駕駛監控系統:在汽車方向盤安裝酒精檢測傳感器,判別駕駛員是否存在酒后駕駛,若有自動撥號家屬聯系人;
2) 駕駛員行為狀態監控系統:在駕駛員前方增加攝像頭,并指向駕駛員的面部,提供駕駛員實時行為狀態,如閉眼、打哈欠、注意力不集中、打電話、抽煙等并發出語音警告;
3) 組建制作智能可穿戴設備,可以使用現有成熟產品,測量出車主的體溫、心跳、血壓、血脂等指標;
4) 將以上收集的信息數據進行存儲分析,生成健康報表提供給用戶,若駕車行駛指標突發異常,自動撥號家屬聯系人,并上報實時位置。
2 研究解決的問題
目前研究工作處于中期階段,初步思想已經形成,以下是主要解決的幾個方面。
2.1 研究重點
1) 行為監控系統:針對車載場景,實時識別駕駛員使用手機、抽煙、不系安全帶、未佩戴口罩、閉眼、打哈欠、雙手離開方向盤等動作姿態,分析預警危險駕駛行為,提升行車安全性;
2) 酒駕監控系統:在汽車方向盤安裝酒精檢測傳感器,判別駕駛員是否存在酒后駕駛,若有自動撥號家屬聯系人;
3) 健康信息收集分析系統:組建制作智能可穿戴設備,測量出車主的體溫、心跳、血壓、血脂等指標;將以上收集的信息數據進行存儲分析,生成健康報表提供給用戶,如若駕車行駛指標突發異常,自動撥號家屬聯系人,并上報實時位置。
2.2 研究難點
1) 酒精檢測器、智能可穿戴設備等硬件的組建制作問題;
2) 由不同硬件產生的數據來源與數據傳輸;
3) 基于機器視覺、人臉及姿態識別的駕駛員行為檢測算法模型、駕駛行為的特征提取;
4) 行為監控系統能否適用于不同出租車、客車、公交車、貨車等多種典型車載場景(已解決,主要考慮公共交通汽車);
5) 后臺健康指標數據的自動采集與智能分析,正確的醫學生理數據處理方法。
3 現有研究借鑒
1) 針對駕駛員行為狀態的監測,國內外研究者提出了以下方法:基于深度學習識別駕駛員的駕駛行為。如彭家駿[1]基于深度學習的云端識別模型,使用MTCNN人臉檢測網絡提取人臉局部與全局特征,并通過深度殘差神經網絡ResNet識別駕駛員行為,該算法對四種行為(打哈欠、打盹、抽煙和打電話)都可以達到97%及以上的正確率。
2) 為解決云端識別的數據的傳輸以及傳輸過程中的信息安全,鄭磊[2]等人提出選取輕量級網絡模型Mobilenet V3作為駕駛行為識別模型,采用State Farm數據集訓練模型。
3) 針對駕駛員健康生理信息數據的收集與分析,國內外研究者提出以下幾種方法:李秀靜[3]等人通過多種微型傳感器測量出車主的體溫、體重、心跳、血壓、血脂、酒精、視力等指標數據,與云端大數據模型進行比對,進行車主健康分析、車主健康趨勢分析、車主指標分析等,之后通過圖表、文字、語音等可視化、數據化的形式為車主提供健康報告和建議。
4) 考慮到駕駛員疲勞之后,黃創新[4]等人提出方向盤角度數據和汽車偏移路面中心線位移數據之間存在的關系會明顯不同,把駕駛員疲勞系統看成是一個黑箱系統,系統的輸入是汽車的方向盤角度ɑ,輸出是汽車偏離路面車道中心線的縱向位移S。當車輛駕駛者陷入昏昏欲睡狀態時,可以通過車輛方向盤的角度和汽車偏離路面車道中線的位移來探測出這種狀態,進而避免交通事故的發生。
4 算法概述
本系統采用的是YOLOv5算法,Yolov5的網絡結構主要由Backbone、Neck、Head 構成,其中Backbone主要使用CSPdarknet+SPP 結構,Neck 使用PANet 結構,結構圖如圖1所示。
Yolov5使用CSPDarknet作為Backbone,從輸入圖像中提取豐富的信息特征。CSPNet解決了其他大型卷積神經網絡框架Backbone中網絡優化的梯度信息重復問題,將梯度的變化從頭到尾地集成到特征圖中,因此減少了模型的參數量和FLOPS數值,既保證了推理速度和準確率,又減小了模型尺寸[5]。
算法思想主要是將一幅圖像分成SxS個網格(gridcell),如果某個object的中心落在這個網格中,則這個網格就負責預測這個object,如圖2所示。每個網絡需要預測B個BBox的位置信息和confidence(置信度)信息,一個BBox對應著四個位置信息和一個confidence信息。
5 系統實現
系統模塊設計。本系統的輔助場景為車內場景,通過真實車內駕駛員的場景獲取駕駛員行為動作、環境酒精濃度生理指標數據,對實時視頻解碼后獲取原始圖像數據[6]。對原始圖像數據進行數據預處理后,使用YOLO5算法對駕駛員的行為進行識別分類,最后前端給予處理結果反饋。
大數據項目共分三大模塊,三者相輔相成,共同構成了智能安全駕駛監測系統的相應功能。
1) 檢測模塊
通過攝像頭與傳感器共同工作,檢測各種信息,如駕駛員酒精濃度,駕駛員生理指標數據等。通過檢測來獲取各種數據,并把數據發送給預警模塊,使預警模塊來完成相應的工作。
2) 識別模塊
通過攝像頭獲取到的信息對信息進行識別,識別到駕駛員的行為動作,如使用手機、抽煙、不系安全帶、未佩戴口罩、閉眼、打哈欠、雙手離開方向盤等時,將通過識別獲取到的數據傳給預警模塊,使預警模塊能正常工作。
3) 預警模塊
通過檢測模塊所獲取到的各種數據在預知危險時進行預警:自動撥號預警、語音預警,來確保駕駛員的安全。
① 硬件設計
通過攝像頭與傳感器共同工作,檢測各種信息,如駕駛員酒精濃度,駕駛員生理指標數據等。通過檢測來獲取各種數據,并把數據發送給預警模塊,使預警模塊來完成相應的工作。
本系統以單片機為核心,實現對各個模塊的協調,在云端接收數據后進行分析反饋,并發送控制數據。
② 軟件設計
6 應用效果
1) 車輛定位顯示。通過小程序組件布置、調用實時地圖和實時位置,顯示車輛此時的位置信息,地圖的縮放級別為3~20;
2) 健康報告展示。通過外部攝像頭和傳感器返回數據,并經過后端代碼和算法的分析與識別,最終展示了一份完整的健康報告;
3) 行為識別展示。駕駛員點擊開始駕車進行酒精檢測和身體數據檢測,檢測完后可以進入識別界面進行監測,當點擊停止駕車后,系統將不再識別,并返回地圖展示界面。
7 功能測試
7.1 主功能測試
1) 測試用例
①photo test_001
②photo test_002
③photo test_003
2) 功能測試
①photo test_001
測試結果:"both_hands_leaving_wheel"=0.659,"eyes_closed"=0.013,"no_face_mask"=0.996,"not_buck?ling_up" =0.965, "smoke" =0.003, "not_facing_front" =0.041,"cellphone"=0.015,"yawning"=0.000,"head_low?ered"=0.33
期望結果:
"both_hands_leaving_wheel" <0.7, "eyes_closed" <0.55, "no_face_mask" >0.75, "not_buckling_up" >0.44,"smoke"<0.48,"not_facing_front"<0.5,"cellphone"<0.69,"yawning"<0.5,"head_lowered"<0.55
實際結果與期望結果是否一致:是
②photo test_002
測試結果:
"both_hands_leaving_wheel"=0.774,"eyes_closed"=0.857, "no_face_mask" =0.885, "smoke" =0.9999,"not_buckling_up" =0.198, "not_facing_front" =0.063,"cellphone"=0.1313,"yawning"=0.0165,"head_lowered"=0.001
期望結果:
"both_hands_leaving_wheel">0.75,"eyes_closed">0.55, "no_face_mask" >0.75, "smoke" >0.48, "not_buck?ling_up"<0.44,"not_facing_front"<0.5,"cellphone"<0.69,"yawning"<0.5,"head_lowered"<0.55
實際結果與期望結果是否一致:是
③photo test_003
測試結果:
"both_hands_leaving_wheel"=0.067,"eyes_closed"=0.0004,"no_face_mask"=0.002,"not_buckling_up"=001,"smoke"=0.003,"cellphone"=0.857,"not_facing_front"=0.001,"yawning"=0.0001,"head_lowered"=0.000
期望結果:
"both_hands_leaving_wheel"<0.75,"eyes_closed"<0.55, "no_face_mask" <0.75, "not_buckling_up" <0.44,"smoke"<0.48,"cellphone">0.69,"not_facing_front"<0.5,"yawning"<0.5,"head_lowered"<0.55
實際結果與期望結果是否一致:是
7.2 副功能測試
1) 后端接口測試
①測試描述:在微信開發者工具中,采用POST方法,輸入http://localhost:8082
/Monitoring/user/login
期望結果:獲取微信登錄信息
實際結果與期望結果是否一致:是
②測試描述:在微信開發者工具中,采用POST方法,輸入http://localhost:8082/
Monitoring/drive
期望結果:上傳圖片流
實際結果與期望結果是否一致:是
③測試描述:在微信開發者工具中,采用GET方法,輸入http://localhost:8082
/Monitoring/getreportbyid
期望結果:獲取健康數據報告
實際結果與期望結果是否一致:是
④測試描述:在微信開發者工具中,采用POST方法,輸入http://localhost:8082
/Monitoring/insertfeedback
期望結果:提交意見反饋
實際結果與期望結果是否一致:是
⑤測試描述:在微信開發者工具中,采用GET方法,輸入http://localhost:8082
/Monitoring/getfeedbackbyopenid
期望結果:獲取意見反饋
實際結果與期望結果是否一致:是
8 結束語
人工智能技術發展至今,市面上大多數關于安全駕車系統的研究主要是從改變汽車構成、改善駕駛座椅功能或安裝系統檢測前后方來車等方面改善汽車,對于駕駛員行為的安全監測少之甚少,例如酒駕、打瞌睡等不良駕駛行為的監測提醒等。在用戶駕駛上,計算機雖然不能完全代替人控制,但在信息處理與輔助預警方面,通過使用計算機視覺及駕駛員行為分析、深度學習網絡等多種技術,對車內場景駕駛員的靜態與動態行為進行識別和檢測分析,通過對駕駛員生理數據指標的檢測為駕駛員進行安全輔助,對其進行相對應的反饋、信息提示,能有效且實際地改變駕駛的很多隱患。