段東波,靳天玉
(蘭州大學(xué)信息科學(xué)與工程學(xué)院,甘肅蘭州,730000)
隨著信息技術(shù)的飛速發(fā)展,基于高速處理器的嵌入式系統(tǒng)應(yīng)用越來越豐富,功能越來越齊全,其中尤其以ARM的應(yīng)用發(fā)展最為迅速。ARM被廣泛應(yīng)用于工業(yè)控制、通信系統(tǒng)、無(wú)線、網(wǎng)絡(luò)系統(tǒng)以及消費(fèi)類電子產(chǎn)品等領(lǐng)域。同時(shí),作為該芯片的主要應(yīng)用的ARM的視頻采集技術(shù),在工業(yè)檢測(cè)、工業(yè)監(jiān)控、安防監(jiān)控、智能交通、儀器儀表、醫(yī)學(xué)影像、機(jī)器視覺、多媒體錄播錄像、會(huì)議錄制以及虛擬演播室等多方面體現(xiàn)了它的優(yōu)勢(shì),有著重要的地位。
基于ARM的二維碼識(shí)別技術(shù)是以ARM視頻采集技術(shù)為基礎(chǔ)的拓展功能,二維碼憑借其信息儲(chǔ)存量大、安全保密性高、追蹤性高、抗損性強(qiáng)、備援性大以及成本便宜等優(yōu)良特性,在表單、安全保密、追蹤、證照、存貨盤點(diǎn)以及資料備份等方面有著廣泛的應(yīng)用。集成視頻采集、二維碼識(shí)別技術(shù)及網(wǎng)絡(luò)通信的嵌入式系統(tǒng),不僅可以作為物聯(lián)網(wǎng)技術(shù)的底層基礎(chǔ),而且其強(qiáng)大的可拓展性使得其擁有更為廣闊的發(fā)展前景。
硬件的性能和穩(wěn)定性直接關(guān)系到各級(jí)設(shè)備的工作情況、工作狀態(tài)以及基于其上運(yùn)行的操作系統(tǒng)的穩(wěn)定性,甚至直接影響到產(chǎn)品的最終性能。所以,ARM核心板使用了各方面性能都很優(yōu)越的友善之臂:Mini6410開發(fā)板。Mini6410是把ARM11(S3C6410)作為主處理器的嵌入式開發(fā)板,它的內(nèi)部集成了功能完善的多媒體處理單元,能夠完成H.264/H.263、Mpeg4、Jpeg等格式視頻文件和圖像文件的硬件編解碼,并且可以同時(shí)輸出至LCD和TV兩路顯示;與此同時(shí),還連并帶有3D圖形加速器,通過它可以實(shí)現(xiàn)OpenGL ES 1.1 & 2.0的加速渲染,兼具有2D圖像平滑縮放,翻轉(zhuǎn)等的功能。因此,使用此嵌入式系統(tǒng)開發(fā)板將是最為妥善的選擇。
由于其使用了友善之臂的mini 6410核心板,所以SDRAM、NAND 、FLASH 以及LCD等硬件設(shè)備已經(jīng)鏈接完畢,并且已完成驅(qū)動(dòng),而攝像頭可以通過USB接口來實(shí)現(xiàn)與CPU單元的連接,并可以通過加載Linux內(nèi)核中集成的驅(qū)動(dòng)來完成對(duì)攝像頭的驅(qū)動(dòng)。系統(tǒng)框圖如下圖:
軟件設(shè)計(jì):
首先,初始化攝像頭并調(diào)整攝像頭模式使其可以采集320*240大小格式的圖像。其次,設(shè)定采集來的圖像為YUYV格式,在此階段將系統(tǒng)設(shè)定為只采集4幀圖像,再將采集來的圖像映射入內(nèi)存中并調(diào)用預(yù)先設(shè)定的指針變量(指針變量指向存入4幀圖像開始的第一幀所存入的地址),把這4幀圖像所對(duì)應(yīng)的地址傳送出來并對(duì)其進(jìn)行讀取和處理,最后,循環(huán)采集4幀圖像實(shí)現(xiàn)圖像實(shí)時(shí)更新從而形成動(dòng)態(tài)圖像。
由于采集來的是YUYV格式的圖像,所以不能直接預(yù)覽和處理。在這里,系統(tǒng)將設(shè)計(jì)通過一定的算法將上述圖像的每一幀都進(jìn)行轉(zhuǎn)化,使其成為RGB色彩模式的圖像,然后再對(duì)其進(jìn)行處理。隨后,再將處理所得的四幀RGB格式圖像的每個(gè)像素逐一注冊(cè)到QT軟件下的Qimage類中,使其形成Qimage圖像,并再次注冊(cè)到Qwidget上,此時(shí)就可以直接使用Reflesh方式進(jìn)行預(yù)覽顯示了。
預(yù)覽和處理過程是在兩個(gè)線程之內(nèi)完成的。程序中引入了一個(gè)互斥量,在攝像頭采集圖像回來并寫入內(nèi)存時(shí),互斥量鎖定;寫入完成后,互斥量打開。另外,兩個(gè)線程會(huì)檢查互斥量。若互斥量為鎖定狀態(tài)時(shí),則這兩個(gè)線程掛機(jī),若未鎖定,則用CPU時(shí)間片分配給的線程去訪問內(nèi)存,并鎖定互斥量,待其完成后再打開互斥量。其中一個(gè)線程用于顯示預(yù)覽,另一個(gè)用于處理圖像。兩個(gè)線程是異步的,但其二者之間用互斥量進(jìn)行同步。
圖像采集應(yīng)用程序流程圖如下圖:
二維碼的功用是利用某些特定的幾何圖形按照特定規(guī)律在黑白相間的平面(二維方向上)上分布圖形來記錄數(shù)據(jù)符號(hào)信息。它能巧妙地運(yùn)用構(gòu)成計(jì)算機(jī)內(nèi)部基礎(chǔ)邏輯的0和1,即利用0和1的概念來表示信息,利用0、1來構(gòu)成含有信息的01串。二維碼可以通過一些輸入設(shè)備或掃描設(shè)備來實(shí)現(xiàn)自動(dòng)識(shí)讀信息并進(jìn)行自動(dòng)處理。與二維碼技術(shù)相似的條碼技術(shù)與其有一些共性:每個(gè)字符占有一定的寬度;具有一定的校驗(yàn)功能;每種碼制有其特定的字符集等;同時(shí)還具有對(duì)不同行的信息自動(dòng)識(shí)別功能、及處理圖形旋轉(zhuǎn)變化等特點(diǎn)。
常用的二維碼有 Data Matrix、 Maxi Code、Aztec、QR Code、 Vericode、PDF417、 Ultracode、 Code 49 以 及 Code 16K等等,其中最常用的是QR code二維碼,現(xiàn)在其生成技術(shù)比較完善,并且應(yīng)用較為廣泛,有許多生成軟件可以免費(fèi)使用,更易于推廣,其識(shí)別技術(shù)應(yīng)用在PC機(jī)上用C++、C#或java編譯的資料較多,對(duì)于在Linux內(nèi)核移植有很大的幫助。
在視頻采集軟件設(shè)計(jì)中把YUYV格式的圖像轉(zhuǎn)換成RGB格式,是為了能夠在二維碼識(shí)別的設(shè)計(jì)中能夠直接利用RGB格式的圖像來進(jìn)行處理,最終將二維碼的原始信息還原。二維碼的識(shí)別實(shí)際上是對(duì)目標(biāo)圖像進(jìn)行圖像處理的過程,其對(duì)于采集來的圖像(此時(shí)已經(jīng)為RGB格式),首先將RGB格式中的三原色值轉(zhuǎn)化為大整型值(值在0-65536之間)。之后再根據(jù)事先設(shè)定的閾值(理論上是65536/2,但實(shí)際應(yīng)用中引入了一個(gè)參量,此參量是根據(jù)整個(gè)圖像的平均值來定義,此時(shí)閾值由參量和65536/2共同決定),對(duì)圖像進(jìn)行去顏色化,把原來的圖像轉(zhuǎn)化為只有黑白兩色的圖像。然后進(jìn)行去噪濾波,進(jìn)行邊緣檢測(cè),得到一個(gè)平行四邊形,再對(duì)此圖形進(jìn)行像正方形的轉(zhuǎn)化,使其成為正方形。
最后對(duì)此正方形圖像進(jìn)行抽樣,對(duì)圖像進(jìn)行縮放,使其轉(zhuǎn)換成為320*320的標(biāo)準(zhǔn)大小。之后對(duì)每個(gè)像素按二維碼的格式分割開,進(jìn)行抽樣檢測(cè),求取其統(tǒng)計(jì)平均值,判定黑白,并予以保存。最后再利用QR矩陣的算法還原原始二進(jìn)制信息。
通過對(duì)Linux內(nèi)核的移植、視頻采集以及二維碼識(shí)別應(yīng)用程序的編寫,最終實(shí)現(xiàn)了基于ARM11的視頻采集,以及二維碼的識(shí)別。
對(duì)于此次設(shè)計(jì)還有許多可以擴(kuò)充的東西,由于Linux系統(tǒng)提供了有線網(wǎng)卡、無(wú)線網(wǎng)卡以及藍(lán)牙的驅(qū)動(dòng)。所以,通過有線網(wǎng)或無(wú)線網(wǎng)可以實(shí)現(xiàn)采集視頻的網(wǎng)絡(luò)傳輸,借此可實(shí)現(xiàn)通過網(wǎng)絡(luò)觀看實(shí)時(shí)視頻來進(jìn)行監(jiān)控,也可以通過藍(lán)牙或者網(wǎng)絡(luò)實(shí)現(xiàn)通信,從而完成對(duì)系統(tǒng)的控制。結(jié)合二維碼技術(shù)和網(wǎng)絡(luò)通信可以進(jìn)行安防以及身份識(shí)別或防偽識(shí)別。這項(xiàng)技術(shù)在當(dāng)下的“信息時(shí)代“中將起到舉足輕重的作用。
[1]tiny6410用戶手冊(cè).廣州友善之臂計(jì)算機(jī)科技有限公司.2010,12,16
[2]李東科.基于加密和解密的二維條形碼的實(shí)現(xiàn).期刊論文技傳播.2010
[3]劉芳.手機(jī)二維碼——開啟移動(dòng)學(xué)習(xí)新窗口.期刊論文等科技信息.2008
[4]楊軍.關(guān)于二維碼的研究和應(yīng)用.期刊論文等應(yīng)用科技.2002
[5]薛蓬.二維條碼在商品防偽上的應(yīng)用.期刊論文等科技信息.2009