王文斌,劉 征,柏月鴻,孟宇佳
基于神經網絡學習的公共汽車駕駛安全識別
王文斌,劉 征,柏月鴻,孟宇佳
(沈陽理工大學 汽車與交通學院,遼寧 沈陽 110159)
文章針對目前公交車駕駛員身體突發疾病、乘客搶奪方向盤以及現階段L2級別的智能駕駛中駕駛權轉移的空白等行車安全問題,設計了表情識別和危險動作識別兩款程序。其中表情識別程序是利用基于Python語言的Opencv計算機視覺庫,以Qt5作上位機設計的一款在視頻中實時采集的人臉表情識別程序。首先通過輸入圖像的處理提高有關信息的可監測性,進而提高監測質量,其次進行表情模型訓練和數據采集等,最終實現識別功能。同時還介紹了基于LabVIEW的危險動作識別程序。通過攝像頭傳入的視頻信息,采用幀間差分法以及背景學習等算法監測出運動物體,實現監測范圍內可能對駕駛安全構成威脅的外來物體的實時捕捉。實驗數據表明,兩款程序能夠準確、快速地捕捉相應表情和危險動作,在解決上述問題的同時還大大提高了公共汽車的行車安全性。
駕駛安全識別;神經網絡學習;智能駕駛安全;公共汽車
在飛速發展的二十一世紀,隨著交通系統的不斷完善,公共汽車道路系統被認為是費用最低的公共道路系統,公交車成為不可或缺的交通工具之一。然而近幾年公交車內發生的重大安全事故造成的負面影響不可忽視。比如早些年在重慶萬州發生了因乘客坐過站要求駕駛員停車未果,從而搶奪駕駛員方向盤,最終使公交車駛入江內造成十幾個生命逝去的事件。據以上事故可見,在公交車正常行駛途中,由于駕駛員本身的安全因素或乘客搶奪方向盤的行為,都會對公交車內安全造成影響。
1.2.1國內外公交車安全維護現狀
英國的公交車因安全性而聞名世界,駕駛室是全封閉獨立的空間,為防止駕駛員被襲擊,駕駛室配備了專門的透明保險門,投幣機器也置于室內。上鎖的部位位于門的下半部分,而駕駛員的呼吸或與乘客進行交流則要依靠門上半部分原有預留的小孔。此外,駕駛室安裝有襲擊報警器,當突發危險時,駕駛員可以按下報警按鈕保證公交車駕駛員和乘客的安全。但當駕駛員自身突發疾病時,駕駛員或將來不及按下報警按鈕,公交車行駛安全仍存在隱患。
公交車乘客搶奪駕駛員方向盤的問題并非個例,隨著問題的不斷發生,國內很多城市給各公交車配備了安全門,將駕駛員分隔在安全的駕駛范圍內。但防護門只能保證駕駛員不在乘客的干擾下駕駛公交車,當駕駛員自身突發疾病或窗外有物體飛來砸向駕駛員時,因為有防護門的阻隔,乘客無法給予駕駛員幫助,若沒有及時停車同樣會造成安全事故的發生。
1.2.2智能駕駛發展現狀
智能駕駛活躍于現代生活中,但是智能駕駛技術尚不成熟,目前只能停留在人車駕駛權相互轉移的L2級別階,因此,當突發危險時駕駛員無法及時將駕駛權轉移給車輛,無法保證公交車的行車安全。
在駕駛員駕駛途中,面臨著不同的突發情況,在這些突發情況面前,每一秒都彌足珍貴,如果能將人工駕駛和智能駕駛相結合,解決智能駕駛中駕駛權轉移空白的問題,公交車行駛安全性就將大幅度提高。
為解決以上問題,本項目設計了兩種識別程序。其中表情識別是采用Opencv進行分類定義識別;通過攝像頭實時捕捉人臉的情緒特征,當識別到駕駛員痛苦或消極情緒,并且超過設定的閾值后,將會發出警報。同時搭配基于LabVIEW的危險動作識別程序。當攝像頭在一定范圍內捕捉到外來物體時即定義為危險動作發出警告從而保證駕駛安全。
傳統公交車增加防護門只能保護駕駛員不受到乘客的干擾,不能保證駕駛員因為個人身體原因或者異物飛入導致駕駛員不能及時停車從而造成安全事故的發生。二十一世紀是信息化的世紀,將計算機的深度學習融入到生活中會帶來更多的便利,將復雜的問題簡單化,讓科技體現在方方面面。通過智能駕駛和人工駕駛的結合恰好能彌補這一空缺。當攝像頭檢測到有突發情況時,發出警報,項目后續也可以應用于智能駕駛的安全檢測中,從而達到最大程度的安全性。經過安全性和性價比等特點綜合比較,基于神經網絡學習的公共汽車駕駛安全輔助識別更符合未來的發展方向。
識別駕駛員表情的程序是以Python語言作為基礎,采用Opencv分類器進行分類處理定義,同時搭載了諾基亞公司的Qt5作為上位機,將Qt5的功能與Python的豐富生態結合,更高效地開發程序。設計人臉監測系統時,采用當下很熱的Adaboost算法[1]與計算機視覺類庫,輸入相應的代碼函數處理得到的數據。人臉識別過程如圖1所示。此外,為了使人臉表情監測的速度更快且更加準確,系統的開發基礎運用了VC++6.0,方便快捷地進行了類管理,并且能自動生成框架,簡化了開發步驟。

