史亨禎,王 昱,石孟楠,賈常見 (東北石油大學軟件學院,黑龍江 大慶 163318)
基于ARToolKit的手指識別增強現(xiàn)實系統(tǒng)的設計
史亨禎,王 昱,石孟楠,賈常見 (東北石油大學軟件學院,黑龍江 大慶 163318)
介紹了一種利用ARToolKit開發(fā)包和Opencv進行創(chuàng)新開發(fā)、實現(xiàn)手指識別的增強現(xiàn)實系統(tǒng),該系統(tǒng)可以準確定位手掌、5根手指甚至是指尖,為進一步實現(xiàn)人機交互奠定了堅實的基礎。通過該系統(tǒng)可以很大程度上擺脫硬件對人機交互的束縛,使用手指在攝像頭形成的視頻空間圖像觸發(fā)一些虛擬菜單,進而實現(xiàn)人機交流。
增強現(xiàn)實;虛擬成像;人機交互;手指識別

圖1 ARToolKit的三維注冊及工作流程

圖2 ARToolKit轉換坐標系
ARToolKit是一套基于C++語言的增強現(xiàn)實系統(tǒng)函數(shù)庫,是由日本廣島城市大學加藤博一博士與美國華盛頓大學HITL(Human Interface Technology Lab)聯(lián)合開發(fā)的增強現(xiàn)實系統(tǒng)二次開發(fā)工具,該開發(fā)包主要包括完成攝像機定標、標記識別與三維注冊的AR模塊,實現(xiàn)圖像實時采集功能的Video模塊和完成圖像的實時顯示、三維虛擬場景的實時渲染等功能的Gsub模塊。其實時、精確的三維注冊功能使得工程人員能夠非常方便、快捷的開發(fā)增強現(xiàn)實應用系統(tǒng)[1]。ARToolKit通過計算機視覺來進行三維虛實注冊,其工作流程如圖1所示。
在增強現(xiàn)實中,坐標系統(tǒng)也是非常重要的一部分,其影響著坐標變換、三維注冊、加載圖像的位置及方向,是不可缺少的一部分,而從標識坐標系經(jīng)過矩陣變換得到攝像機坐標系是最為關鍵的,其轉換坐標系如圖2所示。通過該坐標系的轉換,計算機能夠準確的將虛擬對象加載到相應的標識圖上,為進一步人機交互奠定了基礎[2]。
在手指識別系統(tǒng)中,為了能夠快速、穩(wěn)定、準確的識別手指,是需要滿足一定條件的,要求在交互過程中手指盡量伸直,若是檢測5根手指,則應該將手指盡量展開,并且使交互環(huán)境中與膚色相近的事物盡可能的少,避免其他事物對試驗進行干擾。
1)手指膚色識別 系統(tǒng)采用最常用膚色檢測方法——RGB分量分析方法,進行人手區(qū)域的檢測。該方法基于人手膚色的檢驗知識,對RGB(其中,R、G、B分別表示8位的紅色、綠色、藍色亮度)3個顏色分量進行分析,滿足式(1)的像素被認為是人手區(qū)域[3]:

