《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于嵌入式Linux的卡口車輛檢測系統設計
基于嵌入式Linux的卡口車輛檢測系統設計
2016年微型機與應用第12期
徐弘揚
(合肥工業大學 計算機與信息學院,安徽 合肥 230009)
摘要: 系統以三星處理器S3C6410為硬件平臺,Linux操作系統為軟件平臺,利用OpenCV視覺算法庫和交叉編譯環境,在ARM平臺上進行圖像處理與車牌識別,并完成了SD卡模塊、網絡模塊和圖像采集模塊的驅動開發。針對在ARM平臺上處理數字圖像數據量大、耗時長的情況,提出了多線程處理模式和中斷線程化方法,極大地提高了系統的實時性。
Abstract:
Key words :

  徐弘揚

 ?。ê戏使I大學 計算機與信息學院,安徽 合肥 230009)

  摘要:系統以三星處理器S3C6410為硬件平臺,Linux操作系統為軟件平臺,利用OpenCV視覺算法庫和交叉編譯環境,在ARM平臺上進行圖像處理與車牌識別,并完成了SD卡模塊、網絡模塊和圖像采集模塊的驅動開發。針對在ARM平臺上處理數字圖像數據量大、耗時長的情況,提出了多線程處理模式和中斷線程化方法,極大地提高了系統的實時性。

  關鍵詞嵌入式Linux;OpenCV;車牌識別;多線程;中斷線程化

0引言

  與基于X86平臺的傳統圖像處理系統相比,嵌入式系統具有專用性強、處理速度快、軟硬件可裁剪等優點[1]。本文基于ARM平臺和OpenCV視覺算法庫,采用多線程處理模式和中斷線程化方法,實現對車牌圖像的快速處理與識別。

1系統總體設計

  本系統主要由S3C6410處理器、圖像采集模塊、紅外對射模塊、SD卡模塊和網絡通信模塊組成。總體結構框圖如圖1所示?! ?/p>

001.jpg

  紅外對射模塊檢測等待區是否有車輛,如有車輛停放,發送信號給處理器,并啟動攝像頭采集圖像[2];SD卡模塊用于存放車牌字符的模板庫,處理器識別出車牌號并與SD卡中的字符模板進行匹配;網絡通信模塊將車輛圖像信息直接上傳給服務器。

2Linux平臺搭建

  2.1OpenCV移植

  考慮到圖像處理算法設計難度大、開發周期長、代碼效率低等問題,本系統在Linux開發環境下,調用成熟高效的OpenCV函數庫,利用交叉編譯,生成在目標機上可運行的代碼。

 ?。?)安裝OpenCV依賴庫

  OpenCV依賴于libpng、libjpeg、libstdcpp、libpthread等庫,而這些庫又依賴于其他一些庫文件,所有需依賴的庫都要編譯安裝。

  (2)配置OpenCV

  進入OpenCV根目錄,運行./config,對OpenCV進行配置:--host=arm-linux指定交叉編譯為ARM平臺;--enablestatic表示生成靜態庫。

  2.2-Uboot移植

  Bootloader是系統上電/復位后,內核啟動程序之前的一小段代碼,其功能是初始化硬件設備,并將操作系統內核裝載到RAM中運行。U-boot作為一個主流、通用的Bootloader,被成功移植到包括PowerPC、ARM、X86、MIPS等多種體系結構的處理器上。

  2.2.1網卡驅動移植

  系統采用DM9000網卡控制器進行網絡通信,所以需要在板級配置文件My6410.h中屏蔽掉原有的cs8900配置,并添加對DM9000的支持。

  要使掛接在BANK1上的DM9000正常工作,需要配置SROM控制器相關的寄存器。在板級初始化文件My6410.c中,添加DM9000初始化函數dm9000_init(),并修改寄存器SROM_BCn相應位值。

  #define DM9000_Tacs0x2/*2clk

  #define DM9000_Tcos0x1/*0clk

  #define DM9000_Tacc0x1/*2clk

  #define DM9000_Tcoh0x0/*0clk

  #define DM9000_Tcah0x2/*2clk

  #define DM9000_Tacp0x2/*2clk

  #define DM9000_PMC0x0/*1data

  2.2.2SD卡驅動移植

  U-boot中并沒有實現針對S3C6410 SD/MMC控制器的驅動程序,需要自行添加代碼,實現SD卡的初始化、命令處理、塊設備讀等操作。

  驅動文件sd_driver.c中,函數sd_init()實現SD卡初始化,它首先對SD/MMC主控制器時鐘、中斷等進行初始化,然后通過主控制器向SD卡發送命令,命令操作通過函數sd_cmd()實現。SD卡讀操作函數sd_read用于從SD卡中將源地址從src開始,大小為size的數據讀取到dst指定的地址中。sd_read函數原型為:

  sd_read(src,dst,blkcnt *sd_block_size)

  2.2.3USB驅動移植

  本系統采用USB接口的圖像采集模塊,為使該模塊正常工作,需要移植USB驅動。U-boot中已經實現了較完整的主機OHCI驅動,但沒有USB設備驅動的代碼,所以需要添加這部分代碼。

  在板級配置文件My6410.h中進行相應配置,使U-boot支持USB設備驅動、USB主機驅動及命令和USB存儲設備,并在include/s3c6410.h中完善對S3C6410 USB OTG控制器寄存器的定義。

