本發(fā)明屬于食品監(jiān)控技術(shù)領(lǐng)域,特別涉及了一種車(chē)輛識(shí)別和軌跡追蹤方法。
背景技術(shù):
目前,目標(biāo)檢測(cè)是智能視頻監(jiān)控系統(tǒng)中的關(guān)鍵技術(shù),同時(shí)也是目標(biāo)識(shí)別、目標(biāo)跟蹤、目標(biāo)分類(lèi)等處理算法的基礎(chǔ)。車(chē)輛目標(biāo)識(shí)別的目的是盡可能地從視頻監(jiān)控中提取出車(chē)輛目標(biāo)區(qū)域,并且完整地從視頻中提取出來(lái),并將檢測(cè)的結(jié)果提交給后續(xù)的算法處理,包括車(chē)輛位置信息,車(chē)輛軌跡信息等,以此來(lái)判斷車(chē)輛當(dāng)前車(chē)輛的行駛狀態(tài)。因此為了解決現(xiàn)有技術(shù)中的不足,需要一種從視頻中快速定位車(chē)輛位置和提取車(chē)輛軌跡的方法。
2015年seung-hyunlee等人在internationalsymposiumonconsumerelectronics(isce)上發(fā)表了一篇《anefficientselectionofhogfeatureforsvmclassificationofvehicle》,通過(guò)減小hog特征的維度來(lái)減少svm的計(jì)算復(fù)雜度,然后將降低維度的hog(方向梯度直方圖)特征作為支持向量機(jī)(svm)分類(lèi)檢測(cè)的輸入,提高了車(chē)輛識(shí)別檢測(cè)的速度。然而,hog特征很難處理遮擋的問(wèn)題,并且在實(shí)際的環(huán)境中hog特征對(duì)噪點(diǎn)比較敏感。
2015年sunshujuan等人在chinesecontrolanddecisionconference(2015ccdc)上發(fā)表了一篇《real-timevehicledetectionusinghaar-surfmixedfeaturesandgentleadaboostclassifier》論文,提出一種采用級(jí)聯(lián)分類(lèi)器和混合haar-surf特征的gentleadaboost分類(lèi)器來(lái)進(jìn)行車(chē)輛的實(shí)時(shí)檢測(cè)。該方法存在的問(wèn)題是adaboost算法訓(xùn)練時(shí)間過(guò)長(zhǎng),目標(biāo)識(shí)別的準(zhǔn)確性依賴(lài)于弱分類(lèi)器的選擇。
技術(shù)實(shí)現(xiàn)要素:
為了解決上述背景技術(shù)提出的技術(shù)問(wèn)題,本發(fā)明旨在提供一種基于cnn的車(chē)輛識(shí)別和軌跡追蹤方法,為了克服現(xiàn)有技術(shù)存在的問(wèn)題,采用輪廓篩選機(jī)制的卷積神經(jīng)網(wǎng)絡(luò)來(lái)提高車(chē)輛目標(biāo)識(shí)別的精度,同時(shí)也優(yōu)化了實(shí)時(shí)視頻識(shí)別中的實(shí)時(shí)性問(wèn)題。
為了實(shí)現(xiàn)上述技術(shù)目的,本發(fā)明的技術(shù)方案為:
一種基于cnn的車(chē)輛識(shí)別和軌跡追蹤方法,包括以下步驟:
(1)實(shí)時(shí)獲取車(chē)輛的視頻信息;
(2)采用輪廓篩選機(jī)制對(duì)獲取的視頻幀進(jìn)行預(yù)處理,提取車(chē)輛目標(biāo)的候選區(qū)域;
(3)將目標(biāo)的候選區(qū)域輸入卷積神經(jīng)網(wǎng)絡(luò)中,完成車(chē)輛目標(biāo)和非車(chē)輛目標(biāo)的識(shí)別;
(4)獲取每幀視頻中的車(chē)輛位置坐標(biāo),根據(jù)這些坐標(biāo)繪制車(chē)輛的軌跡;對(duì)于不同車(chē)道內(nèi)的車(chē)輛軌跡按照車(chē)道進(jìn)行分類(lèi)提取。
進(jìn)一步地,步驟(2)的具體過(guò)程如下:
采用索貝爾算子對(duì)獲取的視頻幀進(jìn)行邊緣點(diǎn)的檢測(cè),通過(guò)計(jì)算視頻幀中每個(gè)像素點(diǎn)橫向和縱向的灰度值來(lái)計(jì)算像素點(diǎn)的梯度,若梯度大于預(yù)設(shè)的閾值,則認(rèn)為該像素點(diǎn)是輪廓邊緣點(diǎn),將相鄰的輪廓邊緣點(diǎn)連接起來(lái),獲得車(chē)輛目標(biāo)的外部輪廓,根據(jù)外部輪廓確定車(chē)輛目標(biāo)的候選區(qū)域。
進(jìn)一步地,步驟(3)的具體過(guò)程如下:
縮放候選區(qū)域圖片的scale,得到圖片金字塔,通過(guò)卷積層提取圖片中的特征,得到featuremap,接著通過(guò)池化層將featuremap大小不一的候選區(qū)域轉(zhuǎn)變?yōu)榇笮〗y(tǒng)一的數(shù)據(jù),進(jìn)一步穩(wěn)定特征,然后通過(guò)全連接層將池化層輸出的特征進(jìn)行合并,使用softmax完成車(chē)輛目標(biāo)的識(shí)別。
進(jìn)一步地,softmax進(jìn)行車(chē)輛目標(biāo)識(shí)別時(shí),通過(guò)構(gòu)建代價(jià)函數(shù)對(duì)分類(lèi)進(jìn)行優(yōu)化,所述代價(jià)函數(shù):
上式中,pu為目標(biāo)真實(shí)類(lèi)別u的概率,
求解代價(jià)函數(shù)l取最小值時(shí)的
進(jìn)一步地,在步驟(4)中,對(duì)于不同車(chē)道內(nèi)的車(chē)輛軌跡按照車(chē)道進(jìn)行分類(lèi)提取的過(guò)程:
(a)以圖像的width方向?yàn)閤軸、圖像的height方向y軸,建立平面直角坐標(biāo)系;
(b)在坐標(biāo)系中定位車(chē)輛坐標(biāo),車(chē)道i的兩條邊線(xiàn)分別為y=kix+ci和y=ki+1x+ci+1,其中,ki、ki+1為車(chē)道i的兩條邊線(xiàn)的斜率,ci、ci+1為車(chē)道i的兩條邊線(xiàn)的截距,i=1,2,…,i,i為總車(chē)道數(shù);
設(shè)車(chē)道i內(nèi)的車(chē)輛坐標(biāo)為(a,b),則(a,b)滿(mǎn)足以下條件:
進(jìn)一步地,為了避免車(chē)道i內(nèi)不同車(chē)輛軌跡粘合,在車(chē)輛駛離的方向設(shè)置檢測(cè)帶y=m,當(dāng)車(chē)道i內(nèi)某車(chē)輛坐標(biāo)(a,b)滿(mǎn)足以下條件時(shí),說(shuō)明已完成該車(chē)輛目標(biāo)的軌跡跟蹤,需要進(jìn)行軌跡清除:
采用上述技術(shù)方案帶來(lái)的有益效果:
(1)本發(fā)明通過(guò)對(duì)實(shí)時(shí)輸入的視頻幀進(jìn)行輪廓識(shí)別,將篩選出車(chē)輛目標(biāo)的候選區(qū)域輸入到卷積神經(jīng)網(wǎng)絡(luò)中進(jìn)行車(chē)輛目標(biāo)的識(shí)別分類(lèi),提高了車(chē)輛目標(biāo)識(shí)別的準(zhǔn)確性和實(shí)時(shí)性;
(2)本發(fā)明對(duì)于多車(chē)道車(chē)輛按車(chē)道的不同來(lái)分別提取車(chē)輛的軌跡信息,可以有效地提高車(chē)輛的軌跡提取速度,同時(shí)也對(duì)車(chē)輛軌跡進(jìn)行了有效的分類(lèi)處理。
附圖說(shuō)明
圖1是本發(fā)明的方法流程圖;
圖2是本發(fā)明中多車(chē)道軌跡分類(lèi)示意圖。
具體實(shí)施方式
以下將結(jié)合附圖,對(duì)本發(fā)明的技術(shù)方案進(jìn)行詳細(xì)說(shuō)明。
一種基于cnn的車(chē)輛識(shí)別和軌跡追蹤方法,如圖1所示,具體步驟如下。
步驟1:實(shí)時(shí)獲取車(chē)輛的視頻信息。
步驟2:采用輪廓篩選機(jī)制對(duì)獲取的視頻幀進(jìn)行預(yù)處理,提取車(chē)輛目標(biāo)的候選區(qū)域。
采用索貝爾算子對(duì)獲取的視頻幀進(jìn)行邊緣點(diǎn)的檢測(cè),通過(guò)計(jì)算視頻幀中每個(gè)像素點(diǎn)橫向和縱向的灰度值來(lái)計(jì)算像素點(diǎn)的梯度,若梯度大于預(yù)設(shè)的閾值,則認(rèn)為該像素點(diǎn)是輪廓邊緣點(diǎn),將相鄰的輪廓邊緣點(diǎn)連接起來(lái),獲得車(chē)輛目標(biāo)的外部輪廓,根據(jù)外部輪廓確定車(chē)輛目標(biāo)的候選區(qū)域。
像素點(diǎn)的梯度計(jì)算公式:
g=gx+gy
上式中,gx,gy分別代表橫向和縱向邊緣檢測(cè)的圖像灰度值,gx=[f(x+1,y-1)+2f(x+1,y)+f(x+1,y+1)]-[f(x-1,y-1)+2f(x-1,y)+f(x-1,y+1)],gy=[f(x-1,y-1)+2f(x,y-1)+f(x-1,y-1)]-[f(x-1,y+1)+2f(x,y+1)+f(x+1,y+1)],其中f(x,y)為(x,y)點(diǎn)的灰度值。
步驟3:將目標(biāo)的候選區(qū)域輸入卷積神經(jīng)網(wǎng)絡(luò)中,完成車(chē)輛目標(biāo)和非車(chē)輛目標(biāo)的識(shí)別。
卷積神經(jīng)網(wǎng)絡(luò)(convolutionalneuralnetwork,cnn)是人工神經(jīng)網(wǎng)絡(luò)中的一種,它由多層的神經(jīng)網(wǎng)絡(luò)構(gòu)成,它的權(quán)值共享網(wǎng)絡(luò)結(jié)構(gòu)使之更類(lèi)似于生物神經(jīng)網(wǎng)絡(luò),降低了網(wǎng)絡(luò)模型的復(fù)雜度,減少了權(quán)值的數(shù)量。卷積神經(jīng)網(wǎng)絡(luò)的優(yōu)點(diǎn)在于網(wǎng)絡(luò)的輸入是多維圖像時(shí)表現(xiàn)的更為明顯,使圖像可以直接作為網(wǎng)絡(luò)的輸入,避免了傳統(tǒng)識(shí)別算法中復(fù)雜的特征提取和數(shù)據(jù)重建過(guò)程。因此,卷積神經(jīng)網(wǎng)絡(luò)在圖像識(shí)別和目標(biāo)分類(lèi)上具有很好的表現(xiàn)。
卷積神經(jīng)網(wǎng)絡(luò)主要分為3層:卷積層,池化層和全連接層。卷積層為了從圖像中通過(guò)卷積運(yùn)算提取車(chē)輛的初步特征,池化層用來(lái)將提取出的特征進(jìn)一步降維,逐步穩(wěn)定前面提取出車(chē)輛目標(biāo)的特征,全連接層是為了將池化層的特征進(jìn)行合并并分類(lèi)回歸。
首先是獲取圖片的roi區(qū)域,然后縮放圖片的scale得到圖片金字塔,提取圖片中的特征得到featuremap,然后通過(guò)pooling層將特征圖大小不一的候選區(qū)域轉(zhuǎn)變?yōu)榇笮〗y(tǒng)一的數(shù)據(jù),進(jìn)一步穩(wěn)定特征并把該特征輸入到全連接特征層,最后通過(guò)softmax來(lái)完成車(chē)輛的分類(lèi)操作。
為了使得bounding-box更加準(zhǔn)確地定位到車(chē)輛的位置,通過(guò)構(gòu)建代價(jià)函數(shù)對(duì)分類(lèi)進(jìn)行優(yōu)化,所述代價(jià)函數(shù):
上式中,pu為目標(biāo)真實(shí)類(lèi)別u的概率,
求解代價(jià)函數(shù)l取最小值時(shí)的
步驟4:獲取每幀視頻中的車(chē)輛位置坐標(biāo),根據(jù)這些坐標(biāo)繪制車(chē)輛的軌跡;對(duì)于不同車(chē)道內(nèi)的車(chē)輛軌跡按照車(chē)道進(jìn)行分類(lèi)提取。
為了實(shí)時(shí)繪制出車(chē)輛的軌跡信息,首先要定位圖像幀中車(chē)輛目標(biāo)的位置,然后將前n幀中車(chē)輛的坐標(biāo)信息保存在一個(gè)數(shù)組鏈表中。第n幀中數(shù)組鏈表中包含了前n-1中車(chē)輛的坐標(biāo)信息,在第n幀中繪制所有的坐標(biāo)點(diǎn)來(lái)繪制出運(yùn)動(dòng)車(chē)輛所經(jīng)過(guò)的軌跡。
車(chē)輛軌跡繪制過(guò)程:
1、當(dāng)視頻中檢測(cè)到車(chē)輛后,將車(chē)輛的坐標(biāo)保存在數(shù)組鏈表list。如圖2所示,檢測(cè)到3輛車(chē),將車(chē)輛的的所有坐標(biāo)信息存儲(chǔ)在list中。圖中(axy,bxy)表示車(chē)輛坐標(biāo),x表示車(chē)道號(hào),y表示幀數(shù);
2、在第n幀后,在第n幀中圖像上繪制list中所有的坐標(biāo)點(diǎn)的。即構(gòu)成了不同車(chē)道內(nèi)的車(chē)輛軌跡運(yùn)動(dòng)信息。
對(duì)于不同車(chē)道內(nèi)的車(chē)輛軌跡按照車(chē)道進(jìn)行分類(lèi)提取:
1、以圖像的width方向?yàn)閤軸、圖像的height方向y軸,建立平面直角坐標(biāo)系,如圖2所示;
2、在坐標(biāo)系中定位車(chē)輛坐標(biāo),車(chē)道i的兩條邊線(xiàn)分別為y=kix+ci和y=ki+1x+ci+1,其中,ki、ki+1為車(chē)道i的兩條邊線(xiàn)的斜率,ci、ci+1為車(chē)道i的兩條邊線(xiàn)的截距,i=1,2,…,i,i為總車(chē)道數(shù);
設(shè)車(chē)道i內(nèi)的車(chē)輛坐標(biāo)為(a,b),則(a,b)滿(mǎn)足以下條件:
為了避免車(chē)道i內(nèi)不同車(chē)輛軌跡粘合,在車(chē)輛駛離的方向設(shè)置檢測(cè)帶y=m,當(dāng)車(chē)道i內(nèi)某車(chē)輛坐標(biāo)(a,b)滿(mǎn)足以下條件:
說(shuō)明此時(shí)已經(jīng)完成車(chē)輛目標(biāo)的軌跡跟蹤,通過(guò)對(duì)數(shù)組鏈表中車(chē)道i內(nèi)該車(chē)輛的一系列離散點(diǎn)進(jìn)行清除。
實(shí)施例僅為說(shuō)明本發(fā)明的技術(shù)思想,不能以此限定本發(fā)明的保護(hù)范圍,凡是按照本發(fā)明提出的技術(shù)思想,在技術(shù)方案基礎(chǔ)上所做的任何改動(dòng),均落入本發(fā)明保護(hù)范圍之內(nèi)。