


摘 要: 智能交通系統是未來交通的發展趨勢,基于計算機視覺的電子警察違章抓拍、違章處理、交通指揮等是現代智能交通系統的重要組成。討論基于計算機視覺的電子警察抓拍闖紅燈算法,在準確預測車輛位置、跟蹤運動車輛的同時,準確判斷是否存在闖紅燈燈違章行為,有效提升視頻處理速度以及車輛違章檢測精準度。
關鍵詞: 計算機視覺; 電子警察; 違章抓拍; 視頻檢測
中圖分類號: TP311 ? ? ?文獻標志碼: A
Research on Algorthm of Electronc Polce Capturng Red
Lght Volaton Based on Computer Vson
SU Bo
(Department of Publc Securty, Guangx Polce College, Nannng 530028, Chna)
Abstract: Wth the mprovement of the level of ntellgent technology, the ntellgent traffc system becomes the development developng trend of the future traffc. Modern ntellgent transportaton system ncludes electronc polce volatons, llegal treatment, traffc command and other technologes. Ths paper dscusses a computer vson-based electronc polce red lght capture capturng algorthm. The algorthm can accurately predct the poston of the vehcle, track the movng vehcles, and determne whether there s a volaton of the red lght. The research n ths paper effectvely mproves the speed of vdeo processng and the accuracy of vehcle volaton detecton.
Key words: Computer vson; Electronc polce; llegal capture; Vdeo detecton
0 引言
采用計算機視覺的現代智能交通管理體系,可以連續不間斷的檢測道路、車輛情況,發現問題之后能夠發出警報、存儲違章信息并智能聯絡車輛違章處理體系[1]。基于計算機視覺的電子警察闖紅燈違章識別不需要破壞路面,是利用車輛檢測和跟蹤算法進行違章抓拍[2],本文討論基于三幀差分算法的運動目標檢測和基于卡爾曼濾波的運動車輛目標跟蹤算法和闖紅燈識別算法,智能化水平和檢測效率更高。
1 運動車輛目標檢測算法
運動車輛目標檢測是電子警察闖紅燈抓拍的重要環節,為運動目標跟蹤和違章識別奠定基礎。運動車輛檢測就是對視頻圖像進行分析,提取運動車輛目標。常見運動車輛目標檢測算法包括光流法、幀間差分法、背景差分法[3]。本文的研究中,采用基于三幀差分算法的運動目標檢測方法,對視頻中的連續幀進行圖像處理,消除圖像毛刺以及噪聲影響,確定運動目標的邊緣,完成圖像預處理,然后采用相鄰的三幀圖像來提取運動目標,獲得運動目標變化范圍,確定灰度檢測閾值,讓運動目標定位更加精準[4-5],如圖1所示。
第一步:對采集的視頻圖像進行預處理、圖像灰度化,將原始圖像轉變為灰度空間;
第二步:對連續三幀圖像進行中值濾波,保存圖像紋理信息,獲得清晰圖像;
第三步:對連續三幀圖像做差分運算,前、后幀的圖像分別與中間幀的圖像做差分運算;
第四步:做二值化處理、數學形態學處理,消除造成和毛刺,獲取理想前景目標;
第五步:對計運算后的兩幀圖像做相與運算,消除噪聲的同時填補剩余空洞。
圖像處理效果如圖2所示。
(a) 原始圖像 (b) 灰度圖像
(c) 加噪圖 (d) 中值濾波圖
圖2 圖像處理效果
本文選擇種中值濾波進行圖像處理,就是將待處理像素點四軸的像素值排序,以中間值為該像素點幅值[6]。
二維中值濾波輸出為式(1)。g(x,y)=med{f(x-k,y-l),(k,l∈W)}
(1)其中,f(x,y)、g(x,y)分別為原始圖像和處理后圖像。W為二維模板,通常為3×3,5×5區域。
為了消除運動物體產生的背景變化區域,恢復因為運動目標的重合而被覆蓋的區域,采用連續三幀圖像的差分算法,獲取運動目標,這種方法的魯棒性更高,獲取的圖像效果更好,如圖3、圖4所示。
(a) 第一幀 (b) 第三幀 (c) 第五幀
通過差分運算后圖像存在噪聲和空洞,前景目標不清晰,對圖像進行二值化處理,將其分割為目標和背景,將目標物從差分圖像中提取出來,如圖5所示。
通過上述步驟的處理,圖像中的毛刺和空洞已經消除,可以清晰判斷運動車輛目標,符合系統檢測要求。采用三幀差分算法,增強圖像效果,保留圖像清晰度的同時獲得運動車輛信息。
2 基于卡爾曼濾波的運動車輛目標跟蹤算法 ?車輛跟蹤,就是將前后兩幀中相同的運動目標之間建立聯系,從后一幀來確定前面一幀確定的車輛。常見的運動車輛目標跟蹤算法有以下幾種:
1、常用運動目標跟蹤算法
基于區域的目標跟蹤:設定圖像模板,用這些模板檢測
連續圖像幀,可以用邊緣檢測跟蹤、先檢測后跟蹤、先跟蹤后檢測三種模式,基于區域的目標跟蹤操作過程簡單,運算量較小。基于特征的目標跟蹤:細化采樣的時間間隔,將跟蹤目標動作看作光滑的,采用邊緣增強、檢測的方式提取運動車輛邊緣分割信息,通過判斷相鄰圖像的邊緣相似性來估計運動目標的連續幀圖像[7-8]。基于動態輪廓的目標跟蹤:先對車輛的輪廓進行最初的勾勒,更新后續各幀的輪廓,實現目標跟蹤,Snake跳躍模型是非常典型的動態輪廓算法,但是這種算法主要是在目標不連續的情況下用設置節點的最大值尋找邊界,但是遮擋也是無法避免的問題。基于模型的目標跟蹤就是按照運動車輛外形輪廓建立三維分析模型,通過車輛前景和同樣位置的投影之間的匹配分析確定車輛長寬和基本類型。這種方法具有良好的魯棒性,及時車流量較大的狀態下,也能保證精準度,但是對模型數據庫的依賴性加強,需要頻繁更新車輛數據庫。[9]
2、基于卡爾曼濾波器的運動目標跟蹤
引進卡爾曼濾波法,結合基于特征的目標跟蹤,提升車輛跟蹤結果的準確性,快速得出計算結果。算法采用卡爾曼濾波器,根據這一幀的車輛狀態預測下一幀的狀態,根據預測的位置確定運動車輛的搜索區域,并在該區域進行目標匹配,有效避免大范圍搜索,提升算法的執行速度 [9]。
建模:
從本質上講,車輛跟蹤過程就是離散控制的過程,假設N(t)代表時間t時刻的狀態向量,用線性隨機微分方式可以表示為式N(t)=aN(t-1)+bQ(t)+S(t)
(2) ?測試量為式(3)。P(t)=cN(t)+M(t)
(3)上式中,a和b表示系統參數,c表示測量系統參數;S(t)正態分布的噪聲,此處P(t)表示的是在t時刻的測量值,M(t)表示的是t時刻的目標跟蹤系統的控制量,J和D分別表示函數N(t)和P(t)的先驗誤差。假設系統的運動和測量噪聲都符合正態分布,那么系統的狀態并不會影響系統先驗誤差。
符合上述公式的系統即為隨機微分系統且為線性系統。假設當前狀態表示為t,根據卡爾曼模型,可以根據上幀狀態預測當前系統狀態為式(4)。N(t|t-1)=aN(t-1|t-1)+bQ(t)
(4) ?N(t-1|t-1)表示系統上一幀的理想狀態結果,Q(t)為當前狀態控制量,N(t|t-1)表示上一狀態的預測結果。N(t|t-1)的先驗誤差不變,協方差可以表示為式(5)。E(t|t-1)=aE(t-1|t-1)aT+bQ(t)
(5)上式中aT是a的轉置矩陣,J表示系統過程先驗誤差,E(t-1|t-1)表示N(t-1|t-1)的后驗誤差,E(t|t-1)為N(t|t-1)的 先驗誤差。利用上述公式能夠完成車輛目標的跟蹤預測。
預測工作的最終目標并不是計算出預測值,而是根據算法明確測量值的當前狀態,t的最優化估計值如式(6)。N(t|t)=N(t|t-1)+tτ(t)(P(t)-cN(t|t-1))
(6)上式中,tτ代表卡爾曼增益,其表達式為式(7)。tτ(t)=E(t|t-1)cT(cE(t|t-1)cT+D)
(7) ?由此可以得出t狀態下的N(t|t)最優化估計值,其先驗誤差轉變為式(8)。E(t|t)=(F-tτ(t)c)E(t|t-1)
(8)上式中,F為單位矩陣,下一幀E(t|t)遞歸為E(t-1|t-1),卡爾曼濾波算法的核心就是通過自回歸運算預測運動目標。采用基于卡爾曼濾波的運動車輛目標跟蹤算法,運動車輛目標檢測的速度更快、效率更高。
本文引入卡爾曼濾波進行運動車輛檢測:首先是計算車輛質心的位置,確定運動目標跟蹤窗口的長寬參數,明確跟蹤目標之間的關系,通過這一幀的位置參數來預測下一幀的位置,實現移動目標的精準定位。卡爾曼濾波目標跟蹤模型包括4個子模塊:首先是采用計算機視覺分析技術計算車輛質心位置和跟蹤窗口位置等特征值;第二步是建立車輛跟蹤模型的濾波器,設置濾波器參數,對車輛的運動位置進行預測;第三步是進行特征匹配,確定運動車輛的基本特征參數,進而求解相鄰幀運動目標的特征值,確定目標是否一致;第四步是更新濾波模型的參數,并將其確定為下一幀的輸入參數。
(1) 特征值計算
針對包含運動車輛的圖像進行二值化處理,是被并跟蹤二值化前景車輛目標,設置運動目標跟蹤窗口,如圖6所示。
在窗口設定之前,擦用連通域規則將屬于同一個車輛的像素點聚集起來,然后逐塊提取輪廓。調用OpenCV庫的cv FndContours函數進行運動目標的輪廓處理,搜索區域內車輛的輪廓,估算輪廓坐標,進而確定跟蹤窗口的參數。假設運動車輛輪廓像素坐標的X的最大、最小坐標表示為Xmax、Xmn,Y的最大、最小坐標表示為Ymax、Ymn,從左下方逐漸向上,水平方向逐漸向右,右上角坐標垂直向下同時向左移動,繪制出運動目標跟蹤窗口。窗口的長度表示為:l=Xmax-Xmn,窗口高度表示為h=Ymax-Ymn,窗口面積有長高計算得出,跟蹤窗口中心坐標即為車輛的質心。
(2) 車輛跟蹤模型參數設置
引入卡爾曼濾波的運動目標跟蹤模型,實際應用時需要根據需要設置模型的關鍵參數,包括狀態向量、測量向量、系統參數、測量矩陣以及其他參數等。
狀態向量N(t)=[m n νm νn l h dl dh]Tk,式中νm和νn分別表示運動車輛在X軸和Y軸的移動速度,l和h表示跟蹤窗口的長和寬,dl和dh表示長、寬的變化率。(m n)表示運動車輛的質心坐標,通過這些參數能夠通過當前幀的車輛狀態預測下一幀的狀態向量。
測量向量P(t)=[m n l h]Tt,這是一個四維向量,是根據一幀一幀圖像的連續變化計算得出的。
系統參數a根據運動車輛跟蹤窗口和質心之間的運動關系、圖像時間間隔來確定。狀態向量是八維向量,根據卡爾曼濾波方程可以計算出系統參數a是一個八行八列的二維矩陣,如式(9)。a=10dt00000
010dt0000
0010dt000
00010dt00
000010dt0
0000010dt
00000010
00000001
(9) ?系統參數b在卡爾曼濾波的狀態量計算中沒有意義,所以b=0。主要是因為教育卡爾曼濾波的運動目標跟蹤算法中不需要當前狀態控制量Q(t)。
測量矩陣c是通過狀態向量、測量向量來計算為式(10)。c=10000000
01000000
00100000
00010000
(10)其他參數:S(t)、M(t)表示符合正態分布的運動噪聲和測量噪聲,且均符合高斯白噪聲分布,JM2Routn≤1、D表示他們的先驗誤差。
基于卡爾曼濾波的運行車輛預測及跟蹤效果,如圖7所示。
圖7(d)中的紅色線條代表跟蹤預測位置,綠色線條代表車輛運動的實際測量位置。
3、運動目標跟蹤的遮擋處理方案
如果運動目標發生遮擋,那么車輛的完整信息無法提取,遮擋問題會導致目標區域增加,車輛的質心位置突然改變,搜索區域內可能無法找到最佳匹配對象,所以如果目標匹配失敗,則認為發生了運動目標遮擋。
(1)遮擋推理
如圖8所示。
(a) (b)
(c) (d)
首先對運動目標設置兩個匹配標志M1和M2,M1表示當前目標和上一幀目標的匹配性;M2表示當前目標和下一幀目標的匹配性。如果值為1則匹配成果,0表示失敗,新進入場景的目標,M1和M2的初始值分別為1和0。Rn和Rout分別表示駛入區域和駛出區域。
載入新的幀圖像,掃描標志位M1,如果為1則開始利用卡爾曼預測進行目標匹配和跟蹤,如果為0則表示上一幀中沒有尋找到匹配的目標,可能是新進入的目標也可能是發生了遮擋。如果進入的是新目標,則進行目標預測、匹配,如果不是新進入場景的目標,則判斷為發生了遮擋。
(2) 遮擋處理
如果有目標遮擋,不同的情況要有不同的處理方案,主要通過判斷這一幀的目標在下一幀搜索范圍內的數量n。如果這一幀的目標在下一幀區域內出現的數量n>1,則說明從遮擋狀態到分離狀態,直接在下一幀將其認為是新進入的目標處理,在這一幀的處理中丟棄該目標。如果n≤1,則是從
分離狀態到遮擋,那么需要擴大目標搜索目標,并采用卡爾曼濾波器先驗估計替代觀測值,完成濾波器的更新。在擴大后的搜索范圍內,一段時間內未發現等待的目標,則將該目標丟棄。
結果表明,采用卡爾曼濾波進行運動車輛跟蹤,如果系統噪聲、觀測噪聲是高斯白噪聲,卡爾曼濾波其能夠實現無偏、最優的最小方差估計;如果誤差為非高斯噪聲,那么卡爾曼濾波就是最好的線性濾波器,并且很好的適用于矢量的非平穩隨機過程狀態估計。
3 車輛闖紅燈違章檢測
一般情況下,車輛運行速度較快,闖紅燈的違章行為可能在一瞬間發生,所以電子警察闖紅燈抓拍必須符合實時性要求,檢測算法必須符合高效、瞬時、快速的要求[10]。本文的電子警察闖紅燈違章抓拍算法,在紅綠燈停車線的位置設置一個違章檢測窗口,通過該窗口進行違章判斷,有效減少圖像數據計算量。
電子警察闖紅燈違章抓拍的第一步是對檢測窗口的背景圖像和視頻圖像進行預處理,利用差分圖像算法判斷窗口中是否有車輛,然后根據當前紅綠燈的指示判斷車輛是否存在違章。根據道路具體情況建立RO,設置闖紅燈檢測線,在RO內提取車輛特征信息,實現車輛跟蹤,如圖9所示。
定義一個車輛跟蹤的結構體數組TrackBlock[N],N表示跟蹤的運動車輛數,數組的信息包括:
Struct TrackBlock
{
Pont CrclePoston;//車輛質心坐標
nt heght; //外接矩陣寬/高
nt length; //外接矩陣長
nt FrameBegn; //進入RO區域的幀數
nt FrameLast; //離開RO區域的幀數
bool sVolaton; //車輛是否違章的標志
bool flag; //bool值為true表示運動車輛進入特定區域
}
TrackBlock[N]
具體算法過程如下:
第一步:采用中值濾波處理檢測窗口背景和視頻圖像;初始化車輛跟蹤數組Track_Block[N];
第二步:采用差分方式處理檢測窗口圖像和視頻圖像,并對差分圖像進行二值化分割;
第三步:對二值化處理后的圖像,統計目標點,如果目標點數量大于預設值,則判斷檢測窗口內有車輛,進行第四步,否則結束流程;
第四步:首先對車道線進行檢測,找出車道實線,判斷在連續的時間Δt呢車輛質心到車道實線的距離是否小于閾值T,當距離小于T時,則車輛已經超過實線,持續時間為t,則將sVolatoon值設置為true,標出紅色的外接矩陣(閾值T設置為車輛外接矩陣的38);
第五步:判斷紅綠燈狀態,識別車輛違章情況,如果目前狀態為紅燈,則啟動相機抓拍,并保存全景圖像。否則不存在違章情況,檢測結束,如圖10所示。
4 總結
基于計算機視覺的智能交通體系是社會和技術發展的必然趨勢,本文討論基于視頻圖像處理的電子警察闖紅燈違章抓拍算法。首先是對采集到的圖像進行預處理,進而采用三幀差分算法進行運動目標檢測。然后引進卡爾曼濾波法,結合基于特征的目標跟蹤,提升車輛跟蹤和車輛闖紅燈識別的準確性。
參考文獻
[1] 阮秋琦.數字圖像處理學 [M].第2版.北京:電子工業出版社,2007.
[2] 胡太平,史忠科.基于視頻的快速運動檢測方法及其應用研究[J].計算機應用研究, 2005, 22(12):145-146.
[3] 王松.應用圖像技術在闖紅燈違法圖片處理中的應用[J].信息與電腦(理論版), 2016(16):90-91.
[4]紀偉,程剛.基于視頻圖像方法推斷鑒定交通事故中車輛是否有闖紅燈行為[J].法制與社會, 2018(20):61-62.
[5] 盧賀.基于機器視覺的前方車輛檢測與測距研究[D].重慶:重慶交通大學, 2018.
[6] 張哲,李挺.圖像識別在智能交通領域中的應用[J].無線互聯科技, 2018, 15(16):145-146.
[7] 陳智斌,楊東燁,王軍群.車載視頻車輛違法自動取證系統研究[J]. 交通節能與環保, 2018, 14(06):14-18.
[8] 羅強,劉宗廣,李友欣,等.基于數據挖掘的電子警察執法異常分析方法及應用研究[J].公路與汽運, 2017(2):49-51.
[9] 韓旭,張晗寒.淺談智能交通體系中電子警察系統功能與設計[J].城市道橋與防洪, 2017(7):32-34.
[10] 牛旭.電子警察超速執法的光與影[J].湖南警察學院學報,2018, v.30: No.137(02):68-77.
(收稿日期: 2019.07.29)作者簡介:蘇菠(1972-),男,北海人,黎族,本科,高級工程師,從事交通管理工程等。文章編號:1007-757X(2020)01-0106-06