蔡姍姍,郭寒英
(西華大學(xué),四川 成都 610039)
汽車在人們生活場(chǎng)景中扮演著不可或缺的角色,然而頻繁發(fā)生的交通事故對(duì)駕駛員和行人的安全造成了巨大威脅。隨著交通強(qiáng)國(guó)戰(zhàn)略的落地實(shí)施,交通安全已然成為我國(guó)的重要研究課題。疲勞駕駛定義尚不明確,但多指駕駛員在長(zhǎng)時(shí)間連續(xù)駕駛后,產(chǎn)生生理、心理機(jī)能失調(diào)而使得駕駛員處于危險(xiǎn)駕駛狀況的現(xiàn)象,疲勞駕駛和酒后駕車、超速駕駛一樣,是引發(fā)道路交通事故的主要原因。道路上的危機(jī)是緊急但可預(yù)防的,因此預(yù)防駕駛疲勞對(duì)于確保道路交通安全至關(guān)重要,同時(shí)也是自動(dòng)駕駛相關(guān)研究面對(duì)的關(guān)鍵挑戰(zhàn)。
疲勞檢測(cè)是許多重要應(yīng)用的需求,近年來研究人員對(duì)實(shí)現(xiàn)可靠的檢測(cè)做了一系列深入研究。目前針對(duì)駕駛疲勞的檢測(cè)方法主要分為以下四大類。
(1)基于機(jī)動(dòng)車行為特征的檢測(cè)方法:這種方法主要是借助汽車轉(zhuǎn)向和輪胎軌跡來進(jìn)行判斷,李偉等[1]將駕駛員模擬駕駛試驗(yàn)時(shí)的方向盤數(shù)據(jù)和道路偏移值數(shù)據(jù)作為試驗(yàn)數(shù)據(jù)集,利用BP算法對(duì)神經(jīng)網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練,從而判斷駕駛員是否存在疲勞駕駛的情況。這種方法檢測(cè)準(zhǔn)確率較高,但是容易受到外部自然環(huán)境、駕駛員自身水平等因素的影響。
(2)基于駕駛員生理特征的檢測(cè)方法:駕駛員生理特征包括心電信號(hào)、心率、腦電信號(hào)等[2],馬世偉等[3]通過分析被試者的腦電信號(hào)數(shù)據(jù)加上問卷調(diào)查相結(jié)合的方式,降低了個(gè)人因素的影響,得到了應(yīng)用腦電檢測(cè)技術(shù)能夠客觀地判定駕駛員的疲勞狀態(tài)的結(jié)論,在當(dāng)前研究領(lǐng)域內(nèi)是檢測(cè)駕駛員疲勞狀態(tài)的黃金方法,但實(shí)際操作時(shí)需要借助昂貴的設(shè)備且某些與身體直接接觸的傳感器往往侵入性太強(qiáng),縱然精度很高卻并不建議使用。
(3)生物化學(xué)測(cè)試方法是通過檢測(cè)駕駛員的體液來進(jìn)行疲勞判定,這種方法只能用于事故后檢測(cè),可能對(duì)駕駛員造成創(chuàng)傷并產(chǎn)生抵觸心理。
(4)目前許多學(xué)者轉(zhuǎn)向基于面部表情和圖像處理技術(shù)檢測(cè)的方法,這種方法將各種駕駛員圖像數(shù)據(jù)用于試驗(yàn)研究,大部分研究使用駕駛員的面部數(shù)據(jù),試驗(yàn)成本低,對(duì)駕駛員的干擾程度低。胡習(xí)之等[4]提取實(shí)車數(shù)據(jù)集的駕駛員面部特征參數(shù),再用優(yōu)化SSD算法和連續(xù)自適應(yīng)均值漂移跟蹤算法來檢測(cè)人臉區(qū)域,優(yōu)化后人臉特征提取算法能有效反映駕駛員的疲勞狀態(tài),魯棒性強(qiáng)。
隨著計(jì)算機(jī)技術(shù)和圖像數(shù)據(jù)采集技術(shù)的快速發(fā)展,基于面部表情識(shí)別的駕駛疲勞研究成為當(dāng)前的主要研究趨勢(shì)。基于這類方法的試驗(yàn)數(shù)據(jù)通常是用攝像機(jī)采集或者直接使用已經(jīng)發(fā)布的開源駕駛數(shù)據(jù),當(dāng)駕駛員產(chǎn)生疲勞現(xiàn)象時(shí)可以從面部觀察到許多明顯的區(qū)別,比如頻繁點(diǎn)頭、打哈欠、眨眼甚至較小程度的閉眼[5]。打哈欠是判定駕駛員疲勞或困倦的重要指標(biāo),當(dāng)一個(gè)人打哈欠時(shí)嘴巴張開持續(xù)時(shí)間較長(zhǎng),且其動(dòng)作明顯,較其他面部表情更容易識(shí)別,因此將從行駛時(shí)打哈欠這一面部表情入手進(jìn)行駕駛員的疲勞研究。
當(dāng)前各個(gè)平臺(tái)上所發(fā)布的開源數(shù)據(jù)集種類豐富,加之實(shí)車試驗(yàn)較難開展,綜合考慮之后采用阿布塔希等研究整理的YawDD開源數(shù)據(jù)集[6]進(jìn)行關(guān)于哈欠的疲勞研究試驗(yàn),此數(shù)據(jù)集中的所有視頻都是由安裝在前視鏡或儀表盤上的攝像頭在車內(nèi)拍攝的,分類標(biāo)準(zhǔn)十分規(guī)范,在目前的研究領(lǐng)域得到了較為廣泛的采用。
YawDD包含具有多個(gè)駕駛員面部特征的兩個(gè)視頻合集,視頻的分辨率為640×480,幀率為30 fps。第二個(gè)數(shù)據(jù)集錄制了不同種族的男性司機(jī)16個(gè)、女性司機(jī)13個(gè)的29個(gè)視頻,包含正常駕駛、駕駛時(shí)說話或打哈欠。數(shù)據(jù)預(yù)處理部分首先將其按幀率提取成照片文件,由于同一個(gè)視頻里面包含大量?jī)?nèi)容非常接近的幀,若將每一幀圖片用作訓(xùn)練集或驗(yàn)證集,會(huì)大大增加圖片標(biāo)注的工作量而且不利于模型的學(xué)習(xí),為了減少冗余和訓(xùn)練時(shí)間,對(duì)每個(gè)視頻所產(chǎn)生的圖片進(jìn)行了抽樣,共得圖片文件5 580個(gè),模型訓(xùn)練結(jié)束后選取YawDD第一個(gè)數(shù)據(jù)集中的視頻直接測(cè)試或處理為圖片后作為測(cè)試集。
首先使用腳本將所有圖片以“000001.jpg”為例的方式重命名,然后采用圖像標(biāo)注軟件LabelImg對(duì)圖片進(jìn)行標(biāo)注[7],標(biāo)注時(shí)將目標(biāo)圖像全部框住,標(biāo)簽為打哈欠和正常兩種,標(biāo)注時(shí)盡可能做到同一標(biāo)準(zhǔn)。
標(biāo)注后每張圖片都包含一個(gè)人工標(biāo)注的標(biāo)簽,打哈欠標(biāo)記為1,反之為0,為防止模型訓(xùn)練時(shí)回溯不夠直觀,標(biāo)注時(shí)保存格式為txt格式,后續(xù)放入模型的文件轉(zhuǎn)換為xml格式,文件保存了目標(biāo)的坐標(biāo)位置信息。將數(shù)據(jù)集里的圖片模仿VOC2007數(shù)據(jù)集格式保存并按比例劃分訓(xùn)練集和驗(yàn)證集,樣本比例如表1所示。
表1 樣本比例
為了檢測(cè)駕駛員的哈欠情況,大多數(shù)研究方法是先集中在面部區(qū)域識(shí)別,再利用眼睛、鼻子的定位根據(jù)人臉的幾何特征確定嘴部位置。然后通過使用多個(gè)卷積網(wǎng)絡(luò)結(jié)構(gòu)來判定,這種方法不僅復(fù)雜度很高,并且依賴于精確的面部檢測(cè)。
車內(nèi)復(fù)雜多變的駕駛員人臉位置和光照條件使得實(shí)時(shí)準(zhǔn)確地檢測(cè)出哈欠行為仍是一項(xiàng)很具有挑戰(zhàn)性的任務(wù)。YOLOv5模型是當(dāng)前目標(biāo)檢測(cè)領(lǐng)域具有代表性的單階段目標(biāo)檢測(cè)算法,該算法以新的理念補(bǔ)充了YOLOv4模型,使其在速度與精度方面得到了很大提升。利用單一的網(wǎng)絡(luò)體系結(jié)構(gòu)YOLOv5網(wǎng)絡(luò)模型直接對(duì)駕駛員面部進(jìn)行檢測(cè)來分析駕駛員的哈欠情況,可為實(shí)時(shí)疲勞預(yù)警相關(guān)研究提供參考。
目標(biāo)檢測(cè)是要找出圖像中感興趣的目標(biāo)并確定其在圖像上的位置和類別。2016年Joseph Redmon率先提出了YOLO系列模型,與其他網(wǎng)絡(luò)同等尺寸下的模型相比性能更強(qiáng),從YOLOv1到Y(jié)OLOv5的發(fā)展可以看出YOLO后期沒有提出更為新穎的想法,而是更重視應(yīng)用落地,目標(biāo)檢測(cè)領(lǐng)域的發(fā)展因它的出現(xiàn)受到了極大鼓舞。除以YOLO系列算法為代表的單階段(one-stage)目標(biāo)檢測(cè)算法外,還有以RCNN系列算法為代表的兩階段(two-stage)以及多階段(muti-stage)的目標(biāo)檢測(cè)算法,該系列算法整個(gè)過程需要先經(jīng)過候選框生成網(wǎng)絡(luò)再經(jīng)過分類網(wǎng)絡(luò),故檢測(cè)精度相對(duì)較高但訓(xùn)練時(shí)間較長(zhǎng)。
YOLO網(wǎng)絡(luò)模型由輸入端、Backbone(主干網(wǎng)絡(luò))、Neck網(wǎng)絡(luò)、Prediction(輸出端)四個(gè)通用模塊組成。為了滿足不同場(chǎng)景的應(yīng)用需求,按照網(wǎng)絡(luò)深度和維度的不同可以將YOLOv5模型分為YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x四個(gè)版本,YOLOv5算法相較于YOLOv4的提升主要體現(xiàn)在以下幾個(gè)方面。
首先,在圖像輸入端對(duì)圖像文件進(jìn)行了馬賽克數(shù)據(jù)增強(qiáng)操作,該方法可根據(jù)輸入圖像的尺寸大小進(jìn)行自適應(yīng)填充。其次,為了使網(wǎng)絡(luò)在進(jìn)行下采樣的時(shí)候不丟失樣本的特征信息,設(shè)計(jì)了位于網(wǎng)絡(luò)最前端的對(duì)輸入數(shù)據(jù)進(jìn)行切片操作Focus結(jié)構(gòu),同時(shí)降低了模型的計(jì)算復(fù)雜度,以加快模型訓(xùn)練速度。最后,YOLOv5將CSP結(jié)構(gòu)用于Backbone層和Neck網(wǎng)絡(luò)層,增強(qiáng)了網(wǎng)絡(luò)對(duì)特征的融合能力,模型的網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
圖1 YOLOv5s模型的網(wǎng)絡(luò)結(jié)構(gòu)圖
在YOLOv5系列模型中,隨著網(wǎng)絡(luò)不斷加深加寬,YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x檢測(cè)精度逐步增高。YOLOv5s網(wǎng)絡(luò)是深度最小、特征圖寬度最小的網(wǎng)絡(luò)模型,較其余三種模型而言具有更快的訓(xùn)練速度與檢測(cè)速度。因此,基于對(duì)試驗(yàn)配置和檢測(cè)速度的考慮選擇模型大小僅有27MB的YOLOv5s網(wǎng)絡(luò)進(jìn)行研究。將圖片數(shù)據(jù)集作為原始圖像輸入網(wǎng)絡(luò),通過損失計(jì)算預(yù)測(cè)物體的類別和位置信息,從而將復(fù)雜的目標(biāo)檢測(cè)問題轉(zhuǎn)化為常見的回歸問題得到模型訓(xùn)練結(jié)果。
試驗(yàn)平臺(tái)是64位Windows11系統(tǒng),處理器為12th Gen Intel(R)Core(TM)i7-12700F,顯卡為NVIDIA GeForce RTX 3060Ti,深度學(xué)習(xí)環(huán)境采用PyTorch搭建,IDE工具采用Pycharm,開發(fā)環(huán)境為PyTorch1.11.0及Python3.9,將經(jīng)過處理的數(shù)據(jù)集劃分為訓(xùn)練集和驗(yàn)證集,占比為80%和20%,算法文件夾命名為YOLOv5-5.0。YOLOv5s.pt作為預(yù)訓(xùn)練權(quán)重加載到網(wǎng)絡(luò)體系結(jié)構(gòu)中,Batch size表示每次輸入的樣本數(shù)量,設(shè)為16,算法迭代次數(shù)設(shè)置為1 500次,初始學(xué)習(xí)率為0.01,動(dòng)量和預(yù)設(shè)權(quán)重衰減系數(shù)分別設(shè)為0.937和0.000 5。試驗(yàn)參數(shù)如表2所示。
表2 試驗(yàn)參數(shù)配置表
將人工標(biāo)注的5 580張圖片數(shù)據(jù)集傳入模型并修改相關(guān)數(shù)據(jù)配置文件,在上述試驗(yàn)環(huán)境下對(duì)圖像數(shù)據(jù)集進(jìn)行迭代訓(xùn)練1 500次,圖中識(shí)別概率為保存兩位有效數(shù)字結(jié)果,訓(xùn)練結(jié)果具體數(shù)值保存在results文本文件中。
模型經(jīng)迭代訓(xùn)練結(jié)束得到最后一輪訓(xùn)練權(quán)重和最優(yōu)權(quán)重,為了驗(yàn)證模型對(duì)哈欠的檢測(cè)能力,將最優(yōu)權(quán)重傳入推理函數(shù),從未經(jīng)訓(xùn)練的YawDD數(shù)據(jù)集中隨機(jī)提取8個(gè)視頻、78張圖片對(duì)模型效果進(jìn)行測(cè)試。模型測(cè)試效果的檢測(cè)精度平均在90%以上。
測(cè)試過程中被試者打哈欠時(shí)嘴巴張合幅度較小抑或是說話會(huì)導(dǎo)致極少數(shù)誤檢的情況;還有一種可能是訓(xùn)練集正樣本比例較低的問題??傮w而言模型的測(cè)試效果較好、較穩(wěn)定,也證明了所訓(xùn)練模型用于實(shí)時(shí)監(jiān)測(cè)駕駛員疲勞狀態(tài)的可行性。
從訓(xùn)練效果來看模型性能較好,本次試驗(yàn)引入目標(biāo)檢測(cè)領(lǐng)域常用的評(píng)價(jià)指標(biāo)平均準(zhǔn)確率mAP(mean Average Precision)、精確率(Precision)、召回率(Recall)和F1分?jǐn)?shù)及每秒處理幀率(fps)來量化試驗(yàn)結(jié)果。模型的精確率與召回率如圖2所示。
圖2 模型的精確率與召回率
(1)精確率:在進(jìn)行訓(xùn)練時(shí)模型認(rèn)為正確也確實(shí)是正確的樣本占模型認(rèn)為正確的所有樣本的概率,通常來說,精確率越高,分類器越好,計(jì)算公式為
(1)
式中:TP實(shí)際上是正樣本,預(yù)測(cè)為正樣本-哈欠狀態(tài)被判定為打哈欠的次數(shù);FP實(shí)際上是負(fù)樣本,預(yù)測(cè)為正樣本-正常狀態(tài)被判定為打哈欠的次數(shù)。
(2)召回率:針對(duì)所有樣本而言模型認(rèn)為是正確且確實(shí)是正確的樣本占所有正確樣本的概率,用于衡量分類器找到所有正樣本的能力,即召回率越高模型準(zhǔn)確率越高,計(jì)算公式為
(2)
式中:FN實(shí)際上是正樣本,預(yù)測(cè)為負(fù)樣本-哈欠狀態(tài)被判定為正常狀態(tài)的次數(shù)。
(3)圖3所示PR曲線表征的是精確率與召回率的關(guān)系,一般橫坐標(biāo)設(shè)置為Recall,縱坐標(biāo)設(shè)置為Precision。圖4所示為模型的mAP,AP是PR曲線下圍成的面積,m表示平均,c表示類別,所有類別的AP平均值即mAP,AP越高說明模型性能越好。mAP@0.5表示在IoU閾值為0.5時(shí)的mAP值變化曲線,mAP@0.5∶0.95表示在IoU閾值以0.05步長(zhǎng)從0.5到0.95變化時(shí)的mAP值變化曲線。這個(gè)參數(shù)適用于多標(biāo)簽圖像分類,計(jì)算公式為
(3)
圖3 PR曲線圖
圖4 mAP曲線圖
(4)
精度和召回率反映了分類器分類性能的兩個(gè)方面。通常都希望試驗(yàn)的P、R雙高,但實(shí)際上它們是一個(gè)矛盾體,考慮兩者之間的平衡點(diǎn)得到新的評(píng)價(jià)指標(biāo)F1-score,也稱為綜合分類率,它能更好地反映模型檢測(cè)結(jié)果,其數(shù)值越高模型性能越好。
目標(biāo)檢測(cè)任務(wù)的損失函數(shù)分為邊界框回歸損失和分類損失,YOLOv5直接使用Classification Error作為分類損失,以CIoU Loss作為邊界框回歸的 損失函數(shù),損失函數(shù)值越低模型效果越好,如圖5所示。
圖5 驗(yàn)證集的損失均值
結(jié)合results文本文件和訓(xùn)練過程曲線變化圖來看,隨著迭代次數(shù)的增長(zhǎng),精確率與召回率都在98%或以上,mAP數(shù)值高達(dá)0.99且波動(dòng)不大,各項(xiàng)損失函數(shù)值低至0.002。觀察YOLOv5s模型算法的訓(xùn)練效果圖可知各項(xiàng)重要指標(biāo)的訓(xùn)練結(jié)果較好,說明試驗(yàn)所提出的哈欠行為檢測(cè)模型性能良好,進(jìn)一步體現(xiàn)了試驗(yàn)所訓(xùn)練的YOLOv5s模型作為駕駛疲勞檢測(cè)模型的可靠性。
可靠的疲勞駕駛研究是保障交通安全的重要基礎(chǔ),試驗(yàn)使用YOLOv5s網(wǎng)絡(luò)模型對(duì)公開的YawDD數(shù)據(jù)集進(jìn)行哈欠檢測(cè)研究,模型訓(xùn)練集包含5 580張圖片,測(cè)試集包含8個(gè)視頻和78張圖片。當(dāng)?shù)?xùn)練次數(shù)不斷增加時(shí),模型對(duì)“打哈欠”和“正常”的分類能力越來越強(qiáng),訓(xùn)練和測(cè)試的準(zhǔn)確率分別達(dá)到98%和94%,表明經(jīng)過連續(xù)的訓(xùn)練過程后,模型在各方面表現(xiàn)出良好的性能。這種方法與其他現(xiàn)有研究相比更加簡(jiǎn)潔易操作,具有一定的實(shí)際意義。
不足的是僅僅考慮了駕駛員佩戴或不佩戴眼鏡哈欠檢測(cè)情況,未結(jié)合駕駛員眼部情況進(jìn)行綜合分析,且無法準(zhǔn)確區(qū)分出駕駛員說話打哈欠和大笑的情況。后續(xù)研究可以從以下幾個(gè)方面著手來提高試驗(yàn)的可靠性:第一,考慮晴天、雨天和霧霾等不同天氣情況的檢測(cè)效果;第二,結(jié)合駕駛員眼動(dòng)情況進(jìn)行綜合研究;第三,增加正樣本數(shù)量并考慮檢測(cè)到駕駛員產(chǎn)生疲勞狀態(tài)時(shí)提醒駕駛員安全駕駛的實(shí)時(shí)干預(yù)方法。為此,下一步研究擬在哈欠檢測(cè)模型的基礎(chǔ)上,將視頻流作為輸入建立在線哈欠行為檢測(cè)系統(tǒng)。