博客專欄

EEPW首頁 > 博客 > 基于嵌入式開發(fā)板的車輛識(shí)別系統(tǒng)設(shè)計(jì)

基于嵌入式開發(fā)板的車輛識(shí)別系統(tǒng)設(shè)計(jì)

發(fā)布人:utmel 時(shí)間:2023-05-25 來源:工程師 發(fā)布文章

  如今經(jīng)濟(jì)迅速發(fā)展,不但城市人口的數(shù)量變得日益龐大,而且城市中最重要的交通工具汽車的數(shù)量急劇增加,與日俱增的車輛時(shí)刻考驗(yàn)著城市交通管理的能力。高效,可靠地管理車輛已成為每個(gè)城市迫切需求。因此車牌識(shí)別系統(tǒng)作為智能交通管理系統(tǒng)的重要組成部分,越來越被重視。車牌識(shí)別技術(shù)的探索,促進(jìn)交通管理的智能化和網(wǎng)絡(luò)化,對(duì)于日益趨多的車輛管理的工作有較大幫助。本文提出基于樹莓派開發(fā)板的車牌識(shí)別系統(tǒng),實(shí)現(xiàn)物聯(lián)網(wǎng)技術(shù)下的車牌識(shí)別。

  1.總體結(jié)構(gòu)

  該車輛識(shí)別系統(tǒng)主要由臺(tái)式機(jī)、嵌入式開發(fā)板、攝像頭模塊三個(gè)部分組成設(shè)計(jì)圖如圖1所示。

車輛識(shí)別設(shè)計(jì)圖.jpg

 圖1 車輛識(shí)別設(shè)計(jì)圖


  該車輛識(shí)別系統(tǒng)包括嵌入式開發(fā)板、電源模塊、攝像頭模塊、臺(tái)式機(jī)模塊、通信模塊。臺(tái)式機(jī)作為服務(wù)器,控制與之連接的樹莓派開發(fā)板對(duì)車牌進(jìn)行拍照;通信模塊采用Java語言編寫,它們之間的通信通過TCP/IP協(xié)議,實(shí)現(xiàn)數(shù)據(jù)的交換和傳輸。嵌人式開發(fā)板接入互聯(lián)網(wǎng),配合攝像頭模塊可實(shí)現(xiàn)在停車場(chǎng)、小區(qū)門禁等需要進(jìn)行車輛身份驗(yàn)證的類似場(chǎng)景,快速識(shí)別車牌信息。

  2.組件分析

  2.1臺(tái)式機(jī)

  臺(tái)式機(jī)部分在Windows環(huán)境下,搭載了由VC2010開發(fā),OpenCV軟件輔助的識(shí)別系統(tǒng)。臺(tái)式機(jī)不斷接收來自嵌入式開發(fā)板的圖像數(shù)據(jù),圖像被處理識(shí)別后再由無線傳輸,將識(shí)別結(jié)果返回至嵌人式開發(fā)板。

  開發(fā)環(huán)境如下:Visual Studio是由微軟公司推出的開發(fā)環(huán)境。它是目前最流行的Windows平臺(tái)應(yīng)用程序開發(fā)環(huán)境之一。Microsoft Visual Studio 2010版本還支持支持微軟云計(jì)算架構(gòu)(Windows Azure)、移動(dòng)與嵌入式裝置開發(fā)以及當(dāng)前最熱門的敏捷軟件開發(fā)模型。

  OpenCv(Open Source Computer Vision Library)于1999年由 Intel公司建立,現(xiàn)如今為其提供支持的是 Wil-low Garage。OpenCV是一個(gè)計(jì)算機(jī)視覺函數(shù)庫,它是基于開源和跨平臺(tái)發(fā)行的。

  OpenCV作為一個(gè)外部函數(shù)庫,可以通過在 Windows、Linux環(huán)境下的IDE下配置連接,在編程開發(fā)時(shí)直接調(diào)用函數(shù)庫中各種算法對(duì)應(yīng)的函數(shù)就可以實(shí)現(xiàn)所需的操作,可以有效地加快開發(fā)速度。由于OpenCV專門針對(duì)Intel的處理器做了優(yōu)化,因此在Intel平臺(tái)下則表現(xiàn)出更快的速度。

  Tesseract是由Ray Smith于1985~1995年間在惠普布里斯托實(shí)驗(yàn)室開發(fā)出來的一個(gè)光學(xué)字符識(shí)別(Optical Charac-ter Recognition,OCR)引擎,曾經(jīng)在1995年UNLV精確度測(cè)試中名列前茅,但1996年后就停止了開發(fā)。2006年,Google邀請(qǐng)Smith加盟,重新啟動(dòng)了該項(xiàng)目。該項(xiàng)目目前可以支持 Windows、Linux和 Mac OS等主流平臺(tái)。Tes-seract-OCR 3.0.1以后發(fā)布的版本中加入了中文字符識(shí)別庫,可以實(shí)現(xiàn)對(duì)tif、bmp格式中含中文字符的圖像的識(shí)別。

  為了提高識(shí)別率,Tesseract-OCR還提供了樣本訓(xùn)練功能,用戶可以通過收集大量的樣本素材來訓(xùn)練自己的識(shí)別庫,從而可以提高用戶對(duì)某些特定性的字符的識(shí)別率。在Microsoft Visual Studio 2010平臺(tái)下用戶可以通過調(diào)用Tesseract-OCR提供的API接口,將自己訓(xùn)練的識(shí)別庫放入安裝目錄的tessdata中,配置環(huán)境變量后,對(duì)待識(shí)別的字符圖像進(jìn)行識(shí)別。

  2.2嵌入式開發(fā)板

  嵌入式開發(fā)板采用了當(dāng)下較為流行的樹莓派開發(fā)板。Raspberry是世界上最小的臺(tái)式機(jī),又稱卡片式電腦,外形只有****大小,卻具有電腦的所有基本功能。它是一款基于ARM的微型電腦主板,以SD/Micro SD卡為內(nèi)存硬盤,可連接鍵盤、鼠標(biāo)和網(wǎng)線,同時(shí)擁有視頻模擬信號(hào)的電視輸出接口和HDMI高清視頻輸出接口,只需接通電視機(jī)和鍵盤,就能執(zhí)行如電子表格、文字處理、玩游戲、播放高清視頻等諸多功能。

  本次使用的是樹莓派3B,相較于上代樹莓派,3B的性能更加強(qiáng)大,搭載1.2GHz的64位四核處理器,增加802.11 b/g/n無線網(wǎng)卡和低功耗的藍(lán)牙4.1,功耗也有小幅度的增加。

  3.無線通信傳輸

  由于臺(tái)式機(jī)接收到的圖像質(zhì)量好壞會(huì)直接影響到最終識(shí)別的準(zhǔn)確,因此如何將攝像頭拍攝的圖像準(zhǔn)確性﹑快速地傳遞給臺(tái)式機(jī)成了重中之重。TCP(Transmission Control Protocol,傳輸控制協(xié)議)是基于連接的協(xié)議,在正式收發(fā)數(shù)據(jù)前﹐必須和對(duì)方建立可靠的連接。由于TCP連接方式的可靠性,如圖2所示,使得圖片在傳輸過程中,數(shù)據(jù)的完整性得到保障。

