田櫪文,齊文琴,李 歡
(成都理工大學 信息科學與技術學院,四川 成都 610059)
車牌是汽車非常重要的一部分。車牌相當于車的身份證,是辨別一個車子的主人關鍵。因此車牌識別也變得尤為重要。
停車場的車牌商業化的識別會大大減少人工費用,減少人們手動化操作,增加了商家的收益。但是在識別之前需要進行車牌分割。一個好的分割算法,能有效地減少識別效能。本文主要介紹一種車牌分割的算法,通過OpenCV提供的部分api功能,結合自己的算法計算出車牌位置,進行合理切割。
OpenCV是一種跨平臺的計算機視覺庫,可以運用在多個平臺。由于它對多個語言提供了接口,所以在工具上選擇OpenCV來執行下面的操作。
本文設置的圖片是針對停車場車牌的自動識別切割,所以攝像頭位置方向是直擊車牌附近。實測中,對于距離稍微遠一些或者全身車子照有部分圖片實測成功。車牌因為很特殊,對于大部分車牌來說成藍色,這種情況對于切割具有很大的幫助。
最初的想法是利用均值漂移,但是實測情況不好,均值漂移無法準確確定具體位置,而且計算量過于龐大,對于停車場使用的分割需求非常大的情況是不利的。另外一種是使用本身的分割算法grabcut,這個前景后景需要手工找尋前景后景,但是車牌的環境是不定性的,目標位置所以也有不定性,在露天的情況下還需要對天氣環境,以及鏡頭的清晰程度進行多方面的考慮。于是進一步考慮使用形態學變換可以進行有效的分割。
形態學變換是OpenCV重要的一個操作工具。形態學變換主要是可以用來消除不必要的噪音,以及分割出一副圖像中相對比較獨立的元素,或者把一些互鄰的元素相互連接起來,所以形態學變換在這方面對分割相當的有效。本文主要用到腐蝕膨脹,利用轉換hsv的方法找尋剩余藍色的位置,最后利用角度矯正、切割得到。
萬能第一步,首先要使用高斯濾波來初始灰度化的圖片。可以使用權值灰度化的方法,這樣可以使車牌部分灰度值更深[1]。高斯濾波最重要的作用在于降低一些圖片不該有的噪聲。在車子現有的圖片中可以看到,車子反光是最需要處理的一處,而高斯濾波可以有效地減少反光產生的噪音。隨后需要對圖片邊緣檢測,為后面的圖像腐蝕膨脹做基礎,canny算子的方向性保障了邊緣強度的估計,它有一定的能力降噪并且有效地保持若邊緣。
使用多次膨脹腐蝕可以達到的效果如圖1所示。因為車牌都是以橫向的位置排列順序,所以使用橫軸方向的膨脹,使想要的字符都可以順利聯通起來,但是設想如果一直使用膨脹將會有許多小塊的碎片,這時就需要進行多次的腐蝕來將它去除,然后再進行幾次膨脹,讓幾次膨脹和腐蝕次數相同,便于圖像回復原形態大小[2]。
腐蝕膨脹后,截取此空白部分,將圖像轉換成HSV利用藍色的特點,可以提取藍色的部分。經多圖多次實驗的得出,藍色色調(H)為90~120,而飽和度(S)為90~160,明度(V)為80~255。將圖像截取到藍色區域期間(見圖2)。

圖1 膨脹腐蝕后效果
當然這樣下來的圖片并不是正向的,存在傾斜,這時就需要對圖片進行角度矯正,角度矯正采取霍夫直線變換,找尋圖片中的直線。另一種方法是街區后利用黑色區域計算角度。但是使用后者對于其他圖片不能全部適用,所以選擇前者。其次是要充分考慮如何選擇合適的參數,按照比例找尋參數是非常重要的一點,按照原有圖片比例計算,車牌標準長度為440 mm,一個字母或數字長度45 mm,中間一點為10 mm。

圖2 提取藍色區域后效果
找到合適參數,計算出一條直線后,找到兩個點計算角度,并截取為小圖(見圖3)。

圖3 校正后截取的小圖
經過一系列的處理后難免會出現一些不必要的噪聲黑點,使用二值化將圖像變為黑白的圖片便于后續切割。但是二值化后在多張圖片處理后都發現黑點變多了,如果不提前消除會有很大的影響。所以繼續使用膨脹和閉操作進行適當調試,由于噪聲多是豎直方向的較多,所以使用y方向的膨脹。
最后進行截取。筆者的考慮是進行白色區域檢測,然后利用顯示車牌與圖片大小的比例進行有效切割。開始遇上黑色點,當遇上白色點記錄初始位置推出循環進行下一輪循環,然后持續遇見白色的點都進行跳出循環。一直持續,遇到白色的點結束時記錄結束位置,然后將兩點位置切割下來。
最后最重要的問題在于有偏旁的漢字和點的處理,于是按照實際比例設計了上限和下限。車牌上點的大小為10 mm乘以圖片寬度和440 mm的比例,如果小于這個值的兩點距離,予以按比例截取權限。若大于這個值且小于一個單漢字的比例,則不給予權限切割且按照原比例切割。這樣就可以有效避免偏旁分離的和點的問題(見圖4)[3]。

圖4 分割后的部分圖
此算法運用了很多OpenCV的標準庫,但在hsv中的截取藍色部分和圖像校正,以及后面的單字分割進行了部分改進。在許多標準庫中函數的參數進行實驗并校正部分參數使完美運行。經過幾輪測試,成功率高達90%,能達到預期的效果。
在不成功的樣品里有幾種情況,一種是圖片太大,所以在后續的改進中可以使用圖像金字塔的格式將圖片向下采樣,減小圖片的大小。
由于圖片分割是給后來的圖像識別做素材,所以后面的情況將會把所有的圖片的大小調整成一致便于機器學習。
圖片分割是一個很成熟的技術,在各個領域都有應用。不過在實現算法的同時還應該減少運算時間,減少內存消耗。在未來,還將對分割后的車牌進行機器學習,讓它達到真正識別功能。