3車輛圖像處理

  對于攝像頭采集的車輛圖像處理主要分為3個步驟:車牌定位、字符分割和字符識別。其中,車牌定位是整個處理過程的基礎,其定位的準確與否直接影響到車牌的字符分割和識別效果。圖2給出車牌定位的一般流程。  

002.jpg

  從OpenCV函數庫角度來說,調用cvCvtColor函數對彩色圖像進行灰度化處理;利用Soble算子對圖像進行垂直方向的邊緣檢測;再對圖像進行閾值分割,取合適的閾值,將圖像轉換為二值圖像;為了消除圖像噪聲,還要對其進行濾波操作,本系統采用的是形態學濾波方法,先使用閉運算操作再使用開運算操作,兩種運算都包含腐蝕與膨脹;形態學運算后得到少部分矩形區域,即為車牌的候選區域,可以使用cvFindContours函數來實現輪廓檢測,然后根據我國車牌長寬比的特征,即44:14,定位車牌區域。

  車牌區域提取出來后,要將車牌字符分割,由于可能存在車牌傾斜的情況,導致字符分割與識別不準確,因此要先使用Hough算法[3]對車牌進行傾斜校正,然后將車牌字符在垂直方向上投影,字符之間的間隙會在投影上產生低谷,從而實現字符分割。分割完成后,對各個字符進行識別,采用基于模板匹配的ORC算法,將字符尺寸縮放至與SD卡中存儲的模板大小一致并匹配,得出最佳的匹配結果。

4系統實時性改進

  本系統采用三星S3C6410處理器,該CPU基于ARM1176JZF-S內核,由8級流水線組成,主頻可達522 MHz,最高可達667 MHz,但由于在ARM平臺上處理數字圖像數據量大、過程復雜的特點,系統實時性還有待提高。

  4.1多線程處理

  線程是進程的一個實體,是CPU調度和分配的基本單元,它不擁有系統資源,但可與同一進程中的其他線程共享該進程的所有資源。本系統采用多線程處理方法,主程序中創建4個線程,分別用于圖像采集、圖像解壓、灰度化和網絡通信。圖像采集線程從圖像傳感器中讀取圖像信息,圖像解壓線程利用libjpeg庫將讀取到的JPEG圖像轉換為BMP圖像,灰度化線程對得到的BMP圖像進行灰度化處理,網絡通信線程用于將讀取到的圖像發送給服務器。為此,還要創建兩個FIFO,用于線程間的資源共享,第一個FIFO用來存放圖像采集線程讀取到的圖像信息,可被圖像解壓線程和網絡通信線程共享;第二個FIFO用來存放解壓后的圖像數據,用于灰度化線程的處理。這4個線程并發執行,大大提高了CPU的利用率和處理速度,便于實時控制。

  得到灰度化圖像之后,還需對圖像進行進一步處理,如果按照“邊緣檢測—二值化—形態學濾波”的步驟執行,則耗時太長,不利于提高系統實時性。這里開啟3個線程,分別用于邊緣檢測、二值化和形態學濾波。由于這3個線程執行過程中有依賴關系,因此還要創建兩個FIFO,分別用于存放邊緣檢測后的圖像數據和二值化后的圖像數據。改進后的車牌定位流程圖如圖3所示?! ?/p>