TCP方式傳遞圖片.jpg

  圖2 TCP方式傳遞圖片


  樹莓派官方預(yù)搭載的編程開發(fā)環(huán)境包含了Java語言。Java語言是一種面向?qū)ο蟮恼Z言,它提供了基本的封裝方法來完成指定的任務(wù),只需要傳人必要參數(shù),即可調(diào)用相應(yīng)方法,得到想要的結(jié)果。Java也適用于小型機(jī),它的基本解釋器及類的支持只有40KB左右。此外,Java是面向網(wǎng)絡(luò)的語言,通過它提供的類庫可以處理TCP/IP協(xié)議,用戶可以通過URL地址在網(wǎng)絡(luò)上很方便地訪問其他對(duì)象。本次設(shè)計(jì)就使用了Java語言的TCP/IP封裝的方法。

  ①M(fèi)AC地址是上網(wǎng)設(shè)備的“身份證號(hào)碼”,具有全球唯一性。所以使用路由器綁定臺(tái)式機(jī)的MAC地址以及多臺(tái)樹莓派的MAC地址,指定其內(nèi)部網(wǎng)絡(luò)IP地址,可以方便管理。

 ?、谂_(tái)式機(jī)作為本次方案的服務(wù)器端,使用了Java多線程技術(shù),監(jiān)聽來自不同P地址的數(shù)據(jù),并將數(shù)據(jù)保存在指定文件目錄下。

 ?、蹣漭勺鳛楸敬畏桨傅目蛻舳?,通過Java封裝好的方法,實(shí)例化Socket流,連接指定IP地址的服務(wù)器端。在其拍照結(jié)束并檢查文件的合法性,確認(rèn)文件無異常后,通過字節(jié)流將文件發(fā)送給服務(wù)器。

IP地址分配圖.jpg

  圖3 IP地址分配圖


 ?、艽募_認(rèn)傳輸完畢后,釋放所有資源,等待下次命令的開啟。圖片通過網(wǎng)絡(luò),在發(fā)送端利用TCP/IP協(xié)議傳遞給臺(tái)式機(jī),若成功識(shí)別,會(huì)在指定目錄下生成txt文檔,保存車牌號(hào)。

  臺(tái)式機(jī)服務(wù)器端多線程部分:

臺(tái)式機(jī)服務(wù)器端多線程部分.jpg

  樹莓派客戶端發(fā)送數(shù)據(jù)部分:

