999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于嵌入式Linux的卡口車輛檢測系統設計

2016-08-01 07:19:23徐弘揚
網絡安全與數據管理 2016年12期

徐弘揚

(合肥工業大學 計算機與信息學院,安徽 合肥 230009)

?

基于嵌入式Linux的卡口車輛檢測系統設計

徐弘揚

(合肥工業大學 計算機與信息學院,安徽 合肥 230009)

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

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

引用格式:徐弘揚. 基于嵌入式Linux的卡口車輛檢測系統設計[J].微型機與應用,2016,35(12):87-89.

0引言

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

1系統總體設計

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

圖1 系統總體框架圖

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

2Linux平臺搭建

2.1OpenCV移植

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

(1)安裝OpenCV依賴庫

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

(2)配置OpenCV

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

2.2U-boot移植

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給出車牌定位的一般流程。

圖2 車牌定位一般流程

從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所示。

圖3 改進的車牌定位流程圖

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.

[2] 郭建,孫青,黃霞. 基于圖像引導的自動導引小車系統設計[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.

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

中圖分類號:TP391.4

文獻標識碼:A

DOI:10.19358/j.issn.1674- 7720.2016.12.028

(收稿日期:2016-02-23)

作者簡介:

徐弘揚(1992-),通信作者,男,碩士研究生,主要研究方向:嵌入式開發。E-mail:hongyang_xu@163.com。

Detecting system of intersection vehicles based on embedded Linux

Xu Hongyang

(School of Computer and Information, Hefei University of Technology, Hefei 230009, China)

Abstract:The system uses OpenCV and cross compiling to process image and identify license plate, and based on hardware platform of Samsung S3C6410 processor and software platform of Linux system, completes driver design of SD module and network module. In regard of massive data and timeout in processing digital image on ARM platform, the system proposes multiple threads and interrupt threading to enhance real-time.

Key words:embedded Linux; OpenCV; license plate identification; multiple threads; interrupt threading

主站蜘蛛池模板: 亚洲AV成人一区二区三区AV| 国产在线拍偷自揄拍精品| 国产精品永久免费嫩草研究院| WWW丫丫国产成人精品| 无码'专区第一页| 9久久伊人精品综合| a亚洲天堂| 亚洲欧洲日韩久久狠狠爱| 亚洲性色永久网址| 午夜精品福利影院| h视频在线播放| 国产精品成人久久| 久久精品丝袜| 亚洲精品777| 综合久久久久久久综合网| 伊人久久福利中文字幕| 成人av专区精品无码国产| 国产精品永久在线| 日韩毛片视频| 青青操视频在线| 亚亚洲乱码一二三四区| 国产香蕉97碰碰视频VA碰碰看| 26uuu国产精品视频| 影音先锋丝袜制服| 四虎影视8848永久精品| 国产精品视频第一专区| 国产日韩精品欧美一区灰| 日韩中文精品亚洲第三区| 亚洲欧美色中文字幕| 99爱在线| 一区二区三区成人| 日本在线视频免费| 美女视频黄又黄又免费高清| 国产幂在线无码精品| 超薄丝袜足j国产在线视频| 欧美亚洲国产日韩电影在线| 蜜臀AV在线播放| 蝌蚪国产精品视频第一页| 新SSS无码手机在线观看| 成人另类稀缺在线观看| 国产成人高清亚洲一区久久| 99国产精品国产高清一区二区| 欧美怡红院视频一区二区三区| 亚洲第一在线播放| 91探花在线观看国产最新| 精品久久久久久中文字幕女| 欧美性精品| 天天摸天天操免费播放小视频| 久久99精品久久久大学生| 亚洲伊人久久精品影院| 四虎永久免费在线| 亚洲成人免费看| 精品国产网| 丁香六月激情综合| 国产精品视频观看裸模| 青草精品视频| 国产综合精品一区二区| 国产精品hd在线播放| 一级成人欧美一区在线观看| 婷婷亚洲最大| 91破解版在线亚洲| 国产99久久亚洲综合精品西瓜tv| 91亚洲精品第一| 黄色片中文字幕| 日本不卡免费高清视频| 国产日本欧美亚洲精品视| 国产SUV精品一区二区6| 国产一区在线视频观看| 国产精品网址你懂的| www中文字幕在线观看| 在线免费观看AV| 理论片一区| 18禁影院亚洲专区| 国产SUV精品一区二区| 四虎国产精品永久在线网址| 亚洲水蜜桃久久综合网站| 成年A级毛片| 国产一级二级三级毛片| 国产主播在线观看| 亚洲天堂777| 狠狠色香婷婷久久亚洲精品| 在线国产欧美|