圖1 人臉識別過程
在程序運行時,需先找到人臉,構建識別框。本程序的人臉檢測主要是基于統計的神經網絡方法:當已知訓練樣本的數據加到網絡輸入端時,網絡的學習機制一遍又一遍地調整各神經元的權值,使其輸出端達到預定的目標。程序中采用的Python語言提供高級數據結構。檢測人臉:具體是將人臉看作一個整體的模式——二維像素矩陣(二維是基于一維的基礎算法,是指相對于坐標原點和坐標軸進行的幾何變換,包括平移、比例、旋轉、反射和錯切5種變換),用統計的方式用大量人臉圖像樣本構造人臉模式空間,根據相似度量來判斷人臉是否存在。
將輸入程序的人物視頻進行處理。圖像分析(特征提取、分割、匹配和識別等)中,識別算法的設計與效果的精度受圖像質量的影響,因此,本程序在圖像分析前,進行了圖像預處理,消除圖像中無關的信息,恢復有用的真實信息,增強有關信息的可檢測性,從而改進特征提取、圖像分割、匹配和識別的可靠性。
首先將圖像進行灰度化處理,假設采集到的圖像是一個行階矩陣,其中的元素代表原圖像中的像素,即

顏色模型則采用紅、綠、藍三種顏色作為基色繪制空間模型,使每種顏色具有相同的分量。最后利用公式轉化為灰度圖像。將處理好的圖片進行糾正,去掉頭發等干擾內容,提高監測的準確性以保證識別的正確性。

在圖像提取中難免會有光照對圖像檢測造成影響,因此,下一步則直方圖等進行圖像的規定化。其函數為(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個表情圖像序列,包含了八種類型,除了生氣、討厭、開心、恐懼、驚訝、悲傷外,還增加了無表情和蔑視。
危險動作的程序設計是基于LabVIEW虛擬儀器[2]的程序開發環境,以電腦作為上位機,同時使用電腦攝像頭進行實時監控,將視頻信號進行圖像的預處理,采用幀間差分法進行目標檢測,當在目標區域外檢測出物體就發出警告。表情識別過程如圖3所示。程序中前面板[3]中主要是人為操作板塊、數字控制和數字顯示。前面板構件如圖4所示。后面板是編寫的具體程序。

圖3 表情識別過程

圖4 前面板構件
3.2.1幀間差分法
幀間差分法[4]是檢測視頻中運動目標常用的方法,其處理過程是在視頻圖像的序列中,相鄰兩幀之間作差分運算以此得到運動目標的輪廓,非常適合程序中除駕駛員外,其他外來干擾駕駛員駕駛的運動物體的實時監測。當監測視頻中出現異常物體運動時,兩幀之間會出現較為明顯的差別,將兩幀相減,就可以得到兩幀圖像亮度差的絕對值,以此來判斷它是否大于原本設定好的閾值(本程序中最大閾值為100),從而分析視頻或圖像序列的運動特性,確定圖像序列中有無外來干擾的物體運動。檢測運動目標過程如圖5所示。

圖5 檢測運動目標過程
3.2.2背景學習
在項目設計的程序中采用背景學習主要是檢測背景中的值是否發生改變。當按下背景學習的按鈕后,程序立即采集20張圖片,將采集到的圖片轉為灰白,將圖像進行裁剪后轉換為二維數組,獲取數組的尺寸后,一方面統計每個像素點中20次的眾數即為像素點的背景值;另一方面將產生的背景數組保存,再用二維數組將圖像表示出來進行背景學習。背景學習過程如圖6所示。

圖6 背景學習過程
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 實時檢測
公交車已成為現代大多數人的代步工具,然而近年來多地頻發乘客因自身情緒不滿搶奪公交車方向盤或是駕駛員的身體原因(如心肌梗死等突發疾病),使駕駛員喪失公交車的正常駕駛能力而釀成悲劇,一個個事件讓人心痛不已,如果能夠及時判別出危險環境并及時讓公交車正常行駛,那么車上乘客的安全就多份保障。為了更好地保護乘客的人身安全,并構建智能高效安全的公共交通環境,文章圍繞公共汽車駕駛員的危險環境識別展開,利用人工智能進行危險動作捕捉和面部表情識別,有效利用計算機技術時刻關注駕駛員的駕駛狀態,能夠在危險發生時高效地利用最短的時間判別出風險后發出警告,或應用于智能駕駛安全監測中,讓智能駕駛代替駕駛員安全駕駛車輛,就可以有效避免因為乘客與公交車駕駛員的沖突或駕駛員自身身體原因不能正確控制公交車輛而引發的危險,從而保障公交車上乘客的生命安全。
[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)。