宋 耀,宋建新
(南京郵電大學(xué) 江蘇省圖像處理與圖像通信重點(diǎn)實(shí)驗(yàn)室,江蘇 南京 210003)
隨著我國經(jīng)濟(jì)的迅速發(fā)展,全國汽車保有量年年攀升。汽車為人民生活帶來了極大便利,但車輛違章違規(guī)所帶來的交通事故多發(fā),給全國交通管理信息系統(tǒng)帶來了巨大壓力。為保證公路交通的正常運(yùn)行,我國政府采用了智能交通系統(tǒng),以實(shí)現(xiàn)大范圍、多場(chǎng)景的交通監(jiān)控與管理,提升交通系統(tǒng)綜合運(yùn)輸能力[1]。同時(shí)隨著信息技術(shù)幾十年的迅猛發(fā)展,海量視頻數(shù)據(jù)的存儲(chǔ)與處理得到了廣泛的普及與應(yīng)用。本文提出的基于交通監(jiān)控視頻的車輛異常行為檢測(cè)技術(shù)便是通過對(duì)交通監(jiān)控視頻數(shù)據(jù)進(jìn)行實(shí)時(shí)處理與分析,實(shí)現(xiàn)異常車輛行為的自動(dòng)識(shí)別。
當(dāng)今相關(guān)領(lǐng)域已經(jīng)進(jìn)行了廣泛的研究,例如:Weiming Hu等人提出基于3D跟蹤模型的交通事件檢測(cè)方法,獲取車輛運(yùn)動(dòng)軌跡后,運(yùn)用模糊自組織神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)軌跡模式,通過概率匹配預(yù)測(cè)行駛行為[2];趙海提出基于自適應(yīng)單類支持向量機(jī)的車輛異常行為檢測(cè)方法,將車輛軌跡映射為高位空間中的向量點(diǎn),通過支持向量機(jī)算法學(xué)習(xí)樣本軌跡并建立模型,實(shí)現(xiàn)對(duì)車輛的異常軌跡檢測(cè)[3]。但這些方法都有計(jì)算復(fù)雜、所需存儲(chǔ)容量過大等問題,會(huì)占用過多硬件成本與開銷。
本文主要就道路監(jiān)控視頻中的運(yùn)動(dòng)車輛檢測(cè)、跟蹤與違章行為識(shí)別所涉及到的若干關(guān)鍵技術(shù)進(jìn)行了研究,使用改進(jìn)Surendra背景差分[4]與三幀差分[5]相結(jié)合的算法進(jìn)行車輛目標(biāo)檢測(cè),之后結(jié)合CamShift算法[6]與Kalman濾波器[7]進(jìn)行車輛目標(biāo)跟蹤,提取車輛質(zhì)心繪制運(yùn)動(dòng)軌跡,針對(duì)車輛運(yùn)動(dòng)方向判別、違章變道、調(diào)頭等行為提出了檢測(cè)方法。本系統(tǒng)能夠在保證結(jié)果準(zhǔn)確性的前提下,降低計(jì)算復(fù)雜度,實(shí)現(xiàn)對(duì)車輛異常行為的實(shí)時(shí)檢測(cè)。系統(tǒng)流程如圖1所示。
圖1 基于交通監(jiān)控視頻的車輛異常行為檢測(cè)系統(tǒng)流程
車輛檢測(cè)本質(zhì)上屬于基于視頻的運(yùn)動(dòng)目標(biāo)檢測(cè)研究,后者是當(dāng)今計(jì)算機(jī)視覺領(lǐng)域的一個(gè)重要研究分支,為圖像視頻更高層次的處理提供了基礎(chǔ)。目標(biāo)檢測(cè)利用圖像處理技術(shù),分割運(yùn)動(dòng)目標(biāo)與背景,檢測(cè)出運(yùn)動(dòng)的目標(biāo),常用的檢測(cè)方法有:幀見差分法、背景差分法與光流法[5]。本文在對(duì)這3種目標(biāo)檢測(cè)進(jìn)行對(duì)比分析后,提出了使用改進(jìn)Surendra背景差分與三幀差分相結(jié)合的算法進(jìn)行車輛目標(biāo)檢測(cè),能夠較好滿足系統(tǒng)的實(shí)時(shí)性需求。
利用背景差分法獲取運(yùn)動(dòng)目標(biāo)的關(guān)鍵是完整背景的構(gòu)造,Surendra背景更新算法能夠自動(dòng)地更新背景。Surendra背景更新算法操作簡(jiǎn)單,易于實(shí)現(xiàn),實(shí)時(shí)性強(qiáng)。但由于算法采用的是固定灰度閾值,需要人工的干預(yù),因此不太適用于光線隨時(shí)改變的自然環(huán)境[8]。為了克服這個(gè)問題,可以采用閾值自適應(yīng)的方法進(jìn)行改進(jìn),改進(jìn)后具體步驟如下:
1)取視頻第一幀圖像I0作為初始背景B0。
2)求出當(dāng)前幀圖像的最大灰度值gmax和最小灰度值gmin,然后令
3)根據(jù)T對(duì)圖像的灰度值進(jìn)行劃分,分為大于T的灰度值和小于T的灰度值兩組,分別求出兩組的平均灰度值μ1和 μ2。
4)更新閾值T
5)重復(fù)步驟3)和4),直到T 的值不發(fā)生變化。
6)迭代次數(shù)初始化,取m=1,最大迭代次數(shù)為M ;計(jì)算當(dāng)前幀與前一幀的幀間差分圖像,并二值化
式中:It為輸入的t時(shí)刻的單幀圖像;It-1為輸入的t-1時(shí)刻的單幀圖像。
7)根據(jù)二值化后的圖像Dt來更新背景
式中:Bt(x,y)為t時(shí)刻背景圖像;α為更新速率系數(shù),取典型值0.005。
8)迭代次數(shù)m每次迭代自增1,當(dāng)?shù)螖?shù) m=M 時(shí)結(jié)束迭代,此時(shí)Bt(x,y)為更新后的背景圖像。
三幀差分法主要思想是通過提取連續(xù)三幀圖像來分別計(jì)算相鄰兩幀圖像的灰度差分圖像,然后將所得到的兩個(gè)差分圖像的對(duì)應(yīng)像素進(jìn)行對(duì)應(yīng)“與”操作,從而提取出運(yùn)動(dòng)目標(biāo)。三幀差分法對(duì)運(yùn)動(dòng)目標(biāo)的定位較幀差法更加精準(zhǔn),并且減少了幀差法在待檢測(cè)區(qū)產(chǎn)生的空洞現(xiàn)象。
本文以下融合改進(jìn)Surendra背景差分與三幀差分這兩種方法,綜合兩者的優(yōu)點(diǎn),提高運(yùn)動(dòng)目標(biāo)檢測(cè)的精度。具體步驟如下:
1)對(duì)獲取到的交通監(jiān)控視頻幀圖像,使用改進(jìn)的Surendra背景差分算法重構(gòu)背景圖像,將輸入當(dāng)前幀與背景圖像做差分處理,得到背景差分檢測(cè)區(qū)域;
2)與步驟1)并行處理,對(duì)當(dāng)前輸入的視頻幀,結(jié)合對(duì)應(yīng)的前一幀與后一幀,利用三幀差分法對(duì)相鄰的兩幀做差分處理,獲取三幀差分法檢測(cè)區(qū)域;
3)將步驟1)與2)的結(jié)果進(jìn)行“或”運(yùn)算處理,得到綜合車輛檢測(cè)結(jié)果,并進(jìn)行形態(tài)學(xué)濾波與聯(lián)通域分析,以去除非車輛目標(biāo)帶來的噪聲干擾;
4)根據(jù)步驟3)得到的結(jié)果標(biāo)定車輛在視頻幀中的區(qū)域,以外接矩形框分割出目標(biāo)車輛。
車輛跟蹤建立在車輛檢測(cè)的基礎(chǔ)上,通過對(duì)車輛進(jìn)行實(shí)時(shí)跟蹤,不僅能獲取車輛的運(yùn)動(dòng)軌跡與運(yùn)動(dòng)狀態(tài),還能為車輛行為理解、車輛分類、事件監(jiān)測(cè)以及車流量統(tǒng)計(jì)提供可靠數(shù)據(jù)。本文采用基于Kalman濾波預(yù)測(cè)的CamShift算法進(jìn)行車輛跟蹤,以解決傳統(tǒng)CamShift算法半自動(dòng)化、搜索區(qū)域過大、因遮擋造成跟蹤丟失等問題,實(shí)現(xiàn)了對(duì)車輛有效實(shí)時(shí)的跟蹤。
CamShift算法是MeanShift(均值漂移)算法的修改,其利用目標(biāo)的顏色直方圖作為特征,判斷目標(biāo)之間的色彩特征是否匹配來建立目標(biāo)之間的對(duì)應(yīng)關(guān)系,從而進(jìn)行目標(biāo)跟蹤。
CamShift算法的主要關(guān)鍵步驟如下:
1)直方圖反向投影:利用目標(biāo)檢測(cè)算法檢測(cè)到運(yùn)動(dòng)目標(biāo),通過色域轉(zhuǎn)換,在HSV顏色模型中分離出目標(biāo)圖像的H分量,之后確定運(yùn)動(dòng)目標(biāo)的初始搜索窗,并且生成目標(biāo)圖像的H分量顏色直方圖,最后使用反向投影獲取目標(biāo)在原圖像的離散二維顏色概率分布圖。
2)MeanShift算法處理:在單幀視頻的目標(biāo)二維顏色概率分布圖上使用MeanShift算法,進(jìn)行目標(biāo)質(zhì)心點(diǎn)的匹配,如此,在若干次迭代計(jì)算之后便可求出目標(biāo)質(zhì)心坐標(biāo)。
3)自適應(yīng)調(diào)整搜索窗口:根據(jù)目標(biāo)顏色概率分布圖求出目標(biāo)的大小,利用外接矩形框標(biāo)定出運(yùn)動(dòng)目標(biāo),之后便可獲取當(dāng)前幀中運(yùn)動(dòng)車輛目標(biāo)的長寬尺寸與質(zhì)心坐標(biāo)。
4)迭代搜索:在接下來的視頻幀中,將各自上一幀中目標(biāo)的質(zhì)心作為下一幀的輸入,重新進(jìn)行MeanShift算法處理,尋找運(yùn)動(dòng)目標(biāo)。
CamShift算法的默認(rèn)搜索區(qū)域是整幀圖像,因此引入Kalman濾波器預(yù)測(cè),將CamShift算法檢測(cè)到的車輛質(zhì)心作為變量輸入Kalman濾波器,之后將預(yù)測(cè)值作為CamShift新一輪的起始搜索框,在這個(gè)位置的鄰域內(nèi)搜索最佳位置,再將搜索到的最佳位置信息反饋給Kalman濾波器,這樣可以加快CamShift算法的收斂速度[9]。
另外,CamShift算法在跟蹤過程中遇到目標(biāo)遮擋會(huì)造成跟蹤失效的情況,此時(shí)使用Kalman濾波器的預(yù)測(cè)值代替CamShift算法計(jì)算的車輛質(zhì)心位置,作為觀測(cè)值去更新Kalman濾波器,可以抵抗因目標(biāo)遮擋帶來的車輛跟蹤失效。
綜上,針對(duì)車輛進(jìn)行目標(biāo)檢測(cè)與跟蹤的算法流程如圖2所示。
在道路交通系統(tǒng)中,各種違章行為是造成道路安全事故的主要原因,準(zhǔn)確、穩(wěn)定、實(shí)時(shí)地檢測(cè)車輛違章行為,對(duì)減少交通事故發(fā)生、降低經(jīng)濟(jì)損失具有重要意義。
本文之前已經(jīng)完成了車輛的檢測(cè)與跟蹤,跟蹤結(jié)果以外接矩形來表示每幀視頻圖像中的目標(biāo)車輛,取矩形的質(zhì)心表示車輛的具體坐標(biāo),生成坐標(biāo)序列,集合后可得到車輛的運(yùn)行軌跡,并通過分析軌跡信息實(shí)現(xiàn)車輛運(yùn)動(dòng)行為的檢測(cè)與識(shí)別,并將其應(yīng)用于車輛運(yùn)動(dòng)方向、逆行、變道、調(diào)頭等行為的判斷。
t時(shí)刻車輛在視頻頓中的質(zhì)心坐標(biāo)點(diǎn)記為(xt,yt),則L幀后可以得到車輛的行駛軌跡
下面對(duì)具體車輛行駛行為進(jìn)行分析。
圖2 車輛檢測(cè)與跟蹤算法流程圖
設(shè)t1時(shí)刻視頻幀圖像中車輛質(zhì)心坐標(biāo)為(xt1,yt1),t2時(shí)刻釆集到的視頻幀圖像中車輛質(zhì)心坐標(biāo)為(xt2,yt2),則從t1到t2時(shí)刻,車輛運(yùn)動(dòng)方向判斷條件為:
1)xt2-xt1>εx,車輛速度有向右方運(yùn)動(dòng)的分量,記為DR;
2)xt2-xt1<εx,車輛速度有向左方運(yùn)動(dòng)的分量,記為DL;
3)yt2-yt1>εy,車輛速度有向上方運(yùn)動(dòng)的分量,記為DU;
4)yt2-yt1<εy,車輛速度有向下方運(yùn)動(dòng)的分量,記為DD。
其中,εx與εy是誤差閾值,防止因自然環(huán)境變化導(dǎo)致判斷失準(zhǔn)。其中,εx=0.05×W,W為車輛外接矩形框?qū)挾?;εy=0.05×H ,H 為車輛外接矩形框高度。
綜上,正常行駛的車輛運(yùn)動(dòng)方向可用(DR,DU),(DR,DD),(DL,DU)與(DL,DD)表示。若在單一車道中,當(dāng)前車輛運(yùn)動(dòng)方向與先驗(yàn)規(guī)定運(yùn)動(dòng)方向相反,則判定此車運(yùn)動(dòng)軌跡為逆行軌跡,該車正在逆行。
為了識(shí)別車輛與車道的位置關(guān)系,進(jìn)而判斷車輛是否變道行駛,首先需要標(biāo)定車道實(shí)線在視頻圖像中的位置坐標(biāo)。本文采用Hough變換直線檢測(cè)算法進(jìn)行車道線檢測(cè)[10]。
正常行駛的車輛,其運(yùn)動(dòng)軌跡通常與車道線平行。軌跡是車輛單幀坐標(biāo)的集合,即可認(rèn)為視頻幀序列中車輛質(zhì)心與車道線距離波動(dòng)較小。定義識(shí)別變道行為的方法為:車輛在變道行為中,從一個(gè)車道變換到另一個(gè)車道,其車輛質(zhì)心與車道線的距離會(huì)出現(xiàn)較大波動(dòng),并且與車道線距離最近的兩個(gè)質(zhì)心點(diǎn)分列車道線兩側(cè)。具體步驟如下:
1)使用Hough變換進(jìn)行車道檢測(cè),設(shè)置禁止變道直線為Forb[N],其擬合直線方程為
2)計(jì)算車輛跟蹤軌跡Traj[M]上所有的點(diǎn)與其對(duì)應(yīng)車道線的距離d
3)與車道線距離最近的兩個(gè)質(zhì)心點(diǎn)記為(xc1,yc1)與(xc2,yc2),令
R>0表示兩個(gè)質(zhì)心點(diǎn)位于車道直線同側(cè);R=0表示至少有一個(gè)質(zhì)心點(diǎn)在直線上;R<0表示兩個(gè)質(zhì)心點(diǎn)位于直線兩側(cè)。
4)計(jì)算距離的離散程度,即車輛與車道線距離的均值E與方差S,即
5)判決標(biāo)準(zhǔn)
當(dāng)車輛與車道線距離的離散度S大于閾值TC,并且與車道線距離最近的兩個(gè)質(zhì)心點(diǎn)分列車道線兩側(cè),將CL置為1,表示發(fā)生了變道行為,反之為0代表未發(fā)生變道行為。
車輛在調(diào)頭時(shí)會(huì)跨越多個(gè)車道,此時(shí)司機(jī)視線存在死角,容易造成嚴(yán)重的交通事故,導(dǎo)致路面交通擁堵甚至癱瘓,因此當(dāng)今城市交通路口通常設(shè)有禁止調(diào)頭標(biāo)志。
針對(duì)調(diào)頭行為,本文提出以下具體判定條件:
1)對(duì)雙向車道進(jìn)行討論,在右側(cè)直行車道中,使用跟蹤算法進(jìn)行跟蹤車輛質(zhì)心的y值在車輛行駛過程中持續(xù)增大,車輛調(diào)頭之后y值持續(xù)減小。
2)車輛目標(biāo) y值持續(xù)增大的時(shí)間段中,車輛行駛軌跡擬合直線段的斜率在右側(cè)車道斜率區(qū)間內(nèi),同理,車輛目標(biāo)y值持續(xù)減小的時(shí)間段中,車輛行駛軌跡擬合直線段的斜率在左側(cè)車道斜率區(qū)間內(nèi)。
3)車輛 y值從減小轉(zhuǎn)為增大的過程中,車輛變道判決標(biāo)準(zhǔn)CL置為1,即發(fā)生了變道行為。
實(shí)驗(yàn)軟件開發(fā)環(huán)境采用VS2008+OpenCV2.1;系統(tǒng)運(yùn)行環(huán)境為Intel 1.60 GHz Windows XP平臺(tái),內(nèi)存:3 Gbyte,顯存:256 Mbyte。實(shí)驗(yàn)樣本選取城市道路視頻。
實(shí)驗(yàn)結(jié)果如圖3所示。從圖3中可以看出,本文提出的車輛檢測(cè)算法能夠有效檢測(cè)出車輛目標(biāo),細(xì)節(jié)保存完好,并且能夠有效更新當(dāng)前視頻背景,抗干擾性較強(qiáng)。由圖3d可以看出,本文采用的基于Kalman濾波預(yù)測(cè)的CamShift車輛跟蹤算法能夠有效跟蹤當(dāng)前幀車輛目標(biāo)。
圖3 車輛檢測(cè)與車輛跟蹤效果圖
圖4 是對(duì)監(jiān)控視頻2的第226~275幀之間發(fā)生變道行為車輛的檢測(cè)和跟蹤結(jié)果,其軌跡坐標(biāo)特征點(diǎn)與單幀計(jì)算耗時(shí)如表1所示。為了簡(jiǎn)化計(jì)算,本文每隔5幀取一個(gè)質(zhì)心點(diǎn)繪制車輛運(yùn)動(dòng)軌跡;跟蹤車輛所跨越車道由Hough變換得出,其直線方程為:2.943x-y-546.415=0,車輛軌跡與提取車道直線如圖5所示。根據(jù)本文的車輛行為判別規(guī)則,可以得出結(jié)論:被跟蹤車輛運(yùn)動(dòng)方向?yàn)?DR,DD),即正朝圖像的右下方行駛,變道判決CL=1,發(fā)生變道行為,并且在當(dāng)前跟蹤范圍內(nèi),車輛質(zhì)心坐標(biāo)y值一直減小,沒有發(fā)生調(diào)頭行為。
圖4 車輛檢測(cè)、跟蹤與車道線示意圖
表1 車輛行駛軌跡點(diǎn)
圖5 車輛軌跡與車道位置關(guān)系
為了滿足智能交通系統(tǒng)對(duì)城市交通的有效監(jiān)管,本文提出了利用交通監(jiān)控視頻對(duì)車輛異常行為進(jìn)行檢測(cè)的系統(tǒng)框架,分別在車輛檢測(cè)、車輛跟蹤與異常行為判別等方面進(jìn)行了討論。提出的使用改進(jìn)Surendra背景差分與三幀差分相結(jié)合的算法能快速檢測(cè)車輛目標(biāo),之后結(jié)合CamShift算法與Kalman濾波器對(duì)車輛進(jìn)行有效跟蹤,根據(jù)外接矩形框求出車輛質(zhì)心,擬合軌跡,并通過軌跡分析給出了車輛運(yùn)動(dòng)方向、逆行、違章變道、調(diào)頭等行為的判別標(biāo)準(zhǔn)。實(shí)驗(yàn)結(jié)果表明,本文提出的系統(tǒng)具有較高的實(shí)時(shí)性與違章檢測(cè)準(zhǔn)確性。
[1] 黃良.我國智能交通系統(tǒng)的現(xiàn)狀及新技術(shù)的應(yīng)用[J].信息系統(tǒng)工程,2015(2):69.
[2] LOU J,YANG H,HU W,et al.An illumination invariant change detection algorithm[C]//Proc.Asian Conf.Computer Vision.[S.l.]:IEEE Press,2002:13-18.
[3] 趙海.視頻序列下的車輛軌跡異常行為識(shí)別[D].昆明:昆明理工大學(xué),2014.
[4]GUPTE S,MASOUD O,MARTIN R F K,et al.Detection and classification of vehicles[J].IEEE Trans.Intelligent Transportation Systems,2002,3(1):37-47.
[5] 萬纓,韓毅,盧漢清.運(yùn)動(dòng)目標(biāo)檢測(cè)算法的探討[J].計(jì)算機(jī)仿真,2006,23(10):221-226.
[6] BRADSKI G R.Real time face and object tracking as a component of a perceptual user interface[C]//Proc.Fourth IEEE Workshop on Applications of Computer Vision.[S.l.]:IEEE Press,1998:214-219.
[7] KALMAN R E.A new approach to linear filtering and prediction problems[J].Journal of Fluids Engineering,1960,82(1):35-45.
[8] 王正勤,劉富強(qiáng).自適應(yīng)背景提取算法的比較[J].計(jì)算機(jī)工程,2008,34(23):220-223.
[9]SALHI A,JAMMOUSSI A Y.Object tracking system using Camshift,Meanshift and Kalman filter[J].World Academy of Science,Engineering and Technology,2012,64:674-679.
[10] 尤小泉,彭映杰.結(jié)合Hough變換與運(yùn)動(dòng)估計(jì)的車道線提取方法[J].電視技術(shù),2013,37(11):191-193.