本發(fā)明涉及圖像識別技術(shù)領(lǐng)域,更具體地說,涉及一種識別前方車輛尾燈及判斷其狀態(tài)的方法。
背景技術(shù):
近年來隨著車輛的增多,交通道路的駕駛情況越來越復(fù)雜,人們對高級輔助駕駛系統(tǒng)的需要也隨之上升。其中,就包括汽車能夠自主識別出前車是否將進行變道或剎車操作,從而為汽車自身減速或避讓做好準備。由于車輛的尾燈有轉(zhuǎn)向信號燈和剎車信號燈,因此可以通過自主識別出轉(zhuǎn)向信號燈是否閃爍或剎車信號燈是否點亮來判斷前車是否將變道或剎車。因此,對車道尾燈的識別以及其狀態(tài)判斷極其重要。當前主流的卷積神經(jīng)網(wǎng)絡(luò)識別方法僅在靜態(tài)圖片中有較好性能表現(xiàn),而在動態(tài)視頻中因為檢查速度過慢而導(dǎo)致性能表現(xiàn)不能滿足技術(shù)需求。yolo神經(jīng)網(wǎng)絡(luò)將整張圖片分割成若干網(wǎng)格,然后每個單獨的網(wǎng)格直接預(yù)測車輛所在位置的邊界框和物體為車輛的概率。yolo神經(jīng)網(wǎng)絡(luò)法具有較快的識別速率和對大目標具有較高的識別率,適用于視頻識別。
技術(shù)實現(xiàn)要素:
本發(fā)明要解決的技術(shù)問題在于,提供一種識別前方車輛尾燈及判斷其狀態(tài)的方法。
本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是:構(gòu)造一種識別前方車輛尾燈及判斷其狀態(tài)的方法,包括以下步驟:
步驟s010,將車載攝像頭視頻輸入經(jīng)過訓(xùn)練的yolo神經(jīng)網(wǎng)絡(luò)1,識別出視頻中的車輛;
步驟s020,將yolo神經(jīng)網(wǎng)絡(luò)1識別出的車輛輸入yolo神經(jīng)網(wǎng)絡(luò)2,識別出車輛的尾燈;
步驟s030,每間隔多個幀圖片獲取一次尾燈的hsv值,計算相鄰兩次hsv值的差值是否大于閾值,若差值大于閾值,則車輛尾燈的轉(zhuǎn)向信號燈閃爍或剎車信號燈點亮,進而判斷前車將進行剎車或換道操作,若差值小于閾值,則車輛尾燈的轉(zhuǎn)向信號燈不閃爍且剎車信號燈不亮,進而判斷前車沒有進行剎車及換道操作。
在上述步驟s010和步驟s020中,所述yolo神經(jīng)網(wǎng)絡(luò)1和yolo神經(jīng)網(wǎng)絡(luò)2的訓(xùn)練方法包括以下步驟:首先在完整的車載攝像頭圖片上標注出其中的車輛,組成訓(xùn)練樣本集1;然后將訓(xùn)練樣本集1中標注的汽車分別剪切出來,并在其中標注出尾燈,組成訓(xùn)練樣本集2;采用隨機梯度下降法訓(xùn)練所述yolo神經(jīng)網(wǎng)絡(luò)1和yolo神經(jīng)網(wǎng)絡(luò)2,并將訓(xùn)練樣本集1用于所述yolo神經(jīng)網(wǎng)絡(luò)1的訓(xùn)練,將訓(xùn)練樣本集2用于所述yolo神經(jīng)網(wǎng)絡(luò)2的訓(xùn)練,訓(xùn)練完成后得到用于測試的圖片。
從車載攝像頭圖片上標注出車輛以及從訓(xùn)練樣本集1中標注尾燈的過程如下:輸入圖像被yolo神經(jīng)網(wǎng)絡(luò)劃分為s×s的網(wǎng)格,每個網(wǎng)絡(luò)預(yù)測是否有物體的中心落入其內(nèi)部,若預(yù)測結(jié)果為是,則該網(wǎng)格預(yù)測出b個檢測邊界框以及每個檢測邊界框的置信度,置信度反映預(yù)測邊界框?qū)ζ淇蜻x出物體的自信程度,置信度的計算公式為:
pr(object)*iou(1)
(1)式和(2)式中,pr(object)為邊界框包含目標物體的概率,bbgt為基于訓(xùn)練標簽的參考標準框;bbdt為檢測邊界框;area表示邊界面積;
每個檢測邊界框包含5個參數(shù):x,y,w,h以及confidence,(x,y)代表檢測邊界框的中心相對其母網(wǎng)格的位置,(w,h)為檢測邊界框中心相對于整張圖像的位置;
每個網(wǎng)格還預(yù)測c個類別概率,即pr(classi|object),其表示第i類物體中心落入該網(wǎng)格的概率,c為類別數(shù)量且與b無關(guān),輸出層輸出s×s(b×5+c)維的張量;
yolo神經(jīng)網(wǎng)絡(luò)采用誤差平方和作為損失函數(shù),在輸出層s×s個網(wǎng)格中,每個網(wǎng)格輸出(b×5+c)維數(shù)據(jù),其中包含檢測邊界框坐標位置信息b×4維,檢測邊界框置信度b×1維,類別數(shù)量c維,yolo神經(jīng)網(wǎng)絡(luò)將b×4維的定位誤差和b×1維的置信度誤差設(shè)定更大的權(quán)重λcoord=5,將不包含物體中心的網(wǎng)格的置信度誤差設(shè)定更小的權(quán)重λnoobj=0.5,c維分類誤差和包含物體中心的網(wǎng)格的置信度誤差則保持不變;
yolo神經(jīng)網(wǎng)絡(luò)規(guī)定每個檢測邊界框只負責框選一個物體,計算當前檢測邊界框與所有參考標準框的iou值,其中最大iou值對應(yīng)的物體即當前檢測邊界框負責框選的物體;
yolo神經(jīng)網(wǎng)絡(luò)的損失函數(shù)形式為:
(3)式中,ii表示是否有物體中心落入網(wǎng)格i中,若有則ii=1,反之為0,iij表示判斷網(wǎng)格i中第j個檢測邊界框是否負責該物體,若是則為1,反之為0。
實施本發(fā)明一種識別前方車輛尾燈及判斷其狀態(tài)的方法,具有以下有益效果:
本發(fā)明能夠?qū)崿F(xiàn)道路中的車輛識別并判斷其是否剎車或變道,識別速率和準確率較高,既適用于圖片,也適用于視頻,因而具有廣闊的應(yīng)用前景。
附圖說明
下面將結(jié)合附圖及實施例對本發(fā)明作進一步說明,附圖中:
圖1是一種識別前方車輛尾燈及判斷其狀態(tài)的方法的流程示意圖;
圖2為本發(fā)明實施例中用于訓(xùn)練yolo神經(jīng)網(wǎng)絡(luò)1的訓(xùn)練樣本集1的例圖;
圖3為本發(fā)明實施例中用于訓(xùn)練yolo神經(jīng)網(wǎng)絡(luò)2的訓(xùn)練樣本集2的例圖;
圖4為yolo神經(jīng)網(wǎng)絡(luò)的示意圖。
具體實施方式
為了對本發(fā)明的技術(shù)特征、目的和效果有更加清楚的理解,現(xiàn)對照附圖詳細說明本發(fā)明的具體實施方式。
如圖1所示,本發(fā)明提供一種識別前方車輛尾燈及判斷其狀態(tài)的方法,包括以下步驟:
步驟s010,將車載攝像頭視頻輸入經(jīng)過訓(xùn)練的yolo神經(jīng)網(wǎng)絡(luò)1,識別出視頻中的車輛。
步驟s020,將yolo神經(jīng)網(wǎng)絡(luò)1識別出的車輛輸入yolo神經(jīng)網(wǎng)絡(luò)2,識別出車輛的尾燈。在步驟s010和步驟s020中,yolo神經(jīng)網(wǎng)絡(luò)1和yolo神經(jīng)網(wǎng)絡(luò)2的訓(xùn)練方法包括以下步驟:首先在完整的車載攝像頭圖片上標注出其中的車輛,組成訓(xùn)練樣本集1;然后將訓(xùn)練樣本集1中標注的汽車分別剪切出來,并在其中標注出尾燈,組成訓(xùn)練樣本集2;采用隨機梯度下降法訓(xùn)練yolo神經(jīng)網(wǎng)絡(luò)1和yolo神經(jīng)網(wǎng)絡(luò)2,并將訓(xùn)練樣本集1用于yolo神經(jīng)網(wǎng)絡(luò)1的訓(xùn)練,將訓(xùn)練樣本集2用于yolo神經(jīng)網(wǎng)絡(luò)2的訓(xùn)練,訓(xùn)練完成后得到用于測試的圖片。
步驟s030,每間隔多個幀圖片獲取一次尾燈的hsv值,計算相鄰兩次hsv值的差值是否大于閾值,若差值大于閾值,則車輛尾燈的轉(zhuǎn)向信號燈閃爍或剎車信號燈點亮,進而判斷前車將進行剎車或換道操作,若差值小于閾值,則車輛尾燈的轉(zhuǎn)向信號燈不閃爍且剎車信號燈不亮,進而判斷前車沒有進行剎車及換道操作。
yolo神經(jīng)網(wǎng)絡(luò)屬于卷積神經(jīng)網(wǎng)絡(luò)cnn,由卷積層、池化層和全連接層組成。與cnn不同的是,本發(fā)明實施例中,我們用車載攝像頭圖像作為yolo神經(jīng)網(wǎng)絡(luò)的訓(xùn)練樣本。值得注意的是,yolo神經(jīng)網(wǎng)絡(luò)的訓(xùn)練樣本和樣本標簽與cnn存在不同之處,即yolo神經(jīng)網(wǎng)絡(luò)的訓(xùn)練樣本無需單獨將每類樣本從圖像中裁剪出,而可以直接將整張圖像用于訓(xùn)練。同時,yolo神經(jīng)網(wǎng)絡(luò)的樣本標簽不僅注釋樣本類別信息還注釋樣本在圖像中的位置信息。從車載攝像頭圖片上標注出車輛以及從訓(xùn)練樣本集1中標注尾燈的過程如下:輸入圖像被yolo神經(jīng)網(wǎng)絡(luò)劃分為s×s的網(wǎng)格,每個網(wǎng)絡(luò)預(yù)測是否有物體的中心落入其內(nèi)部。若某網(wǎng)格預(yù)測為是,則該網(wǎng)格再預(yù)測出b個檢測邊界框以及每個框的置信度。其中,置信度反映了預(yù)測邊界框?qū)ζ淇蜻x出物體的自信程度。計算公式為:
pr(object)*iou(1)
(1)式和(2)式中,pr(object)為邊界框包含目標物體的概率;bbgt為基于訓(xùn)練標簽的參考標準框;bbdt為檢測邊界框;area表示邊界面積。
每個檢測邊界框包含5個參數(shù):x,y,w,h以及confidence。(x,y)代表檢測邊界框的中心相對其母網(wǎng)格的位置。(w,h)為檢測邊界框中心相對于整張圖像的位置。同時,每個網(wǎng)格還預(yù)測c個類別概率,即pr(classi|object)。該概率表示第i類物體中心落入該網(wǎng)格的概率。c為類別數(shù)量,與b無關(guān)。最終,輸出層輸出s×s(b×5+c)維的張量。
yolo神經(jīng)網(wǎng)絡(luò)采用誤差平方和作為損失函數(shù)。在輸出層s×s個網(wǎng)格中,每個網(wǎng)格輸出(b×5+c)維數(shù)據(jù),其中包含檢測邊界框坐標位置信息b×4維,檢測邊界框置信度b×1維,類別數(shù)量c維。顯然,將b×4維的定位誤差、b×1維的置信度誤差和c維的分類誤差同等對待是不合理的。另外,圖像中存在很多沒有物體中心落入的網(wǎng)格,該類網(wǎng)格預(yù)測b個置信度為0檢測邊界框。通常,這類網(wǎng)格在訓(xùn)練過程中的梯度會遠大于包含物體中心的網(wǎng)格的梯度,導(dǎo)致訓(xùn)練不穩(wěn)定甚至發(fā)散。針對這兩個問題,yolo神經(jīng)網(wǎng)絡(luò)將b×4維的定位誤差和b×1維的置信度誤差設(shè)定更大的權(quán)重λcoord=5,將不包含物體中心的網(wǎng)格的置信度誤差設(shè)定更小的權(quán)重λnoobj=0.5,c維分類誤差和包含物體中心的網(wǎng)格的置信度誤差則保持不變。
關(guān)于定位誤差,檢測邊界框?qū)D像的定位誤差比對母網(wǎng)格的定位誤差更敏感。因此,yolo神經(jīng)網(wǎng)絡(luò)用
(3)式中,ii表示是否有物體中心落入網(wǎng)格i中,若有則ii=1,反之為0。iij表示判斷網(wǎng)格i中第j個檢測邊界框是否負責該物體,若是則為1,反之為0。
上面結(jié)合附圖對本發(fā)明的實施例進行了描述,但是本發(fā)明并不局限于上述的具體實施方式,上述的具體實施方式僅僅是示意性的,而不是限制性的,本領(lǐng)域的普通技術(shù)人員在本發(fā)明的啟示下,在不脫離本發(fā)明宗旨和權(quán)利要求所保護的范圍情況下,還可做出很多形式,這些均屬于本發(fā)明的保護之內(nèi)。