姚俊文

針對車輛出入庫管理中存在的問題,提出了基于ARM嵌入式平臺的車牌識別系統的設計和實現方案,論述了從車輛圖像抓取、圖像預處理、車牌區域識別、文字分割、文字識別等過程中所涉及的理論和技術問題,提出了基于POSIX規范多進程技術進行系統整合的方案。
【關鍵詞】車牌識別嵌入式技術 文字識別
1 引言
隨著汽車的普及,停車難的問題日益突出,高效的車庫管理成為解決這一問題的關鍵環節之一。傳統的RFID車庫道閘控制系統存在使用不便、控制不精確等缺點,車主進出時必須將車準確地停靠在讀卡器前,打開車窗手動刷卡,尤其在雨雪天氣使用更加不便;無法控制重復刷卡、一卡多車進出車庫的情況,造成車庫管理上的困難;另外由于采用集中數據存儲和控制,在實際中還存在道閘反應速度慢以及因為線路原因造成控制失效的情況。而已有的基于車牌識別的控制系統采用分布圖像采集、集中進行識別和控制的方式,系統設備、安裝、維護成本都比較高,阻礙了其廣泛應用。
本項目以嵌入式計算機技術為基礎,綜合圖像處理、模式識別等技術,將圖像采集、車牌識別、道閘控制集成在獨立的系統中,完成復雜環境下汽車車牌的智能識別和車庫道閘的自動控制,實現更加方便、快捷和完善的車輛進出場管理。
2 系統架構
2.1 系統總體架構設計
完整的道閘控制系統包括車輛檢測、車輛拍照、車牌定位、車牌識別、車牌號碼管理、道閘控制等模塊,本系統基于嵌入式Linux構建,系統總體結構如圖1所示。
2.2 硬件平臺設計
系統基于ARM體系結構,CPU采用Samsung公司的S3C6410X嵌入式微處理器,S3C6410X具有低成本、低功耗、高性能的品質。系統配置了64MB SDRAM運行內存,以64MB Nand Flash作為存儲Bootloader、操作系統和應用程序的外存,系統具有2個USB從設備接口和1個USB主設備接口,集成LCD控制器,為方便系統開發攝像頭采用了spca5xx/gspca兼容USB攝像頭,簡化了軟件平臺的配置。
2.3 軟件系統設計
使用檢測像素突變的方法檢測出車牌的邊緣進行車牌定位,利用垂直、水平投影得到車牌區域,并對其進行旋轉矯正,得到精確的車牌區域。之后對車牌區域進行圖像預處理,包括灰度化、二值化、去噪等操作,然后根據車牌尺寸、車牌中字符的分布特點等先驗知識對車牌中的字符進行分割,最后與字符模板進行比較,確定最相近的字符,完成車牌的識別。
3 系統實現
3.1 圖像采集
本系統采用的Linux 2.4內核沒有集成spca5xx攝像頭驅動,需要到相應的網站[1]下載、編譯后加入到系統內核,同時需要在內核配置選中便能對V4L(Video for Linux)的支持。
V4L是Linux系統中關于視頻設備的內核驅動[2],該驅動的功能是為視頻設備應用程序開發和應用提供一系列的接口函數,然后配合適當的視頻采集設備和相應的驅動程序,實現對影像的采集等操作。
基于V4L進行圖像采集時,程序基本流程如下:
(1)打開視頻設備;
(2)讀取設備信息;
(3)更改設備當前設置;
(4)視頻采集,采用直接從設備讀取圖像數據,并通過共享內存將數據傳送給圖像處理進程;
(5)關閉視頻設備。
3.2 車牌定位
系統采用基于掃描行的車牌定位算法[3],基于車牌的幾何特征和灰度特性進行車牌定位。,即可根據此特性即灰度特性將圖像二值化,統計每行跳變點次數,根據跳變點次數和車牌幾何特征實施定位,具體算法步驟可表示為如下:
(1)圖像灰度化,增大中車牌區域字符和背景的差異;
(2)水平邊緣檢測,車牌區域是由一串字符組成的,其紋理豐富,而其他部分灰度分布較為均勻,因此利用邊緣檢測可以排除大量非車牌區域[4];
(3)圖像二值化,采用局部閾值二值化邊緣圖像;
(4)粗定位,根據車牌區域字符筆劃的寬度,字符之間的間隔、整串字符的總長度等特征進行車牌初步定位;
(5)精確定位。識別滿足車牌區域掃描線特征的區域,并進一步對區域左右兩端進行裁剪,完成車牌精確定位。
3.3 字符分割
目前常用的字符分割方法有基于垂直投影的字符分割[5]、基于連通域的字符分割[6]、基于模板匹配的字符分割[7]和基于聚類分析的字符分割[8],本文采用了基于連通域的字符分割算法,該方法不受車牌傾斜的影響、環境適應性好、字符分割精度高、抗干擾性強, 同時減少了像素重復標記和歸并標記的大量運算, 能快速、準確地分割車牌字符。其處理過程包括去除離散噪聲、設定連通域標記、連通域掃描、分割字符和字符歸一化,詳見參考文獻[6]。
3.4 車牌文字識別
與常規文字識別相比,車牌文字識別的突出特點是字符集小、字符形狀規范,因此針對車牌進行文字識別可行性很高。
車牌上的文字分為3類,第1類為漢字,包括省、自治區、直轄市簡稱、軍隊用漢字和車牌分類用漢字,共計68個漢字;第2類為26個大字英文字母;第3類為10個阿拉伯數字。通過對模板匹配法[9]、BP神經網絡法[10]、支持向量機法[11]進行實驗對比,3種方法對字母和數字識別的準確率均在90%以上,而對漢字的識別,支持向量機方法識別率最高,為92.3%,因此本系統采用多類分類支持向量機進行車牌文字識別。
3.5 系統整合
為提高運行效率,系統采用了基于POSIX規范的多進程編程技術,系統運行時由車輛偵測、圖像捕捉、字符識別、道閘控制4個進程組成,進程間通過共享內存、信號等機制實現數據傳輸和同步。
4個進程均創建為POSIX守護進程,車輛偵測進程第隔2秒由SIGALRM信號喚醒,檢測是否有車輛通過,如果檢測到車輛,向圖像捕捉進程發送SIGINT信號后再次進入休眠狀態;圖像捕捉進程被喚醒后進行拍照和預處理,將車牌圖像存儲在共享內存中并向字符識別進程發送SIGINT信號,然后進入休眠狀態;字符識別進程被喚醒后從共享內存中讀取車牌圖像進行識別,然后通過阻塞式管道將識別出的車牌號碼發給道閘控制進程,自身進入休眠狀態;當管道中有數據時,道閘控制進程解除阻塞狀態,從管道中讀取車牌號碼,根據從數據庫檢索數據結果進行道閘控制。
4 結論
本文提出的基于嵌入式系統的車牌識別方案,具有系統成本低、部署方便等優點,系統實現過程中對車輛圖像的獲取、圖像預處理、車牌定位、車牌分割、文字識別等各方面進行了有益的探索,取得了具有較高實際意義的結論。系統仍然存在一些問題需要進一步研究,包括圖像抓取時補光的控制、對污損車牌去噪處理、多系統之間的數據共享和管理問題等,需要在后續研究中繼續完善。
參考文獻
[1]http://mxhaard.free.fr/spca50x/embedded/KernelPatch/usb-2.4.31LE06.patch.tar.gz
[2]趙方鵬, 楊建華, 趙忠,等.基于嵌入式Linux的網絡視頻監控系統[J].測控技術,2007,26(05):55-57.
[3]石貴民.基于掃描線的新型車牌定位方法研究[J].科學技術與工程,2014,14(08):1671-1815.
[4]魏娜,王振臣,張聰等.一種新型車牌定位算法的研究[J].激光與紅外,2012,42(08):936-939.
[5]Abderaouf Z,Nadjia B,Saliha O K.License plate character segmentation based on horizontal projection and connected component analysis.In:2014 World Symposium on Computer Applications & Research (WSCAR),IEEE,2014,1-5.
[6]甘玲,林小晶.基于連通域提取的車牌字符分割算法[J].計算機仿真,2011,28(04):336-339.
[7]Miao L.License plate character segmentation algorithm based on variablelength template matching. In:Proceeding of 2012 IEEE 11th International Conference on Signal Processing (ICSP),2012,947-951.
[8]陳黎,黃心漢,王敏,李煒.基于聚類分析的車牌字符分割方法[J].計算機工程與應用,2002(06),221-256.
[9]吳煒,楊曉敏,劉大宇等.一種基于模糊模板匹配的車牌漢字識別方法[J].微型機與應用,2005(11):57-59.
[10]DaRocha G.A.,Manod S.J..Character recognition in car license plates based on principal components and neural processing[J].Pattem Reocngition,2006,39(02):26-31.
[11]趙秀娟.基于支持向量機的車輛自動分類方法[J].公路交通科技,2003(10):108-110.
作者單位
天津職業技術師范大學信息技術工程學院 天津市 300222