李 聰
(西安電子科技大學(xué) 電子工程學(xué)院,陜西 西安 710071)
增強(qiáng)現(xiàn)實(shí)[1](Augmented Reality,AR)技術(shù)是在虛擬現(xiàn)實(shí)(Virtual Reality,VR)技術(shù)上發(fā)展起來的一門新興技術(shù),該技術(shù)用于生成一個(gè)虛、實(shí)結(jié)合的環(huán)境,在這個(gè)環(huán)境中,計(jì)算機(jī)生成的各種信息被用于增強(qiáng)或補(bǔ)充用戶所在的真實(shí)環(huán)境,同時(shí)用戶可以通過各種方式來與虛擬物體進(jìn)行交互。由于其廣泛的應(yīng)用背景,成為近年來的一個(gè)研究熱點(diǎn)。
要實(shí)現(xiàn)虛擬和現(xiàn)實(shí)的完美結(jié)合,必須將虛擬物體準(zhǔn)確地融合到現(xiàn)實(shí)世界中的相應(yīng)位置上,這個(gè)過程稱為注冊。其中基于標(biāo)志點(diǎn)的增強(qiáng)現(xiàn)實(shí)三維注冊技術(shù)是利用計(jì)算機(jī)視覺技術(shù)來計(jì)算觀察者相對于標(biāo)識點(diǎn)的位置,方位和姿態(tài),從而實(shí)現(xiàn)對標(biāo)志點(diǎn)的跟蹤與定位,將需要疊加的虛擬物體正確疊加在標(biāo)識點(diǎn)上,實(shí)現(xiàn)對現(xiàn)實(shí)場景的增強(qiáng),并實(shí)時(shí)顯示增強(qiáng)后的效果。其中,對標(biāo)志點(diǎn)的識別是整個(gè)增強(qiáng)現(xiàn)實(shí)系統(tǒng)的基礎(chǔ)。
本文利用FPGA 實(shí)現(xiàn)了人工標(biāo)識識別的系統(tǒng)開發(fā),對TRDB-D5M 攝像頭采集到的含有標(biāo)識的圖像進(jìn)行相關(guān)的圖像處理,實(shí)現(xiàn)了對標(biāo)識區(qū)域和標(biāo)識圖案的識別。
合理選取標(biāo)志圖案可以有效地降低技術(shù)實(shí)現(xiàn)的難度,所以在標(biāo)識的選取過程中,為便于識別和分析需要滿足以下兩點(diǎn)要求[2-5]:(1)能被攝像機(jī)清晰地采集到,易于識別以及辨認(rèn)。(2)具有規(guī)則的幾何外形和鮮明的色彩特征,并以簡單圖形為佳。
在數(shù)字圖像處理中,黑白顏色較易區(qū)分,正方形提供同平面的4 個(gè)角點(diǎn),而且形狀簡單,易于識別,因此大多數(shù)AR 人工標(biāo)識選取黑色矩形框作為基準(zhǔn)標(biāo)識[6]。且為了區(qū)分標(biāo)識,其內(nèi)分別有簡單圖形,本文基于ARToolkit[2]中的標(biāo)識,選擇如圖1 所示的含有圖片模板的標(biāo)識。
圖1 所選標(biāo)識
設(shè)計(jì)構(gòu)建的增強(qiáng)現(xiàn)實(shí)人工標(biāo)識識別系統(tǒng)的整體框架如圖所示,其中視頻采集顯示系統(tǒng)主要包括CMOS圖像傳感器攝像頭、FPGA 核心控制單元以及VGA 顯示單元。標(biāo)識識別系統(tǒng)則由視頻處理模塊組成,主要完成視頻圖像在圖形學(xué)上的算法處理。整個(gè)硬件系統(tǒng)實(shí)現(xiàn)圖像的采集、接受、存儲以及輸出顯示等功能,主要由數(shù)據(jù)獲取單元、格式轉(zhuǎn)換模塊、I2C 控制器、SDRAM、VGA 控制器和VGA 數(shù)模轉(zhuǎn)換器模塊構(gòu)成。
圖2 系統(tǒng)硬件框圖
如圖2 所示,左邊是TRDB-D5M 攝像頭設(shè)備和它的控制電路,通過采樣和A/D 轉(zhuǎn)換輸出可被處理的數(shù)字視頻信號,其中,攝像頭通過I2C 總線進(jìn)行配置,從而控制它的工作模式。它們之間的傳遞信號主要是SDA 和SCL。FPGA 模塊主要完成輸入輸出設(shè)備的配置、控制等功能,以及完成輸入到輸出數(shù)據(jù)的傳輸和處理功能,是本設(shè)計(jì)的核心部分。其中,主要包括CMOS傳感器數(shù)據(jù)獲取單元、圖像類型轉(zhuǎn)換單元、VGA、I2C和SDRAM 控制器等模塊。CMOS 傳感器數(shù)據(jù)獲取單元負(fù)責(zé)接收攝像頭輸出的視頻數(shù)據(jù)。圖像數(shù)據(jù)轉(zhuǎn)換模塊主要將獲取到的原始Bayer 型圖像格式轉(zhuǎn)換為RGB格式,并通過SDRAM 控制器將轉(zhuǎn)換后的圖像緩存進(jìn)SDRAM,最后VGA 控制器產(chǎn)生行場同步信號并將數(shù)據(jù)輸出,再通過A/D 轉(zhuǎn)換后送給VGA 顯示。
設(shè)計(jì)中I2C 總線[7]主要應(yīng)用在TRDB-D5M 攝像頭的配置上??刂茊卧ㄟ^I2C 總線和攝像頭通信,修改其內(nèi)部寄存器。直接關(guān)系到攝像頭的工作參數(shù),如曝光時(shí)間、像素時(shí)鐘、分辨率等。
I2C 總線主要通過主器件尋址從器件,并傳輸數(shù)據(jù),并由主器件終止數(shù)據(jù)傳送,其中數(shù)據(jù)傳送協(xié)議如下所示:
(1)在數(shù)據(jù)傳送過程中,必須確認(rèn)數(shù)據(jù)傳送的開始和結(jié)束。開始和結(jié)束條件定義如圖3 所示。
圖3 I2C 總線開始和結(jié)束條件
當(dāng)時(shí)鐘線SCL 為高電平時(shí),數(shù)據(jù)線SDA 從高電平向低電平跳變表示開始條件,而從低電平向高電平跳變表示結(jié)束條件。
(2)I2C 總線數(shù)據(jù)傳輸是必須遵循總線協(xié)議所規(guī)定的數(shù)據(jù)傳輸格式,如圖4 所示。
圖4 I2C 總線數(shù)據(jù)傳輸
開始條件產(chǎn)生后送出的第一個(gè)Byte 數(shù)據(jù)為從器件的地址,每發(fā)送完一個(gè)Byte 后都要求接收方發(fā)回一個(gè)應(yīng)答信號。主器件在接收應(yīng)答信號之前必須先釋放對SDA 線的控制,以便從器件在這一位上發(fā)出應(yīng)答。數(shù)據(jù)傳輸完畢,從器件發(fā)回一個(gè)非應(yīng)答信號,主器件據(jù)此產(chǎn)生結(jié)束條件。
為獲取模板標(biāo)識以便于后期將虛擬圖像疊加在標(biāo)識上,必須通過圖像處理的方法分離出實(shí)時(shí)圖像中的標(biāo)識區(qū)域,將其與模板匹配完成對標(biāo)識的識別。該模塊的工作流程如圖5 所示。
圖5 人工標(biāo)識識別算法流程圖
TRDB-D5M 攝像頭輸出視頻色彩格式為拜耳型(Bayer Pattern),這種格式的圖像數(shù)據(jù)在后期處理以及顯示操作時(shí)不方便,因此需要通過圖像格式轉(zhuǎn)換模塊將Bayer 型轉(zhuǎn)換為常用的RGB 型。
轉(zhuǎn)化的基本原理是根據(jù)像素周圍已知顏色分量進(jìn)行插值,估算未知的顏色分量[8]。從理論上來說,插值方法越簡單,得到的圖像質(zhì)量越低,處理時(shí)間越短;反之,質(zhì)量越高,時(shí)間越長。因此,在實(shí)際的應(yīng)用中,選擇適當(dāng)?shù)姆椒?,在圖像質(zhì)量,處理速度以及資源利用方面起到重要的作用。本文基于3×3 插值算法利用FPGA 實(shí)現(xiàn)了圖像的轉(zhuǎn)換。此方法的基本特征是“平均”。在估算缺失的顏色分量時(shí),選擇一個(gè)3×3 鄰域,根據(jù)鄰域內(nèi)相同顏色分量值,使用雙線性插值算法計(jì)算平均值實(shí)現(xiàn)色彩還原。該方法簡單,在圖像平滑區(qū)域可以收到較好的還原效果[9-11]。3×3 鄰域示意圖如圖6 所示。
圖6 3×3 鄰域示意圖
B5處像素的R、G、B 分量的計(jì)算公式如下
而G7處像素的R、G、B 分量的計(jì)算公式為
在對圖像進(jìn)行二值化處理之前,首先對彩色圖像進(jìn)行灰階處理,將R、G、B 這3 個(gè)分量以不同的權(quán)值加權(quán)平均得到合理的灰度圖像,其算法有式(7)所示[15]
由式(7)可以看出,R、G、B 是影響灰階的3 個(gè)分量,且G 的權(quán)重最大。如圖7(a)為轉(zhuǎn)換后的RGB 圖像,圖7(b)為灰度圖像。
圖7 RGB 圖及灰度圖像
在對圖像進(jìn)行二值化處理時(shí),本文采用固定閾值的方法來完成這一操作:當(dāng)圖像f(x,y)處的灰度值小于閾值T 時(shí),就把該點(diǎn)作為圖像的背景,以“0”表示,否則,以“1”表示。而閾值的選取尤為重要,適當(dāng)?shù)拈撝的芟庹账鶐淼挠绊?,在這里閾值選取為128。圖像f(x,y)經(jīng)過二值化處理后,輸出的二值圖像g(x,y),其算法公式如公式(8)所示[14]
處理后的二值化圖像如圖8 所示。
圖8 二值化圖像
2.2.1 標(biāo)識區(qū)域的識別
在一幅含有人工標(biāo)識的二值化圖像中,由于標(biāo)識的周圍存在著大量的干擾信息,這需要對標(biāo)識域進(jìn)行提取:首先檢測標(biāo)識的外框,然后在外框的區(qū)域里搜索特征點(diǎn),即標(biāo)識圖案的識別。
本文采用對該二值圖像進(jìn)行連通域分析[16],先對圖像進(jìn)行逐像素掃描,完成對圖像的分析,對于閉合的邊緣,找出其中所有的四邊形區(qū)域作為候選匹配區(qū)域,對于非閉合或者太小的邊緣,則被直接丟棄,并確定候選區(qū)域的4 條邊的位置。
2.2.2 標(biāo)識圖像的識別
在檢測到標(biāo)識的外框后,就要在外框的區(qū)域內(nèi)搜索特征點(diǎn),從而匹配相應(yīng)的虛擬信息。論文中采用了模板匹配法[14-16],該方法具有較好的通用性,可以識別多種類型的圖案。
當(dāng)成功檢測到四邊形,并且找到其4 個(gè)頂點(diǎn)后,就要對每個(gè)校正后的候選區(qū)域進(jìn)行模板匹配,已確認(rèn)是否是預(yù)定義的目標(biāo)標(biāo)識。模板匹配的思想是將模板圖片按照投影模型進(jìn)行投影,得到標(biāo)識投影圖,再將投影圖與攝像頭拍攝到的標(biāo)識圖進(jìn)行對照,計(jì)算兩幅圖像之間的相似程度。匹配接近的程度可借助向量的范數(shù)來描述,如歐幾里得距離。對每個(gè)候選區(qū)域都有一個(gè)置信度,當(dāng)接近程度大于此置信度時(shí),則匹配成功,否則失敗。
本文基于增強(qiáng)現(xiàn)實(shí)技術(shù),利用FPGA 開發(fā)板實(shí)現(xiàn)了對人工標(biāo)識識別的硬件系統(tǒng),為移動(dòng)增強(qiáng)現(xiàn)實(shí)系統(tǒng)的發(fā)展具有一定的實(shí)際意義。隨著計(jì)算機(jī)硬件的發(fā)展以及增強(qiáng)現(xiàn)實(shí)系統(tǒng)應(yīng)用越來越廣泛地應(yīng)用到各個(gè)行業(yè),以及嵌入式系統(tǒng)的可移植性、便攜性等特點(diǎn),使其成為未來增強(qiáng)現(xiàn)實(shí)的主流應(yīng)用平臺。
[1] 朱淼良,姚遠(yuǎn),蔣云良,等.增強(qiáng)現(xiàn)實(shí)綜述[J].中國圖象圖形學(xué)報(bào),2004,9(7):767-774.
[2] KATO H.ARToolit[CP/OL].(2012-12-03)[2013-07-08]http://www.hitl.washington.edu/projects/artoolkit.
[3] KATO H,BILLINGHURST M,POUPYREV I,et al.Virtual object manipulation of a table-top AR environment[C].Los Alamitors,CA,USA:Proceedings of International Symposium on Augmented Reality 2000(ISAR00),2000:111-119.
[4] BILLINGHURST M,KATO H,POUPYREV I.The magicbook-moving seamlessly between reality and virtuality[J].Computer Graphics and Applications,IEEE,2001,21(3):6-8.
[5] MARCHAND é,CHAUMETTE F.Virtual visual servoing:a framework for real‐time augmented reality[J].Computer Graphics Forum,2002,21(3):289-297.
[6] 秦文虎,査俊元,趙正旭.增強(qiáng)現(xiàn)實(shí)中人工標(biāo)志識別方法研究[J].測控技術(shù),2008,27(10):7-9.
[7] 夏宇聞.Verilog 數(shù)字系統(tǒng)設(shè)計(jì)教程[M].北京:北京航空航天大學(xué)出版社,2008.
[8] 孫輝,柏旭光,孫麗娜,等.Bayer 圖像色彩還原線性插值方法[J].液晶與顯示,2013,28(3):417-423.
[9] 劉怡,黃自力,王經(jīng)緯,等.FPGA 雙線性插值圖像變換系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].中國測試技術(shù),2008,34(3):65-67.
[10]羅瀟,孫海江,陳秋萍,等.Bayer 格式圖像的實(shí)時(shí)彩色復(fù)原[J].中國光學(xué)與應(yīng)用光學(xué),2010,3(2):182-187.
[11]MALVAR H S,HE L W,CUTLER R.High quality linear interpolation for demosaicing of bayer-patterned color images[C].Montreal,Canada:Processing of the IEEE International Conference on Speech,Acoustics,and Signal Processing,IEEE,2004.
[12]楊華,佟首峰.基于FPGA 的Bayer 到RGB 圖像格式轉(zhuǎn)換設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2010,33(2):122-124.
[13]張貴清,朱磊,顏露新,等.基于FPGA 的多路同步實(shí)時(shí)數(shù)據(jù)采集方案設(shè)計(jì)與實(shí)現(xiàn)[J].測控技術(shù),2005,24(12):26-29.
[14]周立波.基于FPGA 的高速圖像號碼識別系統(tǒng)研究與實(shí)現(xiàn)[D].長沙:湖南大學(xué),2011.
[15]溫建平.人臉檢測算法及其FPGA 實(shí)現(xiàn)[D].廣州:華南理工大學(xué),2012.
[16]譚許彬,謝宜壯,陳禾,等.基于FPGA 的連通域標(biāo)記設(shè)計(jì)與實(shí)現(xiàn)[J].信號處理,2011,27(11):1729-1733.