欒眾楷,徐文濤,劉 冰
(1.南京航空航天大學(xué) 能源與動力學(xué)院,江蘇 南京 210016;2.南京航空航天大學(xué) 理學(xué)院,江蘇 南京 211106)
基于安卓平臺的車牌識別系統(tǒng)的設(shè)計與實現(xiàn)
欒眾楷1,徐文濤2,劉 冰2
(1.南京航空航天大學(xué)能源與動力學(xué)院,江蘇 南京210016;2.南京航空航天大學(xué) 理學(xué)院,江蘇 南京211106)
為滿足智能交通系統(tǒng)對終端便攜性的要求,設(shè)計并實現(xiàn)了基于Android平臺的車輛牌照識別系統(tǒng)。該系統(tǒng)由圖像獲取模塊、車牌識別模塊和顯示模塊3個部分組成。通過驅(qū)動設(shè)備攝像頭采集車牌圖像,利用圖像處理技術(shù)對采集到的圖像進(jìn)行預(yù)處理、字符分割及模板匹配等,從而將圖像中的車牌信息轉(zhuǎn)換成文字信息。該系統(tǒng)可方便移植到各種Android設(shè)備中,開發(fā)者可以在此系統(tǒng)的基礎(chǔ)上進(jìn)行二次開發(fā),使其可以應(yīng)用到各種智能交通系統(tǒng)中。經(jīng)測試,該系統(tǒng)對車牌識別的準(zhǔn)確度和實時性都能達(dá)到智能交通應(yīng)用的一般要求。
智能交通系統(tǒng);Android平臺;車輛牌照識別
車牌識別系統(tǒng)[1]是智能交通系統(tǒng)的重要組成部分之一,其可將采集到圖像中的車牌信息轉(zhuǎn)換成文字信息并進(jìn)行存儲。與圖片信息相比,文字信息傳輸可節(jié)省帶寬,存儲可降低硬件開支,且信息調(diào)用更加便利。該系統(tǒng)可用于停車場計費、交通管理等應(yīng)用環(huán)境[2-4],提高了車輛信息采集、查詢的效率。
車牌識別系統(tǒng)需要實時準(zhǔn)確的完成對采集到圖像中的車牌部分進(jìn)行定位提取、分割識別等一系列工作。目前有很多院校在相關(guān)算法[5-6]方面做了大量的研究,并取得了一定成果。國內(nèi)外廣大學(xué)者主要針對車牌識別算法中的車牌定位及識別等方面進(jìn)行研究。其中,普遍采用的定位方法有基于顏色特征定位、基于灰度躍變定位、基于字符邊界特征定位、基于小波變換定位等方法;主要的識別方法[7-8]有神經(jīng)網(wǎng)絡(luò)法、模板匹配法、Adaboost分類器法等方法。
隨著智能交通技術(shù)的飛速發(fā)展,基于PC機的處理系統(tǒng)已然不能滿足智能交通系統(tǒng)對終端便攜性的要求[9]。智能手機具有便攜、工作不受環(huán)境限制等特點,且可隨時隨地方便聯(lián)網(wǎng),已成為目前信息處理的一個重要平臺。其中Android設(shè)備[10-11]以其代碼開源、價格低廉等優(yōu)勢,且支持多硬件平臺,享有極大地市場占有率,這使其成為智能交通系統(tǒng)實現(xiàn)的重要工具之一。
本文設(shè)計了基于Android的車輛牌照識別系統(tǒng),該系統(tǒng)可方便的移植到各種Android設(shè)備中,其集成了圖像采集、車牌識別等功能。開發(fā)者可對該系統(tǒng)進(jìn)行二次開發(fā),將該系統(tǒng)應(yīng)用到高速公路、停車場等計費系統(tǒng),利用車牌信息實現(xiàn)對車輛信息的確認(rèn),完成自動計費,實現(xiàn)“一卡一車”,完善收費制度。
如圖1所示,本文設(shè)計的車牌識別系統(tǒng)功能結(jié)構(gòu)主要包括圖像獲取模塊、車牌識別模塊和顯示模塊三個部分,各部分的工作方式如下。圖像獲取模塊通過調(diào)用Android設(shè)備的攝像頭對車牌進(jìn)行拍攝,并將圖片保存至存儲模塊,以供車牌識別模塊調(diào)用識別。車牌識別模塊對車牌圖像先后進(jìn)行車牌定位、字符分割、字符識別等操作,得到車牌號碼的文本信息,并將其保存至存儲模塊。顯示模塊將車牌識別模塊的識別結(jié)果顯示在Android設(shè)備用戶界面上,以供用戶使用。
圖1 系統(tǒng)整體結(jié)構(gòu)
圖像獲取模塊通過 OpenCV提供的庫函數(shù)實現(xiàn)對Android設(shè)備攝像頭的調(diào)用,進(jìn)行圖像采集。OpenCV是一個開源跨平臺計算機視覺庫,其全稱為Open Source Computer Vision Library。OpenCV可在Linux、Windows等操作系統(tǒng)上運行,OpenCV計算機視覺庫具有大量的Java接口,且API接口函數(shù)可由在線文檔獲得,并可通過Android NDK實現(xiàn)其庫函數(shù)在Android系統(tǒng)下調(diào)用。實現(xiàn)方法如下:通過OpenCV的庫函數(shù)cvCreateCameraCapture對Android設(shè)備的攝像頭進(jìn)行調(diào)用,結(jié)合JNI接口實現(xiàn)本地功能代碼,由Android NDK對其進(jìn)行編譯,生成可由Java調(diào)用的動態(tài)庫文件,該動態(tài)庫文件可被打包編譯,以實現(xiàn)車牌識別Android程序。
本文設(shè)計的車牌識別模塊的流程示意圖如圖2所示,該部分的實現(xiàn)主要分為以下四個部分:車牌定位,車牌字符分割、字符識別和識別結(jié)果存儲。車牌定位對采集到的圖像進(jìn)行預(yù)處理,檢測車牌所在區(qū)域并進(jìn)行截取,得到只包含車牌區(qū)域的圖像;字符分割對截取后圖像進(jìn)行垂直投影操作得到7個投影塊,對投影塊所在區(qū)域進(jìn)行分割,便可得到單個車牌字符;字符識別以車牌字符分割模塊得到的單個車牌字符為輸入,通過模板匹配實現(xiàn)圖像到文本信息的轉(zhuǎn)換,識別結(jié)果由程序中的存儲模塊記錄并完成存儲,供用戶進(jìn)行調(diào)用。本文對車牌定位,車牌字符分割、字符識別三個部分的設(shè)計與實現(xiàn)進(jìn)行重點介紹。
圖2 車牌識別模塊的工作流程示意圖
3.1車牌定位模塊
該模塊通過基于邊緣檢測的方法進(jìn)行車牌定位,實現(xiàn)了車牌定位的功能。車牌定位實現(xiàn)過程如下:1)灰度化:對攝像頭采集圖像進(jìn)行灰度化處理,將原始圖像轉(zhuǎn)換成灰度圖像,如圖3(b)所示;2)增強處理,對經(jīng)過灰度化處理后的圖像進(jìn)行增強處理,具體操作為對灰度化圖像先進(jìn)行腐蝕處理再進(jìn)行膨脹處理,即對圖像進(jìn)行開運算得到灰度化圖像的背景圖像,如圖3(a)所示,并將灰度化圖像與背景圖像相減,增強灰度圖像,如圖3(c)所示;3)圖像二值化:利用經(jīng)改進(jìn)的多次試驗確定最佳閥值,并采取了局部自適應(yīng)閾值的方法,將經(jīng)過增強處理的灰度化圖像二值化;4)邊緣提取,利用Canny算子對二值化圖像進(jìn)行邊緣提取,并對經(jīng)過邊緣提取的圖像進(jìn)行濾波抑噪等操作去除噪聲影響;5)確定車牌位置,通過掃描像素點數(shù)目確定車牌X、Y方向的起始位置;6)分割車牌區(qū)域,根據(jù)上一步得到的車牌部分X、Y方向起始位置,對原始圖像進(jìn)行分割,得到車牌信息圖像。
圖3 增強處理效果圖
3.2字符分割模塊
字符分割模塊對預(yù)處理后的車牌信息圖像進(jìn)行傾斜校正處理和垂直投影操作,根據(jù)字符塊確定字符的位置和寬度,對圖像進(jìn)行分割,得到單個字符,具體算法如下。
1)對車牌部分圖像進(jìn)行灰度化、傾斜校正、二值化及均值濾波等處理。
2)對1)得到的圖像進(jìn)行垂直投影操作,得到灰度直方圖,如圖4所示,根據(jù)灰度直方圖確定字符首行與尾行位置、每個字符的左右邊界,由此得到車牌字符個數(shù)和每個字符的寬度,并根據(jù)此寬度進(jìn)行字符分割,得到單個字符,分割結(jié)果如圖5所示。
圖4 垂直投影
圖5 字符分割結(jié)果
3.3字符識別模塊
字符識別模塊基于模板匹配識別方法實現(xiàn)圖像信息到文字信息的轉(zhuǎn)換,具體方法如下。
1)建立模板庫
我國車牌字符第一位為漢字,第二位為字母,第三位為數(shù)字和字母的組合,根據(jù)此特征建立車牌字符標(biāo)準(zhǔn)模板庫,將其分為漢字、字母、數(shù)字和字母三組。
2)模板匹配
將車牌分割后的字符分為三組,第一位為第一組,第二位為第二組,后五位為第三組。將每組中的字符與相對應(yīng)模板庫中的字符模板進(jìn)行遍歷匹配操作,計算待識別字符與標(biāo)準(zhǔn)模板的特征距離,該特征距離越小表示模板與待識別字符的相似度越高,通過遍歷匹配得到與待識別字符特征距離最小的標(biāo)準(zhǔn)模板,并將其保存至存儲模塊。
本文設(shè)計的應(yīng)用程序基于Model-View-Controller框架,Model表示邏輯算法層,即圖像處理過程中的各種數(shù)據(jù)運算操作和數(shù)據(jù)轉(zhuǎn)換操作;View表示界面顯示層,通過Android布局文件XML實現(xiàn);Controller表示控制層,其工作方式為依照界面顯示層發(fā)出的指令對邏輯算法層數(shù)據(jù)進(jìn)行封裝,實現(xiàn)邏輯模型與用戶界面的對接。
在邏輯算法模型的設(shè)計中,本項目基于OpenCV提供的豐富的圖像處理庫函數(shù),編寫了 Agray、Aheighten、Aim2bw、ACanny、Asmoothing等共12個核心類,來實現(xiàn)上述對車牌圖像定位、分割、識別等模塊的具體功能。車牌識別系統(tǒng)軟件UML類圖與所使用到的庫函數(shù)如圖6所示。
圖6 車牌識別系統(tǒng)UML核心類圖
控制層為車牌定位、分割、識別等不同功能模塊與顯示模塊間建立連接。本項目編寫各功能模塊的數(shù)據(jù)接口和客戶端登陸、退出及數(shù)據(jù)保存模塊,創(chuàng)建控制類以實現(xiàn)數(shù)據(jù)管理。將各功能模塊與圖形用戶界面的相應(yīng)按鈕建立連接,從而將用戶界面的操作轉(zhuǎn)換為相應(yīng)的數(shù)據(jù)處理,并根據(jù)數(shù)據(jù)處理結(jié)果對界面進(jìn)行更新。
本文設(shè)計的APP主界面如圖7所示。點擊“開始識別”進(jìn)入識別界面;下方兩個文件夾分別存儲車牌原始圖像和識別結(jié)果,供用戶進(jìn)行查閱與核對;右上角“Help”鍵調(diào)用幫助界面。
本系統(tǒng)的測試實驗使用三星galaxy grand2智能手機,測試Android系統(tǒng)的版本為Android 4.3。測試結(jié)果如圖8所示。
本文基于Android平臺設(shè)計并實現(xiàn)了車輛牌照智能識別系統(tǒng),該系統(tǒng)集成了車牌圖像定位、分割、識別等功能,實現(xiàn)了采集到圖片中車牌信息到文字信息的轉(zhuǎn)換,并開發(fā)了相應(yīng)的應(yīng)用程序,可安裝到不同硬件平臺的Android設(shè)備中,實測結(jié)果證明了該系統(tǒng)的準(zhǔn)確性和實時性。后續(xù)工作將考慮開發(fā)數(shù)據(jù)庫存儲功能以及網(wǎng)絡(luò)連接功能,提高系統(tǒng)的可擴展性,滿足智能交通系統(tǒng)的應(yīng)用場景。
[1]Tamer E,Cizmeci B.A different approach for license plate recognition system[C]//Antalya:IEEE 17th Signal Processing and Cornmunications Applications Conference,2009:357-360.
[2]陳寧寧,尹乾,周媛,等.數(shù)字圖像處理技術(shù)在智能交通中的應(yīng)用[J].電子設(shè)計工程,2013,21(3):10-14.
[3]李浩,熊運余,吳志紅.基于嵌入式的新型停車場智能控制器[J].計算機工程與設(shè)計,2012,33(9):3391-3396.
[4]楚巖,邵嚴(yán),陳亮,等.一種車牌識別軟件系統(tǒng)研究[J].電子設(shè)計工程,2013,21(4):149-155.
[5]楊悼硯,徐益君,張俊如.車牌識別算法的研究和實現(xiàn)[C]// 2009年中國高校通信類院系學(xué)術(shù)研討會論文集,2000:29-33.
[6]姜莉莉,蔣瀟,陳昕怡,等.OpenCV在車牌識別中的應(yīng)用[J].軟件,2014,35(3):45-47.
[7]鄒星.一種基于模板庫的車牌字符識別算法[J].計算機技術(shù)與發(fā)展,2010,20(4):128-131.
[8]卜質(zhì)瓊,鄒衛(wèi)強,周運祥.基于神經(jīng)網(wǎng)絡(luò)集成的汽車牌照識別[J].計算機工程與設(shè)計,2007,28(19):4741-4746.
[9]陳建發(fā).停車場管理系統(tǒng)的設(shè)計與實現(xiàn)[D].福建:廈門大學(xué),2007.
[10]雷文禮,任新成,張棟,等.基于 Android平臺的即時通信系統(tǒng)設(shè)計[J].現(xiàn)代電子技術(shù),2015,38(3):13-15.
[11]凡威,周淵平.基于Android平臺的無線視頻監(jiān)控[J].計算機系統(tǒng)應(yīng)用,2015,24(1):195-199.
【相關(guān)參考文獻(xiàn)鏈接】
曹歡歡,李永忠.Android平臺下的安全檢測軟件的設(shè)計與實現(xiàn)[J].2015,23(12):141-144.
黃惠迪,官洪運,鄧昶,等.基于Android平臺的車道線檢測系統(tǒng)設(shè)計[J].2015,23(15):99-102.
高凱.基于Android手機平臺的多媒體短信系統(tǒng)的研究[J]. 2015,23(16):59-61.
周俊,李永忠,楊立華.基于Android平臺的藏文輸入法設(shè)計與實現(xiàn)[J].2015,23(16):79-81.
徐麗君.基于Android的校園移動信息門戶設(shè)計與實現(xiàn)[J]. 2015,23(17):43-46.
王君,趙躍華.主動防御技術(shù)在Android隱私保護(hù)中的應(yīng)用[J]. 2015,23(20):79-81.
段昕,朱國魂.基于Android的跨平臺資源管理系統(tǒng)的研究[J]. 2015,23(21):28-31.
盛平,韓偉.基于Android平臺的視頻監(jiān)控客戶端的設(shè)計與實現(xiàn)[J].2015,23(22):7-10.
鄭勝龍,姚錚,陳從華.基于Android的自定制CRM軟件設(shè)計[J]. 2015,23(22):125-128.
田甜,林筑英.基于云存儲的Android手機視頻監(jiān)控和流量共享系統(tǒng)設(shè)計[J].2015,23(24):190-193.
Design and implementation of license plate recognition system based on android platform
LUAN Zhong-kai1,XU Wen-tao2,LIU Bing2
(1.College of Energy and Power Engineering,Nanjing university of Aeronautics and Astronautics,Nanjing 210016,China;2.College of Science,Nanjing university of Aeronautics and Astronautics,Nanjing 211106,China)
In order to meet the requirements of intelligent transportation system for terminal portability,a vehicle license plate recognition system was designed based on the Android platform.This system consists of an image acquisition module,a license plate recognition module and a display module.After driving the device camera to collect the license plate images,imageprocessing technology is used to analyze the collected images by preprocessing,character segmentation and template matching.Thus,the image of license plate information can be converted into text information.The system can easily be ported to various kinds of Android devices.Hence,developers are able to do secondary development based on the system.This makes it applicable to various kinds of intelligent transportation systems.The experimental results indicate that this system of license plate recognition accuracy and real-time performance can meet the general requirements of intelligent transportation applications.
intelligent transportation system;Android platform;license plate recognition
TN492
A
1674-6236(2016)09-0176-04
2015-07-07稿件編號:201507061
2015年度國家級大學(xué)生創(chuàng)新訓(xùn)練計劃項目(201510287040)
欒眾楷(1994—),男,山東萊蕪人。研究方向:數(shù)字圖像處理。