基于嵌入式開發(fā)板的車輛識別系統(tǒng)設(shè)計
如今經(jīng)濟迅速發(fā)展,不但城市人口的數(shù)量變得日益龐大,而且城市中最重要的交通工具汽車的數(shù)量急劇增加,與日俱增的車輛時刻考驗著城市交通管理的能力。高效,可靠地管理車輛已成為每個城市迫切需求。因此車牌識別系統(tǒng)作為智能交通管理系統(tǒng)的重要組成部分,越來越被重視。車牌識別技術(shù)的探索,促進交通管理的智能化和網(wǎng)絡(luò)化,對于日益趨多的車輛管理的工作有較大幫助。本文提出基于樹莓派開發(fā)板的車牌識別系統(tǒng),實現(xiàn)物聯(lián)網(wǎng)技術(shù)下的車牌識別。
1.總體結(jié)構(gòu)
該車輛識別系統(tǒng)主要由臺式機、嵌入式開發(fā)板、攝像頭模塊三個部分組成設(shè)計圖如圖1所示。
圖1 車輛識別設(shè)計圖
該車輛識別系統(tǒng)包括嵌入式開發(fā)板、電源模塊、攝像頭模塊、臺式機模塊、通信模塊。臺式機作為服務(wù)器,控制與之連接的樹莓派開發(fā)板對車牌進行拍照;通信模塊采用Java語言編寫,它們之間的通信通過TCP/IP協(xié)議,實現(xiàn)數(shù)據(jù)的交換和傳輸。嵌人式開發(fā)板接入互聯(lián)網(wǎng),配合攝像頭模塊可實現(xiàn)在停車場、小區(qū)門禁等需要進行車輛身份驗證的類似場景,快速識別車牌信息。
2.組件分析
2.1臺式機
臺式機部分在Windows環(huán)境下,搭載了由VC2010開發(fā),OpenCV軟件輔助的識別系統(tǒng)。臺式機不斷接收來自嵌入式開發(fā)板的圖像數(shù)據(jù),圖像被處理識別后再由無線傳輸,將識別結(jié)果返回至嵌人式開發(fā)板。
開發(fā)環(huán)境如下:Visual Studio是由微軟公司推出的開發(fā)環(huán)境。它是目前最流行的Windows平臺應(yīng)用程序開發(fā)環(huán)境之一。Microsoft Visual Studio 2010版本還支持支持微軟云計算架構(gòu)(Windows Azure)、移動與嵌入式裝置開發(fā)以及當前最熱門的敏捷軟件開發(fā)模型。
OpenCv(Open Source Computer Vision Library)于1999年由 Intel公司建立,現(xiàn)如今為其提供支持的是 Wil-low Garage。OpenCV是一個計算機視覺函數(shù)庫,它是基于開源和跨平臺發(fā)行的。
OpenCV作為一個外部函數(shù)庫,可以通過在 Windows、Linux環(huán)境下的IDE下配置連接,在編程開發(fā)時直接調(diào)用函數(shù)庫中各種算法對應(yīng)的函數(shù)就可以實現(xiàn)所需的操作,可以有效地加快開發(fā)速度。由于OpenCV專門針對Intel的處理器做了優(yōu)化,因此在Intel平臺下則表現(xiàn)出更快的速度。
Tesseract是由Ray Smith于1985~1995年間在惠普布里斯托實驗室開發(fā)出來的一個光學字符識別(Optical Charac-ter Recognition,OCR)引擎,曾經(jīng)在1995年UNLV精確度測試中名列前茅,但1996年后就停止了開發(fā)。2006年,Google邀請Smith加盟,重新啟動了該項目。該項目目前可以支持 Windows、Linux和 Mac OS等主流平臺。Tes-seract-OCR 3.0.1以后發(fā)布的版本中加入了中文字符識別庫,可以實現(xiàn)對tif、bmp格式中含中文字符的圖像的識別。
為了提高識別率,Tesseract-OCR還提供了樣本訓(xùn)練功能,用戶可以通過收集大量的樣本素材來訓(xùn)練自己的識別庫,從而可以提高用戶對某些特定性的字符的識別率。在Microsoft Visual Studio 2010平臺下用戶可以通過調(diào)用Tesseract-OCR提供的API接口,將自己訓(xùn)練的識別庫放入安裝目錄的tessdata中,配置環(huán)境變量后,對待識別的字符圖像進行識別。
2.2嵌入式開發(fā)板
嵌入式開發(fā)板采用了當下較為流行的樹莓派開發(fā)板。Raspberry是世界上最小的臺式機,又稱卡片式電腦,外形只有****大小,卻具有電腦的所有基本功能。它是一款基于ARM的微型電腦主板,以SD/Micro SD卡為內(nèi)存硬盤,可連接鍵盤、鼠標和網(wǎng)線,同時擁有視頻模擬信號的電視輸出接口和HDMI高清視頻輸出接口,只需接通電視機和鍵盤,就能執(zhí)行如電子表格、文字處理、玩游戲、播放高清視頻等諸多功能。
本次使用的是樹莓派3B,相較于上代樹莓派,3B的性能更加強大,搭載1.2GHz的64位四核處理器,增加802.11 b/g/n無線網(wǎng)卡和低功耗的藍牙4.1,功耗也有小幅度的增加。
3.無線通信傳輸
由于臺式機接收到的圖像質(zhì)量好壞會直接影響到最終識別的準確,因此如何將攝像頭拍攝的圖像準確性﹑快速地傳遞給臺式機成了重中之重。TCP(Transmission Control Protocol,傳輸控制協(xié)議)是基于連接的協(xié)議,在正式收發(fā)數(shù)據(jù)前﹐必須和對方建立可靠的連接。由于TCP連接方式的可靠性,如圖2所示,使得圖片在傳輸過程中,數(shù)據(jù)的完整性得到保障。
圖2 TCP方式傳遞圖片
樹莓派官方預(yù)搭載的編程開發(fā)環(huán)境包含了Java語言。Java語言是一種面向?qū)ο蟮恼Z言,它提供了基本的封裝方法來完成指定的任務(wù),只需要傳人必要參數(shù),即可調(diào)用相應(yīng)方法,得到想要的結(jié)果。Java也適用于小型機,它的基本解釋器及類的支持只有40KB左右。此外,Java是面向網(wǎng)絡(luò)的語言,通過它提供的類庫可以處理TCP/IP協(xié)議,用戶可以通過URL地址在網(wǎng)絡(luò)上很方便地訪問其他對象。本次設(shè)計就使用了Java語言的TCP/IP封裝的方法。
?、費AC地址是上網(wǎng)設(shè)備的“身份證號碼”,具有全球唯一性。所以使用路由器綁定臺式機的MAC地址以及多臺樹莓派的MAC地址,指定其內(nèi)部網(wǎng)絡(luò)IP地址,可以方便管理。
?、谂_式機作為本次方案的服務(wù)器端,使用了Java多線程技術(shù),監(jiān)聽來自不同P地址的數(shù)據(jù),并將數(shù)據(jù)保存在指定文件目錄下。
?、蹣漭勺鳛楸敬畏桨傅目蛻舳?,通過Java封裝好的方法,實例化Socket流,連接指定IP地址的服務(wù)器端。在其拍照結(jié)束并檢查文件的合法性,確認文件無異常后,通過字節(jié)流將文件發(fā)送給服務(wù)器。
圖3 IP地址分配圖
?、艽募_認傳輸完畢后,釋放所有資源,等待下次命令的開啟。圖片通過網(wǎng)絡(luò),在發(fā)送端利用TCP/IP協(xié)議傳遞給臺式機,若成功識別,會在指定目錄下生成txt文檔,保存車牌號。
臺式機服務(wù)器端多線程部分:
樹莓派客戶端發(fā)送數(shù)據(jù)部分:
4.車輛識別過程
(1)基于樹莓派的云端識別車牌方法,準備過程如下:
①開啟云端的電腦,接入互聯(lián)網(wǎng)。
?、诖蜷_電腦和樹莓派之間相應(yīng)的通信軟件和識別車輛的軟件,等待樹莓派連接,每連接一個樹莓派,開啟一條線程處理。
③樹莓派連接電源模塊,接通電源,為方便管理,為每一臺樹莓派設(shè)置好靜態(tài)固定的IP地址,通過無線網(wǎng)卡連接路由器。
?、軘z像頭正確連接樹莓派,裝入樹莓派保護盒內(nèi),保證工作狀態(tài)下減少外界干擾。并將樹莓派盒子內(nèi)攝像頭正對道路口,擺在需要車牌識別的地方。
?、萃ㄟ^SSH方式開啟樹莓派通信模塊,驅(qū)動攝像頭,開始工作。
(2)捕捉車輛過程如下:
?、贅漭砷_啟后﹐拍攝圖片,并啟用上傳程序,發(fā)送給云端臺式機。
?、谠贫伺_式機收到連接請求,同意連接,并接受樹莓派發(fā)來的數(shù)據(jù)﹐保存在指定目錄下,啟動識別車牌程序進行車牌的識別。
③若識別程序成功定位到車牌,進行識別車牌中的字符,并將結(jié)果保存在指定目錄。
若識別程序未定位到車牌,將舍棄此次數(shù)據(jù),等待下次樹莓派數(shù)據(jù)的傳輸。云端識別流程圖如圖4所示。
(3)識別程序工作過程如下:
本系統(tǒng)基于開源發(fā)行的OpenCV跨平臺計算機視覺函數(shù)庫進行設(shè)計和實現(xiàn),采用Microsoft Visual Studio2010開發(fā)平臺,運用MFC框架設(shè)計界面,使用C++語言編程,調(diào)用Tesseract-OCR對提取出的車牌字符進行識別,主要分三步來實現(xiàn)車牌識別技術(shù):即車牌定位、字符分割、字符識別。車牌識別系統(tǒng)的工作的總流程如圖5所示。
圖4 云端識別流程圖
圖5 車牌識別流程圖
①圖像的輸入。本系統(tǒng)處理的圖像都統(tǒng)一調(diào)整為像素為2592×1 456,經(jīng)過大量實驗,當判定條件的面積選擇為大于10 000時,能夠有效地去除掉微小噪點帶來的干擾。
②車牌定位。此環(huán)節(jié)主要應(yīng)用形態(tài)學方法,對車牌進行定位。
?、圩址指瞽h(huán)節(jié)采用閥值分割法,去除掉噪音的干擾,實現(xiàn)對車牌字符的分割,從而提取出車牌字符。
④字符識別環(huán)節(jié)則利用樣本訓(xùn)練方法,對字符分割后的圖像進行識別。
5.測試結(jié)果
本系統(tǒng)最后對15張端正的車牌圖像進行測試分析,統(tǒng)計了車牌完全識別正確率和車牌字符識別正確的個數(shù)。測試結(jié)果如表1所列,可以看出在共計15張照片中,完全識別正確的達到12,正確率為80.0%。字符共計105個,完全識別正確的有820個,字符識別的正確率達94.3%。
對于識別錯誤的車牌,經(jīng)過分析一般都是圖像中車牌的位置出現(xiàn)較大的強光光斑干擾和車牌附著灰塵太多干擾造成,從而影響了對圖像車牌的識別。含有強光光斑的汽車圖像因素均會導(dǎo)致本系統(tǒng)的識別率下降。針對這一類圖像的識別,可以在采集圖像時,通過攝像頭前增加偏光鏡片,來降低強光光斑干擾的程度,使得識別率有所提高。
結(jié)語
以上就是基于嵌入式開發(fā)板的車輛識別系統(tǒng)設(shè)計介紹了。該設(shè)計在成本上大大縮減了鋪設(shè)自動識別車輛的設(shè)備的費用,也免去了布線麻煩,功耗低等問題。
關(guān)注公眾號“優(yōu)特美爾商城”,獲取更多電子元器件知識、電路講解、型號資料、電子資訊,歡迎留言討論。
*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。