樹莓派客戶端發(fā)送數(shù)據(jù)部分.jpg

  4.車輛識(shí)別過程

  (1)基于樹莓派的云端識(shí)別車牌方法,準(zhǔn)備過程如下:

 ?、匍_啟云端的電腦,接入互聯(lián)網(wǎng)。

 ?、诖蜷_電腦和樹莓派之間相應(yīng)的通信軟件和識(shí)別車輛的軟件,等待樹莓派連接,每連接一個(gè)樹莓派,開啟一條線程處理。

 ?、蹣漭蛇B接電源模塊,接通電源,為方便管理,為每一臺(tái)樹莓派設(shè)置好靜態(tài)固定的IP地址,通過無線網(wǎng)卡連接路由器。

 ?、軘z像頭正確連接樹莓派,裝入樹莓派保護(hù)盒內(nèi),保證工作狀態(tài)下減少外界干擾。并將樹莓派盒子內(nèi)攝像頭正對(duì)道路口,擺在需要車牌識(shí)別的地方。

  ⑤通過SSH方式開啟樹莓派通信模塊,驅(qū)動(dòng)攝像頭,開始工作。

  (2)捕捉車輛過程如下:

  ①樹莓派開啟后﹐拍攝圖片,并啟用上傳程序,發(fā)送給云端臺(tái)式機(jī)。

  ②云端臺(tái)式機(jī)收到連接請(qǐng)求,同意連接,并接受樹莓派發(fā)來的數(shù)據(jù)﹐保存在指定目錄下,啟動(dòng)識(shí)別車牌程序進(jìn)行車牌的識(shí)別。

 ?、廴糇R(shí)別程序成功定位到車牌,進(jìn)行識(shí)別車牌中的字符,并將結(jié)果保存在指定目錄。

  若識(shí)別程序未定位到車牌,將舍棄此次數(shù)據(jù),等待下次樹莓派數(shù)據(jù)的傳輸。云端識(shí)別流程圖如圖4所示。

  (3)識(shí)別程序工作過程如下:

  本系統(tǒng)基于開源發(fā)行的OpenCV跨平臺(tái)計(jì)算機(jī)視覺函數(shù)庫進(jìn)行設(shè)計(jì)和實(shí)現(xiàn),采用Microsoft Visual Studio2010開發(fā)平臺(tái),運(yùn)用MFC框架設(shè)計(jì)界面,使用C++語言編程,調(diào)用Tesseract-OCR對(duì)提取出的車牌字符進(jìn)行識(shí)別,主要分三步來實(shí)現(xiàn)車牌識(shí)別技術(shù):即車牌定位、字符分割、字符識(shí)別。車牌識(shí)別系統(tǒng)的工作的總流程如圖5所示。

云端識(shí)別流程圖.jpg

圖4 云端識(shí)別流程圖

車牌識(shí)別流程圖.jpg

圖5 車牌識(shí)別流程圖

  ①圖像的輸入。本系統(tǒng)處理的圖像都統(tǒng)一調(diào)整為像素為2592×1 456,經(jīng)過大量實(shí)驗(yàn),當(dāng)判定條件的面積選擇為大于10 000時(shí),能夠有效地去除掉微小噪點(diǎn)帶來的干擾。

 ?、谲嚺贫ㄎ?。此環(huán)節(jié)主要應(yīng)用形態(tài)學(xué)方法,對(duì)車牌進(jìn)行定位。

  ③字符分割環(huán)節(jié)采用閥值分割法,去除掉噪音的干擾,實(shí)現(xiàn)對(duì)車牌字符的分割,從而提取出車牌字符。

 ?、茏址R(shí)別環(huán)節(jié)則利用樣本訓(xùn)練方法,對(duì)字符分割后的圖像進(jìn)行識(shí)別。

  5.測(cè)試結(jié)果

  本系統(tǒng)最后對(duì)15張端正的車牌圖像進(jìn)行測(cè)試分析,統(tǒng)計(jì)了車牌完全識(shí)別正確率和車牌字符識(shí)別正確的個(gè)數(shù)。測(cè)試結(jié)果如表1所列,可以看出在共計(jì)15張照片中,完全識(shí)別正確的達(dá)到12,正確率為80.0%。字符共計(jì)105個(gè),完全識(shí)別正確的有820個(gè),字符識(shí)別的正確率達(dá)94.3%。

車牌識(shí)別結(jié)果統(tǒng)計(jì)表.jpg

  對(duì)于識(shí)別錯(cuò)誤的車牌,經(jīng)過分析一般都是圖像中車牌的位置出現(xiàn)較大的強(qiáng)光光斑干擾和車牌附著灰塵太多干擾造成,從而影響了對(duì)圖像車牌的識(shí)別。含有強(qiáng)光光斑的汽車圖像因素均會(huì)導(dǎo)致本系統(tǒng)的識(shí)別率下降。針對(duì)這一類圖像的識(shí)別,可以在采集圖像時(shí),通過攝像頭前增加偏光鏡片,來降低強(qiáng)光光斑干擾的程度,使得識(shí)別率有所提高。

  結(jié)語

  以上就是基于嵌入式開發(fā)板的車輛識(shí)別系統(tǒng)設(shè)計(jì)介紹了。該設(shè)計(jì)在成本上大大縮減了鋪設(shè)自動(dòng)識(shí)別車輛的設(shè)備的費(fèi)用,也免去了布線麻煩,功耗低等問題。

關(guān)注公眾號(hào)“優(yōu)特美爾商城”,獲取更多電子元器件知識(shí)、電路講解、型號(hào)資料、電子資訊,歡迎留言討論。

*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。




相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