本發明涉及虛擬現實技術領域,具體的說是一種基于雙目視覺的、應用于虛擬現實中的人臉姿態測量以及交互操作中對交互媒介的跟蹤測量方法。
背景技術:
目前在虛擬現實和增強現實領域存在著大量使用慣性傳感器進行測量的人臉姿態估計系統,這些系統使用陀螺儀和加速度計進行測量,由于這樣的系統對于被跟蹤物體的位置估計存在著累積誤差,所以不能進行長時間使用;此外使用慣性傳感器測量還存在必須進行合適的初始化,否則整個系統不能正常工作。
上述缺陷,值得解決。
技術實現要素:
為了克服現有的技術的不足,本發明提供一種基于雙目視覺的姿態測量方法。
本發明技術方案如下所述:
一種基于雙目視覺的姿態測量方法,其特征在于,使用雙目視覺系統通過計算被跟蹤物體上的標記條來測量和定位,包括以下步驟:
步驟1、雙目視覺系統的標定,得到相機的內部參數,以及相機之間的平移和旋轉關系;
步驟2、姿態計算,利用三角測量對標記點進行三維坐標的測量;
步驟3、對測定的姿態旋轉和平移數據進行卡爾曼濾波。
根據上述方案的本發明,其特征在于,所述步驟1中的標定過程包括相機內參標定和雙目相機立體標定。
更進一步的,相機內參標定包括相機的焦距、光心坐標以及相機成像時的畸變參數的標定。
更進一步的,在雙目相機立體標定過程中,首先計算多個相機之剛體變換關系,從而建立真實的物理世界到虛擬的相機坐標系之間的對應關系,再利用相機的內部參數就可以構造物理世界到相機坐標系之間的對應關系。
根據上述方案的本發明,其特征在于,所述步驟2中,姿態計算的具體步驟如下:
(1)首先計算當前雙目相機檢測到的三個標記點的質心坐標Poc,然后將三個三維點分別減去質心坐標,得到質心坐標系下的新坐標,設為Pc;三個三維坐標分別減去質心坐標計算前一次雙目相機檢測到的三個標記點在其質心Pop坐標系下的新坐標Pp;
(2)利用點集Pc和Pp確定的平面的法向量nc=Pc1 x Pc2和np=Pp1 x Pp2,利用兩個平面的法向量將兩個平面旋轉至同一個平面,使用四元數的理論計算出兩個法向量之間的旋轉,其中Pc={Pc1,Pc2,Pc3}為雙目相機當前時刻檢測到的三個標記點三維坐標,Pp={Pp1,Pp2,Pp3}為雙目相機上一時刻檢測到的三個標記點三維坐標;
(3)經過上述步驟,當前時刻三個標記點確定的平面與上一時刻由三個標記點確定的兩個平面已經處在同一個平面,這時兩個坐標系的z軸重合,但是x、y坐標系依然存在旋轉,通過計算兩組點組成的向量之間的夾角即可算出面內旋轉;
(4)兩組標記條的質心之間的坐標即為平移矢量,得到運動前后標記點之間的旋轉和平移關系。
更進一步的,選擇三個點的坐標過程中,首先選擇五個對應點進行檢測,得到穩定的五個對應點之后取出其中的三個進行計算。
根據上述方案的本發明,其特征在于,所述步驟3中的濾波過程包括:
(1)進行狀態轉移
1)選擇位置和旋轉的角度組成一個狀態向量x,
式中,x、y、z分別為位移三維坐標,分別為三維位移速度、分別為三維位移加速度、ψ、θ、分別為三維旋轉角度、分別為三維旋轉角速度、分別為三維旋轉角加速度,T為矩陣轉置,
2)利用下式進行狀態轉移
式中,Xk為當前狀態、Xk-1為前一次的狀態、Wk-1為噪聲,使用前一次的狀態可以預測下一次的狀態,Δt為前一次測量和本次測量的時間間隔;
(2)測量量為位移是三維坐標和三軸旋轉角度,利用下式計算得到的平移和旋轉
式中,Xk是當前的狀態,vk是噪聲,xk、yk、zk是當前時刻(用k表示)的坐標,其余為旋轉角度;
(3)得到雙目視覺姿態的穩定數據,即得到的數據就是當前的位置x、y、z,和三個旋轉角度。
根據上述方案的本發明,其有益效果在于,本發明采用的卡爾曼濾波技術檢測速度快,無需進行精確的初始化就可以對人臉姿態進行測量;本發明積累誤差小,能夠進行長時間的跟蹤測量。
附圖說明
圖1為本發明未標定的雙目坐標系示意圖。
圖2為本發明標定之后的雙目坐標系示意圖。
圖3為本發明計算標定坐標的原理圖。
圖4為本發明前后兩次拍攝三個標記點的運動示意圖。
具體實施方式
下面結合附圖以及實施方式對本發明進行進一步的描述:
一種基于雙目視覺的姿態測量方法,使用雙目視覺系統通過計算被跟蹤物體(人臉或者用戶控制的外設)上的標記條來測量和定位。測量過程包括:
1、雙目視覺系統的標定。
如圖1-2所示,立體標定的主要目的是得到相機的內部參數,以及相機之間的平移和旋轉關系。有了這些參數之后可以對圖像進行立體校正,并且可以得到場景的深度信息,從而進行視覺測量。現實中的雙目視覺系統如圖1所示,相機之間會有較大的偏轉,并且得到的圖像也有較大的畸變。首先為了使雙目視覺系統能夠進行測量,必須要知道這些相對關系;其次為了便于進行視差計算,還要對圖像進行立體校正,保證圖像上相應行使對齊的,這樣視差的計算只需要在對應行上進行查找即可。
整個標定的過程分為相機內參標定和雙目相機立體標定。
相機的內參標定是只計算相機的內部參數,包括相機的焦距,光心坐標以及相機成像時的畸變參數。這些參數在相機的使用過程中是不變的,所以稱之為相機的內部參數。
雙目相機的立體標定,立體標定的目的是計算多個相機之剛體變換關系,從而建立真實的物理世界到虛擬的相機坐標系之間的對應關系,再利用相機的內部參數就可以構造物理世界到相機坐標系之間的對應關系,從而使我們可以計算圖像上某一點的真實物理坐標。
2、姿態計算。
如圖3所示,利用公式對雙目系統進行標定之后就可以對標記點進行三維坐標的測量,在已經校正好的雙目視覺系統中,直接利用三角測量就可以計算出標定的坐標,式中,b指的是兩個相機間的距離,Z是物體點P的Z坐標值,xT是物體點P在右邊相機照片上的位置,xR是物體P在右邊相機照片上的位置,f是相機的焦距,d是視差(d=xR-xT)。
使用三對匹配的三維點就可以求解物體的前后兩幀之間的運動參數,但是由于實際操作中對于穩定性和易用性的要求,一般采用五個對應點進行檢測,得到穩定的五個對應點之后取出其中的三個進行計算即可。
如圖4所示,經過上述步驟測量到標記條的三維坐標之后就可以進行姿態計算。具體的步驟如下:
(1)首先計算當前雙目相機檢測到的三個標記點的質心坐標Poc,然后將三個三維點分別減去質心坐標,得到質心坐標系下的新坐標,設為Pc;利用同樣的方法計算前一次雙目相機檢測到的三個標記點在其質心Pop坐標系下的新坐標Pp。
(2)利用點集Pc和Pp確定的平面的法向量nc=Pc1 x Pc2和np=Pp1 x Pp2,利用兩個平面的法向量將兩個平面旋轉至同一個平面,使用四元數的理論計算出兩個法向量之間的旋轉,其中Pc={Pc1,Pc2,Pc3}為雙目相機當前時刻檢測到的三個標記點三維坐標,Pp={Pp1,Pp2,Pp3}為雙目相機上一時刻檢測到的三個標記點三維坐標。
(3)經過上述步驟兩個平面已經處在同一個平面,這時兩個坐標系的z軸重合,但是xy坐標系依然存在旋轉,這時計算圖中兩組點向量之間的夾角即可算出面內旋轉。
到此就可以計算出兩平面的旋轉的四元數。旋轉之后的平面處在同一個面內,然后在利用兩個坐標向量之間的夾角關系即可得出面內旋轉。
(4)兩組標記條的質心之間的坐標即為平移矢量。
至此,就可以計算出每次標記體移動的姿態,就是運動前后標記點之間的旋轉和平移關系
3、對姿態數據進行卡爾曼濾波。
由于測量系統本身由于各種各樣的干擾,所以測的姿態數據含有噪聲,從而導致姿態數據出現劇烈的抖動,所以最后還需要對測定的旋轉和平移數據進行濾波處理。在這里我們選擇應用比較普遍的卡爾曼濾波器。
1)狀態轉移
選擇位置和旋轉的角度組成一個狀態向量,x中的變量依次為位移三維坐標,位移速度,位移加速度,旋轉角度,旋轉角速度,旋轉角加速度。
式中,x、y、z分別為位移三維坐標,分別為三維位移速度、分別為三維位移加速度、ψ、θ、分別為三維旋轉角度、分別為三維旋轉角速度、分別為三維旋轉角加速度,T為矩陣轉置。
轉移過程為
式中,Xk為當前狀態、Xk-1為前一次的狀態、Wk-1為噪聲,使用前一次的狀態可以預測下一次的狀態,Δt為前一次測量和本次測量的時間間隔。
2)測量過程
測量量為位移是三維坐標和三軸旋轉角度,就是每次計算得到的平移和旋轉。
式中,Xk是當前的狀態,Vk是噪聲,xk、yk、zk是當前時刻(用k表示)的坐標,其余為旋轉角度。
3)通過以上模型即可運用卡爾曼濾波進行數據過濾得到比較穩定的數據,即得到的數據就是當前的位置x、y、z,以及三個旋轉角度,共6個變量。
應當理解的是,對本領域普通技術人員來說,可以根據上述說明加以改進或變換,而所有這些改進和變換都應屬于本發明所附權利要求的保護范圍。
上面結合附圖對本發明專利進行了示例性的描述,顯然本發明專利的實現并不受上述方式的限制,只要采用了本發明專利的方法構思和技術方案進行的各種改進,或未經改進將本發明專利的構思和技術方案直接應用于其它場合的,均在本發明的保護范圍內。