版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
精品文檔-下載后可編輯基于NiosII的二維條碼識別系統(tǒng)設計-設計應用摘要隨著SOPC技術的日益成熟,基于SOPC技術的嵌入式系統(tǒng)得到廣泛應用。本文采用SOPC技術,以EP2C35為主控芯片,實現(xiàn)二維條碼識別系統(tǒng)的設計,并提出一種適用于嵌入式系統(tǒng)的PDF417條碼識別算法。實驗表明,該識別系統(tǒng)能夠快速準確地識別二維條碼,效果良好。
二維條碼PDF417中PDF為PortableDataFile的縮寫,每一個PDF碼的儲存量可高達1108字節(jié),若將數(shù)字壓縮則可存放2729字節(jié)。作為一種新的信息存儲和傳遞技術,PDF417具有成本低、信息可隨載體移動、不依賴于數(shù)據(jù)庫和計算機網(wǎng)絡、保密防偽性能強等優(yōu)點,廣泛應用在國防、公共安全、交通運輸、醫(yī)療保健、工業(yè)、商業(yè)、金融、海關及政府管理等領域,PDF417碼的例子如圖1所示。
圖1PDF417二維條碼
1系統(tǒng)總體設計
本系統(tǒng)在FPGA上使用SOPC技術來實現(xiàn)無線手持二維條碼識讀器,與傳統(tǒng)一維條碼識讀器的區(qū)別在于完全脫離后臺數(shù)據(jù)庫,以及在高達50%破損率的情況下能夠進行高效率識別。
SOPC技術是一種基于FPGA解決方案的SOC,由美國Altera公司于2000年提出。基于SOPC平臺的開發(fā)結合了FPGA靈活可編程與片上NiosII軟核處理器的用戶可配置等特點。在實現(xiàn)某功能時,通過在NiosII處理器下編寫C程序運行,也可以使用硬件模塊來加速。本系統(tǒng)綜合兩種實現(xiàn)思路,采用高性價比的CycloneIIEP2C35系列FPGA實現(xiàn),系統(tǒng)總體結構如圖2所示。
圖2系統(tǒng)總體結構框圖
整個系統(tǒng)由低到高分為三個層次:條碼識別的硬件平臺、μC/OSII操作系統(tǒng)、條碼譯碼算法。層硬件平臺采用Altera公司的CyloneIIEP2C35與ADI公司的視頻解碼芯片ADV7181B,具有8MB的Flash存儲器,1MB的SRAM等外設;中間層μC/OSII操作系統(tǒng)提供任務調(diào)度和設備驅(qū)動,以及提供各種中斷來實現(xiàn)對外界請求的響應,如模式切換、LCM顯示、射頻傳送等,有效地提高了系統(tǒng)運行速率;頂層條碼譯碼算法包括了對條碼圖像的預處理和對譯碼數(shù)據(jù)的RS糾錯,采用C語言在NiosII的集成開發(fā)環(huán)境中(IDE)實現(xiàn)。
1.1系統(tǒng)硬件結構
系統(tǒng)通過配置視頻采集芯片ADV7181B,通過圖像采集子系統(tǒng)將CCD采集到的條碼數(shù)據(jù)存儲在SRAM中后,產(chǎn)生硬件中斷,處理器響應中斷,Nios對SRAM中的數(shù)據(jù)進行圖像預處理、譯碼及糾錯,通過譯碼算法硬件加速模塊對耗時較多部分算法進行優(yōu)化,在實現(xiàn)條碼數(shù)據(jù)譯碼及糾錯后,產(chǎn)生射頻傳送和LCM顯示中斷,進入中斷程序?qū)⒆g碼數(shù)據(jù)通過射頻傳輸模塊發(fā)送到上位機,并且在LCM實時顯示。其硬件平臺結構原理如圖3所示。
圖3系統(tǒng)硬件結構原理框圖
1.2圖像采集子系統(tǒng)
由于本設計采用的是灰度圖,因此圖像采集子系統(tǒng)的主要功能是:配置采集芯片,從解碼芯片讀出數(shù)據(jù)流,根據(jù)行場同步信號對數(shù)據(jù)流進行分離,提取出亮度信號,并將采集到的亮度信號通過乒乓緩存存入SRAM中。
在設計中,采用ADI的解碼芯片ADV7181B進行圖像信號的數(shù)模轉(zhuǎn)換,F(xiàn)PGA中的I2C模塊是作為主設備來對ADV7181B進行配置的,而ADV7181B作為從設備來接受I2C總線傳來的數(shù)據(jù),實現(xiàn)芯片的初始化、寄存器的配置等。圖4中TD_DA為數(shù)據(jù)信號,TD_VS為場同步信號,TD_HS為行同步信號。
圖4圖像采集子系統(tǒng)
系統(tǒng)上電時,I2C配置模塊將對ADV7181B的內(nèi)部寄存器進行配置,ADV7181B將模擬信號轉(zhuǎn)換為Y∶U∶V為42∶2∶2的8位CCIR656數(shù)字信號,其中輸出的時序包括行場同步、行場消隱、行頻場頻及場識別等信號。
CCD攝像頭采集的圖像實際尺寸為768×576像素,每幀圖像由奇場數(shù)據(jù)和偶場數(shù)據(jù)交錯組合而成,奇場數(shù)據(jù)與偶場數(shù)據(jù)在時間上是先后輸入的。本設計使用的是320×240的液晶顯示屏,在處理過程中也采用的是320×240的圖片格式,所以要對攝像頭采集的圖片進行提取。在設計中僅采奇場數(shù)據(jù)的中間240行,并對每行中間的640個數(shù)據(jù)每兩個像素抽取一個像素,從而得到符合系統(tǒng)要求的圖像大小。由于一幀圖像的奇場數(shù)據(jù)與偶場數(shù)據(jù)實際上非常接近,而每行的相鄰兩個像素值也幾乎沒有差異,因此可以得到原輸入圖的縮小圖像而不會有失真。
圖5乒乓緩存
圖像存入SRAM采用了乒乓緩存,如圖5所示,是為了防止寫出速度快于寫入速度而導致出現(xiàn)錯誤數(shù)據(jù)。采用兩個行緩存進行乒乓切換,在數(shù)據(jù)提取子模塊向行A寫入數(shù)據(jù)時,數(shù)據(jù)寫出子模塊讀取行緩存B中的數(shù)據(jù)輸出到總線;在對下一行進行采集時,對行緩存A讀數(shù)據(jù),對行緩存B寫數(shù)據(jù)。因此行緩存寫路選器與行緩存讀路選器在同一時刻選通的一定是不同的行緩存。
2條碼識別算法
條碼譯碼主要流程是首先對條碼進行自適應二值化,然后對條碼進行定位、旋轉(zhuǎn)、分割。分割出單個碼字后,通過邊緣檢測,得到條碼條空序列模塊寬度后,再進行糾錯解碼。
傳統(tǒng)條碼識別算法[23]在對條碼定位時多采用Hough變換,通過Hough變換提取條碼圖像中的直線傾角來旋轉(zhuǎn)條碼。但是Hough變換的大運算量并不適用于實時性要求高的的嵌入式設備。筆者結合PDF417條碼自身的特點,采用4點定位的方法來分割條碼,有效提高條碼識別速度。算法流程詳細步驟如下:
(1)條碼定位
實際采集條碼時會出現(xiàn)各種傾斜,如圖6所示。如何定位條碼是關鍵的問題??梢岳脳l碼起始頭特有的比例來定位。按照國標的定義,PDF417二維條碼的起始符黑白條空比是81111113,終止符黑白條空比是711311121。掃描圖像的每一行,分別匹配起始符和終止符的條空比??紤]到條碼采集過程中,邊緣受高斯點擴展函數(shù)的影響,只要黑白條空比例的誤差不超過三位,可近似認為符合比例。標記所有符合起始符條空比比例條碼線段,可以得到4個控制點a、b、c、d,用同樣的方法可以尋找符合終止符條空比的條碼線段,確定點e、f、g、h。判斷a、c、e、g是否為正確控制點的標準是,平行邊長度誤差在5個像素點內(nèi),且相鄰邊角度為90°,其誤差角度為2°。
圖6起始點和終止點的確定
計算過點c、g的直線與水平方向的夾角,即為條碼要旋轉(zhuǎn)的角度。
(2)圖像旋轉(zhuǎn)插值
根據(jù)直線cg的傾角將條碼旋至水平,如果旋轉(zhuǎn)中的灰度插值采用鄰近插值法,會產(chǎn)生鋸齒形的邊界。筆者采用雙線性插值[4],對相鄰的4個像素進行插值,對應單位正方形上任意一點f(x,y)有:
(3)行條碼分割及行高確定
由于PDF417條碼是層疊式條碼,在對單行條碼碼字進行識別時,必須得到條碼的行數(shù),然后分離出每一行。首先對條碼使用Sobel算子進行水平邊緣檢測,如圖7所示,然后向水平方向投影,如圖8所示。
已知p(x)對應投影的峰值,也就條碼的邊界,通過對投影下來的每個值求差分▽p(x),然后逐個判斷各個差分值,如果連續(xù)兩個投影的差分值前一個是負數(shù)而后一個是0或者正數(shù),則說明此點是峰值。峰值處的坐標即為條碼分層的地方,考慮到條碼層與層連接的地方在二值化時會出現(xiàn)噪點,則取每層條碼圖像中間的50%作為有效圖像。
(4)碼字識別
分割出單個碼字后,得到條空的像素個數(shù),記為{M1,M2,…,M8},因為4個條和4個空的總模塊數(shù)為17,可以根據(jù)式(1)得出條模塊數(shù)的集合{T1,T2,T3,T4}。同樣,用Ki替代式(1)中的Ti,可得到空模塊數(shù)的集合{K1,K2,K3,K4}。
因PDF417條碼用了三個簇的數(shù)據(jù)來組成一個條碼,三個簇的數(shù)據(jù)量較大,且每個簇中的數(shù)據(jù)與條空比無一致對應關系,所以就涉及把條空比轉(zhuǎn)換成條碼數(shù)據(jù)的問題。本算法采用的解決方案是:用哈希算法[5]來查找:
式(2)中Z為空1模塊數(shù)和條2模塊數(shù)的組合,再利用F的值進行查找,實現(xiàn)數(shù)據(jù)流的譯碼。數(shù)據(jù)流譯碼不是本文重點,這里不再詳細闡述。
3系統(tǒng)軟件設計
圖9系統(tǒng)軟件流程圖
系統(tǒng)軟件是在NiosII的μC/OSII操作系統(tǒng)下進行C語言編程的。系統(tǒng)初始化主要包括對采集芯片、射頻傳輸控制模塊、網(wǎng)絡接口的初始化,整個系統(tǒng)動態(tài)掃描條碼圖像和實時譯碼。系統(tǒng)主要流程如圖9所示。其中,系統(tǒng)初始化時利用函數(shù)IOWR(SIGNAL_CAP_0_BASE,0,1)將采集模塊全局信號復位,然后使用函數(shù)alt_irq_register(SIGNAL_CAP_0_IRQ,NULL,sig_cap_irq_proc)來建立一個用戶中斷程序[6],對按鍵中斷響應進入中斷服務程序sig_cap_irq_proc,向攝像頭發(fā)送采集指令。當采集模塊完成一幅條碼圖像采集后,產(chǎn)生一個硬件中斷,將標志FLAG置1。當主循環(huán)程序判斷FLAG為1時,就可以從外擴的SRAM中將圖像數(shù)據(jù)讀入SDRAM中,接著進行圖像預處理和譯碼,其中包括用自定義用戶指令和硬件模塊實現(xiàn)的一些運算量大的部分。射頻傳輸與NiosII的PIO口相連,通過函數(shù)IOWR_ALTERA_AVALON_PIO_DATA來實現(xiàn)。
4實驗與分析
本識別系統(tǒng)工作頻率為100MHz,圖像采樣分辨率為320×240,一幅條碼圖像識別時間為60ms。本系統(tǒng)有如下幾個特點:
①利用PDF417碼本身的特點來定位分割條碼,與傳統(tǒng)的條碼定位分割算法相比,大大提高了條碼識別速率。傳統(tǒng)二維條碼定位分割多采用Hough變換來確定條碼傾斜角度,不能滿足手持式嵌入式條碼識讀器的實時性要求。
②在FPGA中嵌入NiosII軟核處理器,簡化硬件設計,同時使系統(tǒng)更加穩(wěn)定。FPGA的可重配置以及SOPC的可裁減使系統(tǒng)具有很高的資源利用率,而且方便升級和維護。
③利用自定義模塊、自定義指令、C2H硬件加速等方法[78]對部分耗時算法進行優(yōu)化,大大提高了整個系統(tǒng)識別速率。
筆者針對不同環(huán)境下采集的300幅條碼圖像進行了三次測試:次是在條碼無破損的情況下,第二次是在條碼有5%破損和污染的情況下,第三次隨機識別100幅條碼。本文所采用的算法平均識別率達96.7%,耗時60ms,如表1所列。
表1測試結果
結語
二維條形碼
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026湖南懷化國際陸港經(jīng)濟開發(fā)區(qū)內(nèi)國有企業(yè)招聘4人考試備考題庫附答案
- 2026玉溪師范學院附屬實驗學校、玉溪師范學院附屬小學區(qū)外人才引進(28人)備考題庫附答案
- 2026福建廈門市集美區(qū)雙嶺小學產(chǎn)假頂崗教師招聘1人備考題庫附答案
- 2026福建省網(wǎng)絡與信息安全測評中心招聘駕駛員2人備考題庫附答案
- 2026福建福州市中醫(yī)院招聘1名編外眼科護理考試備考題庫附答案
- 2026西安市某電力系統(tǒng)外包項目充電設施運維人員招聘備考題庫附答案
- 2026貴州湄潭縣紀委縣監(jiān)委選調(diào)事業(yè)單位工作人員備考題庫附答案
- 2026重慶兩江新區(qū)鴛鴦社區(qū)衛(wèi)生服務中心招聘1人參考題庫附答案
- 2026陜西寶雞市科技創(chuàng)新交流服務中心招聘高層次人才3人備考題庫附答案
- 2026陜西集團龍鋼公司供銷中心一般管理崗位競聘24人參考題庫附答案
- 黑龍江省大慶中學2025-2026學年高一(上)期末物理試卷(含答案)
- 2025年csco肝癌治療指南
- 高中生寒假安全教育主題班會
- 2025年銀行縣支行支部書記抓黨建述職報告
- 2026云南公務員考試(6146人)易考易錯模擬試題(共500題)試卷后附參考答案
- 畜牧技術員安全培訓效果測試考核試卷含答案
- 2026屆天津一中高三語文第一學期期末質(zhì)量檢測模擬試題含解析
- 2025-2026學年第一學期初中物理教研組工作總結報告
- 2025年直招軍官筆試題型及答案
- 智慧教育生態(tài)的協(xié)同發(fā)展機制及其實踐案例研究
- 水庫工程施工測量方案
評論
0/150
提交評論