楊旭林,高 凱,盧萬平,王紅艷,張 宇
(1 北京縱橫機(jī)電科技有限公司,北京100094;2 北京地鐵運(yùn)營有限公司地鐵運(yùn)營技術(shù)研發(fā)中心,北京102208;3 北京地鐵運(yùn)營有限公司運(yùn)營三分公司,北京100082)
疲勞駕駛直接關(guān)系到地鐵運(yùn)營的安全,目前地鐵車輛普遍采用單司機(jī)值乘,車輛司機(jī)操縱時間長,且單崗作業(yè),精神狀態(tài)至關(guān)重要。如何監(jiān)控司機(jī)在運(yùn)行過程中的狀態(tài),對城軌車輛司機(jī)在值乘當(dāng)中標(biāo)準(zhǔn)化作業(yè)執(zhí)行不到位、精力不集中、盹睡等違章行為通過網(wǎng)絡(luò)或電話形式及時給予提醒糾偏,避免列車發(fā)生冒進(jìn)信號、沖撞甚至撞人等事故,對列車行車安全有著重要的意義。
隨著機(jī)器視覺技術(shù)的突飛猛進(jìn),近年來視頻分析與識別技術(shù)已廣泛應(yīng)用于交通、安防、金融、建筑、醫(yī)學(xué)、軍事等領(lǐng)域,有人臉識別、人眼定位以及疲勞狀態(tài)檢測[1-4]等技術(shù)。
司機(jī)盹睡監(jiān)測系統(tǒng)采用基于機(jī)器視覺的智能圖像處理技術(shù),以人臉識別技術(shù)和人眼識別技術(shù),通過人眼的開/閉合度等特征并融合人體的姿態(tài)和運(yùn)動特征,如頭部姿態(tài)的俯仰角信息,從而實(shí)現(xiàn)司機(jī)盹睡狀態(tài)的智能識別。當(dāng)監(jiān)測到司機(jī)有視野偏離、精神不振等現(xiàn)象時,立即實(shí)施分級語音報警,在線提醒司機(jī),從而減少因司機(jī)精神不專注導(dǎo)致的行車事故發(fā)生。
本系統(tǒng)實(shí)現(xiàn)了針對地鐵10號線安裝司機(jī)盹睡監(jiān)測系統(tǒng),實(shí)現(xiàn)車輛司機(jī)盹睡狀態(tài)智能識別,當(dāng)監(jiān)測到司機(jī)有視野偏離、精神不振等間斷現(xiàn)象時,立即實(shí)施分級語音報警,在線提醒司機(jī),使之保持專注狀態(tài),并將報警的實(shí)時視頻無線傳輸至運(yùn)營管理部門。
盹睡檢測算法主要過程如圖1所示:先從視頻圖像中檢測出人臉,根據(jù)人臉檢測的結(jié)果提取出眼睛部位,通過人眼的開/閉合度等特征并融合人體的姿態(tài)和運(yùn)動特征,如頭部姿態(tài)的俯仰角信息,構(gòu)建深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)分類器進(jìn)行分類,從而實(shí)現(xiàn)司機(jī)盹睡狀態(tài)的智能識別。
圖1 算法處理流程
人臉關(guān)鍵點(diǎn)采用圖2所示的網(wǎng)絡(luò)訓(xùn)練得到一系列的特征圖最終輸出68個人臉關(guān)鍵點(diǎn)。
圖2 訓(xùn)練過程圖
這里關(guān)于重要的幾個關(guān)鍵點(diǎn)作以說明,如圖3所示:鼻尖為31,鼻根為28,下巴為9,左眼外角為37,左眼內(nèi)角為40,右眼內(nèi)角為43,右眼外角為46,嘴中心為67,嘴右角里為55,左臉為1,右臉為17。頭部姿態(tài)由方位角,俯仰角和翻滾角表示。
圖3 68個人臉關(guān)鍵點(diǎn)
損失函數(shù)采用線性回歸函數(shù),其中Φ(?)為正則化項,?(?)是損失函數(shù),采用的是Least-Squares Re?gression,求出預(yù)測值和真值之間的誤差,為式(1):
式中:
基于卷積神經(jīng)網(wǎng)絡(luò)的關(guān)鍵點(diǎn)檢測技術(shù),能夠在復(fù)雜環(huán)境下穩(wěn)定地運(yùn)行,包括不同光照變換、各種姿態(tài)、表情以及部分遮擋人臉。在訓(xùn)練的過程中,通過大量訓(xùn)練樣本數(shù)據(jù)使得網(wǎng)絡(luò)模型能夠自主學(xué)習(xí)各關(guān)鍵點(diǎn)的梯度特征,有監(jiān)督地學(xué)習(xí)出形狀和紋理的回歸模型,計算得到關(guān)鍵點(diǎn)的檢測結(jié)果。
將人臉關(guān)鍵點(diǎn)信息,結(jié)合頭部姿態(tài)的俯仰角信息和人眼的開/閉合狀態(tài)信息,組成68×6的特征向量,再將每幀的特征向量輸入到設(shè)計的卷積網(wǎng)絡(luò)中,輸出網(wǎng)絡(luò)提取的feature向量,再將此特征輸入到BiLSTM中輸出駕駛員的當(dāng)前狀態(tài),如圖4所示。例如:專心駕駛,疲勞駕駛或者左顧右盼。
圖4 疲勞檢測算法流程
通過CNN網(wǎng)絡(luò)(RPN)產(chǎn)生一系列稀疏的候選框,然后對這些粗粒度的box信息進(jìn)行分類與回歸,以便進(jìn)一步回歸從而得到更加精確的框信息,采用了特征融合操作用于檢測網(wǎng)絡(luò),有效提高對小目標(biāo)的檢測效果,整個檢測網(wǎng)絡(luò)采用的損失函數(shù)為式(2):
預(yù)測過程首先根據(jù)類別置信度來過濾掉屬于背景的預(yù)測框和閾值較低的預(yù)測框,根據(jù)置信度進(jìn)行降序排列,然后僅保留top-k預(yù)測框,最后進(jìn)行NMS算法過濾掉那些重疊度較大的預(yù)測框,從而得到檢測結(jié)果。
選擇線路、車輛號、車廂號后,可查詢司機(jī)室駕駛員歷史記錄,盹睡分神等記錄。如果當(dāng)前車輛駕駛員出現(xiàn)盹睡分神現(xiàn)象,系統(tǒng)將上傳盹睡時間的截圖和時間節(jié)點(diǎn)。所有故障和報警信息將滾動顯示在主頁面下方,如圖5所示。
圖5 城軌盹睡監(jiān)測系統(tǒng)
本系統(tǒng)由3部分組成:電路硬件板卡,前面板,軟件算法(FPGA+ARM)構(gòu)成。
如圖6所示,PS端為ARM處理器,用來進(jìn)行算法運(yùn)行以及程序調(diào)度和協(xié)調(diào),PL端為FPGA,用來進(jìn)行卷積計算,PS與PL之間通過AXI總線進(jìn)行通信。其中:
圖6 司機(jī)盹睡識別卡設(shè)計框圖
(1)DDR做程序運(yùn)行時的存儲器,SD/SATA作為圖像存儲介質(zhì)。
(2)M 12為前面板以太網(wǎng)接口,接入盹睡攝像頭。
(3)USB為前面板存儲器連接接口。
盹睡監(jiān)測攝像頭是司機(jī)盹睡監(jiān)測子系統(tǒng)的圖像采集和語音報警部件,攝像頭采用SONY紅外,高清2.8 mm CCD圖像傳感器,盹睡攝像頭外形如圖7所示。
圖7 盹睡攝像頭
防盹睡系統(tǒng)具備以下幾項功能:
(1)盹睡狀態(tài)實(shí)時識別在線提醒
若發(fā)現(xiàn)司機(jī)疲勞駕駛在線提醒實(shí)施分級語音報警,同時,在圖像采集器(攝像頭)檢測到被遮擋時也會報警。報警均為語音實(shí)時報警,具體參數(shù)可以通過軟件進(jìn)行設(shè)置,見表1。
表1 報警類別及啟動條件
(2)數(shù)據(jù)存儲分析
系統(tǒng)監(jiān)測數(shù)據(jù)可通過3G/4G/WALN和USB下載、機(jī)內(nèi)存儲2種方式保存,并可通過地面分析軟件進(jìn)行分析處理,自動生成退勤憑證和統(tǒng)計報表,管理者可分權(quán)限對重點(diǎn)時間區(qū)域以及重點(diǎn)人員的工作狀態(tài)進(jìn)行檢索和分析,針對問題采取管理措施,為安全風(fēng)險管理提供了重要技術(shù)支撐。
(3)車輛休眠
車輛速度小于5 km/h時系統(tǒng)待機(jī)休眠,為乘務(wù)員停車時的休息提供良好環(huán)境。
(4)外部接口功能
通過RS485或Enthernet接入車載PHM系統(tǒng)或TMS系統(tǒng)將報警信息無線傳輸至車輛運(yùn)營管理部門或車輛本地報警顯示和存儲。
文中建4臺高性能服務(wù)器作為分布式訓(xùn)練計算機(jī)集群,如圖8所示,A服務(wù)器用于存儲參數(shù)、共享參數(shù)、共享計算;其他3臺服務(wù)器B、C、D用于并行計算。另外,在實(shí)施分布式訓(xùn)練前,模型中集成了對視頻數(shù)據(jù)的增強(qiáng)處理,如數(shù)據(jù)旋轉(zhuǎn)、反射變換、翻轉(zhuǎn)變換、縮放變換等。
圖8 分布式訓(xùn)練計算機(jī)集群
構(gòu)建深度學(xué)習(xí)模型,對網(wǎng)絡(luò)的結(jié)構(gòu)進(jìn)行優(yōu)化改進(jìn)。根據(jù)需求方給出城軌車輛運(yùn)行時駕駛室錄像,由開發(fā)方人工訓(xùn)練出相應(yīng)的網(wǎng)絡(luò)模型,具體流程為:在視頻中截取相應(yīng)動作的圖片,然后進(jìn)行人工標(biāo)注,之后在darknet中迭代訓(xùn)練得到模型,其中影響網(wǎng)絡(luò)模型的因素有:標(biāo)注圖片的數(shù)量和準(zhǔn)確度、網(wǎng)絡(luò)模型結(jié)構(gòu)、訓(xùn)練中的一些參數(shù)等。標(biāo)注圖片越多、越精確、越均衡,訓(xùn)練效果越好;網(wǎng)絡(luò)結(jié)構(gòu)方面,一般來說,越大的網(wǎng)絡(luò)精度越高,但同時運(yùn)行速度會越低,具體采用什么網(wǎng)絡(luò),需要在訓(xùn)練工程中反復(fù)嘗試和權(quán)衡,最后達(dá)到精度和速度同時滿足開發(fā)需求;訓(xùn)練中的參數(shù),如每批次載入的圖片數(shù)量,總體迭代次數(shù)等,都影響著最后得到的網(wǎng)絡(luò)質(zhì)量,需要在訓(xùn)練過程中反復(fù)嘗試和調(diào)整。流程如圖9所示。
圖9 算法訓(xùn)練流程圖
檢測階段,就是將上述訓(xùn)練過程中得到的網(wǎng)絡(luò)模型應(yīng)用于實(shí)際場景,如圖10所示,從攝像頭的視頻流中截取每一幀圖片,將這些圖片通過網(wǎng)絡(luò)模型,可以得到司機(jī)目前的動作類別:
圖10 檢測階段應(yīng)用于實(shí)際場景流程圖
整個網(wǎng)絡(luò)結(jié)構(gòu)圖如圖11所示。
圖11 網(wǎng)絡(luò)結(jié)構(gòu)圖
其中,除了最后一個detection層之外(detection層結(jié)構(gòu)比較復(fù)雜,在FPGA上實(shí)現(xiàn)比較困難,本層計算量較小),網(wǎng)絡(luò)的其他部分都由FPGA部分
實(shí)現(xiàn)。
司機(jī)盹睡監(jiān)測裝置在車輛運(yùn)行中實(shí)時監(jiān)測車輛司機(jī)的精神狀態(tài),并在其出現(xiàn)打盹等狀態(tài)時,及時分級發(fā)出提示報警信號,有效地減少了司機(jī)疲勞狀態(tài)出現(xiàn)的次數(shù)和避免了司機(jī)盹睡狀態(tài)的出現(xiàn),從而將安全管理由結(jié)果控制轉(zhuǎn)化為在線實(shí)時預(yù)防,對地鐵運(yùn)營安全具有十分重要的現(xiàn)實(shí)意義,本系統(tǒng)將引領(lǐng)盹睡監(jiān)測在城軌車輛上的應(yīng)用和推廣的方向,為我國軌道交通安全又增添了一道保障。