本發(fā)明涉及一種人機互動技術(shù),具體涉及一種可用于任意普通墻面的人機互動系統(tǒng)。
背景技術(shù):
人機交互界面作為一個獨立的、重要的研究領(lǐng)域是全世界電腦廠商一直關(guān)注的重點,并且它也成為近年來計算機行業(yè)眾多商家競爭的又一塊新的領(lǐng)域。計算機技術(shù)和人機交互界面技術(shù)的發(fā)展也同時引導了與其相關(guān)的軟硬件技術(shù)的發(fā)展。上世紀90年代以來,計算機的軟、硬件技術(shù)都取得了較快的發(fā)展,與此同時,計算機也進入了尋常百姓家,家家都有計算機,這要求了用戶界面在系統(tǒng)設(shè)計和軟件開發(fā)中有較高的用戶體驗。因此,觸控與體感控制技術(shù)也應運而生。毫無疑問,作為虛擬現(xiàn)實技術(shù)和動作捕捉技術(shù)的一種新形式,體感傳感器的觸控技術(shù)在未來有著廣闊的發(fā)展前景和應用途徑,這會是傳統(tǒng)的多媒體通信技術(shù)的進化和升級,它將不僅僅改變的是交流形式,更改變的是一種傳播理念。它還可以利用新奇的視覺效應和精彩的動感效應將信息傳播與互動用戶放在一起,互動者在感受互動并且操控虛擬畫面的整個過程中很自然地接受了畫面中傳遞出的元素與信息,顯然這種內(nèi)在吸引力輕而易舉的就能占據(jù)用戶的內(nèi)心,從而是其達到一種互動情感的共鳴。當前,體感控制屬于多通道、多媒介智能人機交互技術(shù)階段,在人們漸漸接受計算機和計算機不斷適應人類的一整套交互過程中,體感交互技術(shù)有了更加新奇的手段:指尖的微小動作、空氣中振動的聲波等都可以完成信息傳播,實現(xiàn)人與電腦之間的互動。
但是目前體感控制技術(shù)一般都是與屏幕(例如拼接屏幕)相聯(lián)系的,如果能夠?qū)⑵鋽U展到任意普通墻面,實現(xiàn)人與任意墻面的互動,將能使傳播形式更加豐富多彩。
技術(shù)實現(xiàn)要素:
本發(fā)明的發(fā)明目的是提供一種基于3D傳感器定位技術(shù)的人機互動系統(tǒng),通過對使用者的即時動態(tài)捕捉,并對使用者的外部動作做出精確感應,實現(xiàn)基于任意墻面的觸控與體感控制。本發(fā)明的另一個目的是提供一種基于該系統(tǒng)的人機互動方法。
為達到上述發(fā)明目的,本發(fā)明采用的技術(shù)方案是:一種基于3D傳感器定位技術(shù)的人機互動系統(tǒng),包括控制主機、傳感器、互動平面和控制軟件,所述傳感器為包括紅外線攝像頭和彩色攝影頭的3D傳感器,所述互動平面為普通墻面;設(shè)有投影裝置,所述投影裝置照射在所述互動平面上;設(shè)有紅外筆,所述紅外筆由使用者操控并照射在所述互動平面上。
一種基于3D傳感器定位技術(shù)的人機互動方法,包括下列步驟:
(1) 對3D傳感器進行幾何校準;
(2) 創(chuàng)建互動區(qū)域:
將一墻面確定為互動平面,設(shè)置投影裝置,使投影圖像投射到所述互動平面上,形成互動桌面,設(shè)置3D傳感器,使紅外線攝像頭和彩色攝像頭覆蓋整個互動桌面,所述紅外線攝像頭和彩色攝像頭具有對應的坐標系;進行投影裝置和3D傳感器的幾何映射關(guān)系校準,獲得圖像的映射變換矩陣;
(3) 使用者用紅外筆照射互動平面,構(gòu)成對互動平面的觸摸事件,采用紅外線攝像頭獲取互動平面上的紅外圖像,同時采用彩色攝像頭獲取實際互動畫面,利用步驟(2)獲得的映射變換矩陣,獲得互動操作的紅外筆的坐標位置,并獲取使用者的手勢;
(4) 根據(jù)步驟(3)獲得的紅外筆的觸摸操作和/或使用者的手勢,對投影內(nèi)容進行控制;
(5) 重復步驟(3)、(4),實現(xiàn)人機互動。
上述技術(shù)方案中,步驟(2)中,圖像的映射變換矩陣的獲取方法是:
(a) 構(gòu)建攝像頭成像模型:
在攝像頭坐標系中,Q(Xc, Yc, Zc)為互動面反射點,Q(Xc, Yc, Zc)在成像平面上形成一個二維坐標點q(Xu, Yu),f為攝像頭焦距,則,;
(b) 構(gòu)建投影裝置成像模型:
在投影裝置坐標系中,(Xp, Yp, Zp)為投影點的三維坐標,(Xg, Yg)為其在投影平面上的二維投影坐標,為投影裝置焦距;
(c) 利用空間坐標系平移旋轉(zhuǎn)得到坐標變換表達式,通過仿射變換,在確定三個特征點的基礎(chǔ)上,得到圖像的映射變換矩陣。
由于上述技術(shù)方案運用,本發(fā)明與現(xiàn)有技術(shù)相比具有下列優(yōu)點:
1、本發(fā)明提供了一種基于3D傳感器定位技術(shù)的人機互動系統(tǒng),可將任何墻面變成觸控屏,達到人機自然實時互動效果。
2、本發(fā)明利用投影技術(shù)、紅外傳感、運動捕捉、幾何校準、圖像處理、互動區(qū)域創(chuàng)建等多種混合技術(shù),不需要使用例如拼接屏幕等設(shè)備,使用普通墻面即可達到精準的人機互動,拓展了人機互動技術(shù)的應用領(lǐng)域。
附圖說明
圖1是本發(fā)明實施例一的系統(tǒng)框架示意圖;
圖2是實施例的系統(tǒng)原理圖;
圖3是實施例中幾何映射關(guān)系圖;
圖4是攝像頭拍攝空間圖像成像模型;
圖5是實施例中基于3D傳感器的定位互動效果示意圖。
具體實施方式
下面結(jié)合附圖及實施例對本發(fā)明作進一步描述:
實施例一:參見圖1所示,一種基于3D傳感器定位技術(shù)的人機互動系統(tǒng),主要由硬件部分和軟件部分組成。
硬件部分由三部分組成,分別是控制主機、3D傳感器和互動平面??刂浦鳈C用于操作軟件部分的控制軟件以及顯示部分。3D傳感器為系統(tǒng)的主要傳感器,可以用來捕捉信號,例如手勢,人的動作,紅外線信號等。互動平面一般選用普通墻面即可,作為互動設(shè)備的顯示平面。
軟件部分由兩部分組成,分別是控制軟件和顯示軟件??刂栖浖?D傳感器處采集到數(shù)據(jù)然后進行濾波,同時還包括數(shù)據(jù)通信的部分??刂栖浖梢詫有盘栠M行有效處理并與系統(tǒng)互動。顯示軟件用來控制顯示部分,使畫面能夠出現(xiàn)在互動平面上,供使用者進行互動操作。
該互動系統(tǒng)功能示意圖如圖2所示。
紅外筆在互動平面上操作,會在互動平面上形成紅外的光斑。然后kinect的深度攝像頭會對互動平面進行掃描,并把掃描到的信號傳輸?shù)诫娔X中。電腦會先對收到的數(shù)據(jù)進行濾波處理,然后將處理好的數(shù)據(jù)傳輸?shù)娇刂栖浖???刂栖浖刂苹悠矫嫔系幕硬僮鳎瑥亩鴮崿F(xiàn)人機交互的功能。
本實施例中,3D傳感器采用Kinect3D體感攝影機(開發(fā)代號“Project Natal”),Kinect有三個鏡頭,左右兩邊的鏡頭分別為紅外線發(fā)射器和紅外線感應器,配對使用可以進行定位控制,用來采集深度數(shù)據(jù)(即物體到攝像頭的距離)。中間的鏡頭是RGB彩色攝影頭,可以用來采集定位圖像進而定位圖像位置。彩色攝像頭最大支持1280×960分辨率成像,紅外攝像頭最大支持640×480成像。Kinect還可以聚焦,底座電動馬達可以調(diào)節(jié)轉(zhuǎn)動,捕捉物體和圖像。
本實施例實現(xiàn)人機互動的方法包括以下步驟:
1、3D傳感器的幾何校準
本發(fā)明以3D傳感器所拍攝的圖像作為媒介,分別編輯算法計算顯示圖像、投影圖像與之的對應關(guān)系,最終實現(xiàn)原始圖像與投影圖像的對應校準。由于3D傳感器自身的原因,拍攝出的圖像與原圖像相比會有一定程度的變形,此時就需要先對圖像進行修正,即求出3D傳感器圖像本身的變化矩陣。首先,先測出方格紙的尺寸,并以某一角建立坐標系,將各個格點數(shù)據(jù)化,得到一個二維平面坐標矩陣。其次,用3D傳感器在四個不同角度對方格紙進行拍攝,在攝像圖片中以對應角為原點建立坐標系,得到各個格點對應的坐標,建立對應的二維平面坐標矩陣。最后,利用軟件算出兩個坐標矩陣間的轉(zhuǎn)化矩陣,所得即3D傳感器圖像本身的變化矩陣,進而對拍攝圖像的特征坐標矩陣要進行相機變化矩陣的逆變化,以得到真正的拍攝圖像。
2、創(chuàng)建互動區(qū)域
(1) 互動區(qū)域:首先將投影儀、Kinect放置在距離互動墻面適當?shù)奈恢?,然后將投影儀、Kinect與電腦連接好。利用電腦與投影儀,將需要進行互動操作的電腦桌面投射到實驗室的白色墻面上,然后將Kinect打開,使Kinect的RGB攝像頭覆蓋到整個互動桌面。
(2) 互動平面圖像位置識別:
在完成上述互動區(qū)域的硬件搭建后,互動面的圖像位置識別或者說是投影圖像與Kinect攝像頭采集圖像的映射關(guān)系的確定是最為重要的一個環(huán)節(jié)。在進行互動時,計算機還要知道互動面上所有圖像的準確位置和激光筆的準確位置,才能夠判斷用戶的具體操作目的。首先對于投影圖像的位置是確定,需要完成投影儀、Kinect攝像頭系統(tǒng)的幾何映射關(guān)系,如圖3所示。
通過電腦給投影儀投射互動面,幾何映射關(guān)系如圖3,假設(shè)投影圖像有一點M(x, y),這點在投到互動面上時位于位置P處,Kinect的RGB攝像頭會接收到互動面反射的P點,從而在成像面上得到I(r, c)點。計算機需要知道每一個成像的像素點對應于實際投影圖像中是哪一點,即需要進行圖像的映射變換求出變換矩陣。
(3) 搭建Kinect攝像頭成像模型和投影儀投射模型:
如圖4所示是攝像頭拍攝空間圖像成像模型,假設(shè)攝像頭坐標系為世界坐標系,Q(Xc, Yc, Zc)為互動面反射點也是投影點。在成像平面上形成一個二維坐標點q(Xu, Yu),f為攝像頭焦距,如圖所示,利用相似原理,可以得到如下關(guān)系表達式:
同理,投影儀的成像原理與相機相似,同樣可以得到如下的關(guān)系表達式:
其中,(Xp, Yp, Zp)為投影儀坐標系為投影點的三維位置坐標,(,)為二維投影點的坐標。
要得到投影儀——攝像頭系統(tǒng)中空間點的坐標表達式,需要將攝像機與投影儀坐標系變換一致。它們之間可以利用空間坐標系平移、旋轉(zhuǎn)得到。坐標變換表達式如下所示:
聯(lián)立上述方程(1),(2),(3),(4),(5)解得:
Kinect相機焦距f、投影儀焦距為已知,對于投影儀與Kinect的坐標變換矩陣,可通過標定試驗給出,所以要求上述方程得到投影空間點的坐標即投影互動面上圖像位置,只需要求出相機成像點坐標(,)和二維投影點的坐標(,)的關(guān)系,便能夠得到空間點坐標。
(4) 仿射變換:仿射變換在數(shù)學上指的是兩向量之間的映射變換關(guān)系。它實際由兩部分組成,一是非奇異變換,另一個是平移。即一個任意的仿射變換都能表示為乘以一個矩陣 (線性變換) 接著再加上一個向量 (平移)。
事實上仿射變換代表的是兩幅圖像之間的關(guān)系。仿射變換可以用2×3的矩陣來表示。
,A矩陣表示圖像映射線性變換的部分,B=[] ,B矩陣則代表平移的部分。兩幅圖像的變換關(guān)系可以看成點向量的關(guān)系,M、I為投影點和成像點,兩點向量的仿射變換表達式如下:
(9)
(10)
本發(fā)明只需要在投影圖像和成像圖像上找出三個特征點,即可解出上述矩陣A和B,從而得到仿射變換矩陣,進而就可以得到投影圖像和成像圖像上所有坐標點的對應關(guān)系。
本發(fā)明利用Opencv來實現(xiàn)具體的仿射矩陣的求解,下面是關(guān)鍵部分程序?qū)崿F(xiàn)及其說明。
//定義兩個二維數(shù)組,存儲兩幅圖像上選取的三個特征坐標點
srcTri[0] = Point2f( 0,0 );//源畫面中心點為坐標原點
srcTri[1] = Point2f( src.cols-1, 0 );//源圖像原點左一單位點坐標
srcTri[2] = Point2f( 0, src.rows-1 );//源圖像原點下一單位點坐標
dstTri[0] = Point2f( 0,0 );//目標畫面中心點為坐標原點
dstTri[1] = Point2f( dst.cols-1,0 ); //目標圖像原點左一單位點坐標
dstTri[2] = Point2f(0, dst.rows-1); //目標像原點下一單位點坐標
// 利用函數(shù)getAffineTransform求得2×3仿射變換矩陣,賦值給warp_mat
warp_mat = getAffineTransform( srcTri, dstTri );
程序中加載的源圖像為投影條紋圖像,源圖像上選取的三個點的坐標;目標圖像為Kinect攝像頭采集到的條紋圖像,它儲存在計算機中,選取相對應位置的三個點的坐標。程序根據(jù)調(diào)用這兩張圖像上的三組特征點來求解出仿射變換矩陣。在得到了仿射變換矩陣后,就可以利用公式(6)、(7)、(8)求得空間點即互動面上點的坐標,這樣計算機就能夠確定互動面圖像的位置,從而也就是實現(xiàn)了互動區(qū)域的創(chuàng)建工作。
3、確定觸摸事件
利用Kinect的紅外接收攝像頭與紅外激光筆的配合來確定觸摸事件和觸摸方式。利用激光筆在互動墻面上進行點擊時,把筆尖按到墻面,筆將發(fā)射出紅外激光,打到墻上,墻面則將反射紅外激光,反射的紅外激光將被Kinect紅外接收器接收到。Kinect包含有一對紅外線發(fā)射器和紅外線VGA攝像頭組,利用Kinect這對紅外接發(fā)射組,紅外接收器可以通過接收紅外發(fā)射器發(fā)出的紅外線的反射光來進行深度圖像分析以及定位。本發(fā)明沒有用到Kinect紅外線發(fā)射器,只用其接收器和互動參與者手中的紅外激光筆進行配合。同時利用Kinect輔助開發(fā)工具Kinect for Windows developer Toolkit中的Depth-D3D功能,可以得到Kinect紅外攝像頭獲取的紅外圖像,先拍攝出實際的互動畫面,再利用Kinect輔助工具獲取紅外圖像,進而獲取互動操作的筆的位置,即坐標的位置。
根據(jù)紅外圖像,指定互動面左下角為坐標原點,計算機就能容易的找到互動者的觸摸位置,在觸摸位置坐標已知,互動面上各個圖標位置已知的情況下,計算機就能準確判斷出互動過程中,互動人員的觸摸過程。Kinect在得到紅外圖像時,深度數(shù)據(jù)是第一次得到,每一幀的深度數(shù)據(jù)將根據(jù)預先得到的互動表面進行相互比較,以此確認是否存在“觸摸”事件。通過將原始的、從深度數(shù)據(jù)中得來的、被認為是觸摸事件的深度數(shù)據(jù)放入一個自定義的濾波功能塊中,以此來去除外界噪聲干擾的影響?;谲浖脚_的跟蹤定位的效果圖如圖5所示。手置于人機互動區(qū)域,系統(tǒng)會自動對手勢進行跟蹤定位。圖5中,軌跡線代表正在識別的手的輪廓,四邊形代表系統(tǒng)將手定位在這個范圍內(nèi),圓圈是對手指尖的定位,從而能達到精準人機互動的目的。