王正旭,王秋力
(1.廣州市工貿(mào)技師學(xué)院新能源應(yīng)用產(chǎn)業(yè)系,廣州 510425;2.西安電子科技大學(xué)電子工程學(xué)院,西安 710071)
近些年,隨著時代的進(jìn)步和科技的發(fā)展,人們的消費(fèi)水平越來越高,汽車已經(jīng)是人們生活必不可少的代步工具。據(jù)中國新聞網(wǎng)已發(fā)布的消息,截止2021年底,我國汽車的保有量達(dá)到了3.02億輛[1],全國新注冊登記機(jī)動車就達(dá)3 674萬輛。與2016年相比增長了近55.7%。車輛增多,必然帶來交通擁堵,交通事故頻發(fā),特別是汽車追尾事故,給人民的生命財產(chǎn)造成重大損失。
根據(jù)調(diào)查,超過60%的車禍?zhǔn)且驗檐囕v相撞造成的[2]。所以,從行車安全性的觀點出發(fā),汽車的防撞和警告就變得非常的關(guān)鍵。一份調(diào)查顯示,在車禍之前提前預(yù)警司機(jī),90%的車禍都可以得到預(yù)防[3]。目前的汽車探測技術(shù)主要是利用毫米波雷達(dá)、超聲波雷達(dá)、激光雷達(dá)、紅外線探測等多種探測手段來對汽車進(jìn)行探測[4-6]。然而,由于這種新型的感應(yīng)器具有造價昂貴、維護(hù)難度大等問題,因此許多學(xué)者都采用了照相機(jī)進(jìn)行相關(guān)的實驗。相機(jī)比其他的傳感器成本低,實用性強(qiáng),抗干擾能力強(qiáng),信息量大,通過攝像頭的視角,可以讓研究者們對當(dāng)前的情況做出更準(zhǔn)確地分析,從而達(dá)到最好的效果。通過相機(jī)攝像頭捕捉行駛中前車的行駛狀態(tài),及時向駕駛員發(fā)出預(yù)警信號,實現(xiàn)司機(jī)的安全駕駛。
總之,與雷達(dá)等相比較,采用具有更低廉的費(fèi)用的照相機(jī)傳感器,用作車輛的駕駛狀況辨識和早期預(yù)警的圖象資料收集器,并利用建立的車輛的駕駛狀況辨識和警報模式來探測和辨識影像資料,能夠幫助司機(jī)實現(xiàn)車輛的安全行駛,實現(xiàn)汽車正面碰撞預(yù)防。
對于車輛尾部,采用YOLOv3算法[7-10]訓(xùn)練道路實拍樣本,并據(jù)此生成車輛尾部的檢測模型。
針對車輛尾部檢測模型,使用YOLOv3代碼[11]來對實拍道路的樣本集進(jìn)行訓(xùn)練,代碼細(xì)節(jié)已在Github上開源,從而獲得車輛尾部檢測模型。
(1)準(zhǔn)備訓(xùn)練集
要生成車輛尾部檢測模型,訓(xùn)練集需涵蓋車輛尾部,通過道路實拍得到636張車尾樣本作為訓(xùn)練集,使用標(biāo)注工具labellmg[12]對目標(biāo)進(jìn)行框定標(biāo)注,框選出車尾的位置,如圖1所示。標(biāo)注為后續(xù)檢測和模型生成提供了預(yù)處理便利。
圖1 車輛尾部標(biāo)注示例
(2)模型
在開源的YOLOv3數(shù)據(jù)集代碼以及原作者訓(xùn)練好的權(quán)重基礎(chǔ)上進(jìn)行網(wǎng)絡(luò)調(diào)參,以得到更適應(yīng)車尾模型的訓(xùn)練網(wǎng)絡(luò)。
loss曲線根據(jù)訓(xùn)練日志數(shù)據(jù)繪制得到。損失值越小,說明模型越好。損失曲線圖如圖2所示,可以反映許多信息,從圖中可以判定停止訓(xùn)練的時機(jī),訓(xùn)練迭代到3 700次后,loss[13]在0.04左右達(dá)到穩(wěn)定,記錄該權(quán)重。
圖2 loss曲線
IOU(Intersection-over-Union)[14]是數(shù)據(jù)集中對目標(biāo)準(zhǔn)確度檢測的一個判準(zhǔn),圖3所示曲線圖展示了樣本中被識別為車尾的目標(biāo)的概率變換,圖示值越接近1表示效果越好。由圖可知訓(xùn)練權(quán)重過小IOU值在0.6左右,不符合訓(xùn)練標(biāo)準(zhǔn)。而2 000次左右訓(xùn)練權(quán)重對應(yīng)的IOU值變化不夠穩(wěn)定,模型不具有魯棒性。綜合上述情況,最終擬定的訓(xùn)練權(quán)重取到3 700次。
圖3 IOU曲線
(3)模型評估
對于生成的模型,通過混淆矩陣來分析評價,具體細(xì)節(jié)如表1所示[15-17]。TP表示模型預(yù)測為正的和實際為正的樣本數(shù)量;TN表示模型預(yù)測為負(fù)和實際為負(fù)的樣本數(shù)量;FP表示模型預(yù)測為正而實際為負(fù)的樣本數(shù)量;FN表示模型預(yù)測為負(fù)而實際為正的樣本數(shù)量。
表1 混淆矩陣
本文用查準(zhǔn)率(精度),查全率(漏檢率),F(xiàn)1分?jǐn)?shù)進(jìn)行模型的評估,查準(zhǔn)率和查全率是一對對應(yīng)指標(biāo),當(dāng)查準(zhǔn)率高的時候,查全率一般很低;查全率高時,查準(zhǔn)率一般很低。
其中查準(zhǔn)率P是模型預(yù)測的正樣本與模型預(yù)測的正樣本的比值:
查全率R是指模型預(yù)測的正樣本中實際也為正樣本的比率:
引入查準(zhǔn)率和查全率的調(diào)和均值F1進(jìn)一步輔助模型評價:
使用該模型對未受訓(xùn)練的正負(fù)各100張測試集進(jìn)行檢測。結(jié)果查準(zhǔn)率為P=100%,查全率為R=99%。則模型準(zhǔn)確率為F1=99.5%。
(4)模型驗證
在對模型評估后,進(jìn)行道路實測實驗,在車輛的前擋風(fēng)玻璃上安裝USB攝像頭并將其與筆記本電腦連接,運(yùn)行檢測模型,以實時檢測道路車輛。如圖4所示,從檢測效果圖可以看出,即使在光線不充足的情況下,該車輛尾部檢測模型仍能檢測出車尾的輪廓,且有很高的準(zhǔn)確率,驗證該模型是可行的。
圖4 YOLOv3算法的車輛尾部檢測模型在道路的檢測效果
要想識別車輛的行駛狀態(tài),主要的方法是識別車輛尾燈的變化來判斷車輛的行駛狀態(tài)。在車輛狀態(tài)識別的研究中,假設(shè)駕駛員在駕駛車輛時遵守交通法規(guī),并在轉(zhuǎn)彎時使用轉(zhuǎn)向燈。根據(jù)尾燈的變化,可以在車輛準(zhǔn)備轉(zhuǎn)彎或正在制動時,模型可以立即捕獲并預(yù)警。即當(dāng)駕駛員注意力不集中時,通過模型的預(yù)警就能起到輔助安全駕駛的作用。
定位車尾燈時,首先檢測識別車輛尾部狀態(tài),然后再對車尾識別框中的車尾燈進(jìn)行定位。
定位的方法:通過劃分燈具面積鎖定車輛尾燈燈具的大致位置。由于大多數(shù)車型的尾燈區(qū)在車輛后部垂直方向的中間位置,也有部分車型在中間偏上位置,故設(shè)置燈定位框為長0.4,寬0.4,其中X、Y為車輛后部檢測模型檢測到車輛后部后的識別框尺寸。根據(jù)行駛中的車輛尾部檢測圖像中尾框尺寸的變化,尾燈定位框也會隨著行駛中的車輛發(fā)生變化,以保證定位的瞬間準(zhǔn)確性,如圖5所示。
圖5 車輛尾燈區(qū)域劃分
如圖6所示,該模型檢測到行駛中的車輛尾部后,將該車輛尾部框定,然后根據(jù)汽車尾部被車燈分割的面積,自動提取出車燈的大概位置。通過這種方法即可以把車燈的位置鎖定。
圖6 車燈定位示例
對于RGB彩色通道圖像,由于其他顏色通道中紅色圖像的像素比小,紅色通道中紅色圖像的像素比大,而且尾燈(示寬燈、剎車燈)一般均為紅色,因此提取了圖像中車輛尾燈所在區(qū)域的紅色通道信息,減少了非車燈處像素影響車燈狀態(tài)變化的判斷。
如圖7所示,在紅色通道下二值化后的兩車燈位置為白色,與車身和背景的二值化效果對比明顯,而綠色通道和藍(lán)色通道的車燈位置沒有明顯白色,這說明紅色通道對車燈的處理效果優(yōu)于其他兩個通道,可以利用紅色通道處理后的圖像進(jìn)行車燈定位。也即在車燈定位框中,紅色通道下二值化后的白色像素點數(shù)變化更能反映車燈狀態(tài)的變化情況。
圖7 車燈區(qū)域圖像在不同RGB顏色通道下的二值化效果
事實上,理想狀態(tài)是當(dāng)前照燈關(guān)閉時,該區(qū)域為黑色,而當(dāng)車燈打開時,白色像素出現(xiàn)。而輕微反光帶來的干擾對車燈狀態(tài)的判斷沒有太大影響,因為在實際檢測時,攝像機(jī)獲取的前后視頻幀之間主要像素變化在于車是否亮起。對車燈狀態(tài)的判斷方法如下。
右轉(zhuǎn)狀態(tài)的判別公式為:
左轉(zhuǎn)狀態(tài)的判別公式為:
制動狀態(tài)的判別公式為:式中:Qr為該幀之前右車燈二值化后像素點為白色的個數(shù);Hr為該幀之后右車燈二值化后像素點為白色的個數(shù);Ql為該幀之前左車燈二值化后像素點為白色的個數(shù);Hl為該幀之后左車燈二值化后像素點為白色的個數(shù);R為該幀前后二值化后右車燈像素點為白色的數(shù)目差的絕對值;L為該幀前后二值化后左車燈像素點為白色的數(shù)目差的絕對值;Rb為后一幀減去前一幀右車燈二值化后像素點為白色的數(shù)目差絕對值;Lb為后一幀減去前一幀左車燈二值化后像素點為白色的數(shù)目差絕對值;Dr為R與L差值;Dl為L與R差值;Db為Rb與Lb差值的絕對值。
若Dl≥20且L≥25,左燈亮右燈不亮,車向左轉(zhuǎn);若Dr≥20且R≥25,右燈亮左燈不亮,車向右轉(zhuǎn);若Db≤10、Rb并且Lb≥25,車子制動。
在實際檢測時,一個檢測窗口無法同時判斷車輛行駛狀態(tài),因此需要檢測檢測窗口進(jìn)行分割。
車輛在道路上行駛時,其位置的視覺狀態(tài)有3種:車輛前面、左前面和右前面。如圖8所示,將攝像頭拍攝并傳入計算機(jī)的畫面分為左、中、右3個部分。用左側(cè)畫面檢測車輛右轉(zhuǎn)情況,中間畫面檢測車輛制動情況,用右側(cè)畫面檢測車輛左轉(zhuǎn)情況。
圖8 將視頻頻幀中的圖像劃分為3種方向道路
對于道路分割,根據(jù)車輛攝像頭的安裝位置,安裝位置的不同,分割也有所不同。將相機(jī)安裝在車輛前面擋風(fēng)玻璃的中間位置,并劃分3車道中間道路。如果車輛和攝像頭之間的距離太近,就不能包含整個尾部,大約5 m左右就可以包含整個尾部,大于5 m的自然也可以包含在內(nèi)。在模型執(zhí)行程序中,左側(cè)測量和右側(cè)劃分的測試窗口大小均為600×600,中間測試的窗口大小為600×400。
車輛狀態(tài)識別與預(yù)警模型由車輛尾部檢測模型結(jié)合車尾燈狀態(tài)識別方法以及語音報警系統(tǒng)所構(gòu)成。下面對車輛狀態(tài)識別與預(yù)警模型進(jìn)行檢測實驗。
使用大眾汽車對模型進(jìn)行實況評估,將攝像頭放置于車前玻璃中部,利用USB線將電腦和攝像頭相連,使得實時路況可以在筆記本上顯示。錄制視頻路段為華南快速大道、大廣高速公路和白云大道3大路段。在錄制的視頻中,有16段視頻是車輛運(yùn)行狀態(tài)發(fā)生變化,尾燈可以正常工作的。其中右前車左轉(zhuǎn)的視頻片段有4個,前車制動的視頻片段有6個,左前車右轉(zhuǎn)的視頻片段有6個。整個檢測過程如圖9所示。
圖9 前車狀態(tài)識別與預(yù)警模型檢測流程
編程進(jìn)行語音預(yù)警包的設(shè)計,當(dāng)檢測到前車的運(yùn)動狀態(tài)后會進(jìn)行前車狀態(tài)的語音播報,當(dāng)前車制動時播報注意前方車輛;當(dāng)前車左車燈亮起會播報注意前車左轉(zhuǎn);當(dāng)前車右車燈亮起會播報注意前車右轉(zhuǎn)。
對以上16個視頻段的檢測結(jié)果如表2所示,其中檢測結(jié)果為假即為識別失敗,檢測結(jié)果為真即為識別成功。根據(jù)檢測結(jié)果計算可得出數(shù)據(jù),經(jīng)計算,所給條件下模型的準(zhǔn)確率為87.5%。
表2 YOLOv3算法的前車狀態(tài)識別與預(yù)警模型在16個視頻段中的檢測結(jié)果
如圖10所示為檢測效果圖示例,在檢測過程中,前方車輛在轉(zhuǎn)向或制動時,前后視頻幀之間車燈區(qū)域的白色像素點數(shù)的差值都大于25,所以能夠準(zhǔn)確預(yù)警。實驗結(jié)果表明,提出的模型基本能對前車行駛狀態(tài)進(jìn)行識別與預(yù)警。
圖10 YOLOv3算法搭建的模型檢測效果
(1)對于車輛尾部檢測模型。使用深度學(xué)習(xí)方法中的YOLOv3算法訓(xùn)練道路實拍的數(shù)據(jù)集,生成了車輛尾部檢測模型,經(jīng)過評估檢測得到識別準(zhǔn)確率達(dá)到99.5%。
(2)尾燈的狀態(tài)識別。本文提出對行駛中的汽車進(jìn)行尾部狀態(tài)識別的方法,基本框架是訓(xùn)練好的汽車尾部檢測模型,在汽車尾部檢測模型的基礎(chǔ)上設(shè)計了一種大燈狀態(tài)識別方法,即在大燈所在區(qū)域進(jìn)行閾值分割,判斷大燈的開滅,進(jìn)而判斷汽車行駛狀態(tài)。實驗結(jié)果表明,該方法具有一定的可行性。
(3)前車行駛狀態(tài)識別預(yù)警模型。包括以下3部分:對YOLOv3算法訓(xùn)練的車輛尾部檢測模型、大燈狀態(tài)識別方法和語音報警系統(tǒng)。并分別對構(gòu)成的前車行駛狀態(tài)識別預(yù)警模型進(jìn)行了實驗。實驗結(jié)果表明:模型基本可以實現(xiàn)前方車輛狀態(tài)識別與預(yù)警的功能,而且模型準(zhǔn)確率可達(dá)87.5%。
(4)實驗時,出現(xiàn)識別失敗的主要原因是模型對車尾輪廓定位的準(zhǔn)確率還有待提高,在后期研究中可對車尾的檢測模型進(jìn)行完善。
綜上所述,提出的前車狀態(tài)識別與預(yù)警模型具有一定的意義和應(yīng)用價值。