003.jpg

  4.2中斷線程化

  在Linux標準內核中,中斷是最高優先級的執行單元,當中斷觸發時,內核必須立即響應中斷并執行響應的中斷處理程序,且不會被其他任何程序打斷,這會導致實時任務得不到及時處理,如果系統IO負載嚴重,中斷會非常頻繁,實時任務很難有機會運行[4]。本系統采用中斷線程化方式,為中斷創建線程,中斷作為內核線程被賦予相應的優先級,該優先級可以低于對實時性要求更高的任務,確保實時任務被優先快速執行,提高系統實時性[5]。

  具體實現方法為:在內核初始化函數init()中調用init_hardirqs()函數,為相應中斷創建一個內核線程,并分配優先級。本系統中主要有3種中斷:SD卡傳輸中斷、網絡傳輸中斷和OTG中斷。

  創建中斷線程函數:desc->thread = kthread_create(do_irqd,desc,“IRQ %d”,irq),irq為相應中斷的中斷號。

  當中斷發生時,系統調用do_IRQ()函數,處理與架構相關的部分,然后調用_do_IRQ()函數判斷中斷描述符的狀態字段是否包含SA_NODELAY標志,若包含則該中斷已被線程化,喚醒相應的中斷處理線程;反之則調用handle_IRQ_event()函數直接轉入中斷服務程序處理。

5結論

  本系統基于Linux軟件平臺和ARM硬件平臺,利用OpenCV視覺算法庫,在嵌入式系統上實現車牌識別。該系統與基于X86平臺的系統相比,實現了系統專用性、便攜性等特點;與基于DSP平臺的系統相比,大大降低了成本。針對ARM平臺處理數字圖像系統實時性不足問題,提出多線程處理和中斷線程化方法,極大地提高了系統的實時性。實驗結果表明,采用這種方法,從采集圖像到完成識別所用時間大大減少,系統執行效率極大提高,完全能夠滿足實時處理數字圖像的需求。

參考文獻

  [1] 田紅鵬,焦鑫. 基于嵌入式Linux和OpenCV的車牌定位方法[J]. 計算機工程與設計,2014,35(11):39083911.

 ?。?] 郭建,孫青,黃霞. 基于圖像引導的自動導引小車系統設計[J]. 測控技術,2012,31(7):3841.

  [3] MUKHOPADHYAY P,CHAUDHURI B B. A survey of Hough transform[J].Pattern Recognition,2015,48(3):9931010.

  [4] 孫首昌,韓紅芳,孟煜. 嵌入式Linux實時技術改進與實現[J]. 微計算機信息,2007,23(122):6768.

 ?。?] 單承剛. 嵌入式Linux下的實時性增強方案[J]. 電子技術應用,2010,36(7):137139.


