智能交通系統中的視頻監控系統概述
林 勇
前 言:
隨著國民經濟的迅猛發展,公路上行駛的車輛越來越多,速度也越來越快,與車輛交通有關的案件也呈不斷上升勢頭,交通肇事逃逸等案件時有發生。如何運用科學的手段幫助*部門有效控制高速公路上超速違章現象,抓捕逃逸車輛!已成為**門急待解決的問題。本公路視頻超速監控系統利用視頻圖 像處理技術,對高速公路車道上的汽車進行非接觸式監控,獲得超速車輛車速、車牌號碼、違章照片等運行狀態信息,可應用于公路管理、逃逸車輛抓捕等場合。
1.系統結構
1.1 系統的硬件組成
汽車牌照自動識別系統的硬件組成如圖(1)示。攝像機負責現場實時采集圖像。視頻卡將攝機采集的圖像逐幀或逐場轉換為數字圖像,實時集由傳感器來完成。計算機為識別處理中心運行識別軟件,識別結果通過GPRS網絡傳送到車輛管理門,收費部門及*安全等部門,同時也傳送到本地機的視頻器及存儲設備中(以備后用)。
圖(1)
1.2系統軟件組成
系統軟件包含超速車輛檢測和自動車牌識別以及GPRS數據傳輸三部分。超速監控計算機通過實時視頻采集卡首先采集高速公路的全景圖像,并利用全景圖像進行超速車輛檢測,如檢測到違章車輛,啟動攝像機工作,采集近景圖像并利用近景圖像自動車牌識別,其識別結果可分車牌號碼字符、車牌號碼照片、汽車違章照片分別保存到超速違章車輛數據庫,以供事后處理;通過GPRS自動向高速公 路系統中心的違章處理服務器傳送違章車輛的車牌號碼、違章照片信息,以實時進行違章處理。軟件系統功能框圖如圖(2)所示。
圖(2)
2.圖象預處理
圖像預處理的目的是對原始采集圖像進行標準化和增強,包括:圖像幾何校正、圖像增強和圖像濾波三部分。
(1) 圖像幾何校正:車牌圖像一般在通過攝像機采集時都在圖像中呈現一定的傾斜角度,首先需要將車牌圖像進行幾何角度變換,使車牌圖像處于水平走向,同時字符垂直放置。算法中沒有采用常規的旋轉變換算法,而采用分別在行方向上和列方向上的像素移動方法完成同樣的角度校正過程,大大降低了校正運算量。
(2) 圖像增強:輸入圖像統一采用的是 256 階灰度圖像,用灰度級擴展的方法來增強圖像。將圖像灰度范圍線性擴展到 0--255,經過處理后的圖像車牌清晰度明顯提高。
(3) 圖像濾波:算法使用非線性的中值濾波,該濾波經證實具有很強的噪聲抑制效果。考慮到算法的效率,不進行二維 8 鄰域的中值濾波,只在每一行上進行一維濾波即可,即I (x) = Med( I (x-1), I(x), I( x+1))
實驗結果表明一維中值濾波降噪效果良好。經過圖像灰度擴展和一維濾波處理,復雜天氣情況下的輸入圖像一般都能夠得到滿意的增強效果,如圖(3)所示。
圖(3)預處理結果
3.動目標分割
從視頻圖像進行超速車輛檢測時,可以直接用幀間差的方法比較前后兩幀圖像 ,去除靜止的區域,保留運動區域,判定視場中是否存在著汽車,判斷汽車的運動軌跡及速度。采用提取函數法分割目標與背景。設代表當前的圖象,代表參考圖象,其中(x,y)為像素點的坐標, ,,
則提取函數為
容易知道,式中 。
用提取函數對在公路上采集到的實際運動車輛的圖像做動目標檢測,其實驗結果如圖(4)所示
圖(4)
4.動目標跟蹤及速度測量
在目標跟蹤的同時,需要判斷計算目標的運動速度,所以采用特征點匹配的方法進行動目標跟蹤,以便利用特征點的視差計算車速。其要點是:在一幀圖像的活動目標窗口中選擇一組具有不變性質的特征點,與下一幀圖像中的同類特征點作匹配,從而求得視差。這就是特征點匹配的方法。
采用Moravac算子作為點特征提取算子。它基于一個理想的特征點,在其四周所有方向上灰度具有很大的方差。
特征點提取的步驟為:首先,在5 5的窗口計算
M=MIN
式中,為窗口中心像元的行、列序列為處圖像的灰度值。然后,確定備選特征點,若像元的有利值M大于經驗閾值,則該像元為備選特征點;否則,該像元不是特征點。zui后,用抑制局部非zui大M值的方法確定特征點 。檢驗每個備選特征點的M值是否為一定大小窗口內的zui大值,如果在窗口內有幾個備選特征點,則取M值zui大的像元作為特征點,其余均去掉。為保證匹配的正確率,采用協方差zui大與差的值之和zui小作為雙重判據,決定匹配點的取舍,以增強匹配結果的可靠性。找到匹配點后,利用兩者視差和事前標定過的視場內圖像zui小分辨率所代表的zui小距離以及圖像采集的間隔時間,就可計算出目標速度,根據此值預測目標新位置并判斷是否超速。
5.車牌定位
本文采用分步定位的方法得到牌照。即:先確定圖片中車牌的上下邊界位置。然后再進一步確定車牌的左右邊界的位置。
5.1 基于邊緣行跳變粗分割
本文采用邊緣檢測行跳變的方法進行。目前一般采用sobel、prewitt、Roberts等算子檢測邊緣。但通過實驗發現,對于車牌上部分字體有邊緣斷裂的產生,在進行行掃描邊緣跳邊時,將影響車牌行的正確提取。對有的牌照則*失敗,算子的適應性不寬廣。本文采用Canny算子進行。Canny算子是一種比較新的邊緣檢測算子,具有很好的邊緣檢測性能。它利用高斯函數的一階微分,能在噪聲抑制和邊緣檢測之間取得較好的平衡。因此,和別的算子相比,它能夠把圖像中的各種邊緣檢測出來。下面是車牌上下邊界的定位算法。
算法描述:
(1)讀入RGB原圖,進行灰度化;
(2)將灰度圖用Canny算子進行計算,得到二值邊緣圖;
(3)從*行開始掃描,相鄰二像素值不同,就認為是一次跳變,對每行跳變進行計數,當計數值大于閾值(threshold)時,就認為此行可能包含車牌,做一記號;
(4)對二值邊緣圖從上到下掃描完成后,就開始對標記行進行檢測,從下向上進行,當連續標記數目大于閾值(threshold1)時,就認為找到牌照所在的行了。原因是車牌在車的下部。這樣可以避免車身上部的各種干擾。提取出來,得到粗定位結果。但是,在試驗過程中,我們發現:因為Canny算子獲得的邊緣非常豐富。因此,會造成兩個錯誤結果。
A 車下部因為地面或其它干擾(如數碼相機的時間數字)時,這些水平定位條被切出來,而根本沒有牌照。切分錯誤如圖5。
圖5 原圖邊緣圖和切錯的區域
B 因為車身不光滑,使運算后有的車身上有大量邊緣線,或車牌附近類似邊緣密集區域,造成大寬度范圍的符合試驗設定的閾值,使車牌切割區域很寬。影響下一步定位。切分過大如圖6。
圖6 干擾造成的過大提取區域
如何排除干擾是提高準確率的關鍵步驟。對于邊緣二值圖去噪,目前沒有見到相關報道,一般是對灰度圖進行去噪的。根據牌照的先驗知識,本文提出二值圖的紋理過濾方法。方法如下:
步驟一:
(1)設置閾值1(車牌字符寬度), 行計數器i=0;
(2) 從第i行的*列開始,對各邊緣線段進行長度統計,并存入線段長度統計數組;
(3) 對統計數組進行檢查,大于閾值1的線段,就將原圖此位置的邊緣線段變為背景;
(4)i=i+1;如果i到達圖片的zui后一行,就結束,否則,返回(2)。
步驟二:
(1) 設置閾值2(字符之間的zui大寬度),行計數器i=0。計數器count=0;跳變點位置指針j=0;設置閾值3(符合紋理特征的一組區域的zui少數量值);
(2) 考察第i行邊緣跳變點j和j+n(n為兩相鄰邊緣點的距離,在變化,以下相同),如果二跳變點之間的距離小于閾值2,count加1, j=j+n。返回(2);如果二跳變點之間的距離大于閾值2,將count的值與閾值3比較:如果小于,就將j點和j向前查count個點,它們之間的所有邊緣點賦值為0(即變為背景), 然后count=0; 如果大于,不做任何改動,j=j+n,count=0返回(2),如果j為第i行的zui后一個邊緣點,count=0,轉到(3);
(3)i=i+1;如果i到達圖片的zui后一行,就結束,否則,返回(2)。
步驟一的目的是去除圖片中水平過長的邊緣線,將粘連的跳變區域分離開來。進行初步紋理過濾。步驟二的目的是去除小的類似紋理跳變區域,進行進一步紋理過濾。邊緣濾波前后的區別如圖7。
圖7 紋理過濾前后的邊緣圖的對比
經過過濾后的圖像,再用前面的車牌上下邊界的定位算法定位車牌的上下界。因為紋理過濾可能對傾斜的車牌兩個角有一定的損傷,所以要對切分水平條寬度給予一定的補償,也就是對得到的上下邊界適當加寬。
5.2 基于中值濾波的左右界界定
在找到車牌所在的上下界后, 下一步就是定位左右界。雖然粗切分的圖已經縮小很多,但下一步工作,即選什么圖片方式十分重要。通過對顏色轉換定位、形態學定位、以及灰度圖投影定位實驗,發現這些方法效果不好。大量的實驗表明,進行圖像水平差分,相鄰象素間相減求值,對差分圖進行垂直投影的效果很好。水平差分公式如下:,其中是差分結果,是灰度圖像在坐標,處的灰度值。i和j的取值范圍是圖片的高度數值和寬度數值。對差分結果進行垂直投影,研究投影圖后發現,牌照區域有的比較明顯。但是有的不明顯,因為有些圖片投影峰值差別不多,會造成確定牌照區域的偏差,字符切丟。本文提出利用中值濾波進行預處理。使用5×5的中值濾波窗口進行。濾波后它可以把大部分干擾去除掉,車牌垂直投影更突出。而且,它的投影左右界限比數學形態學更好,更準確;從而提高了準確性,見圖8比較。
圖8 候選區域差分圖中值濾波前后垂直投影對比
左右定位時利用車牌寬高比的先驗知識。經過反復試驗,zui終將比例系數定位3.9。即:切出的水平區域寬度(認為是車牌的高度)與車牌的寬度(車牌的左右界長度)為1:3.9。對濾波后的差分水平條區域進行垂直投影,在計算寬度范圍內(車牌的左右界長度)滑動此窗口,分別求出各個窗口范圍里的灰度投影值的總和,從中求出zui大值對應的窗口位置,得到坐標。這樣,就得到左右邊界。根據上下左右界切分原圖,從而得到結果。圖9是原圖和定位結果。
圖9 牌照定位結果
其中,a是原先未經紋理濾波時,切錯的原圖,而b是切得過大的原圖,各圖下面的小圖是按本文算法得到的車牌定位圖像。通過對圖庫中實拍的各種光照情況下車頭圖片的測試實驗,可以得出結論,該方法具有簡單易行,準確率高,對牌照各種顏色都適用的特點,具有很好的實用性。
6.字符識別
字符識別采用基于改進SVM和KNN融合的車牌字符識別算法設計。
6.1 字符特征提取
特征選取采用輪廓層次特征提取的方法。首先對字符圖象進行二值化處理,然后從上下左右4個方向提取輪廓層次特征。Length,Width為字符輪廓的寬和高。定義字符的*層輪廓層次特征為L1(j),j=0,1, ,Length-1;L1(j)的值為對字符圖象的j行從左到右掃描時*次遇到f(i,j)=1時的水平坐標值
L1(j)=min{min{i|f(i,j)=1},Width-1},j=0,1,,Length-1 (9)
字符的左側第n層輪廓層次特征Ln(j),定義為對字符圖象的j行從左到右掃描時,f(i,j)第n次從0跳變到1時的水平坐標值.遞歸公式為
L1(j)=min{min{i|f(i,j)==1},Width-1},j=0,1,,Length-1 (10)
Ln0(j)=min{min{i|i>Ln-1(j)&&f(i,j)==0},Width-1},j=0,1, ,Length-1 (11)
Ln(j)=min{min{i|i>Ln0(j)&&f(i,j)==1},Width-1},j=0,1,,Length-1 (12)
從右側和上下方向的輪廓層次特征提取同理可得.將4個方向上的輪廓層次特征合并起來即得字符的輪廓層次特征
C(k)={Ln(j),Rn(j),Un(j),Dn(j)},i=0,1,,,Length-1,j=0,1,,,Width-1 (13)
其中,n由分析和實驗統計可知,n=2較好.輪廓層次特征字符的粗細和左右變形較為不敏感,并且能夠很好地再現字符的輪廓形狀和內部結構.
6.2 樣本訓練
在實際應用中,由于需要對較為規則和不規則的字符都能夠做出較為快速和準確的識別,我們需要對訓練樣本進行篩選,將兩批不同的樣本分別提供給KNN和改進SVM分類器.為了能讓KNN分類器準確識別標準和規則的字符,首先需要得到一批較為規則的訓練樣本;同時為了提高識別速度,每一個字符類的訓練樣本集應該控制在10個字符以內.為了能夠識別不規則字符和非字符,我們要求將送入改進SVM分類器的樣本集必須包含一部分不規則和非字符樣本.由于SVM強大的泛化能力,少量的支持向量可以代表整個樣本集.兩組訓練樣本集部分字符如圖10和圖11所示.
訓練步驟:
(1)篩選訓練樣本,構造兩組不同的訓練樣本集.
(2)分別對兩組訓練樣本集進行歸一化處理,利用輪廓層次特征提取方法提取字符特征.
(3)采用*組訓練樣本集,作為KNN分類器的匹配模板集.
(4)采用第二組訓練樣本集,利用特征參數構造支持向量機.
6.3 字符識別
在樣本訓練完畢,構造好KNN和SVM分類器后,我們就可以識別實際的車牌字符了.對于一幅待測的字符圖象,首先對其歸一化,將其轉化到標準尺寸大小.然后采用輪廓層次特征提取方法提取字符特征,送入KNN分類器判決,如果置信度小于預設閾值,則認為判決結果正確,輸出判決結果.如果置信度大于預設閾值,則送入改進的SVM分類器進行判決.實際的系統如圖12所示.
本文介紹的算法基于K近鄰分類識別方法,引入了置信度,并且改進了SVM分類器,在保證字符識別速度的前提下有效地提高了識別率。
結 束 語:
本系統采用了目前*的算法和標準的硬件實現了全自動化監控,同時實現網絡化,具有架設方便,成本不高,具有較高的實用價值。獲得車速,車牌號碼,違章照片等運行狀態信息,自動車牌識別速度快、準確率高,為實時違章處理提供了可能。該系統通用性強、開放性強、擴展性強。