本發(fā)明屬于計算機機器視覺檢測技術(shù)領(lǐng)域,涉及用于高速公路場景的視頻分析監(jiān)控,為一種客貨分道交通參數(shù)監(jiān)測系統(tǒng)的實現(xiàn)方法。
背景技術(shù):
進入21世紀(jì),由于交通需求的爆發(fā)式增長,帶來兩個主要方面的問題:一是大部分的公路通道的交通量已趨于飽和,從而導(dǎo)致高速公路人工監(jiān)管壓力的劇增;二是客貨運輸需求的不同:人們對客運快速、安全、舒適、便利等方面提出了更高的要求,而貨物運輸則向大運量、快速化、節(jié)能化發(fā)展,因此對客貨分道行駛的需求應(yīng)運而生,目前的客貨分道技術(shù)主要集中于對道路本身的分流設(shè)計,而對實時監(jiān)控方面,還缺乏有力的自動監(jiān)控技術(shù),客貨分道的實際實施情況并不樂觀。并且,新的道路結(jié)構(gòu)設(shè)計也不適用于已有的高速公路。
對于龐大的高速公路交通網(wǎng),雖然現(xiàn)在已經(jīng)有了一些交通流參數(shù)的監(jiān)測技術(shù),但針對客貨分道的監(jiān)控仍然主要依靠人工監(jiān)管,對工作人員的要求較高,負擔(dān)較重。
技術(shù)實現(xiàn)要素:
本發(fā)明要解決的技術(shù)問題是:面對客貨分道的需求,以及龐大的高速公路網(wǎng),存在人工監(jiān)管分析高速公路監(jiān)控視頻難的問題,需要一種自動化的監(jiān)控系統(tǒng)來實現(xiàn)實時自動監(jiān)控。
本發(fā)明的技術(shù)方案為:一種客貨分道交通參數(shù)監(jiān)測系統(tǒng)的實現(xiàn)方法,根據(jù)高速公路的監(jiān)控視頻,對客貨分道及相應(yīng)交通參數(shù)進行自動監(jiān)測,包括以下兩個部分:
1)確定監(jiān)測區(qū)域,訓(xùn)練樣本得到車型分類器:
1.1)利用監(jiān)控視頻的連續(xù)視頻流圖像構(gòu)建高速公路背景,對高速公路中的車道進行興趣域標(biāo)定,將客車道標(biāo)定為ROI_K,貨車道標(biāo)定為ROI_H;并在車道上標(biāo)定兩條檢測絆線,分別為起始絆線和終止絆線;
1.2)構(gòu)建訓(xùn)練樣本數(shù)據(jù)集,具體如下:
提取運動目標(biāo),對運動目標(biāo)進行大小歸一化處理后保存以作為樣本數(shù)據(jù)集,對提取的運動目標(biāo)圖像按車型進行分類,分為三類:客車一類、貨車一類以及其它車輛一類;
1.3)利用線性SVM對1.2)得到的樣本數(shù)據(jù)集進行訓(xùn)練以生成分類模型;
1.4)由線性SVM結(jié)合1.3)所得的分類模型,構(gòu)成車型分類器;
2)根據(jù)實時監(jiān)控視頻監(jiān)測交通參數(shù):
2.1)讀取視頻流,將視頻轉(zhuǎn)換為連續(xù)的視頻幀,對每一幀進行處理,混合高斯提取運動目標(biāo);
2.2)車速檢測,具體如下:
2.2.a)如果車輛的運動軌跡集中有效軌跡幀小于2,則置該車輛的速度為0,否則執(zhí)行2.2.b);
2.2.b)計算出當(dāng)前幀的前第二幀中車輛的質(zhì)心,計算該質(zhì)心點到起始絆線的距離yend,設(shè)該車輛在第一幀有效軌跡幀中車輛質(zhì)心到起始絆線的距離為ystart,得到這兩幀期間車輛行駛的距離:
distance=y(tǒng)start-yend
若distance<7,則置該車輛的速度為0,否則執(zhí)行2.2.c);
其中質(zhì)心點到起始絆線的距離計算如下:在圖像幀坐標(biāo)系中,設(shè)點為(xp,yp),起始絆線的直線為:A*x+B*y+C=0,則距離計算為
2.2.c)設(shè)運動軌跡集中的第一幀有效軌跡幀的幀序為0,2.2.b)中車輛質(zhì)心點距離起始絆線距離為yend的幀為運動軌跡集中第countssu幀,計算出車輛的移動速度為:
speed=distance/countssu*β*n*3.6(km/h)
其中,n為每秒中處理的圖像幀數(shù),β為實際世界長度與圖像中的長度比;
2.3)車流量統(tǒng)計,具體如下:
2.3.a)若車輛的運動軌跡集中的幀數(shù)小于10,則無法做出有效的判斷,跳過,否則執(zhí)行2.3.b);
2.3.b)計算當(dāng)前幀中車輛質(zhì)心距離終止絆線的距離D_end,該車輛的運動軌跡集中第一幀中車輛質(zhì)心到起始絆線的距離為D_start,這里計算點到絆線的距離方法為:在圖像幀坐標(biāo)系中,設(shè)點為(xp,yp),直線為A*x+B*y+C=0,則距離:Distance’=A*xp+B*yp+C,
若D_end*D_start<0,則車流量計數(shù)加1;否則計算當(dāng)前幀中車輛質(zhì)心距離起始絆線的距離D_start_new,然后更新距離D_start=D_start_new;
2.4)對運動目標(biāo)提取SIFT特征,對SIFT特征進行稀疏編碼,空間池化,再用車型分類器對池化后的結(jié)果進行分類,檢測是否有駛?cè)肟蛙嚨赖姆强蛙囓囕v,以及駛?cè)胴涇嚨赖姆秦涇囓囕v,并對車輛的交通參數(shù)設(shè)定閾值進行監(jiān)控,若發(fā)現(xiàn)駛?cè)胲嚨厘e誤的車輛或超過閾值設(shè)定的情況進行報警。
進一步的,交通數(shù)據(jù)監(jiān)測還包括:
2.5)高速公路擁堵狀態(tài)監(jiān)控:計算出所有車輛在圖像幀中所占的總面積Sfore,背景路面區(qū)域的面積為Sback,根據(jù)Sfore/Sback得出路面擁堵狀態(tài);
2.6)車輛行駛狀態(tài)監(jiān)測,具體如下:
2.6.a)若車輛的運動軌跡集中的軌跡幀幀數(shù)小于50,則跳過,繼續(xù)讀取視頻流下一幀,否則執(zhí)行2.6.b);
2.6.b)計算出當(dāng)前幀中車輛的質(zhì)心點(xcur,ycur)和該幀的前第50幀中的車輛質(zhì)心點(xpre,ypre),兩質(zhì)心點的距離為distance50,記R=y(tǒng)pre-ycur,若R<-50,則該車輛處于逆行狀態(tài);
更新該車輛運動軌跡中的信息,一是將當(dāng)前幀與前第50幀中車輛質(zhì)心點間的距離distance50記入該車輛的distance50數(shù)據(jù)集合中,二是更新當(dāng)前幀的幀序,指向下一幀,執(zhí)行2.6.c);
2.6.c)、計算總距離Distancesum,總距離為該車輛的distance50集中所有的distance50之和,設(shè)distance50集中包含counts個distance50:
若Distancesum>counts*200,則車輛處于正常行駛狀態(tài);
若counts*200≥Distancesum>counts*150,則車輛處于低速行駛狀態(tài);
若Distancesum≤counts*150,則車輛處于停車狀態(tài)。
步驟1.3)具體為:
對樣本數(shù)據(jù)集的圖像進行SIFT特征提取,對提取的SIFT特征進行稀疏學(xué)習(xí),得到表示該樣本數(shù)據(jù)集中運動目標(biāo)的一組“過完備”的基向量和編碼字典;
采用最大空間池化方法對“過完備”的基向量進行空間池化,然后利用線性SVM對池化后的基向量進行訓(xùn)練,得到分類模型。
本發(fā)明提供了一種高速公路車輛的自動監(jiān)控系統(tǒng),通過車型分類器劃分車輛,便于關(guān)注某些特定車輛,對車輛的交通參數(shù)監(jiān)測中,本發(fā)明也提出了不一樣的監(jiān)測計算方法。傳統(tǒng)的方法是設(shè)置檢測器,來確定視頻檢測區(qū)域,根據(jù)該區(qū)域來計算車速和車流量,或者設(shè)置一條檢測線來計算車速和車流量,而本發(fā)明的車速計算方法,是根據(jù)連續(xù)兩幀間車輛在視頻圖像中移動的距離換算出來的,這樣計算出來速度更接近于車輛的實時(瞬時)速度,而不是傳統(tǒng)方法計算出來的長距離或長時間間隔平均速度;車流量統(tǒng)計是根據(jù)兩條絆線(檢測線)計算出來的,優(yōu)點是準(zhǔn)確可靠,計算量小,小在兩方面,一是本發(fā)明提出的車輛質(zhì)心到絆線的距離計算方法,不用除以復(fù)雜的分母;二是不用像傳統(tǒng)的根據(jù)一條檢測線來實現(xiàn)的車流量統(tǒng)計,需要大量的計算,尤其是現(xiàn)有技術(shù)需要對每一幀進行計算,本發(fā)明的方法是連續(xù)10幀才做一次計算判斷,這里的10幀是發(fā)明人結(jié)合多次經(jīng)驗進行預(yù)估,再結(jié)合大量實驗得出的數(shù)據(jù),達到了不漏檢的效果。
本發(fā)明提供了一種全面檢測高速公路交通狀況的系統(tǒng)的實現(xiàn)方法,基于視頻分析的交通參數(shù)監(jiān)測,準(zhǔn)確率高,成本低,實用性強,無需額外的測量儀器,基于對實時高速公路的監(jiān)控視頻的分析,實現(xiàn)了對交管視頻監(jiān)控的人工智能化,不再依賴于人眼的識別分析,給交管人員帶來實實在在的方便。利用機器視覺檢測技術(shù)來解決:對客貨車分道行駛的監(jiān)測,及時發(fā)現(xiàn)違章車輛(非貨車車輛駛?cè)胴涇嚨阑蚍强蛙囓囕v駛?cè)肟蛙嚨?,從而達到避免交通事故慘劇的發(fā)生和隨之帶來的不必要的經(jīng)濟損失;對客車車道的客車交通參數(shù)實時監(jiān)測,以實現(xiàn)人們對高速公路上更快、更安全的客運需求。
本發(fā)明基于視頻分析的客貨分道交通參數(shù)監(jiān)測,稀疏編碼線性空間金字塔匹配方法使該系統(tǒng)的分類功能模塊計算復(fù)雜度降到O(n),從而使該系統(tǒng)具有良好的實時性;提出的車速檢測方法和車流量統(tǒng)計方法相比于傳統(tǒng)的方法具有計算簡單、可靠、實用性好的特點,無論車速檢測還是車流量統(tǒng)計均無需設(shè)定矩形檢測區(qū)域;本發(fā)明實現(xiàn)的系統(tǒng)還提出了一種新的車輛行駛狀態(tài)監(jiān)測方法。
附圖說明
圖1為本發(fā)明中基于稀疏編碼的分類原理圖。
圖2為本發(fā)明中客貨分道監(jiān)測的技術(shù)原理流程圖。
圖3為本發(fā)明中交通參數(shù)檢測在幀圖像坐標(biāo)系中的說明圖。
具體實施方式
以下將結(jié)合附圖及實例,對本發(fā)明進行更詳細且具體的說明。
本發(fā)明的實例是一種客貨分道交通參數(shù)監(jiān)測系統(tǒng),實現(xiàn)對高速公路上的客貨分道行駛的智能監(jiān)測和客車道的相關(guān)交通參數(shù)的智能檢測。以下將結(jié)合附圖及實例,對本發(fā)明進行更詳細且具體的說明。
如圖1和圖2所示,具體步驟如下:
第一步,線性SVM對樣本數(shù)據(jù)集進行訓(xùn)練以生成分類模型,即本實例中的客車車輛與貨車車輛分類模型。
(1)選取包含車輛豐富的視頻,將其轉(zhuǎn)換為連續(xù)的幀圖像,利用混合高斯背景建模提取運動目標(biāo),對這些運動目標(biāo)進行大小歸一化處理,并保存這些目標(biāo)圖像。人工對這些樣本圖像進行分類,構(gòu)建正負樣本數(shù)據(jù)集,其中客車車輛為正樣本,貨車車輛為負樣本。人工分類至關(guān)重要將會影響分類模型的分類準(zhǔn)確率,所以應(yīng)盡量保證分類的準(zhǔn)確性和正負樣本數(shù)據(jù)集的樣本數(shù)量足夠大。
(2)對樣本數(shù)據(jù)集的運動目標(biāo)進行SIFT特征提取,對提取的SIFT特征進行稀疏學(xué)習(xí)以尋找出能夠更完美、高效的表示目標(biāo)的“過完備”的基向量和系統(tǒng)要用的編碼字典,最后對數(shù)據(jù)集的“過完備”基向量進行空間池化(最大池化方法),并利用線性SVM對其訓(xùn)練以得到我們所需的分類模型,即客車車輛與貨車車輛的分類模型。
SIFT特征與SVM分類:
SIFT算法采用DOG(Difference of Gaussian)算子提取目標(biāo)圖像在不同尺度上的特征點,采用不同均方差σ的尺度可變高斯函數(shù)G(x,y,σ)將圖像擴展為尺度空間的一系列圖像。通過對相鄰尺度的兩幅圖像進行差分計算D(x,y,σ)求局部極值得到SIFT特征點,如下:
D(x,y,σ)=(G(x,y,kσ)-G(x,y,σ))*1(x,y)
其中I(x,y)為原始圖像,(x,y)代表圖像的像素位置,σ為尺度空間因子,k為2的組內(nèi)總層數(shù)的倒數(shù)次方。通過SIFT特征提取,可以獲得特征點坐標(biāo)位置和特征點描述符信息。由于SIFT特征存在維數(shù)過高,從而會造成系統(tǒng)的復(fù)雜度過高,故而需要對提取的SIFT特征進行稀疏編碼和空間池化以實現(xiàn)降維。
由于:相比于矢量量化(vector quantization)編碼,更少嚴(yán)格約束的稀疏編碼具有更少的重構(gòu)錯誤;稀疏性允許代表特殊化,并且稀疏性能更好的捕捉到圖像的突出特性;最重要的是圖像統(tǒng)計研究清楚的表明圖像塊本質(zhì)就是稀疏信號,所以本發(fā)明對提取的SIFT特征采取稀疏編碼方法而不是矢量量化方法,以找到一組“過完備”的基向量來更高效地表示樣本數(shù)據(jù)。
稀疏編碼(Sparse Coding)算法作為一種無監(jiān)督學(xué)習(xí)方法,通過尋找一組“過完備”基向量來更高效的代表樣本數(shù)據(jù)。稀疏編碼算法的目的就是找到一組基向量將輸入向量x表示為基向量的線性組合:
對于輸入向量x∈Rn(n為維度),上式中的k>n,故稱該向量為“過完備”基向量。
定義向量X是圖像在D維特征空間的一組SIFT特征描述子X=(x1,...,xM)T∈RM×D,則X可以表示為:
X=W×C
式中W是稀疏編碼系數(shù),C=(c1,...,ck)T是K個基向量。
求解X的稀疏編碼可以轉(zhuǎn)換為下式對W和C求最優(yōu)化的問題:
上式中,|·|和||·||分別表示L1范數(shù)和L2范數(shù),懲罰項|wm|保證了編碼結(jié)果的稀疏性,β為懲罰項的權(quán)重系數(shù)。這是一個二次凸優(yōu)化問題,分別固定W和C求解,固定W時,目標(biāo)函數(shù)轉(zhuǎn)化為關(guān)于C的最小二乘問題:
用拉格朗日對偶函數(shù)求解即可。固定C,目標(biāo)函數(shù)退化為對每一個wm求最優(yōu)解的線性回歸問題:
可以用特征符號搜索算法求解。
池化(pooling)是統(tǒng)計稀疏編碼結(jié)果的過程,其模擬人眼視覺皮層的生理機制以降低輸入向量的維度,從而達到降低訓(xùn)練分類器的時間復(fù)雜度。
目前常見的池化方法有平均池化(average pooling)和最大池化(max pooling),計算公式如下:
Max pooling:Pj=max{|w1j|,…,|wMj|}
式中wm是稀疏編碼向量,P是池化結(jié)果,wij表示第i個稀疏編碼向量的第j個元素,實驗證明對稀疏編碼使用最大池化方法效果更好。
對于訓(xùn)練數(shù)據(jù)集(zi為SIFT特征,yi∈{1,2,…,L}代表了L種車型,n為數(shù)據(jù)集中樣本個數(shù)),線性SVM通過解一系列凸二次優(yōu)化問題,如下式:
以得到L個線性函數(shù)的集合來對未知車輛進行分類,其中J(Wc)為損失函數(shù),Wc為稀疏編碼向量,C=(c1,...,ck)T是K個基向量,zi是圖像Ii的直方圖。
若yi=c,則否則是一個可微的二次鉸鏈損失函數(shù)
第二步,線性核的SVM分類器結(jié)合第一步中得到的分類模型,即可構(gòu)成所需的客貨車分類器。
第三步,基于上述兩步后,即可實現(xiàn)本實例的客貨分道監(jiān)測的功能了。
使用并行線程對客車道和貨車道進行實時監(jiān)測,用掩碼覆蓋非客車道的區(qū)域來監(jiān)測客車道,發(fā)現(xiàn)駛?cè)肟蛙嚨赖呢涇噭t及時給予警示并將其標(biāo)記出來;同理,用掩碼覆蓋非貨車道的區(qū)域來監(jiān)測貨車道,發(fā)現(xiàn)駛?cè)胴涇嚨赖目蛙噭t給予警示并將其標(biāo)記車來。
(1)讀取實時交通監(jiān)控視頻流,混合高斯背景建模提取運動目標(biāo),對運動目標(biāo)提取SIFT特征,然后利用第一步中稀疏學(xué)習(xí)得到的編碼字典進行稀疏編碼,對稀疏編碼進行空間池化,池化后的結(jié)果作為最終的分類向量。
(2)第二步中的客貨車分類器對上述的分類向量進行分類識別,分類匹配結(jié)果若為非本車道的車輛,則將其標(biāo)記出來以方便交管人員的查看,并更新相應(yīng)的違章車輛計數(shù)。
上面舉例說明了對客車和貨車這兩種關(guān)注車型的檢測,下面對各種車輛的交通參數(shù)監(jiān)測進行說明。
如圖3所示,為交通參數(shù)檢測在幀圖像坐標(biāo)系中的說明圖,具體如下:
(1)、高速公路擁堵狀態(tài)監(jiān)控,計算出所有運動目標(biāo)在圖像幀中所占的總面積Sfore,背景路面區(qū)域的面積為Sback,根據(jù)Sfore/Sback即可得出路面擁堵狀態(tài)。
(2)、車速檢測,以圖3中貨車車道為例,具體如下:
(a)、如果車輛的運動軌跡集中的有效軌跡幀若小于2,則置該車輛的速度為0,否則執(zhí)行(b);
(b)、計算出當(dāng)前幀的前第二幀(設(shè)為B幀)中車輛在該圖像幀坐標(biāo)系中的質(zhì)心,進而計算該質(zhì)心點到起始絆線的距離yend,同理可以知道該車輛運動軌跡集中的第一幀(設(shè)為A幀)中該車輛質(zhì)心到起始絆線的距離ystart,從而可以得到這兩幀期間車輛行駛的距離:
distance=y(tǒng)start-yend
若distance<7,則置該車輛的速度為0,否則執(zhí)行(c);
其中質(zhì)心點到起始絆線的距離計算如下:在圖像幀坐標(biāo)系中,設(shè)點為(xp,yp),起始絆線的直線為:A*x+B*y+C=0,則距離計算為
(c)、設(shè)(b)中距離起始絆線距離為yend的幀(B幀)為運動軌跡集中的第countssu幀,軌跡集中的第一幀(A幀)在該運動軌跡集中為第0幀,計算出車輛的移動速度為:
Speed=distance/countssu*β*25*3.6(km/h)
其中,根據(jù)實際測試得到該系統(tǒng)每秒中處理25幀圖像,β為實際世界長度與圖像中的長度比。
(3)、車流量統(tǒng)計,以圖3中客車車道為例,具體如下:
(a)、判斷該車輛是否為駛?cè)肟蛙嚨赖倪`章貨車車輛,若是,則直接報警,不需要執(zhí)行以下部分;若不是,則執(zhí)行(b);
(b)、若車輛的運動軌跡集中的軌跡幀幀數(shù)小于10,則跳過,繼續(xù)讀取視頻流,否則執(zhí)行(c);
(c)、計算當(dāng)前幀中車輛質(zhì)心距離終止絆線的距離D_end,又知道該車輛的運動軌跡集中第一幀中車輛質(zhì)心到起始絆線的距離D_start:
若D_end*D_start<0,則車流量計數(shù)加1;
否則,計算當(dāng)前幀中車輛質(zhì)心距離起始絆線的距離D_start_new,然后更新距離信息,D_start=D_start_new。
這里計算點到絆線的距離方法為:在圖像幀坐標(biāo)系中,設(shè)點為(xp,yp),直線為A*x+B*y+C=0,則距離:Distance’=A*xp+B*yp+C。
(4)、車輛行駛狀態(tài)監(jiān)測,具體如下:
(a)、若車輛的運動軌跡集中的軌跡幀幀數(shù)小于50,則跳過,繼續(xù)讀取視頻流下一幀,否則執(zhí)行(b);
(b)、計算出當(dāng)前幀中車輛的質(zhì)心點(xcur,ycur)和該幀的前第50幀中的車輛質(zhì)心點(xpre,ypre),這里是圖像幀平面坐標(biāo)系,從而求出這兩質(zhì)心點的距離distance50;
記R=y(tǒng)pre-ycur,若R<-50,則該車輛處于逆行狀態(tài);
更新該車輛運動軌跡中的信息,一是將當(dāng)前幀與前第50幀中車輛質(zhì)心點間的距離(如上式)distance50記入該車輛的distance50集中,二是更新指向當(dāng)前幀的幀序,幀序加1,指向下一幀;再執(zhí)行(c);
(c)、計算總距離Distancesum,總距離為該車輛的distance50集中所有的distance50之和,distance50集中包括counts個distance50:
若Distancesum>counts*200,則車輛處于正常行駛狀態(tài);
若counts*200≥Distancesum>counts*150,則車輛處于低速行駛狀態(tài);
若Distancesum≤counts*150,則車輛處于停車狀態(tài)。
以上即為本發(fā)明的具體實例,能夠準(zhǔn)確、高效、及時識別出高速道路上特定道路上的違章車輛,并且能較準(zhǔn)確的檢測出相關(guān)的交通參數(shù),使監(jiān)管高速交通狀況實現(xiàn)了人工智能。該系統(tǒng)的實時性好,魯棒性強,且對硬件和軟件均無特殊要求,因此具有廣泛的實用性和推廣性。