(1)
然后,通過上述方法得到膚色檢測結果,處理所得到的圖像,對圖像中的壞點進行修復,平滑其中較為粗糙的部分,得到較好的圖像效果。另外,也可以通過使用RANSAC算法(隨機抽樣一致性算法)減小系統(tǒng)識別時的匹配誤差,以提高識別的精度。RANSAC算法的引入使得手指識別更加準確,排除了一定的環(huán)境和人為干擾,使人機交互更加容易實現(xiàn),并提高了人機交互的成功率[4]。
2)手指輪廓識別 手指識別系統(tǒng)采用的是基于邊界輪廓提取辦法,這種方法區(qū)別于ARToolKit自帶的連通域提取算法,受環(huán)境的影響相對較小,性能上遠遠優(yōu)于連通域提取算法[5]。因此,即使識別到的手指的象素不是非常的完整,一樣可以識別出部分受干擾的手指。同時在處理圖像方面,筆者對攝像機獲取的視頻流采用了實時橫向濾幀技術,并做了相應的改進和優(yōu)化,使獲取的圖像幀更加穩(wěn)定,增強了該系統(tǒng)在環(huán)境光改變的情況下的適應能力,即使在環(huán)境光照不統(tǒng)一(同一幀圖像中明暗不一致)的地方,該方法同樣可以達到較好的效果。
在得到手指的大致輪廓后,需要對得到的圖像進行二值化處理。所謂二值化是指設定一個閾值T,用T將圖像的數(shù)據(jù)分成2部分:大于T的像素群和小于T的像素群。這是研究灰度變換的最特殊的方法,稱為圖像的二值化,也就是將圖像上的像素點的灰度值設置為0或255,使得整個圖像呈現(xiàn)出只有黑和白的視覺效果。在二值化過程中,閾值T的選取很大程度上決定了試驗結果的好壞:在光昏暗的條件下,將閾值設置到60~235范圍內,可以達到良好的識別效果;當環(huán)境光線比較適中時,需要在80~235范圍內設置閾值,才能達到相同的效果;而在光線明亮時,則應該在100~235范圍內調整設置閾值。
3)虛擬對象加載 在檢測到手指后,可以觸發(fā)一些事件,如在視頻所示空間中加載一些虛擬對象。這些對象可以是有OpenGL函數(shù)生成的,也可以通過Opencv形成,甚至可以直接導入一些模型文件,如后綴為mqo的模型文件。可以先通過3D建模軟件3DSMAX構建模型,然后導出后綴為obj的文件,再將此文件導入水杉軟件中,經(jīng)過適當處理優(yōu)化、調整貼圖,再導出mqo格式的模型。在原來程序的基礎上,加入一些頭文件,修改部分代碼,即可調用這些模型。

圖3 手指識別效果圖
虛擬對象的坐標取決于所識別的手的位置,當成功識別到時候,會經(jīng)過復雜的計算得到手的位置,并以手為中心加載其他的虛擬對象,若利用函數(shù)直接繪制虛擬體,則可以在坐標數(shù)據(jù)的位置寫入以手為中心的相對坐標位置,即可成功的繪制出虛擬對象。
試驗結果表明,在光照條件適宜,周圍缺少相近色事物干擾的情況下,實現(xiàn)交互的成功率高達71%,基本滿足了手指識別的要求。并且在該系統(tǒng)下,可以準確的識別5根手指、指尖以及手掌,并加載一些標記來表明已經(jīng)識別,如用色塊表示指尖,橢圓表示手指,圓圈表示手掌,識別效果如圖3所示。
在手指交互系統(tǒng)中,初始狀態(tài)僅顯示虛擬菜單,當手指觸及到菜單選項并且被識別的時候,該選項的顏色會發(fā)生變化,并且觸發(fā)該事件。經(jīng)過多次測試,結果表明在光照適宜,環(huán)境合適的條件下,手指識別系統(tǒng)運行良好,其運行效果如圖4(a)、(b)、(c)、(d)所示。由圖4可知,該系統(tǒng)交互過程簡單方便,界面簡潔明了,運行結果良好,具有一定的實時交互功能。

圖4 運行效果圖
區(qū)別于傳統(tǒng)的人機交互模式,手指識別人機交互系統(tǒng)較大程度的擺脫了用戶對硬件的束縛,僅利用虛擬菜單實現(xiàn)人與計算機的“交流”,交互過程更加自然方便。由于指尖的檢測容易受到光線以及周圍環(huán)境色彩的影響,使得該系統(tǒng)需要在一些特定環(huán)境下運行,這對交互產生了一定的限制作用。但在良好環(huán)境下,該系統(tǒng)交互過程簡單流暢、操作自然,起到了實時交互的作用。
[1]Auley C M.Aut0CAD2000objectARX編程指南[M].李世國,潘建忠,平雪良 等譯.北京:機械工業(yè)出版社,2000.
[2] 盛君,王毅剛.基于ARToolKit手指交互系統(tǒng)的研究 [J] .機電工程,2010(6):116-119.
[3] Molineros J,Sharma R.Real-Time Tracking of Multiple Objects Using Fiducials for Augmented Reality[M].London,UK:Academic Press Ltd,2001.
[4] Fischler M A,Bolles R C.Randomsample consensus:Aparadigmfor model fitting with applications to image analysis and automated cartography[J].CommACM,1981,24(6):381-395.
[5] 王涌天,鄭偉,劉越,等.基于增強現(xiàn)實技術的圓明園現(xiàn)場數(shù)字重建[J].科技導報,2006(3): 36-40.
2012-10-14
史亨禎(1992-),男,現(xiàn)主要從事軟件工程方面的學習。
TP311.52
A
1673-1409(2013)04-0054-02
[編輯] 洪云飛