張金錢
(貴州大學電氣工程學院,貴陽 550025)
根據(jù)世界衛(wèi)生組織統(tǒng)計,疲勞駕駛是導致道路交通事故發(fā)生背后的主要原因之一[1]。疲勞駕駛對駕駛員和其他交通參與者同時構成嚴重潛在威脅,對疲勞駕駛行為進行快速準確的檢測與預警,及時高效地給予提醒,將會大幅減少由于疲勞駕駛所引發(fā)交通事故的可能性。
疲勞駕駛檢測技術根據(jù)監(jiān)測內容不同可劃分為多種類型,例如基于駕駛員生理指標,基于車輛運行狀態(tài)特征,或基于駕駛員面部特征等的疲勞程度檢測。徐禮勝等人[2]提出短時的心電信號特征的駕駛疲勞識別檢測算法,將獲取R-R 間期序列的時域/頻域特征與利用深度卷積神經(jīng)網(wǎng)絡獲取的特征相結合,利用隨機森林分類出疲勞特征;張明明[2]提出提取駕駛員對方向盤的握力特征和腦電特征,然后利用BP 神經(jīng)網(wǎng)絡方法建立基于握力特征和腦電特征的疲勞檢測模型。朱玉斌等人[4]用漸進校準網(wǎng)絡(PCN)檢測人臉圖像,通過基于CNN 的回歸模型定位人臉關鍵點并提取眼睛和嘴部圖像,用寬度學習系統(tǒng)(BLS)分別識別面部狀態(tài),但這種檢測方法的外部光線對識別的準確率影響較大。
相較于日常的行車過程中,深夜至凌晨時段行車更加容易出現(xiàn)駕駛員的疲勞駕駛現(xiàn)象。同時由于夜間外部光線較弱,很容易導致夜間準確率顯著下降。此處采用基于EnlightenGAN[5]網(wǎng)絡低光增強的圖像預處理方法來嘗試解決這一問題,即通過攝像頭所采集到的人臉視頻圖像進行低光增強處理,提高圖像的曝光度,以此提高低光條件下疲勞駕駛檢測的準確率。
由于日常駕駛過程中同時獲取相同視覺場景的低光和普通光照圖像存在一定的難度,此處采用EnlightenGAN 這種高效無監(jiān)督的生成對抗網(wǎng)絡,可以在缺乏低/正常光圖像對的情況下進行訓練,避免了對成對訓練數(shù)據(jù)的依賴。EnlightenGAN 網(wǎng)絡結構如圖1 所示。
圖1 EnlightenGAN 網(wǎng)絡結構原理圖
EnlightenGAN 的生成器用于通過U-Net 架構執(zhí)行圖像生成和增強。生成器接受弱光圖像及其相應的注意力圖作為輸入。注意力圖僅基于輸入圖像的照明強度來生成。根據(jù)U-Net 架構,EnlightenGAN網(wǎng)絡先生成一組具有多個比例尺的特征圖,并調整注意力圖的大小以適合每個特征圖,然后與所有中間特征圖相乘。隨后,逐元素相乘并進行加法運算以生成增強圖像。
將此圖像作為輸入發(fā)送到EnlightenGAN 的判別器,該判別器由全局和局部判別器組成,用以處理空間變化的光照條件。全局判別器鑒別整個圖像,而局部鑒別器使用從圖像中剪切的隨機塊來鑒別圖像的部分信息。
全局判別器D 和生成器G 的損失函數(shù)定義如下式:
其中DRa為判別器的函數(shù),xr與xf表示從真實和虛假分布中采樣。
對于局部判別器,五個圖像塊均是在模型輸出圖像與原始真實圖像中隨機裁剪。局部判別器和發(fā)生器的損失函數(shù)定義如下式:
為限制感知相似性,Johnson 等人[6]采用一種預先訓練的VGG 對圖像之間的特征空間距離的感知損失。但在不成對設置中,限制輸入低光與其增強的正常光輸出之間的VGG 特征距離作為感知損失具有更佳的效果,被稱之為自特征保留損失,定義描述如下式:
其中,IL表示低光圖像的輸入,G(IL)表示生成器的增強輸出,Φi,j表示從預先訓練的VGG-16 網(wǎng)絡中提取的特征圖像,i 表示第i 個最大池化層,j 表示第i個最大池化層后面的第j 個卷積層。Wi,j, Hi,j為特征圖的寬度和高度。在默認狀態(tài)下,i=5,j=1。
對于局部判別器,來自裁剪輸入和輸出圖像的局部圖像塊也有相似定義的自特征保持損失局部特征點,用來進行正則化。EnlightenGAN 網(wǎng)絡模型的整體損失函數(shù)如下式:
SSD(Single Shot Multibox)使用簡化VGG16 作為基礎網(wǎng)絡,并在其末端添加額外的卷積層,在其中和基礎層中選擇一些不同大小的層,用以預測每個比例上一些默認框的分數(shù)和偏移量。這些預測是由單個卷積層生成的,各層的卷積核數(shù)量與默認框數(shù)量以及預測類別數(shù)量有關。SSD 是一種高效的單級物體檢測器,算法結構如圖2 所示。它通過兩個2×2卷積層預測默認邊界框的類別分數(shù)和位置偏移。
圖2 SSD 算法網(wǎng)絡結構示意圖
為了針對不同尺度的物體進行檢測,SSD 增加了一系列逐漸變小的卷積層,用以生成金字塔特征圖,如圖2 所示。
圖3 特征金字塔生成方法
隨后,根據(jù)層的感受野大小設置相應的錨點大小,并使用NMS(非最大抑制)對最終檢測結果進行后處理。因為SSD 直接從平面ConvNet 特征地圖中檢測對象,所以它可以實現(xiàn)實時對象檢測,并且比大多數(shù)其他最先進的對象檢測器處理得更快。
在目前基于通信網(wǎng)的目標檢測中,目標識別和定位之間存在著矛盾。利用更深層次的ConvNet,特征映射可以更加充分地傳遞平移不變性語義信息,有利于目標識別,但不利于目標定位。針對這一矛盾,SSD 采用特征金字塔來檢測不同尺度的物體。對于作為主干網(wǎng)絡的VGG16[7],以具有特征步幅8 的Conv4_2 檢測小物體,具有特征步幅64 的Conv8_2檢測大物體。
這種策略是合理的,因為小物體在淺層不會丟失太多位置信息,而大物體在深層也可以很好定位和識別。問題在于:淺層生成的小對象特征缺乏足夠語義信息,導致小對象檢測性能較差。
為了解決上述問題,在傳統(tǒng)SSD 算法的基礎上增加了一個輕量級、高效的特征融合模塊,提出特征融合SSD 算法(Feature Fusion Single Shot Multibox Detector, FSSD)[8],算法結構如圖4 所示。
圖4 FSSD 算法網(wǎng)絡結構示意圖
它首先定義特征融合模塊的框架,并抽象出目標檢測中影響特征融合性能的關鍵因素;在特征融合模塊的體系結構定義下,來自不同層的不同尺度的特征被投影并連接在一起;隨后批量歸一化[9]各層,以此歸一化特征值。在此處添加一些下采樣塊來生成新的特征金字塔,隨后饋送到多盒檢測器以產(chǎn)生最終的檢測結果。
基于EnlightenGAN 網(wǎng)絡低光增強檢測模型如圖5 所示,基于此模型設計實驗。
圖5 EnlightenGAN 網(wǎng)絡低光增強檢測模型
實驗以Windows10 系統(tǒng)為平臺,CPU選用AMD Ryzen 7-4800H;GPU 選用Nvidia GeForce GTX 1650 Ti;內存配置16G 的DDR4。程序在PyCharm 環(huán)境中運行。實驗所用的數(shù)據(jù)集是通過在車內搭建攝像頭實地采集了6 名駕駛員在夜間行車的面部視頻數(shù)據(jù)獲得的,共計24 個視頻數(shù)據(jù),其中12 個對應疲勞狀態(tài),另外12 個對應正常狀態(tài)。檢測驗證流程如圖6。
圖6 檢測流程圖
將面部視頻數(shù)據(jù)截取為視頻幀圖片,作為FSSD網(wǎng)絡的分類數(shù)據(jù)來源。剔除無效的圖像,最終截取872 幀駕駛員面部圖像,其中對70%的圖像進行EnlightenGAN 網(wǎng)絡增強,然后將其輸入到FSSD 分類網(wǎng)絡處理;剩余的20%圖像不做處理,直接輸入FSSD 分類網(wǎng)絡中。
實驗中,經(jīng)EnlightenGAN 增強后,圖片效果有明顯改進,如圖7 所示。低光環(huán)境下的駕駛員面部圖像作為該算法的輸入,輸出為尺寸大小不變的增強后圖像。通過對比可知,經(jīng)EnlightenGAN 增強的圖像曝光度大幅提高,增強了分類網(wǎng)絡的識別能力。
圖7 算法增強圖片效果
實驗也展示出圖像增強處理對FSSD 網(wǎng)絡識別人臉并定位駕駛員眼部位置的準確概率的提升,如表1 所示。若檢測網(wǎng)絡無法識別駕駛員人臉, 更無法定位眼部,則眼部的開合狀態(tài)識別錯誤。從實驗結果可知, 直接輸入昏暗環(huán)境下的駕駛員面部圖像進行檢測, 檢測效果相比于引入低光增強處理的圖像有著明顯的差距, 主要原因在于駕駛環(huán)境的低曝光度的影響下, 所獲取的視頻圖像中駕駛員面部特征信息缺失, 極大增加了眼部定位的難度。在FSSD檢測之前, 引入EnlightenGAN 低光增強的方法, 增加了駕駛員的面部圖像曝光度, 從而檢測的準確率會有著顯著提高。
表1 駕駛者眼部定位準確率對比
識別駕駛員眼睛開合情況的實驗結果如表2所示。采用未經(jīng)增強處理的檢測方法直接將獲取原始圖像作為檢測網(wǎng)絡的輸入,不考慮圖像的曝光度及質量, 其相對應的FSSD 網(wǎng)絡定位眼睛區(qū)域的準確率明顯較低。引入低光增強的檢測方法可克服由于外部光線昏暗所引起的識別不準確的缺陷,相較于前者準確率有大幅提升。
表2 眼睛開閉狀態(tài)識別效果對比
判斷駕駛員是否處于疲勞狀態(tài)的依據(jù)為單位時間內所截取的視頻幀(60 幀)中眼部閉合狀態(tài)的比值,這一比值高于20%則判定為疲勞狀態(tài),反之則為正常狀態(tài)。在未通過低光增強處理和使用低光增強的兩種不同情況下,眼部閉合狀態(tài)檢測準確率有著不同的實驗表現(xiàn),其結果如表2 所示。實驗結果表明,利用數(shù)據(jù)集中的24 段視頻(12 段正常狀態(tài)、12 段疲勞狀態(tài))進行測試, 明顯可以看出引入EnlightenGAN 后檢測網(wǎng)絡在昏暗環(huán)境下的檢測準確率有大幅提高。
表3 駕駛員疲勞狀態(tài)檢測效果實驗對比
基于EnlightenGAN 網(wǎng)絡改進昏暗環(huán)境下疲勞駕駛檢測效果是完全可行的。針對低光度場景,采用對駕駛員面部圖像進行低光增強的方式,相當于使圖片“變亮”,能夠助于FSSD 網(wǎng)絡準確定位眼睛區(qū)域,從而更準確地利用分類網(wǎng)絡對駕駛員眼部狀態(tài)進行分類,真正判斷疲勞與否。實驗結果直觀展示出引入EnlightenGAN 方法的檢測網(wǎng)絡相比直接檢測方法帶來的準確率提升。所設計的算法行之有效,檢測方式與駕駛員身體無接觸,為夜間安全駕駛提供有力保障。