此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          国产精品欧美在线| 久久久久久免费| 禁久久精品乱码| 欧美午夜精品久久久| 国产精品久久久久久久久久免费看| 国产精品久久一区主播| 久久爱www| 亚洲欧美在线视频观看| 中文亚洲欧美| 免费一级欧美片在线观看| 黄色成人在线免费| 免费观看一区| 亚洲欧洲日本一区二区三区| 欧美精品1区2区3区| 欧美私人啪啪vps| 亚洲欧洲日韩综合二区| 午夜精品久久久久久久99黑人| 91久久久久久久久久久久久| 欧美影院在线| 欧美aⅴ一区二区三区视频| 欧美日韩免费观看中文| 日韩一级大片在线| 黄色成人免费观看| 亚洲日本成人在线观看| 亚洲欧美日韩综合| 国产丝袜一区二区三区| 国产综合在线视频| 亚洲午夜视频| 欧美刺激午夜性久久久久久久| 国产精品久久久久久久久借妻| 在线观看精品| 国产精品久久久久高潮| 欧美在线视屏| 午夜亚洲激情| 久久久久国产精品一区三寸| 久久综合久色欧美综合狠狠| 亚洲欧洲另类国产综合| 亚洲影视综合| 亚洲人成在线影院| 亚洲自拍都市欧美小说| 国产精品视频精品| 国产精品成人国产乱一区| 性感少妇一区| 亚洲第一中文字幕| 亚洲国产视频一区二区| 国产精品麻豆欧美日韩ww| 国产精品女同互慰在线看| 亚洲国产精品va在线看黑人动漫| 欧美一区亚洲一区| 亚洲人成在线播放网站岛国| 国外成人免费视频| 久久精品二区亚洲w码| 在线观看亚洲a| 欧美三级日本三级少妇99| 欧美日韩99| 欧美精品三级| 欧美伦理a级免费电影| 久久亚洲精品一区| 亚洲一区二区三区涩| 一区二区三区欧美成人| 香蕉av福利精品导航| 亚洲精品日产精品乱码不卡| 激情伊人五月天久久综合| 久久青草久久| 国产日韩在线亚洲字幕中文| 欧美波霸影院| 欧美高清视频www夜色资源网| 国产深夜精品| 国产精品视频免费| 免费欧美网站| 亚洲国产精品一区二区www| 欧美日韩免费看| 国产精品久久久一区麻豆最新章节| 黄色影院成人| 国产欧美一级| 久久精品视频播放| 久久精品二区亚洲w码| 国产精品成人久久久久| 久久久久91| 欧美成人精品一区二区| 性欧美video另类hd性玩具| 久久精品成人一区二区三区| 亚洲精品免费电影| 亚洲国产日韩精品| 亚洲一二区在线| 欧美日韩亚洲一区二区三区在线观看| 久久国产精品一区二区三区| 国产精品午夜在线观看| 国产日韩在线亚洲字幕中文| 国产精品日韩专区| 国产精品久久久久久久久久久久久| 亚洲黄色小视频| 亚洲国产欧洲综合997久久| 国产亚洲第一区| 在线视频你懂得一区| 欧美激情一级片一区二区| 欧美乱大交xxxxx| 亚洲日本免费| 韩国三级电影一区二区| 亚洲一区二区高清视频| 亚洲国产婷婷| 一区二区在线观看av| 男女激情久久| 久久久久国产免费免费| 蜜桃精品久久久久久久免费影院| 国产精品日日摸夜夜添夜夜av| 欧美一级大片在线免费观看| 欧美在线观看你懂的| 亚洲一区二区视频在线观看| 日韩亚洲欧美一区| 中文精品视频一区二区在线观看| 欧美久久婷婷综合色| 亚洲日本黄色| 韩国欧美国产1区| 一区二区三区不卡视频在线观看| 国产有码在线一区二区视频| 欧美精品在线观看91| 99精品视频免费全部在线| 久久激情视频久久| 欧美激情中文字幕在线| 欧美自拍偷拍午夜视频| 免费观看欧美在线视频的网站| 国产日韩精品一区二区| 亚洲欧美日本伦理| 在线日韩av片| 欧美日韩亚洲一区二区三区在线| 久热精品视频| 亚洲片国产一区一级在线观看| 亚洲视频在线观看视频| 亚洲一级网站| 欧美视频在线观看视频极品| 亚洲一区国产精品| 亚洲国产成人精品视频| 亚洲欧美精品在线| 欧美日韩成人| 久热爱精品视频线路一| 亚洲一区视频在线观看视频| 久久夜色精品国产欧美乱| 亚洲日本欧美日韩高观看| 欧美午夜电影在线| 亚洲国产精品va在看黑人| 99精品免费网| 亚洲精品在线一区二区| 亚洲一区二区在线视频| 国产精品一二三| 欧美va天堂在线| 欧美在线首页| 欧美日韩第一页| 午夜精品福利电影| 一区二区视频欧美| 欧美性视频网站| 欧美在线地址| 久久福利视频导航| 一区二区三区免费在线观看| 欧美日韩国产成人| 免费观看成人网| 国产一区二区0| 老司机精品导航| 亚洲精品麻豆| 亚洲狠狠丁香婷婷综合久久久| 亚洲性感激情| 亚洲午夜av电影| 久久久久久色| 国产三区二区一区久久| 国产精品区免费视频| 亚洲国产成人av好男人在线观看| 国产亚洲精品bv在线观看| 欧美—级高清免费播放| 一本色道久久综合精品竹菊| 国产欧美精品久久| 99re亚洲国产精品| 欧美电影免费观看大全| 国产欧美日韩91| 亚洲免费伊人电影在线观看av| 免费日韩精品中文字幕视频在线| 在线播放不卡| 国产精品高清在线观看| 欧美日韩一区二区在线视频| 免费亚洲电影在线| 亚洲影视九九影院在线观看| 亚洲国产成人午夜在线一区| 亚洲欧美日韩爽爽影院| 国产欧美在线观看一区| 欧美日韩一区三区| 亚洲欧美日本国产专区一区| 亚洲毛片av在线| 中日韩高清电影网| 亚洲欧美日本伦理| 国产欧美精品一区| 久久不射电影网| 日韩视频免费观看高清在线视频| 国产精品久久久久国产a级| 国产一区二区三区在线观看网站| 一本色道久久综合亚洲精品不卡| 麻豆国产精品一区二区三区| 久久精品国产一区二区三| 亚洲欧美日韩国产中文| 久久中文字幕一区二区三区| 亚洲无线视频| 久久精品国内一区二区三区| 欧美日韩国产黄| 香蕉尹人综合在线观看| 欧美午夜在线一二页| 国产精品入口尤物| 亚洲缚视频在线观看| 欧美亚洲一区三区| 卡通动漫国产精品| 香蕉av777xxx色综合一区| 亚洲网站在线| 亚洲激情国产| 国产一区二区三区在线观看免费| 亚洲久久一区| 欧美在线观看视频在线| 久久久999成人| 亚洲激情第一区| 欧美午夜三级| 亚洲欧美日韩国产| 亚洲欧洲免费视频| 欧美激情亚洲另类| 在线日韩av永久免费观看| 久久久久久久久久码影片| 国产精品亚洲美女av网站| 亚洲电影免费在线| 一区二区亚洲精品国产| 欧美日韩成人网| 亚洲精品欧美极品| 国产欧美一区二区三区沐欲| 国产精品乱码一区二区三区| 欧美1区2区3区| 香蕉免费一区二区三区在线观看| 国产日韩欧美综合一区| 欧美小视频在线观看| 免费亚洲电影在线观看| 美女主播一区| 欧美一区二区在线免费播放| 欧美精品电影在线| 久久久精品999| 亚洲日本成人| 精品9999| 国产欧美日韩一区二区三区| 亚洲第一福利在线观看| 中国成人亚色综合网站| 久久av红桃一区二区小说| 国产综合久久久久久鬼色| 蜜月aⅴ免费一区二区三区| 欧美激情综合| 91久久线看在观草草青青| 欧美日韩国产999| 久久久国产精品一区| 国产精品激情偷乱一区二区∴| 在线国产日韩| 亚洲欧美日本视频在线观看| 亚洲国产精品日韩| 欧美影院在线| 1000部精品久久久久久久久| 在线国产欧美| 亚洲日本中文字幕区| 最近中文字幕mv在线一区二区三区四区| 亚洲免费在线播放| 一区二区三区**美女毛片| 国产精品色在线| 亚洲二区在线观看| 欧美不卡一卡二卡免费版| 欧美日本一道本| 久久九九精品99国产精品| 亚洲国产精品一区在线观看不卡| 欧美日韩一区成人| 欧美精品日韩精品| 美女性感视频久久久| 亚洲无线视频| 久久综合免费视频影院| 黄色一区二区三区四区| 久久久噜噜噜久久久| 国内精品久久久久久影视8| 99视频在线精品国自产拍免费观看| 久久亚洲欧美国产精品乐播| 久久精品成人欧美大片古装| 亚洲精品视频免费观看| 久久精品五月| 欧美日韩的一区二区| 午夜精品久久久久久久99水蜜桃| 国产视频一区二区在线观看| 国产精品美女久久福利网站| 亚洲剧情一区二区| 久久国产夜色精品鲁鲁99| 一区二区三区 在线观看视| 亚洲精品乱码久久久久久日本蜜臀| 欧美午夜在线一二页| 免费在线成人av| 麻豆精品视频在线观看视频| 国产麻豆成人精品| 亚洲美女av电影| 黄色影院成人| 国产欧美精品一区二区三区介绍| 国产综合在线看| 亚洲午夜黄色| 亚洲在线国产日韩欧美| 国产欧美日韩伦理| 亚洲激情在线观看视频免费| 9久草视频在线视频精品| 亚洲一区二区在线| 国产精品久久久久久久第一福利| 美女脱光内衣内裤视频久久影院| 欧美午夜欧美| 国产一区深夜福利| 欧美极品影院| 欧美日韩国产系列| 一本色道久久99精品综合| 欧美精品免费在线| 好男人免费精品视频| 久久久久久久综合日本| 一本色道婷婷久久欧美| 亚洲综合清纯丝袜自拍| 亚洲精品孕妇| 欧美在线播放视频| 亚洲精品乱码| 一区二区三区毛片| 一区二区免费在线视频| 在线观看欧美日韩| 香蕉久久夜色精品| 亚洲欧美日韩一区二区| 国产精品高清在线| 久久久青草青青国产亚洲免观| 免费精品99久久国产综合精品| 国产精品国内视频| 欧美日韩大陆在线| 欧美亚洲一级片| 蜜臀99久久精品久久久久久软件|