本發(fā)明涉及信息技術(shù)領(lǐng)域,尤其涉及一種智能機(jī)姿態(tài)測定、全景影像生成及目標(biāo)識(shí)別方法。
背景技術(shù):地理信息位置服務(wù)一直只強(qiáng)調(diào)空間定位和空間距離,卻忽視了一個(gè)非常重要的數(shù)據(jù)和概念——姿態(tài),實(shí)際上用戶更關(guān)心目的地或目標(biāo)相對于自身的方向,沒有姿態(tài)的位置服務(wù)是不完整的位置服務(wù)。比如一款的士打車軟件,司機(jī)在搶單的時(shí)候如果只考慮距離,就可能選擇位于自身后方的乘客,由于車道不能逆行,導(dǎo)致司機(jī)無法接到乘客,乘客也無法乘坐的士。作戰(zhàn)的時(shí)候如果只知道敵人在接近而不知道敵人從哪個(gè)方向接近,這必然會(huì)導(dǎo)致混亂和恐慌。因此智能機(jī)姿態(tài)的測定能實(shí)現(xiàn)一種真正意義上的位置服務(wù),使得基于智能機(jī)姿態(tài)的位置服務(wù)成為可能,具有非常重要的意義,并且必將形成一種新的數(shù)據(jù)新標(biāo)準(zhǔn)而被廣泛應(yīng)用。姿態(tài)傳感器的應(yīng)用涉及方方面面,在很多領(lǐng)域都需要用到智能機(jī)自身姿態(tài)的信息,如影像、視頻糾正、單目定位,3D遙控、室內(nèi)導(dǎo)航、導(dǎo)彈制導(dǎo)。傳統(tǒng)的姿態(tài)測量非常笨重和昂貴,一般安裝在大型飛機(jī),車船上,主要用于航天軍事領(lǐng)域。近年來隨著傳感器技術(shù)的提高,各種廉價(jià)、輕小型號(hào)的用于姿態(tài)測定的傳感器得以安裝在小型智能機(jī)上,這為智能機(jī)姿態(tài)傳感數(shù)據(jù)新標(biāo)準(zhǔn)的建立和廣泛應(yīng)用創(chuàng)造了硬件條件。一旦這些傳感器數(shù)據(jù)通過數(shù)據(jù)融合處理得到智能機(jī)姿態(tài)數(shù)據(jù)之后就能實(shí)現(xiàn)各種重要的應(yīng)用。表示姿態(tài)的傳感數(shù)據(jù)用得最多、最傳統(tǒng)的是航位角、俯仰角和翻滾角,主要用于無人機(jī)姿態(tài)表述和地面移動(dòng)測量系統(tǒng)MMS,但是這樣表示缺點(diǎn)很多:首先需要用大量三角函數(shù)重構(gòu)姿態(tài)矩陣,導(dǎo)致計(jì)算速度慢;三個(gè)角度相對于坐標(biāo)系的轉(zhuǎn)角不統(tǒng)一;三個(gè)角度的轉(zhuǎn)換順序沒有一個(gè)統(tǒng)一的標(biāo)準(zhǔn),不同導(dǎo)航設(shè)備上的三個(gè)角的順序定義是不一樣的,沒有統(tǒng)一的標(biāo)準(zhǔn),導(dǎo)致針對不同導(dǎo)航設(shè)備的姿態(tài)數(shù)據(jù)軟件不能統(tǒng)一接口和通用共享,因此缺少統(tǒng)一的姿態(tài)數(shù)據(jù)標(biāo)準(zhǔn)極大地阻礙了導(dǎo)航技術(shù)的發(fā)展。有些軟件內(nèi)部采用的定位算法不是基于圖像的,在無GPS和wifi環(huán)境下軟件是不能正常定位的,軟件中的攝像頭掃描界面效果給人一種圖像識(shí)別定位的感覺。傳統(tǒng)的圖像定位方法是不知道姿態(tài)數(shù)據(jù)的,這樣就要求至少需要三對以上的物像同名點(diǎn)對應(yīng)關(guān)系才能進(jìn)行定位計(jì)算,事實(shí)上三對同名點(diǎn)除了進(jìn)行定位還要計(jì)算姿態(tài),因此得到的結(jié)果很不穩(wěn)定,很不準(zhǔn)確,特別是在三點(diǎn)位一條直線或者三點(diǎn)之間距離很小都會(huì)出現(xiàn)很不穩(wěn)定,不精確的問題,原因就是這三點(diǎn)除了進(jìn)行定位計(jì)算以外還要負(fù)擔(dān)姿態(tài)運(yùn)算。
技術(shù)實(shí)現(xiàn)要素:本發(fā)明的目的在于,提供一種智能機(jī)姿態(tài)測定方法、智能機(jī)顯示屏的姿態(tài)測定方法、基于智能機(jī)姿態(tài)的虛擬現(xiàn)實(shí)漫游方法、標(biāo)定智能機(jī)上的攝像頭姿態(tài)矩陣的方法、基于智能機(jī)姿態(tài)數(shù)據(jù)的多目視覺定位方法、基于智能機(jī)姿態(tài)數(shù)據(jù)的單目單點(diǎn)定位、基于智能機(jī)姿態(tài)數(shù)據(jù)的全景影像生成方法、基于智能機(jī)姿態(tài)數(shù)據(jù)的目標(biāo)方向選擇方法、基于智能機(jī)姿態(tài)數(shù)據(jù)的視頻影像實(shí)時(shí)糾正方法、基于姿態(tài)數(shù)據(jù)的智能機(jī)單像定位方法、基于智能機(jī)姿態(tài)數(shù)據(jù)的相對定位方法以及基于智能機(jī)姿態(tài)的目標(biāo)識(shí)別方法。本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是:提供一種智能機(jī)姿態(tài)測定方法,其特征在于,包括以下步驟:1)定義局部坐標(biāo)系:局部坐標(biāo)系是指原點(diǎn)在智能機(jī),Z軸指向地球表面法方向,Y軸或X軸與緯線相平行的坐標(biāo)系;或局部坐標(biāo)系原點(diǎn)位于地球上任意一點(diǎn),Z軸與重力方向一致,北代表局部坐標(biāo)系X軸,西代表局部坐標(biāo)系Y軸;2)測定智能機(jī)姿態(tài)矩陣Rg,Rg是一個(gè)相對于局部坐標(biāo)系的3x3單位正交矩陣,Rg由下述方法之一獲得:方法(1)采用加速度傳感器與磁力計(jì)傳感器或方向傳感器如果智能機(jī)有加速度傳感器,且有磁力計(jì)傳感器或方向傳感器,用以下公式(1)計(jì)算Rg其中vax,vay,vaz是智能機(jī)加速度傳感器測出的x,y,z三個(gè)方向的值,或是這三個(gè)值經(jīng)濾波的結(jié)果;Ra是加速度傳感器相對于智能機(jī)的姿態(tài)轉(zhuǎn)換矩陣;當(dāng)az≤0時(shí),s=-1,az>0時(shí),s=1;若采用方向傳感器:通過方向傳感器獲取方位角將其帶入公式(1)計(jì)算Rg;若采用磁力計(jì)傳感器:計(jì)算其中Rm是磁力傳感器相對于智能機(jī)的姿態(tài)轉(zhuǎn)換矩陣;{vmx,vmy,vmz}是磁力傳感器檢測到的三個(gè)值或這三個(gè)值經(jīng)濾波的結(jié)果;再計(jì)算利用磁力傳感器計(jì)算方位角的三角函數(shù)為:帶入公式(1)計(jì)算Rg;方法(2)采用旋轉(zhuǎn)矢量傳感器如果智能機(jī)配置有旋轉(zhuǎn)矢量傳感器,若檢測到旋轉(zhuǎn)矢量傳感器只有3個(gè)數(shù)據(jù)values[0],values[1],values[2],則采用以下公式得到q1=values[0],q2=values[1],q3=values[2],若檢測到旋轉(zhuǎn)矢量傳感器有4個(gè)數(shù)據(jù)values[0],values[1],values[2],values[3]則采用以下公式得到q1=values[0],q2=values[1],q3=values[2],q0=values[3]則Rg0矩陣為:根據(jù)智能機(jī)旋轉(zhuǎn)矢量傳感器坐標(biāo)系定義的不同,得到Rg=Rg0RLT,其中RLT是局部坐標(biāo)系與旋轉(zhuǎn)矢量傳感器坐標(biāo)系之間的變換矩陣;方法(3)采用陀螺儀、加速度傳感器與磁力傳感器迭代第1步選用方法(1)或方法(2)計(jì)算Rg的初值,將Rg轉(zhuǎn)換成4元數(shù)q0,q1,q2,q3作為以下第2-7步迭代的初值;第2步設(shè)定exInt,eyInt,ezInt原始值為0,即exInt=0,eyInt=0,ezInt=0;第3步根據(jù)接收到的磁力計(jì)矢量{mx,my,mz},得到正確磁場矢量{wx,wy,wz},先將矢量{mx,my,mz}替換成將其單位化以后的矢量得到局部坐標(biāo)系下磁場的正確的磁場方向矢量{bx,0,bz},bz=hz;其中:hx=2×mx×(0.5-q2×q2-q3×q3)+2×my×(q1×q2-q0×q3)+2×mz×(q1×q3+q0×q2);hy=2×mx×(q1×q2+q0×q3)+2×my×(0.5-q1×q1-q3×q3)+2×mz×(q2×q3-q0×q1);hz=2×mx×(q1×q3-q0×q2)+2×my×(q2×q3+q0×q1)+2×mz×(0.5-q1×q1-q2×q2);再轉(zhuǎn)換到正確磁場矢量{wx,wy,wz},其中wx=2×bx×(0.5-q2×q2-q3×q3)+2×bz×(q1×q3-q0×q2);wy=2×bx×(q1×q2-q0×q3)+2×bz×(q0×q1+q2×q3);wz=2×bx×(q0×q2+q1×q3)+2×bz×(0.5-q1×q1-q2×q2);第4步根據(jù)接收到的加速度傳感器數(shù)據(jù)ax,ay,az,和{wx,wy,wz}得到誤差矢量{ex,ey,ez},并計(jì)算其累計(jì)值exInt,eyInt,ezInt;具體為:先將矢量{ax,ay,az}替換成將其單位化以后的矢量計(jì)算vx=2*(q1*q3-q0*q2);vy=2*(q0*q1+q2*q3);vz=q0*q0-q1*q1-q2*q2+q3*q3;ex=(ay×vz-az×vy)+(my×wz-mz×wy);ey=(az×vx-ax×vz)+(mz×wx-mx×wz);ez=(ax×vy-ay×vx)+(mx×wy-my×wx);計(jì)算誤差累計(jì)值:將exInt替換為exInt+ex×Ki;eyInt替換為eyInt+ey×Ki;ezInt替換為ezInt+ez×Ki;其中Ki為一可調(diào)節(jié)的正系數(shù),Ki在0.00001至0.5中任意選??;若沒有磁力計(jì),則第3步不執(zhí)行,同時(shí)將該第4步中的ex=(ay×vz-az×vy)+(my×wz-mz×wy);ey=(az×vx-ax×vz)+(mz×wx-mx×wz);ez=(ax×vy-ay×vx)+(mx×wy-my×wx);改為ex=ay×vz-az×vy;ey=az×vx-ax×vz;ez=ax×vy-ay×vx;第5步根據(jù)誤差矢量{ex,ey,ez}及其累計(jì)值糾正陀螺儀數(shù)據(jù){gx0,gy0,gz0}假設(shè)智能機(jī)讀出當(dāng)前的一組陀螺儀數(shù)據(jù)為{gx0,gy0,gz0},gx=gx0+Kp×ex+exInt;gy=gy0+Kp×ey+eyInt;gz=gz0+Kp×ez+ezInt;其中Kp為一可調(diào)節(jié)的正系數(shù),Kp在0.000001至20.0中任意選??;第6步根據(jù)陀螺儀數(shù)據(jù)gx,gy,gz修正4元數(shù)隨著不斷接收到陀螺儀數(shù)據(jù)gx,gy,gz,對4元數(shù)按如下方式修正:q0替換為q0+(-q1×gx-q2×gy–q3×gz)×halfT;q1替換為q1+(q0×gx-q3×gy+q2×gz)×halfT;q2替換為q2+(q3×gx+q0×gy-q1×gz)×halfT;q3替換為q3+(-q2×gx+q1×gy+q0×gz)×halfT;其中halfT為修正周期,halfT=0.00001~-10.0;第7步輸出Rg矩陣和4元數(shù)將4元數(shù){q0,q1,q2,q3}單位化成輸出;4元數(shù)轉(zhuǎn)Rg矩陣公式如下第8步回到第3步繼續(xù)接收陀螺儀運(yùn)動(dòng)數(shù)據(jù)更新姿態(tài)4元數(shù)q0~q3,在循環(huán)的過程中每次到第7步都能輸出當(dāng)前的Rg矩陣和4元數(shù)。本發(fā)明還提供了一種智能機(jī)顯示屏的姿態(tài)測定方法,包括以下步驟:智能機(jī)顯示屏的姿態(tài)矩陣為rx是智能機(jī)顯示屏像素陣列x軸方向在局部坐標(biāo)系中的分量;ry是智能機(jī)顯示屏像素陣列y軸方向在局部坐標(biāo)系中的分量;rz是垂直于智能機(jī)顯示屏表面方向向智能機(jī)顯示屏內(nèi)部朝前看的視線方向在局部坐標(biāo)系中的分量;1)按上述方法測定智能機(jī)姿態(tài),并得到智能機(jī)的姿態(tài)矩陣Rg;2)計(jì)算R=ΔR×Rg,ΔR為智能機(jī)顯示屏姿態(tài)矩陣R相對于智能機(jī)姿態(tài)矩陣Rg的一個(gè)固定的方向的轉(zhuǎn)換,智能機(jī)自身Z軸定義為智能機(jī)加速度傳感器的z軸方向,當(dāng)顯示屏觀察方向和智能機(jī)自身Z軸方向剛好相反時(shí)當(dāng)顯示屏觀察方向和智能機(jī)自身Z軸方向完全一致時(shí)否則采用攝影測量方法標(biāo)定ΔR=RARg-1,RA是攝影測量后方交匯法算得的攝像頭姿態(tài)矩陣,Rg是上述方法測得此時(shí)智能機(jī)的姿態(tài)矩陣。本發(fā)明還提供了一種基于智能機(jī)姿態(tài)的虛擬現(xiàn)實(shí)漫游方法,包括以下步驟:1)采用上述方法得到智能機(jī)顯示屏的姿態(tài)矩陣R;2)根據(jù)姿態(tài)矩陣R移動(dòng)控制漫游觀察者在局部坐標(biāo)系中的位置:定義漫游觀察者是在局部坐標(biāo)系中的一個(gè)具備自身位置、姿態(tài)且用于觀察周邊場景的對象;智能機(jī)顯示屏所渲染的場景就是漫游觀察者在局部坐標(biāo)系中所應(yīng)看到的場景圖像;定義漫游觀察者在局部坐標(biāo)系中的坐標(biāo)為(Xd,Yd,Zd),采用以下方法控制漫游觀察者在虛擬場景中移動(dòng):a)獲取智能機(jī)漫游者手指在屏幕本體上的滑動(dòng)數(shù)據(jù);b)在滑動(dòng)數(shù)據(jù)是漫游者單指相對于智能機(jī)屏幕本體滑動(dòng)矢量△X,△Y的情況下,如果|r33|>|r13|且|r33|>|r23|,其中rij是R矩陣的i行j列元素值,則單指滑動(dòng)后,在局部坐標(biāo)系中的定位坐標(biāo)(Xd,Yd)的改正數(shù)(vx,vy),vx=ΔXr11+ΔYr21vy=ΔXr12+ΔYr22;否則:c)在滑動(dòng)數(shù)據(jù)是漫游者雙指做拉開或合攏操作所獲得的情況下,則得到拉開和合攏之前雙指之間的屏幕距離,以及拉開和合攏之后雙指之間的屏幕距離;通過前后兩次距離的差異修正Zd;3)設(shè)置漫游觀察者在局部坐標(biāo)系里的位置和方向:根據(jù)漫游觀察者的局部坐標(biāo)系坐標(biāo)(Xd,Yd,Zd),以及步驟1)測定得到的姿態(tài)矩陣R,利用OpenGL,OpenES,OSXOpenGL,Direct3D或osg繪圖軟件庫中用于設(shè)定相機(jī)位姿的圖形庫函數(shù),設(shè)置漫游觀察者在局部坐標(biāo)系里的位置和方向:需要設(shè)定以下幾個(gè)量:(1)漫游觀察者自身觀察的垂直視場角θ,就是智能機(jī)顯示屏上邊緣中點(diǎn)的視線方向與下邊緣中點(diǎn)的視線方向的夾角;(2)漫游觀察者所在的位置(Xd,Yd,Zd),并根據(jù)步驟2)的漫游方法進(jìn)行修正;(3)漫游者觀察方向{r31,r32r33}或者用戶注視點(diǎn)坐標(biāo)(Xd+r31,Yd+r32,Zd+r33)(4)漫游者自身向上方向的矢量{-r21,-r22,-r23}其中步驟(3)和(4)中的rij是智能機(jī)顯示屏姿態(tài)R矩陣中的第i行j列,i=2或3,j=1、2或3;4)在局部坐標(biāo)系下渲染繪制三維場景預(yù)先在智能機(jī)的顯示屏內(nèi)設(shè)置一個(gè)3維渲染圖層進(jìn)行三維場景渲染;被繪制的三維場景中的點(diǎn)、線、面和物體模型的幾何坐標(biāo)都要轉(zhuǎn)換成局部坐標(biāo)系下的坐標(biāo)[XiYiZi]T,即與漫游者的坐標(biāo)(Xd,Yd,Zd)在同一個(gè)局部坐標(biāo)系下;用OpenGL,OpenES,OSXOpenGL,Direct3D或osg繪圖軟件庫實(shí)現(xiàn)局部坐標(biāo)系下的三維繪圖;智能機(jī)攝像頭的拍攝方向與屏幕觀察方向一致時(shí),可以智能機(jī)攝像頭拍攝的視頻圖像為底圖,疊加繪制三維場景中的點(diǎn)線面。本發(fā)明還提供了一種基于智能機(jī)姿態(tài)數(shù)據(jù)的多目視覺定位方法,包括以下步驟:步驟1:在N個(gè)地理位置點(diǎn)拍攝同一個(gè)物體X,其中N≥2,測第i個(gè)觀察點(diǎn)的以下幾個(gè)量,其中i∈(1,2,…,N):(1)在視頻幀圖像中顯示的位置(ui,vi);(2)拍攝點(diǎn)的地理位置分別是第i個(gè)拍攝點(diǎn)的經(jīng)度,緯度,高度;(3)按上述方法測得第i個(gè)拍攝點(diǎn)的攝像頭姿態(tài)矩陣Ri;(4)第i個(gè)拍攝點(diǎn)的內(nèi)部參數(shù)焦距長fi,像主點(diǎn)坐標(biāo)(cxi,cyi);步驟2:計(jì)算相對于地心的N個(gè)姿態(tài)矩陣,i=1~N,R0i=RiRvi其中步驟3:利用公式得到N個(gè)拍攝點(diǎn)攝像頭光心的地心坐標(biāo)系坐標(biāo)T0i={Txi,Tyi,Tzi}Ti=1~N;其中{ΔTxi,ΔTxi,ΔTzi}T=RviTΔTi;ΔTi是攝像頭光心相對于GPS接收天線的偏移矢量;是將經(jīng)度,緯度,高度轉(zhuǎn)換成地心坐標(biāo)系的X坐標(biāo)的函數(shù);是將經(jīng)度,緯度,高度轉(zhuǎn)換成地心坐標(biāo)系的Y坐標(biāo)的函數(shù);是將經(jīng)度,緯度,高度轉(zhuǎn)換成地心坐標(biāo)系的Z坐標(biāo)的函數(shù);步驟4根據(jù)拍攝點(diǎn)N的姿態(tài)矩陣R0N,位置[TxNTyNTzN],在圖像中顯示的位置坐標(biāo)(uN,vN),攝像頭焦距像素長fN,像主點(diǎn)坐標(biāo)(cxN,cyN)都滿足以下方程其中r0iab表示姿態(tài)矩陣R0i的第a行第b列的元素值;i=1~N一共列2N個(gè)方程,解(Xx,Xy,Xz)三個(gè)未知數(shù);或采用攝影測量前方交匯方法計(jì)算出物體X得到地心坐標(biāo)系坐標(biāo)(Xx,Xy,Xz);最后由大地測量學(xué)公式得到地心坐標(biāo)(Xx,Xy,Xz)對應(yīng)的經(jīng)緯度。本發(fā)明還提供了一種基于智能機(jī)姿態(tài)數(shù)據(jù)的單目單點(diǎn)定位方法,包括步驟:假設(shè)智能機(jī)上的相機(jī)內(nèi)部參數(shù)矩陣為:被觀察物體是一個(gè)直徑=D大小的物體,在智能機(jī)上成像的寬度是Δu,高度是Δv,成像中心點(diǎn)像坐標(biāo)(u,v),采用上述方法測得智能機(jī)姿態(tài)矩陣Rg,并測得智能機(jī)上的攝像頭姿態(tài)矩陣R=△RRg包括以下兩種情況:(1)若已知智能機(jī)攝像頭光心局部坐標(biāo)系坐標(biāo)是T,可單目估算出物體的局部坐標(biāo)系下三維坐標(biāo):其中(2)若已知物體的局部坐標(biāo)系下三維坐標(biāo)X,可以求相機(jī)坐標(biāo)T該情況實(shí)現(xiàn)了相機(jī)的單目定位。本發(fā)明還提供了一種基于智能機(jī)姿態(tài)數(shù)據(jù)的全景影像生成方法,包括以下步驟:步驟1、智能機(jī)在某一固定點(diǎn)用不同姿態(tài)拍攝n張圖像,根據(jù)上述方法計(jì)算智能相機(jī)的姿態(tài)矩陣,根據(jù)智能相機(jī)的姿態(tài)矩陣再計(jì)算智能機(jī)攝像頭姿態(tài)矩陣,分別為R0i,i為0~n-1之間的整數(shù),n為大于等于1的整數(shù);步驟2、根據(jù)影像重疊區(qū)域迭代求解進(jìn)行精確糾正(1)提取圖像間重合區(qū)域的同名點(diǎn)對定義Hij=KjRjRiTKi-1對N張圖像之間任意兩張i,j進(jìn)行匹配尋找圖像上的同名點(diǎn)對,可以將第i張圖像Ii經(jīng)過透視Hij變換后得到圖像Ii’再與第j張圖像Ij作細(xì)致匹配,最后將圖像Ii上的匹配點(diǎn)坐標(biāo)經(jīng)過Hij-1逆變換還原成Ii圖原始的坐標(biāo);(2)根據(jù)上一步得到的同名點(diǎn)對匹配關(guān)系建立誤差e相對于參數(shù)集φ=[…fiqi0qi1qi2qi3…fjqj0qj1qj2qj3…]T的數(shù)學(xué)模型e(φ),前面得到的智能機(jī)攝像頭姿態(tài)矩陣R0i轉(zhuǎn)換成4元數(shù)qi00,qi01,qi02,qi03,i=0,…,n-1以φ=φ0=[…f0iqi00qi01qi02qi03…f0jqj00qj01qj02qj03…]T作為初值,采用LM法通過減小誤差e,逐步得到精確化相機(jī)姿態(tài)qi0,qi1,qi2,qi3和焦距參數(shù)fi;最后將精確化的φ中的4元數(shù)qi0,qi1,qi2,qi3轉(zhuǎn)化成姿態(tài)矩陣Ri,i=0,…,n-1;步驟3、開辟一張寬w高h(yuǎn)大小的全景影像,掃描全景影像上每一個(gè)像素,針對全景圖的每一個(gè)像素(x,y)進(jìn)行如下(1)(2)處理:(1)橫坐標(biāo)x轉(zhuǎn)換成縱坐標(biāo)y轉(zhuǎn)換成θ;其中w,h是全景圖像的寬,高;(2)依據(jù)小孔成像公式其中fi為相機(jī)i焦距像素長度,(cix,ciy)是相機(jī)i的像主點(diǎn);利用Ri將轉(zhuǎn)換成映射到每個(gè)相機(jī)i的像坐標(biāo)(ui,vi),若(ui,vi)在圖像范圍內(nèi),則將相機(jī)i像坐標(biāo)(ui,vi)處顏色取出,加權(quán)渲染到全景圖(x,y)處;權(quán)重與(ui,vi)到該圖像邊緣最短距離有關(guān),距離越短權(quán)重越??;若無一個(gè)相機(jī)的(ui,vi)在其圖像范圍內(nèi),渲染透明色或背景色到(x,y)處;掃描完全景圖像上所有點(diǎn)填充相應(yīng)的顏色,完成全景圖像的渲染;或者,在步驟2中先將全景圖像顏色值全部清0,在步驟3中針對n張圖像將全景圖像上的相應(yīng)區(qū)每個(gè)像素掃描n輪,分n輪依次將加權(quán)顏色值累加在全景圖的像素上;步驟4全景圖像的三維瀏覽和檢索定位(A)智能機(jī)姿態(tài)控制瀏覽三維全景圖像在虛擬場景中以球心為觀察點(diǎn),球體內(nèi)壁以全景圖作為紋理渲染一個(gè)球;設(shè)定智能機(jī)攝像頭觀察方向{r31,r32r33},自身向上方向{-r21,-r22,-r23};rij是姿態(tài)矩陣R中第i行第j列元素;(B)全景圖建庫、檢索和定位為有效利用存儲(chǔ)空間,除采用步驟3(1)中的公式外還可用墨卡托轉(zhuǎn)換公式,轉(zhuǎn)換成全景圖像,保持建庫和檢索的轉(zhuǎn)換方式一致;建庫提取全景圖像的特征點(diǎn)集合,建立與全景圖像關(guān)聯(lián)的特征點(diǎn)數(shù)據(jù)庫,庫中每個(gè)特征點(diǎn)指向其所在的全景圖像;檢索同一地點(diǎn)c≥1張圖像合成待檢索全景圖像并提取渲染區(qū)特征點(diǎn),對每個(gè)特征點(diǎn),查詢庫中與其最相似特征點(diǎn)所指向的全景圖像,按特征點(diǎn)相似程度對庫中指向的全景圖像進(jìn)行加權(quán)投票,按投票總和大小排序;將待檢索全景圖中已渲染區(qū)和投票得到的庫中全景圖對應(yīng)區(qū)域的像素集進(jìn)行相關(guān)匹配計(jì)算,相關(guān)系數(shù)越大越相似;輸出投票排序靠前且相關(guān)系數(shù)大于預(yù)設(shè)值的結(jié)果;如果c=1,也可根據(jù)單張拍攝姿態(tài)矩陣R,將庫中全景圖像映射到單張拍攝圖像域與單張拍攝圖像進(jìn)行相關(guān)匹配;定位在已知GPS情況下,檢索GPS附近區(qū)域的全景圖像組成的子集特征庫;服務(wù)器數(shù)據(jù)庫將全景圖像與其地理位置坐標(biāo)綁定在一起存儲(chǔ),檢索結(jié)果是編號(hào)為i*的圖像,即可在數(shù)據(jù)庫中查找出i*所對應(yīng)的地理位置。本發(fā)明還提供了一種基于智能機(jī)姿態(tài)數(shù)據(jù)的目標(biāo)方向選擇方法,包括以下步驟:1.定義智能機(jī)主方向或載體主方向相對于智能機(jī)自身的矢量單位p;2.采用上述方法獲取智能機(jī)當(dāng)前姿態(tài)矩陣Rg;3.計(jì)算p┴=RgTp為智能機(jī)主方向或載體主方向相對于指北坐標(biāo)系的矢量;4.計(jì)算局部坐標(biāo)系中的目標(biāo)矢量vo=O-P,假設(shè)局部坐標(biāo)系中智能機(jī)自身坐標(biāo)為P,目標(biāo)的坐標(biāo)為O,則目標(biāo)矢量vo=O-P;5.計(jì)算矢量p┴與目標(biāo)矢量vo之間夾角的余弦,或計(jì)算兩個(gè)矢量之間的夾角;如果夾角的余弦>0.9,或者夾角偏差的絕對值|dφ|很小則觸發(fā)智能機(jī)與該目標(biāo)O之間的某一關(guān)聯(lián)事件;通過兩矢量的點(diǎn)積除以|vo|得到夾角dφ的余弦,cos(dφ)=(p┴點(diǎn)積vo)/|vo|如果該余弦cos(dφ)>cos(φa),φa為預(yù)設(shè)值,則該目標(biāo)方向選擇事件可觸發(fā);6.在需要與用戶的可視化交互情況下,在指北坐標(biāo)系中實(shí)時(shí)繪制目標(biāo)、智能機(jī)和矢量p┴;計(jì)算局部坐標(biāo)系中智能機(jī)主方向矢量與目標(biāo)矢量之間夾角的方向余弦,根據(jù)余弦值大小判定夾角,并且在三維空間或二維空間中繪制出智能機(jī)主方向矢量與目標(biāo)矢量之間的方向關(guān)系,便于人機(jī)交互。本發(fā)明還提供了一種基于智能機(jī)姿態(tài)數(shù)據(jù)的視頻影像實(shí)時(shí)糾正方法,包括以下步驟:1.采用上述方法計(jì)算智能機(jī)拍攝視頻的每一幀圖像對應(yīng)的姿態(tài)矩陣Rg,R=△RRg得到智能機(jī)上攝像頭的姿態(tài)矩陣R,△R是攝像頭相對于智能機(jī)的轉(zhuǎn)換矩陣;2.將攝像頭的姿態(tài)矩陣R分解為R=RτR_從而得到矩陣Rτ,相機(jī)的拍攝姿態(tài)R不規(guī)則,期待得到用虛擬姿態(tài)R_作為拍攝姿態(tài)矩陣得到的標(biāo)準(zhǔn)圖像;3.對智能機(jī)拍攝視頻的每一幀圖像I經(jīng)過H=K2RτTK-1的Homograph變換得到I’;其中是拍攝相機(jī)的內(nèi)部參數(shù)矩陣,f是焦距的像素長度,(cx,cy)是相機(jī)主點(diǎn)坐標(biāo);對于理想相機(jī)(cx,cy)是圖像的中心點(diǎn),cx=w/2,cy=h/2,w,h是原始圖像I的寬和高;是糾正以后虛擬相機(jī)的內(nèi)部參數(shù)矩陣,f2是糾正以后虛擬相機(jī)的焦距的像素長度,(cx2,cy2)是糾正以后虛擬相機(jī)主點(diǎn)坐標(biāo)。本發(fā)明還提供了一種基于姿態(tài)數(shù)據(jù)的智能機(jī)單像定位方法,包括以下步驟:假設(shè)相機(jī)或攝像機(jī)內(nèi)參數(shù)據(jù)f和(cx,cy)已知,f是焦距的像素長度,(cx,cy)是相機(jī)主點(diǎn)坐標(biāo),內(nèi)參矩陣單像目標(biāo)定位整體實(shí)施步驟如下:1.搜集采集物方點(diǎn),轉(zhuǎn)化成局部坐標(biāo)系坐標(biāo);2.采用上述方法獲取智能機(jī)的姿態(tài)矩陣Rg,R=△RRg得到智能機(jī)上攝像頭的姿態(tài)矩陣R,△R是攝像頭相對于智能機(jī)的轉(zhuǎn)換矩陣;3.拍攝一張圖像,自動(dòng)提取其中的多個(gè)特征點(diǎn),通過匹配算法得到與物點(diǎn)對應(yīng)的n對物像同名點(diǎn);n個(gè)物方點(diǎn)的坐標(biāo)是Xi=[Xix,Xiy,Xiz]Ti=1,…,n,對應(yīng)n個(gè)像點(diǎn)坐標(biāo)是[uivi]Ti=1,…,n;4.分無錯(cuò)和容錯(cuò)2種情況計(jì)算相機(jī)在局部坐標(biāo)系下的坐標(biāo)T:(1)若確認(rèn)多個(gè)特征點(diǎn)無錯(cuò)誤,則采用數(shù)學(xué)模型解方程得到自身在局部坐標(biāo)系下坐標(biāo)Tx,Ty,Tz其中進(jìn)而得到相機(jī)位置T,最大集ζ為n個(gè)點(diǎn)對組成的全集;(2)若不確認(rèn)多個(gè)特征點(diǎn)是否全部正確,采用Ransac容錯(cuò)算法,通過共線方程模型隨機(jī)選取兩對點(diǎn)n=2,根據(jù)模型式(HH2)計(jì)算相機(jī)位置T,并通過共線方程zi[u’iv’i1]T=KR(Xi-T)驗(yàn)證T,通過KR(Xi-T)算出的u’i,v’I與ui,vi之間的誤差距離小于error像素認(rèn)為是符合共線方程,選取符合共線方程點(diǎn)數(shù)最大集ζ并計(jì)算最大集ζ對應(yīng)的T*,單目多點(diǎn)Ransac容錯(cuò)算法流程如下:2.從n個(gè)像點(diǎn)中隨機(jī)挑選出2個(gè)距離足夠大的像點(diǎn),至少大于容忍誤差error的2倍;3.挑選出來的2個(gè)像點(diǎn)與物點(diǎn)對應(yīng)形成2對物象同名點(diǎn),按式(HH2)計(jì)算智能機(jī)位置T;4.用T驗(yàn)證所有n對物象同名點(diǎn)的共線方程對應(yīng)關(guān)系,共線方程KR(Xi-T)算出的u’i,v’I與ui,vi之間的誤差距離小于error像素認(rèn)為是符合共線方程,統(tǒng)計(jì)符合共線方程的個(gè)數(shù)i_in,如果i_in數(shù)量超過前期的數(shù)量nmax則記錄本組滿足共線方程容忍誤差數(shù)量最大的點(diǎn)集ζmax,并刷新nmax=i_in;5.更新迭代次數(shù)k+1→k6.回到第1步,直到滿足Ransac概率收斂條件(1-(nmax/n)2)k<pe,pe是Ransac容忍錯(cuò)誤概率,為10-2~10-20之間的一個(gè)數(shù)值;7.將前面搜索得到的最大的點(diǎn)集ζmax搜集起來進(jìn)行最后一次多點(diǎn)最小2乘計(jì)算,按公式(HH2)計(jì)算得到Tbest得到最終結(jié)果;本發(fā)明還提供了一種基于智能機(jī)姿態(tài)數(shù)據(jù)的相對定位算法,包括以下步驟:a)兩相機(jī)之間相對定位假設(shè)相機(jī)1,2之間有i=1..n≥2對同名點(diǎn)u1i,v1i~u2i,v2i;其中R1,R2是智能機(jī)相機(jī)在拍攝的1,2兩個(gè)地點(diǎn)測出來的姿態(tài)矩陣數(shù)據(jù);已知相機(jī)1的內(nèi)參矩陣相機(jī)2的內(nèi)參矩陣其中(cxi,cyi)是相機(jī)i的像素主點(diǎn)坐標(biāo),fi是相機(jī)i的焦距像素長;已知兩相機(jī)之間的距離是L;計(jì)算相機(jī)2相對于相機(jī)1的位移矢量T包括以下步驟:2.用上述方法計(jì)算智能機(jī)上相機(jī)的姿態(tài)Rg1,Rg2計(jì)算R1=△RRg1R2=△RRg2進(jìn)一步得到R=R2R1T3.構(gòu)建矩陣A其中uji*=Ki-1ui=[uji*xuji*yuji*z]T,ujiR*=Ruji*=[ujiR*xujiR*yujiR*z]T,i=1,2,j=1..n;3.如果確認(rèn)n對點(diǎn)都是正確的,則求約束||t3x1||=1下Anx3t3x1=0的解或采用數(shù)學(xué)SVD分解得到Anx3=UnxnWnx3VT3x3,SVD分解出來的V矩陣的最后1列的矢量,即對應(yīng)于最小奇異值的特征矢量為t,T=-LRTt得到結(jié)果,結(jié)束否則繼續(xù)進(jìn)行以下步驟;4.設(shè)置迭代初值nmax=0,k=1;5.隨機(jī)挑選A矩陣中的2行,構(gòu)建A2x3就是求約束||t2||=1下A2x3t2=0的解或采用SVD分解得到A2x3=U2x2W2x3VT3x3,分解出來的V的最后1列的矢量即為t2;6.將t2=[ttxttyttz]T代入第j=1..n個(gè)點(diǎn),采用式(AB)驗(yàn)證點(diǎn)j是否是內(nèi)點(diǎn),(uj2*zuj1R*y-uj2*yuj1R*z)ttx+(uj2*xuj1R*z-uj2*zuj1R*x)tty+(uj2*yuj1R*x-uj2*xuj1R*y)ttz<ε(AB)其中ε表示最大容忍誤差物方長度,相對于兩相機(jī)之間的距離=1而言;滿足式(AB)則點(diǎn)j是內(nèi)點(diǎn),如果滿足內(nèi)點(diǎn)的數(shù)量nt超過最佳值nmax則ζt-->ζnt-->nmax7.如果(1-(nmax/n)2)k<0.00001錯(cuò)誤率足夠小,退出迭代進(jìn)入步驟9;8迭代次數(shù)k增加1,回到步驟5反復(fù)迭代;9.最后采用最小二乘法針對最大內(nèi)點(diǎn)集ζ重新計(jì)算一次最優(yōu)t,求約束||t3x1||=1下An’x3t3x1=0的解,其中n’=nmax或采用SVD分解得到An’x3=Un’xn’Wn’x3VT3x3,分解出來的V的最后1列矢量,即對應(yīng)于最小奇異值的特征矢量,即為t最終得到T=-LRTt;b)多個(gè)相機(jī)間的相對定位構(gòu)建矩陣U(ij)k=[U(ij)k1U(ij)k2U(ij)k3]k=1,2rc(ij)ab是指第i個(gè)點(diǎn)對應(yīng)的第j個(gè)圖像的相機(jī)的姿態(tài)矩陣的a行b列,uc(ij)是第i個(gè)點(diǎn)對應(yīng)的第j個(gè)圖像上的像點(diǎn)坐標(biāo),(cx,cy)是相機(jī)主點(diǎn)坐標(biāo),f是相機(jī)的焦距;對矩陣A進(jìn)行SVD分解得到A=UWVT,V中最后一個(gè)非零矢量X=[T1xT1yT1z…TcxTcyTczX1Y1Z1…XNYNZN]T的每一個(gè)分量對應(yīng)C個(gè)相機(jī)的位置T1x,T1y,T1z,…,Tcx,Tcy,Tcz和N個(gè)點(diǎn)的坐標(biāo)X1,Y1,Z1,…,XN,YN,ZN。本發(fā)明還提供了基于智能機(jī)姿態(tài)的目標(biāo)識(shí)別算法,包括以下步驟:根據(jù)上述方法,通過H=K2RτTK-1對智能機(jī)拍攝視頻的圖像I進(jìn)行糾正得到I';對糾正后的圖像I'進(jìn)行目標(biāo)檢測、識(shí)別處理,得到I'圖像上目標(biāo)的外接多邊形點(diǎn)坐標(biāo)集xi,yi,i=1,...,N;通過反糾正H-1的方法得到坐標(biāo)集在原圖上映射的坐標(biāo)xi',yi',即傳感器糾正目標(biāo)識(shí)別算法的具體實(shí)施方式:首先根據(jù)傳感器得到的R矩陣對原始圖I進(jìn)行H=K2RτTK-1標(biāo)準(zhǔn)化糾正得到標(biāo)準(zhǔn)糾正圖I’,然后對I’圖像進(jìn)行目標(biāo)檢測、跟蹤,得到它對應(yīng)的目標(biāo)框r,目標(biāo)框r相對于標(biāo)準(zhǔn)模板的平移是rx,ry,目標(biāo)框r首先經(jīng)過平移變換Ht映射到標(biāo)準(zhǔn)圖上,然后再經(jīng)過H-1變換映射到原始圖上,因此目標(biāo)框r相對于原始圖像I的H變換為r*=H-1Htr。本發(fā)明產(chǎn)生的有益效果是:本發(fā)明的方法能實(shí)時(shí)得到手機(jī)在局部地理坐標(biāo)系中的姿態(tài)矩陣的方法,姿態(tài)矩陣準(zhǔn)確描述了智能機(jī)在客觀三維場景中的姿態(tài)數(shù)據(jù)對于導(dǎo)航,方向選擇,便攜式控制都有及其廣泛的應(yīng)用;可實(shí)現(xiàn)3D漫游控制,游戲場景漫游,虛擬現(xiàn)實(shí),增強(qiáng)現(xiàn)實(shí),3D仿真等領(lǐng)域;實(shí)現(xiàn)多張圖像對某一物體空間3維定位,或者物體3維坐標(biāo)與相機(jī)3維坐標(biāo)之間的相互定位。另外本發(fā)明還可以實(shí)現(xiàn)便攜式智能機(jī)拍攝合成全景圖像,以及根據(jù)全景圖像進(jìn)行空間定位以及空間目標(biāo)方向選擇、控制、人機(jī)交互操作;還可實(shí)現(xiàn)基于姿態(tài)矩陣的智能機(jī)的視頻圖像實(shí)時(shí)糾正,能保持生成糾正的圖像中的水平線始終對應(yīng)客觀場景的地平線,可用于顛簸的路面,海面場景視頻圖像的糾正。對于接近垂直于地面拍攝的情況,生成糾正的圖像中的水平朝右方向始終對應(yīng)客觀場景中的局部坐標(biāo)系的x軸(北),可用于無人機(jī)地面圖像拼接。本發(fā)明還可根據(jù)姿態(tài)矩陣和圖像上2個(gè)點(diǎn)的像坐標(biāo)對相機(jī)自身進(jìn)行定位以及基于姿態(tài)矩陣的雙目圖像或多目圖像之間相對定位,解決了任意姿態(tài)拍攝視頻仍能準(zhǔn)確識(shí)別目標(biāo)的難題,不必考慮目標(biāo)大角度旋轉(zhuǎn),仍能實(shí)現(xiàn)高效準(zhǔn)確的目標(biāo)檢測。附圖說明下面將結(jié)合附圖及實(shí)施例對本發(fā)明作進(jìn)一步說明,附圖中:圖1是本發(fā)明實(shí)施例位置服務(wù)中同時(shí)符合位置和方向的目標(biāo)位示意圖;圖2是本發(fā)明實(shí)施例的單像雙點(diǎn)定位示意圖;圖3是本發(fā)明實(shí)施例傳感器糾正目標(biāo)識(shí)別算法原理示意圖。具體實(shí)施方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。本發(fā)明實(shí)施例智能機(jī)姿態(tài)測定方法,包括以下步驟:1)定義局部坐標(biāo)系:局部坐標(biāo)系是指原點(diǎn)在智能機(jī),Z軸指向地球表面方向,Y軸或X軸與緯線相平行的坐標(biāo)系;或局部坐標(biāo)系原點(diǎn)位于地球上任意一點(diǎn),Z軸與重力方向一致,北代表局部坐標(biāo)系X軸,西代表局部坐標(biāo)系Y軸;2)測定智能機(jī)姿態(tài)矩陣Rg。Rg是一個(gè)相對于局部坐標(biāo)系的3x3單位正交矩陣,Rg由下法之一獲得:方法(1)采用加速度傳感器與磁力計(jì)或方向傳感器如果智能機(jī)有加速度傳感器,且有磁力計(jì)或方向傳感器,用以下公式(1)計(jì)算Rg其中vax,vay,vaz是智能機(jī)測出來的智能機(jī)加速度傳感器的x,y,z三個(gè)方向的值,或是這三個(gè)值經(jīng)濾波的結(jié)果;Ra是加速度傳感器相對于智能機(jī)的姿態(tài)轉(zhuǎn)換矩陣;當(dāng)az≤0時(shí),s=-1,az>0時(shí),s=1;若采用方向傳感器:帶入公式(1)計(jì)算Rg;若采用磁力計(jì):計(jì)算其中Rm是磁力計(jì)相對于智能機(jī)的姿態(tài)轉(zhuǎn)換矩陣;{vmx,vmy,vmz}是智能機(jī)上磁力計(jì)檢測到的三個(gè)值或這三個(gè)值經(jīng)濾波的結(jié)果;再計(jì)算利用磁力計(jì)計(jì)算方位角的三角函數(shù)為:帶入公式(1)即可算出Rg;方法(2)用旋轉(zhuǎn)矢量傳感器如果智能機(jī)配置有旋轉(zhuǎn)矢量傳感器檢測到智能機(jī)上的旋轉(zhuǎn)矢量傳感器只有3個(gè)數(shù)據(jù)values[0],values[1],values[2],采用以下公式得到q1=values[0],q2=values[1],q3=values[2],若檢測到旋轉(zhuǎn)矢量傳感器有4個(gè)數(shù)據(jù)values[0],values[1],values[2],values[3]則采用以下公式得到q1=values[0],q2=values[1],q3=values[2],q0=values[3]則Rg0矩陣為:根據(jù)智能機(jī)旋轉(zhuǎn)矢量傳感器坐標(biāo)系定義的不同,得到Rg=Rg0RLT,其中RLT是局部坐標(biāo)系與旋轉(zhuǎn)矢量傳感器坐標(biāo)系之間的變換矩陣;根據(jù)智能機(jī)旋轉(zhuǎn)矢量傳感器坐標(biāo)系定義的不同,采取以下幾種情況之一得到Rg:若旋轉(zhuǎn)矢量傳感器的X軸指向東,Y軸指向北,則若旋轉(zhuǎn)矢量傳感器的X軸指向北,Y軸指向西,則Rg=Rg0;(3)若旋轉(zhuǎn)矢量傳感器的X軸指向南,Y軸指向東,則方法(3)采用陀螺儀、加速度傳感器與磁力計(jì)迭代第1步選用方法(1)或方法(2)計(jì)算Rg的初值,將Rg轉(zhuǎn)換成4元數(shù)q0,q1,q2,q3作為以下第2-7步迭代的初值第2步設(shè)定exInt,eyInt,ezInt原始值為0exInt=0,eyInt=0,ezInt=0第3步根據(jù)接收到的磁力計(jì)矢量{mx,my,mz},得到正確磁場矢量{wx,wy,wz}先將矢量{mx,my,mz}替換成將其單位化以后的矢量得到局部坐標(biāo)系下磁場的正確的磁場方向矢量{bx,0,bz}hx=2×mx×(0.5-q2×q2-q3×q3)+2×my×(q1×q2-q0×q3)+2×mz×(q1×q3+q0×q2);hy=2×mx×(q1×q2+q0×q3)+2×my×(0.5-q1×q1-q3×q3)+2×mz×(q2×q3-q0×q1);hz=2×mx×(q1×q3-q0×q2)+2×my×(q2×q3+q0×q1)+2×mz×(0.5-q1×q1-q2×q2);bz=hz再轉(zhuǎn)換到正確磁場矢量{wx,wy,wz}wx=2×bx×(0.5-q2×q2-q3×q3)+2×bz×(q1×q3-q0×q2);wy=2×bx×(q1×q2-q0×q3)+2×bz×(q0×q1+q2×q3);wz=2×bx×(q0×q2+q1×q3)+2×bz×(0.5-q1×q1-q2×q2);第4步根據(jù)接收到的加速度傳感器數(shù)據(jù)ax,ay,az,和{wx,wy,wz}得到誤差矢量{ex,ey,ez}并計(jì)算其累計(jì)值exInt,eyInt,ezInt先將矢量{ax,ay,az}替換成將其單位化以后的矢量vx=2*(q1*q3-q0*q2);vy=2*(q0*q1+q2*q3);vz=q0*q0-q1*q1-q2*q2+q3*q3;ex=(ay×vz-az×vy)+(my×wz-mz×wy);ey=(az×vx-ax×vz)+(mz×wx-mx×wz);ez=(ax×vy-ay×vx)+(mx×wy-my×wx);計(jì)算誤差累計(jì)值exInt替換為exInt+ex×Ki;eyInt替換為eyInt+ey×Ki;ezInt替換為ezInt+ez×Ki;其中Ki為一可調(diào)節(jié)的正系數(shù),Ki在0.00001至0.5中任意選取;第5步根據(jù)誤差矢量{ex,ey,ez}及其累計(jì)值糾正陀螺儀數(shù)據(jù){gx0,gy0,gz0}假設(shè)智能機(jī)讀出當(dāng)前的一組陀螺儀數(shù)據(jù)為{gx0,gy0,gz0}gx=gx0+Kp×ex+exInt;gy=gy0+Kp×ey+eyInt;gz=gz0+Kp×ez+ezInt;其中Kp為一可調(diào)節(jié)的正系數(shù)Kp在0.000001至20.0中任意選??;第6步根據(jù)陀螺儀數(shù)據(jù)gx,gy,gz修正4元數(shù)隨著不斷接收到陀螺儀數(shù)據(jù)gx,gy,gz,對4元數(shù)按如下方式修正,halfT為修正周期,halfT=0.00001~-10.0,q0替換為q0+(-q1×gx-q2×gy–q3×gz)×halfT;q1替換為q1+(q0×gx-q3×gy+q2×gz)×halfT;q2替換為q2+(q3×gx+q0×gy-q1×gz)×halfT;q3替換為q3+(-q2×gx+q1×gy+q0×gz)×halfT;第7步輸出Rg矩陣和4元數(shù)將4元數(shù){q0,q1,q2,q3}單位化成輸出4元數(shù)轉(zhuǎn)Rg矩陣公式如下第8步回到第3步繼續(xù)接收陀螺儀運(yùn)動(dòng)數(shù)據(jù)更新姿態(tài)4元數(shù)q0~q3,在循環(huán)的過程中每次到第7步都能輸出當(dāng)前的Rg矩陣和4元數(shù)。注:在沒有磁力計(jì)的時(shí)候,可去掉第3步,同時(shí)第4步中的ex=(ay×vz-az×vy)+(my×wz-mz×wy);ey=(az×vx-ax×vz)+(mz×wx-mx×wz);ez=(ax×vy-ay×vx)+(mx×wy-my×wx);改為ex=ay×vz-az×vy;ey=az×vx-ax×vz;ez=ax×vy-ay×vx;本發(fā)明實(shí)施例的智能機(jī)顯示屏的姿態(tài)測定方法,可實(shí)現(xiàn)各種可視化增強(qiáng)現(xiàn)實(shí)應(yīng)用,包括以下步驟:智能機(jī)顯示屏的姿態(tài)矩陣為rx是智能機(jī)顯示屏像素陣列x軸方向在局部坐標(biāo)系中的分量;ry是智能機(jī)顯示屏像素陣列y軸方向在局部坐標(biāo)系中的分量;rz是垂直于智能機(jī)顯示屏表面方向向智能機(jī)顯示屏內(nèi)部朝前看的視線方向在局部坐標(biāo)系中的分量;1)按上述方法測定智能機(jī)姿態(tài),并得到智能機(jī)的姿態(tài)矩陣Rg;2)計(jì)算R=ΔR×Rg;得到智能機(jī)顯示屏的姿態(tài)矩陣;ΔR為智能機(jī)顯示屏姿態(tài)矩陣R相對于智能機(jī)姿態(tài)矩陣Rg的一個(gè)固定的方向的轉(zhuǎn)換,智能機(jī)自身Z軸定義為智能機(jī)加速度計(jì)的z軸方向,當(dāng)顯示屏觀察方向和智能機(jī)自身Z軸方向剛好相反時(shí)當(dāng)顯示屏觀察方向和智能機(jī)自身Z軸方向完全一致時(shí)否則采用攝影測量方法標(biāo)定ΔR=RARg-1,RA是攝影測量后方交匯法算得的攝像頭姿態(tài)矩陣,Rg是根據(jù)上述方法測得此時(shí)智能機(jī)的姿態(tài)矩陣。本發(fā)明實(shí)施例基于智能機(jī)姿態(tài)的虛擬現(xiàn)實(shí)漫游方法,可實(shí)現(xiàn)3D漫游控制,游戲場景漫游,虛擬現(xiàn)實(shí),增強(qiáng)現(xiàn)實(shí),3D仿真等領(lǐng)域,包括以下步驟:1)采用上述方法得到智能機(jī)顯示屏的姿態(tài)矩陣R2)移動(dòng)控制漫游觀察者在局部坐標(biāo)系中的位置定義漫游觀察者是在局部坐標(biāo)系中的一個(gè)具備自身位置、姿態(tài)且用于觀察周邊場景的對象;智能機(jī)顯示屏所渲染的場景就是漫游觀察者在局部坐標(biāo)系中所應(yīng)看到的場景圖像;定義漫游觀察者在局部坐標(biāo)系中的坐標(biāo)為Xd,Yd,Zd用以下三種模式之一控制漫游觀察者在虛擬場景中的移動(dòng):(1)模式1:普通二維移動(dòng)當(dāng)手指按{ΔX,ΔY}方向滑過智能機(jī)顯示屏平面的時(shí)候,相當(dāng)于局部坐標(biāo)系下,Xd增加Vx=ΔXr11+ΔYr21;Yd增加Vy=ΔXr12+ΔYr22;Zd不變;(2)模式2:智能二維移動(dòng)當(dāng)手指按{ΔX,ΔY}方向滑過智能機(jī)顯示屏平面的時(shí)候,采用如下方法:首先選擇R矩陣右側(cè)一列中的r13,r23,r33中哪一個(gè)分量的絕對值最大,如果|r33|最大,Xd增加Vx=ΔXr11+ΔYr21Yd增加Vy=ΔXr12+ΔYr22如果|r23|最大,Xd增加Vx=ΔXr11±ΔYr31Yd增加Vy=ΔXr12±ΔYr32r23≥0時(shí),±取+;r23<0時(shí)±取-或者r23≥0時(shí),±取-;r23<0時(shí)±取+如果|r13|最大,Xd增加Vx=±ΔXr31+ΔYr21Yd增加Vy=±ΔXr32+ΔYr22r13≥0時(shí),±取+;r13<0時(shí)±取-或者r13≥0時(shí),±取-;r13<0時(shí)±取+;(3)模式3:三維漫游移動(dòng)因?yàn)橹悄軝C(jī)顯示屏只有二維,單個(gè)手指滑動(dòng)只能進(jìn)行二維操作,單指劃過智能機(jī)顯示屏?xí)rΔX和ΔY與滑動(dòng)位移成正比;此時(shí)操作智能機(jī)的用戶雙指滑動(dòng)觸碰智能機(jī)操作實(shí)現(xiàn)3維操作:采用雙指合攏相當(dāng)于ΔZ<0,雙指拉開相當(dāng)于ΔZ>0,或者雙指合攏相當(dāng)于ΔZ>0,雙指拉開相當(dāng)于ΔZ<0;當(dāng)智能機(jī)接收到手指控制信息{ΔX,ΔY,ΔZ}的時(shí)候,Xd增加Vx=ΔXr11+ΔYr21+ΔZr31Yd增加Vy=ΔXr12+ΔYr22+ΔZr32Zd增加Vz=ΔXr13+ΔYr23+ΔZr33;3)設(shè)置漫游觀察者在局部坐標(biāo)系里的位置和方向:根據(jù)漫游觀察者的局部坐標(biāo)系坐標(biāo)Xd,Yd,Zd,以及步驟1)測定得到的姿態(tài)矩陣R,利用OpenGL,OpenES,OSXOpenGL,Direct3D或osg繪圖軟件庫中用于設(shè)定相機(jī)位姿的圖形庫函數(shù),設(shè)置漫游觀察者在局部坐標(biāo)系里的位置和方向:需要設(shè)定以下幾個(gè)量:(1)漫游觀察者自身觀察的垂直視場角θ,就是智能機(jī)顯示屏上邊緣中點(diǎn)的視線方向與下邊緣中點(diǎn)的視線方向的夾角;(2)漫游觀察者所在的位置Xd,Yd,Zd,由步驟2)漫游方法修改;(3)漫游者觀察方向{r31,r32r33}或者用戶注視點(diǎn)坐標(biāo)(Xd+r31,Yd+r32,Zd+r33)(4)漫游者自身向上方向的矢量{-r21,-r22,-r23}其中步驟(3)和(4)中的rij是智能機(jī)顯示屏姿態(tài)R矩陣中的第i行j列,i=2或3,j=1、2或3;4)在局部坐標(biāo)系下渲染繪制三維場景預(yù)先在智能機(jī)的顯示屏內(nèi)設(shè)置一個(gè)3維渲染圖層進(jìn)行三維場景渲染;這里被繪制的三維場景中的點(diǎn)、線、面和物體模型的幾何坐標(biāo)都要轉(zhuǎn)換成局部坐標(biāo)系下的坐標(biāo)[XiYiZi]T,即與漫游者的坐標(biāo)Xd,Yd,Zd在同一個(gè)局部坐標(biāo)系下;用OpenGL,OpenES,OSXOpenGL,Direct3D或osg繪圖軟件庫實(shí)現(xiàn)局部坐標(biāo)系下的三維繪圖。智能機(jī)攝像頭的拍攝方向與屏幕觀察方向一致時(shí),可以智能機(jī)攝像頭拍攝的視頻圖像為底圖,疊加繪制三維場景中的點(diǎn)線面。在本發(fā)明的一個(gè)實(shí)施例中,在上述實(shí)施例的基礎(chǔ)上虛擬場景賦予真實(shí)的地理坐標(biāo),可用于地理信息瀏覽,地圖漫游,虛擬旅游,3D真圖游戲場景漫游控制,增強(qiáng)現(xiàn)實(shí),數(shù)字城市,智慧城市漫游,房地產(chǎn)漫游等領(lǐng)域。在所述步驟3)和步驟4)之間可增加如下操作:(a)獲取智能機(jī)的高度hs,緯度θs和經(jīng)度θs是智能機(jī)的緯度,是智能機(jī)的經(jīng)度,由智能機(jī)上自帶的GPS接收模塊獲??;(b)計(jì)算智能機(jī)所在經(jīng)緯度的Rv(c)計(jì)算智能機(jī)所在緯度θs經(jīng)度高度hs的地心坐標(biāo)系坐標(biāo)Ts利用大地測量學(xué)中經(jīng)典的轉(zhuǎn)換公式得到Ts;其中hs是智能機(jī)離地面高度Ns是隨緯度變化的卯酉圈曲率半徑;a,b是地球橢球的長短軸,是大地測量學(xué)中的已知常量;e是偏心率,是定值;(d)根據(jù)地球上任何一個(gè)點(diǎn)的經(jīng)度緯度θi和高程hi得到該點(diǎn)地心坐標(biāo)系坐標(biāo)T0i=[X0iY0iZ0i]T利用大地測量學(xué)中經(jīng)典的轉(zhuǎn)換公式得到T0i;其中hi是點(diǎn)離地面高度Ni是隨緯度變化的卯酉圈曲率半徑;a,b是地球橢球的長短軸,是大地測量學(xué)中的已知常量;e是偏心率,是定值;如果已知一個(gè)物體所在經(jīng)緯度和θi,通過本步驟計(jì)算出它的地心坐標(biāo)系坐標(biāo)T0i;(e)地心坐標(biāo)系坐標(biāo)T0i轉(zhuǎn)換為局部坐標(biāo)系中的坐標(biāo)(XiYiZi)TΔT是局部坐標(biāo)系中智能機(jī)顯示屏的幾何中心相對于智能機(jī)GPS接收天線的局部坐標(biāo)系偏移。在本發(fā)明的另一實(shí)施例中,可實(shí)現(xiàn)便攜式智能機(jī)任意傾斜擺放條件下顯示屏所顯示的文字始終是按重力方向水平顯示,這將會(huì)給用戶極好的體驗(yàn)。具體實(shí)現(xiàn)為:在步驟3)和步驟4)之間或在步驟4)之后,將智能機(jī)的顯示屏設(shè)定為二維繪圖模式并設(shè)置若干個(gè)二維標(biāo)簽,針對每一個(gè)二維標(biāo)簽,按如下步驟顯示:1)首先確定二維標(biāo)簽的中心位置u,v;如果標(biāo)簽用于標(biāo)注三維場景中局部坐標(biāo)系坐標(biāo)為(X,Y,Z)的目標(biāo),則根據(jù)以下公式確定目標(biāo)顯示的中心位置u,vZO=r31(X-Xd)+r32(Y-Yd)+r33(Z-Zd)式中:cx,cy是智能機(jī)顯示屏中心點(diǎn)的坐標(biāo),若顯示屏是矩形,cx=屏寬/2,cy=屏高/2;r11~r33是R矩陣對應(yīng)行列的元素;h是顯示屏上下邊緣垂直像素長,θ是漫游觀察者自身觀察的垂直視場角Xd,Yd,Zd是漫游觀察者在局部坐標(biāo)系中的坐標(biāo);如果滿足ZO>0且u,v在顯示屏范圍內(nèi),則u,v保持不變,否則需要按下法修正u,v若ZO=0則將[uv]替換為從點(diǎn)(cx,cy)出發(fā)按矢量{r11(X-Xd)+r12(Y-Yd)+r13(Z-Zd),r21(X-Xd)+r22(Y-Yd)+r23(Z-Zd)}方向的射線與顯示屏邊緣相交的2維點(diǎn);若ZO>0則將u,v替換成從點(diǎn)(cx,cy)到點(diǎn)(u,v)的連線與顯示屏邊緣相交的2維點(diǎn);若ZO<0則將u,v替換成從點(diǎn)(u,v)到點(diǎn)(cx,cy)延長線與顯示屏邊緣相交的2維點(diǎn);如果二維標(biāo)簽不是用于標(biāo)注目標(biāo),u,v為顯示屏范圍內(nèi)的一個(gè)由界面設(shè)計(jì)者設(shè)定的像素坐標(biāo),或是用戶手指觸摸或鼠標(biāo)點(diǎn)擊的顯示屏像素坐標(biāo);2)按下述方法(1)或(2)計(jì)算矢量{Qx,Qy}方法(1)Qx=-r23/LaQy=r13/La其中r23,r13是上述方法中的R矩陣對應(yīng)行列的元素,方法(2)利用上述智能機(jī)姿態(tài)測定方法(1)所述加速度計(jì)的前兩個(gè)輸出值ax,ay得到Qx=-ay/LaQy=ax/La,3)在二維平面上經(jīng)過以下矩陣旋轉(zhuǎn)變換以后再繪制二維標(biāo)簽:二維標(biāo)簽上每一點(diǎn)X,經(jīng)過上式變換到坐標(biāo)X’顯示出來;式中±取+是正放顯示,取-是倒放顯示,標(biāo)簽的水平軸始終平行于地面。實(shí)際上就是以u(píng),v為中心經(jīng)過旋轉(zhuǎn)變換顯示標(biāo)簽。疊加的內(nèi)容可以是靜止的目標(biāo)如:商鋪、地圖上的地名,及線條圍成的區(qū)域。也可以是動(dòng)態(tài)的目標(biāo)如:好友,車船等交通工具。4)得到局部坐標(biāo)系坐標(biāo)(Xi,Yi,Zi)的目標(biāo)i的標(biāo)簽像坐標(biāo)ui,vi之后,在智能機(jī)屏幕坐標(biāo)ui,vi區(qū)域附近設(shè)置感應(yīng)區(qū),等待接收用戶觸摸該區(qū)域的事件。當(dāng)用戶在智能機(jī)上點(diǎn)擊ui,vi附近區(qū)域的時(shí)候,將執(zhí)行與目標(biāo)i相關(guān)聯(lián)的操作。包括以下操作之一:1.彈出目標(biāo)i更詳細(xì)的廣告信息,資費(fèi)信息,需求信息,人氣值;2.向目標(biāo)i發(fā)端信或者聊天或者打電話;3.彈出與目標(biāo)i關(guān)聯(lián)的菜單或?qū)υ捒颍?.向目標(biāo)i發(fā)送請求;5.獲取目標(biāo)i的數(shù)據(jù);6.向服務(wù)器發(fā)請求,使得目標(biāo)i的人氣值增加;7.向服務(wù)器發(fā)請求,記錄本次操作。本發(fā)明實(shí)施例中,三維場景為一個(gè)空心的三維形體,三維形體為空心球,空心立方體、空心柱體、空心正多面體或空心錐體,三維形體的內(nèi)壁以全景圖作為紋理進(jìn)行渲染;所述漫游觀察者在虛擬場景中位于三維形體內(nèi)部的某一點(diǎn),從三維形體內(nèi)部觀察三維形體的內(nèi)壁,實(shí)現(xiàn)利用智能機(jī)顯示屏姿態(tài)控制全景瀏覽。該實(shí)施例實(shí)現(xiàn)了任意姿態(tài)拿放智能機(jī)時(shí),瀏覽渲染全景始終保持正確的渲染效果。本發(fā)明實(shí)施例標(biāo)定智能機(jī)上的攝像頭姿態(tài)矩陣的方法,包括以下步驟:對姿態(tài)矩陣Rg進(jìn)行校正,校正姿態(tài)矩陣其中R=ΔR×Rg;ΔR為智能機(jī)的攝像頭姿態(tài)矩陣R和智能機(jī)姿態(tài)矩陣Rg之間的一個(gè)固定的方向轉(zhuǎn)換,當(dāng)攝像頭方向和智能機(jī)屏幕方向剛好相反時(shí)攝像頭方向和智能機(jī)屏幕方向完全一致時(shí)否則采用攝影測量后方交匯法標(biāo)定ΔR=RARg-1。RA是攝影測量后方交匯法算得的相機(jī)姿態(tài)矩陣,Rg是根據(jù)上述方法測得此時(shí)智能機(jī)的姿態(tài)矩陣。本發(fā)明實(shí)施例基于智能機(jī)姿態(tài)數(shù)據(jù)的多目視覺定位方法,可實(shí)現(xiàn)多張圖像對某一物體空間3維定位。具體包括以下步驟:步驟1:在N個(gè)地理位置點(diǎn)拍攝同一個(gè)物體X,其中N≥2,測第i個(gè)觀察點(diǎn)的以下幾個(gè)量,其中i∈(1,2,…,N):(1)在視頻幀圖像中顯示的位置(ui,vi);(2)拍攝點(diǎn)的地理位置分別是第i個(gè)拍攝點(diǎn)的經(jīng)度,緯度,高度;(3)按上述方法測得第i個(gè)拍攝點(diǎn)的姿態(tài)矩陣Ri;(4)第i個(gè)拍攝點(diǎn)的內(nèi)部參數(shù)焦距長fi,像主點(diǎn)坐標(biāo)(cxi,cyi);步驟2:計(jì)算相對于地心的N個(gè)姿態(tài)矩陣,i=1~N,R0i=RiRvi其中步驟3:利用公式得到N個(gè)拍攝點(diǎn)攝像頭光心的地心坐標(biāo)系坐標(biāo)T0i={Txi,Tyi,Tzi}Ti=1~N;其中{ΔTxi,ΔTxi,ΔTzi}T=RviTΔTi;ΔTi是攝像頭光心相對于GPS接收天線的偏移矢量;是將經(jīng)度,緯度,高度轉(zhuǎn)換成地心坐標(biāo)系的X坐標(biāo)的函數(shù);是將經(jīng)度,緯度,高度轉(zhuǎn)換成地心坐標(biāo)系的Y坐標(biāo)的函數(shù);是將經(jīng)度,緯度,高度轉(zhuǎn)換成地心坐標(biāo)系的Z坐標(biāo)的函數(shù);步驟4根據(jù)拍攝點(diǎn)N的姿態(tài)矩陣R0N,位置[TxNTyNTzN],在圖像(單張圖像或者視頻都可以)中顯示的位置坐標(biāo)(uN,vN),攝像頭焦距像素長fN,像主點(diǎn)坐標(biāo)(cxN,cyN)都滿足以下方程其中r0iab表示姿態(tài)矩陣R0i的第a行第b列的元素值;i=1~N一共列2N個(gè)方程,解(Xx,Xy,Xz)三個(gè)未知數(shù);或采用攝影測量前方交匯方法計(jì)算出物體X得到地心坐標(biāo)系坐標(biāo)(Xx,Xy,Xz);最后由大地測量學(xué)公式得到地心坐標(biāo)(Xx,Xy,Xz)對應(yīng)的經(jīng)緯度。本發(fā)明基于智能機(jī)姿態(tài)數(shù)據(jù)的單目單點(diǎn)定位方法,利用姿態(tài)矩陣和物體像坐標(biāo)實(shí)現(xiàn)物體3維坐標(biāo)與相機(jī)3維坐標(biāo)之間的相互定位,包括步驟:假設(shè)智能機(jī)上的相機(jī)內(nèi)部參數(shù)矩陣為:被觀察物體是一個(gè)直徑=D大小的物體,在智能機(jī)上成像的寬度是Δu,高度是Δv,成像中心點(diǎn)像坐標(biāo)u,v,采用上述方法測得智能機(jī)姿態(tài)矩陣Rg,進(jìn)一步采用上述方法測得智能機(jī)上的相機(jī)姿態(tài)R=△RRg以下分兩種情況討論:若已知智能機(jī)攝像頭光心局部坐標(biāo)系坐標(biāo)是T,可單目估算出物體的局部坐標(biāo)系下三維坐標(biāo):其中反過來若已知物體的局部坐標(biāo)系下三維坐標(biāo)X,可以求相機(jī)坐標(biāo)T這種情況實(shí)現(xiàn)了相機(jī)的單目定位。本發(fā)明一種基于智能機(jī)姿態(tài)數(shù)據(jù)的全景影像生成方法,基于姿態(tài)矩陣實(shí)現(xiàn)便攜式智能機(jī)拍攝合成全景圖像,以及根據(jù)全景圖像進(jìn)行空間定位的方法,具體包括以下步驟:步驟1、智能機(jī)在某一固定點(diǎn)用不同姿態(tài)拍攝n張圖像,根據(jù)上述方法得到智能機(jī)攝像頭的姿態(tài)矩陣分別為R0i,i為0~n-1之間的整數(shù),n為大于等于1的整數(shù);步驟2、根據(jù)影像重疊區(qū)域迭代求解進(jìn)行精確糾正(1)提取圖像間重合區(qū)域的同名點(diǎn)對。定義Hij=KjRjRiTKi-1對N張圖像之間任意兩張i,j進(jìn)行匹配尋找圖像上的同名點(diǎn)對,可以將第i張圖像Ii經(jīng)過透視變換Hij后得到圖像Ii’再與第j張圖像Ij作細(xì)致匹配,這樣同名點(diǎn)對沒有考慮旋轉(zhuǎn)和平移的干擾,不僅找得多而且找得準(zhǔn)。最后將圖像Ii上的匹配點(diǎn)坐標(biāo)經(jīng)過Hij-1逆變換還原成Ii圖原始的坐標(biāo)即可。(2)根據(jù)上一步得到的同名點(diǎn)對匹配關(guān)系建立誤差e相對于參數(shù)集φ=[…fiqi0qi1qi2qi3…fjqj0qj1qj2qj3…]T的數(shù)學(xué)模型e(φ),前面得到的R0i轉(zhuǎn)換成4元數(shù)qi00,qi01,qi02,qi03,i=0,…,n-1以φ=φ0=[…f0iqi00qi01qi02qi03…f0jqj00qj01qj02qj03…]T作為初值,采用LM法通過減小誤差e,逐步得到精確化相機(jī)姿態(tài)qi0,qi1,qi2,qi3和焦距參數(shù)fi。最后將精確化的φ中的4元數(shù)qi0,qi1,qi2,qi3轉(zhuǎn)化成姿態(tài)矩陣Ri,i=0,…,n-1即可。步驟3、開辟一張寬w高h(yuǎn)大小的全景影像;步驟4、掃描全景影像上每一個(gè)像素,針對全景圖的每一個(gè)像素(x,y)進(jìn)行如下(1)(2)處理(1)橫坐標(biāo)x轉(zhuǎn)換成縱坐標(biāo)y轉(zhuǎn)換成θ;其中w,h是全景圖像的寬,高;(2)依據(jù)小孔成像公式其中fi為相機(jī)i焦距像素長度,(cix,ciy)是相機(jī)i的像主點(diǎn),利用Ri將轉(zhuǎn)換成映射到每個(gè)相機(jī)i的像坐標(biāo)(ui,vi),若(ui,vi)在圖像范圍內(nèi),則將相機(jī)i像坐標(biāo)(ui,vi)處顏色取出,加權(quán)渲染到全景圖(x,y)處;權(quán)重與(ui,vi)到該圖像邊緣最短距離有關(guān),距離越短權(quán)重越??;若無一個(gè)相機(jī)的(ui,vi)在其圖像范圍內(nèi),渲染透明色或背景色到(x,y)處;掃描完全景圖像上所有點(diǎn)填充相應(yīng)的顏色,即完成全景圖像的渲染;或者在步驟2中先將全景圖像顏色值全部清0,在步驟3中針對n張圖像將全景圖像上的相應(yīng)區(qū)每個(gè)像素掃描n輪,分n輪依次將加權(quán)顏色值累加在全景圖的像素上;步驟5全景圖像的三維瀏覽和檢索定位(A)智能機(jī)姿態(tài)控制瀏覽三維全景圖像在虛擬場景中以球心為觀察點(diǎn),球體內(nèi)壁以全景圖作為紋理渲染一個(gè)球;設(shè)定智能機(jī)攝像頭觀察方向{r31,r32r33},自身向上方向{-r21,-r22,-r23};rij是姿態(tài)R矩陣中第i行第j列元素;方法見上文。(B)全景圖建庫、檢索和定位為有效利用存儲(chǔ)空間,除采用步驟3(1)中的公式外還可用墨卡托轉(zhuǎn)換公式,轉(zhuǎn)換成全景圖像,保持建庫和檢索的轉(zhuǎn)換方式一致;建庫提取全景圖像的特征點(diǎn)集合,建立與全景圖像關(guān)聯(lián)的特征點(diǎn)數(shù)據(jù)庫,庫中每個(gè)特征點(diǎn)指向其所在的全景圖像;檢索同一地點(diǎn)c≥1張圖像合成待檢索全景圖像并提取渲染區(qū)特征點(diǎn),對每個(gè)特征點(diǎn),查詢庫中與其最相似特征點(diǎn)所指向的全景圖像,按特征點(diǎn)相似程度對庫中指向的全景圖像進(jìn)行加權(quán)投票,按投票總和大小排序;將待檢索全景圖中已渲染區(qū)和投票得到的庫中全景圖對應(yīng)區(qū)域的像素集進(jìn)行相關(guān)匹配計(jì)算,相關(guān)系數(shù)越大越相似;輸出投票排序靠前且相關(guān)系數(shù)大于預(yù)設(shè)值的結(jié)果;如果c=1,也可根據(jù)單張拍攝姿態(tài)R,將庫中全景圖像映射到單張拍攝圖像域與單張拍攝圖像進(jìn)行相關(guān)匹配;定位在已知GPS情況下,檢索GPS附近區(qū)域的全景圖像組成的子集特征庫;服務(wù)器數(shù)據(jù)庫將全景圖像與其地理位置坐標(biāo)綁定在一起存儲(chǔ),檢索結(jié)果是編號(hào)為i*的圖像,即可在數(shù)據(jù)庫中查找出i*所對應(yīng)的地理位置?;谥悄軝C(jī)姿態(tài)數(shù)據(jù)的目標(biāo)方向選擇方法,可實(shí)現(xiàn)便攜式智能機(jī)空間目標(biāo)方向選擇、控制、人機(jī)交互操作,具體包括以下步驟:1.定義智能機(jī)主方向或載體主方向相對于智能機(jī)自身的矢量單位p;2.采用上述方法獲取智能機(jī)當(dāng)前姿態(tài)矩陣Rg;3.計(jì)算p┴=RgTp為智能機(jī)主方向或載體主方向相對于指北坐標(biāo)系的矢量;4.計(jì)算局部坐標(biāo)系中的目標(biāo)矢量vo=O-P假設(shè)局部坐標(biāo)系中智能機(jī)自身坐標(biāo)為P,目標(biāo)的坐標(biāo)為O,則目標(biāo)矢量vo=O-P;5.計(jì)算矢量p┴與目標(biāo)矢量vo之間夾角的余弦,或計(jì)算兩個(gè)矢量之間的夾角。如果夾角的余弦很大,余弦>0.9,接近1,或者夾角偏差的絕對值|dφ|很小則觸發(fā)智能機(jī)與該目標(biāo)O之間的某一關(guān)聯(lián)事件。如選中該目標(biāo),擊中該目標(biāo)、通知該目標(biāo)、聯(lián)絡(luò)該目標(biāo)等??赏ㄟ^兩矢量的點(diǎn)積除以|vo|得到夾角dφ的余弦,cos(dφ)=(p┴點(diǎn)積vo)/|vo|如果該余弦cos(dφ)>cos(φa)則該目標(biāo)方向選擇事件可觸發(fā)。6.在需要與用戶的可視化交互情況下,在指北坐標(biāo)系中實(shí)時(shí)繪制目標(biāo),智能機(jī),和矢量p┴。計(jì)算局部坐標(biāo)系中智能機(jī)主方向矢量與目標(biāo)矢量之間夾角的方向余弦。根據(jù)余弦值大小判定夾角。并且在三維空間或2維空間中繪制出智能機(jī)主方向矢量與目標(biāo)矢量之間方向關(guān)系便于人機(jī)交互。具體應(yīng)用方式有以下幾種類型:方法1姿態(tài)指向用戶通過操作智能機(jī)所指主方向所形成的矢量與目標(biāo)矢量之間的夾角保持較小角度,或夾角的余弦>cos(φa),則將觸發(fā)某一事件。用戶用智能機(jī)主方向指向某一目標(biāo),如果目標(biāo)矢量與主方向矢量之間的夾角的余弦>cos(φa)可執(zhí)行與該目標(biāo)相關(guān)聯(lián)的事件,如選中該目標(biāo),擊中該目標(biāo)、通知該目標(biāo)、聯(lián)絡(luò)該目標(biāo)等。Φa為最大容忍偏差角。在三維空間中實(shí)時(shí)繪制智能機(jī)姿態(tài)矢量rz與目標(biāo)矢量vo之間的關(guān)系示意圖,以便于實(shí)現(xiàn)用戶的交互控制。實(shí)施方式:假設(shè)智能機(jī)頭部定義為主方向,頭部相對于智能機(jī)自身坐標(biāo)系的矢量是p={0,1,0}T那么p┴=RTp={r21r22r23}T其中rij是R矩陣第i行j列的元素。假設(shè)智能機(jī)右側(cè)定義為主方向,右側(cè)相對于智能機(jī)自身坐標(biāo)系的矢量是p={1,0,0}T那么p┴=RTp={r11r12r13}T方法2導(dǎo)航服務(wù)將智能機(jī)與某一載體,如車船,固定起來,定義載體主方向相對于智能機(jī)自身的矢量p。在地圖中實(shí)時(shí)繪制載體主方向矢量p┴=RTp與目標(biāo)矢量vo之間的關(guān)系示意圖。計(jì)算夾角的余弦cos(dφ)>cos(φa)說明方向吻合,再結(jié)合距離約束可觸發(fā)某一事件。導(dǎo)航位置服務(wù)中同時(shí)符合位置和方向的目標(biāo)位于圖1中的陰影區(qū)。本方法也可以與運(yùn)動(dòng)方向形成的軌跡矢量結(jié)合智能機(jī)主方向進(jìn)行融合,進(jìn)而計(jì)算與目標(biāo)矢量之間的夾角。實(shí)施方式:攝像頭拍攝方向朝前固定安裝在車船上,攝像頭拍攝方向相對于智能機(jī)自身坐標(biāo)系的矢量是p={0,0,-1}T那么p┴=RTp={-r31-r32-r33}T其中rij是R矩陣第i行j列的元素。p┴與vo之間的夾角的余弦=(p┴點(diǎn)積vo)/|vo|方法32D導(dǎo)航服務(wù)上述方法可簡化到2維情況,在2維地圖上實(shí)現(xiàn)2D導(dǎo)航。這種方法要求智能機(jī)水平放置,利用方向傳感器的第一個(gè)值value[0]得出主方向角矢量與智能機(jī)到目標(biāo)矢量之間的夾角?;騼烧咧g的點(diǎn)積。在地圖中實(shí)時(shí)繪制智能機(jī)主矢量{cosφ,sinφ}與目標(biāo)矢量vo=O-P示意圖。其中φ=value[0]+△φvalue[0]是方向傳感器的第一個(gè)值,value[0]=0表示智能機(jī)頭部指北,value[0]=90表示智能機(jī)頭部指東,△φ是在地圖平面上,用戶定義的主方向相對于智能機(jī)主方向之間夾角。O是局部坐標(biāo)系中X,Y平面上目標(biāo)的2維坐標(biāo),P是局部坐標(biāo)系中X,Y平面上的智能機(jī)2維坐標(biāo)?;蛘呓⒁粋€(gè)以北x軸,西y軸的2維地圖坐標(biāo)系,O是目標(biāo)在2維地圖上的坐標(biāo),P是智能機(jī)在2維地圖上的坐標(biāo)。{cosφ,sinφ}與目標(biāo)矢量vo之間的夾角<φa說明方向吻合。或者{cosφ,sinφ}與目標(biāo)矢量vo點(diǎn)積除以|vo|的結(jié)果>cosφa則說明方向吻合。實(shí)施方式:應(yīng)用:導(dǎo)航,順路方向的的士叫車搶單,司機(jī)將智能機(jī)固定在車上,智能機(jī)軟件只可選擇cos(dφ)>cos(φa)的乘客,選出來的都是順路乘客。2D導(dǎo)航的具體實(shí)施方式:要求智能機(jī)水平放置,利用方向傳感器的第一個(gè)值value[0]得出主方向角矢量與智能機(jī)到目標(biāo)矢量之間的夾角,或兩者之間的點(diǎn)積。計(jì)算2維地圖上的目標(biāo)矢量vo={vox,voy}的方位角φvo可調(diào)用反三角函數(shù)atan2(voy,vox)實(shí)現(xiàn),計(jì)算φ角與φvo角形成的矢量在平面上的夾角實(shí)施方法,采用但不局限于以下方法:φ角與φvo之間的夾角可以按以下方式計(jì)算:一般采用2維點(diǎn)積的方式計(jì)算φ角與φvo之間的夾角余弦=({cosφ,sinφ}點(diǎn)積vo)/|vo|,若該余弦值>cos(φa)認(rèn)定為方向一致。本發(fā)明實(shí)施例基于智能機(jī)姿態(tài)數(shù)據(jù)的視頻影像實(shí)時(shí)糾正方法,實(shí)現(xiàn)了基于姿態(tài)矩陣的智能機(jī)的視頻圖像實(shí)時(shí)糾正,能保持生成糾正的圖像中的水平線始終對應(yīng)客觀場景的地平線,可用于顛簸的路面,海面場景視頻圖像的糾正。對于接近垂直于地面拍攝的情況,生成糾正的圖像中的水平朝右方向始終對應(yīng)客觀場景中的局部坐標(biāo)系的x軸(北),可用于無人機(jī)地面圖像拼接。該方法主要包括以下步驟:1.采用上述方法獲取智能機(jī)拍攝視頻的每一幀對應(yīng)的姿態(tài)矩陣Rg,R=△RRg得到智能機(jī)上攝像頭的姿態(tài)矩陣R?!鱎是攝像頭相對于智能機(jī)的轉(zhuǎn)換矩陣。2.根據(jù)實(shí)際應(yīng)用需求R矩陣分解為R=RτR_從而得到矩陣Rτ,相機(jī)的拍攝姿態(tài)R不規(guī)則,期待得到用虛擬姿態(tài)R_作為拍攝姿態(tài)矩陣得到的標(biāo)準(zhǔn)圖像。計(jì)算矩陣Rτ的方法有三類(a)根據(jù)實(shí)際應(yīng)用中R_的特性直接得到,再通過Rτ=RR_T得出Rτ詳見下文:標(biāo)準(zhǔn)對地坐標(biāo)系下的影像正射糾正(b)根據(jù)實(shí)際應(yīng)用中Rτ和R_的特性列方程Rτ=RR_T或R=RτR_求解得到Rτ中的幾個(gè)重要元素的值,從而構(gòu)建Rτ。詳見下文:任意R矩陣的Z軸旋轉(zhuǎn)分解出水平矩陣(c)根據(jù)Rτ和R_的性質(zhì)列方程Rτ=RR_T或R=RτR_求解得到R_中的幾個(gè)重要元素的值,從而構(gòu)建R_,最后通過Rτ=RR_T得出Rτ詳見下文:對地坐標(biāo)系下的影像正射糾正3.對圖像I經(jīng)過H=K2RτTK-1的Homograph變換得到I’其中是拍攝相機(jī)的內(nèi)部參數(shù)矩陣,f是焦距的像素長度,cx,cy是相機(jī)主點(diǎn)坐標(biāo)。對于理想相機(jī)cx,cy是圖像的中心點(diǎn),cx=w/2,cy=h/2,w,h是原始圖像I的寬和高。是糾正以后虛擬相機(jī)的內(nèi)部參數(shù)矩陣,f2是糾正以后虛擬相機(jī)的焦距的像素長度,cx2,cy2是糾正以后虛擬相機(jī)主點(diǎn)坐標(biāo)。注:-對于理想相機(jī)cx2,cy2是糾正以后虛擬相機(jī)圖像的中心點(diǎn),cx2=H/2,cy2=H/2,W,H是圖像糾正以后虛擬相機(jī)的寬高。-通常f2選取與f相等,而W,H的大小根據(jù)實(shí)際應(yīng)用需求選取,有時(shí)為避免糾正后圖像出界而選取W>wH>h-如果H=K2RτTK-1中的第三行元素是[001],那么Homograph透視變換可簡化成仿射變換從而提高圖像變換速度。下面具體給出前述三類計(jì)算矩陣Rτ的應(yīng)用案例和方法(a)標(biāo)準(zhǔn)對地坐標(biāo)系下的影像正射糾正視頻攝像機(jī)往下拍地面上的場景,但由于各種原因,視線不可能完全垂直于地面。為得到垂直于地面的圖像,先通過以下方法計(jì)算RτR=RτR_中的最后根據(jù)公式H=K2RτTK-1實(shí)時(shí)將原始視頻幀影像糾正成垂直于地面拍攝的效果,這個(gè)變換效果是圖像I┴始終是垂直于地面往下拍的效果,若姿態(tài)矩陣R是相對于局部指北坐標(biāo)系的,圖像I┴的右側(cè)始終指向北,下側(cè)始終指東。垂直于地面的圖像實(shí)際上可直接映射到地理信息系統(tǒng)地圖平面上,因此本技術(shù)實(shí)現(xiàn)了從視頻圖像到地理信息系統(tǒng)地圖平面上的實(shí)時(shí)映射。(b)任意R矩陣的Z軸旋轉(zhuǎn)分解出水平矩陣對于紅外末制導(dǎo)導(dǎo)引頭圖像獲取,或者在顛簸的車、船、飛機(jī)上安裝有攝像頭的視頻捕獲到視頻幀圖像的同時(shí),將該幀對應(yīng)的姿態(tài)數(shù)據(jù)保留并加以處理,保證載體獲取的圖像始終是保持水平正方的,這樣目標(biāo)識(shí)別程序就不用考慮目標(biāo)的旋轉(zhuǎn)了,這會(huì)極大提高目標(biāo)識(shí)別的效率和準(zhǔn)確性,也能使得用戶獲取的視頻更穩(wěn)定更準(zhǔn)確。本方法涉及第(b)類計(jì)算R的方法如下:首先設(shè)由R_=RτTR列方程得到針對矩陣第1行第3列元素等于0列方程r13cosτ+r23sinτ=0再考慮到{cosτ,sinτ}是2維單位向量,解得有兩個(gè)解是正常的,因?yàn)樾D(zhuǎn)兩個(gè)角度(還有一個(gè)相機(jī)底朝天,兩者剛好相差180度)都能保證本體x軸保持水平于地面。因此必須保證本體y軸朝下,也就是R_的第2行第3列元素值<0,即列約束不等式:-r13sinτ+r23cosτ<0解得代入上式得到另一個(gè)解不滿足條件舍去。最后根據(jù)公式H=K2RτTK-1實(shí)時(shí)將原始視頻幀影像糾正成水平于地平面拍攝的效果。(c)對地坐標(biāo)系下的影像正射糾正方法(a)得到的垂直糾正圖像不會(huì)跟隨攝像頭繞垂直于地面方向軸的旋轉(zhuǎn)而旋轉(zhuǎn),為了實(shí)現(xiàn)這個(gè)效果采用如下方法:假設(shè)攝像頭旋轉(zhuǎn)了τ角,R=RτR_中的列方程解得:(d)最終得到:(e)最后根據(jù)公式H=K2RτTK-1實(shí)時(shí)將原始視頻幀影像糾正成垂直于地面拍攝的效果,這個(gè)變換效果是圖像I┴會(huì)跟隨攝像頭繞垂直于地面方向軸的旋轉(zhuǎn)而旋轉(zhuǎn)。本發(fā)明實(shí)施例基于姿態(tài)數(shù)據(jù)的智能機(jī)單像定位方法,實(shí)現(xiàn)了根據(jù)姿態(tài)矩陣和圖像上2個(gè)點(diǎn)的像坐標(biāo)對相機(jī)自身進(jìn)行定位,具體包括以下步驟:假設(shè)相機(jī)或攝像機(jī)內(nèi)參數(shù)據(jù)f和cx,cy已知,f是焦距的像素長度,cx,cy是相機(jī)主點(diǎn)坐標(biāo)。內(nèi)參矩陣單像目標(biāo)定位整體實(shí)施步驟如下:1.搜集采集物方點(diǎn),轉(zhuǎn)化成局部坐標(biāo)系坐標(biāo),如指北為x軸,指西為y軸;2.采用上述方法獲取智能機(jī)的姿態(tài)矩陣Rg,R=△RRg得到智能機(jī)上攝像頭的姿態(tài)矩陣R?!鱎是攝像頭相對于智能機(jī)的轉(zhuǎn)換矩陣;3.拍攝一張圖像,自動(dòng)提取其中的多個(gè)特征點(diǎn),通過匹配算法得到與物點(diǎn)對應(yīng)的n對物像同名點(diǎn)。n個(gè)物方點(diǎn)的坐標(biāo)是Xi=[Xix,Xiy,Xiz]Ti=1,…,n對應(yīng)n個(gè)像點(diǎn)坐標(biāo)是[uivi]Ti=1,…,n4.分無錯(cuò)和容錯(cuò)2種情況計(jì)算相機(jī)在局部坐標(biāo)系下的坐標(biāo)T:(1)若確認(rèn)多個(gè)特征點(diǎn)無錯(cuò)誤,則采用數(shù)學(xué)模型解方程得到自身在局部坐標(biāo)系下坐標(biāo)Tx,Ty,Tz其中進(jìn)而得到相機(jī)位置T,最大集ζ為n個(gè)點(diǎn)對組成的全集。(2)若不確認(rèn)多個(gè)特征點(diǎn)是否全部正確,采用Ransac容錯(cuò)算法,通過共線方程模型隨機(jī)選取兩對點(diǎn)n=2,根據(jù)模型式(HH2)計(jì)算相機(jī)位置T,并通過共線方程zi[u’iv’i1]T=KR(Xi-T)驗(yàn)證T,通過KR(Xi-T)算出的u’i,v’I與ui,vi之間的誤差距離小于error像素認(rèn)為是符合共線方程。選取符合共線方程點(diǎn)數(shù)最大集ζ并計(jì)算最大集ζ對應(yīng)的T*。單目多點(diǎn)容錯(cuò)RANSAC算法流程如下:<1>從n個(gè)像點(diǎn)中隨機(jī)挑選出2個(gè)距離足夠大的像點(diǎn),一般至少要大于容忍誤差error的2倍;<2>挑選出來的2個(gè)像點(diǎn)與物點(diǎn)對應(yīng)形成2對物象同名點(diǎn),按式(HH2)計(jì)算智能機(jī)位置T;<3>用T驗(yàn)證所有n對物象同名點(diǎn)的共線方程對應(yīng)關(guān)系,共線方程KR(Xi-T)算出的u’i,v’I與ui,vi之間的誤差距離小于error像素認(rèn)為是符合共線方程,統(tǒng)計(jì)符合共線方程的個(gè)數(shù)i_in,如果i_in數(shù)量超過前期的數(shù)量nmax則記錄本組滿足共線方程容忍誤差數(shù)量最大的點(diǎn)集ζmax,并刷新nmax=i_in;<4>更新迭代次數(shù)k+1→k<5>回到第1步,直到滿足ransac概率收斂條件(1-(nmax/n)2)k<pepe是RANSAC容忍錯(cuò)誤概率,一般設(shè)為10-2~10-20之間的一個(gè)數(shù)值。<6>將前面搜索得到的最優(yōu)內(nèi)點(diǎn)集合ζmax搜集起來進(jìn)行最后一次多點(diǎn)最小2乘計(jì)算,按公式(HH2)計(jì)算得到Tbest得到最終結(jié)果。5.如需進(jìn)一步提高精度,可基于數(shù)學(xué)模型式(HH2)對ζ集中多點(diǎn)進(jìn)行LM優(yōu)化。以期望得到更精確的解。LM優(yōu)化中一般是固定所有物點(diǎn)坐標(biāo)Xix,Xiy,Xiz,i=1,…,n優(yōu)化相機(jī)的位置T和姿態(tài)R6.如需要得出目標(biāo)的經(jīng)緯度,可根據(jù)局部坐標(biāo)系原點(diǎn)的經(jīng)緯度將相機(jī)在局部坐標(biāo)系下的坐標(biāo)Tx,Ty,Tz轉(zhuǎn)換成大地經(jīng)緯度。單像雙點(diǎn)定位如圖2所示。說明:真正實(shí)現(xiàn)了基于場景圖像的室內(nèi)定位,用于商場室內(nèi)定位,導(dǎo)航,基于位姿的電子商務(wù)商鋪廣告發(fā)布。本發(fā)明基于智能機(jī)姿態(tài)數(shù)據(jù)的相對定位方法,實(shí)現(xiàn)了基于姿態(tài)矩陣的雙目圖像或多目圖像之間相對定位,傳統(tǒng)的方法缺少相機(jī)姿態(tài)信息需要給初值,而本方法不需要給初值直接SVD解方程得到結(jié)果。包括以下步驟:假設(shè)相機(jī)1,2之間有i=1..n≥2對同名點(diǎn)u1i,v1i~u2i,v2i。其中R1,R2是智能機(jī)相機(jī)在拍攝的1,2兩個(gè)地點(diǎn)測出來的姿態(tài)矩陣數(shù)據(jù)。已知相機(jī)1的內(nèi)參矩陣相機(jī)2的內(nèi)參矩陣其中cxi,cyi是相機(jī)i的像素主點(diǎn)坐標(biāo),fi是相機(jī)i的焦距像素長。已知兩相機(jī)之間的距離是L;可以計(jì)算相機(jī)2相對于相機(jī)1的位移矢量T。方法步驟如下:1.用上述方法計(jì)算智能機(jī)上相機(jī)的姿態(tài)Rg1,Rg2計(jì)算R1=△RRg1R2=△RRg2進(jìn)一步得到R=R2R1T2.構(gòu)建矩陣A其中uji*=Ki-1ui=[uji*xuji*yuji*z]Ti=1,2j=1..nujiR*=Ruji*=[ujiR*xujiR*yujiR*z]T3.如果確認(rèn)n對點(diǎn)都是正確的,則求約束||t3x1||=1下Anx3t3x1=0的解或采用SVD分解得到Anx3=UnxnWnx3VT3x3,分解出來的V的最后1列的矢量,即對應(yīng)于最小奇異值的特征矢量,即為tT=-LRTt得到結(jié)果,結(jié)束否則繼續(xù)進(jìn)行以下步驟4.設(shè)置迭代初值nmax=0k=15.隨機(jī)挑選A矩陣中的2行,構(gòu)建A2x3就是求約束||t2||=1下A2x3t2=0的解或采用SVD分解得到A2x3=U2x2W2x3VT3x3,分解出來的V的最后1列的矢量即為t26.將t2=[ttxttyttz]T代入第j=1..n個(gè)點(diǎn),采用式(AB)驗(yàn)證點(diǎn)j是否是內(nèi)點(diǎn),(uj2*zuj1R*y-uj2*yuj1R*z)ttx+(uj2*xuj1R*z-uj2*zuj1R*x)tty+(uj2*yuj1R*x-uj2*xuj1R*y)ttz<ε(AB)其中ε表示最大容忍誤差物方長度,暫且相對于兩相機(jī)之間的距離=1而言。滿足式(AB)則點(diǎn)j是內(nèi)點(diǎn),如果滿足內(nèi)點(diǎn)的數(shù)量nt超過最佳值nmax則ζt-->ζnt-->nmax7.如果(1-(nmax/n)2)k<0.00001錯(cuò)誤率足夠小,退出迭代進(jìn)入步驟9.8迭代次數(shù)k增加1,回到步驟5反復(fù)迭代;9.最后采用最小二乘法針對最大內(nèi)點(diǎn)集ζ重新計(jì)算一次最優(yōu)t,求約束||t3x1||=1下An’x3t3x1=0的解其中n’=nmax或采用SVD分解得到An’x3=Un’xn’Wn’x3VT3x3,分解出來的V的最后1列矢量,即對應(yīng)于最小奇異值的特征矢量,即為t最終得到T=-LRTt。本方法推廣到C個(gè)相機(jī),N個(gè)點(diǎn)的情況,構(gòu)建矩陣U(ij)k=[U(ij)k1U(ij)k2U(ij)k3]k=1,2Rc(ij)ab是指第i個(gè)點(diǎn)對應(yīng)的第j個(gè)像片的相機(jī)的姿態(tài)矩陣的a行b列uc(ij)是第i個(gè)點(diǎn)對應(yīng)的第j個(gè)像片上的像點(diǎn)坐標(biāo)。cx,cy是相機(jī)主點(diǎn)坐標(biāo),f是相機(jī)的焦距。對矩陣A進(jìn)行SVD分解得到A=UWVT,V中最后一個(gè)非零矢量X=[T1xT1yT1z…TcxTcyTczX1Y1Z1…XNYNZN]T的每一個(gè)分量對應(yīng)C個(gè)相機(jī)的位置T1x,T1y,T1z,…,Tcx,Tcy,Tcz和N個(gè)點(diǎn)的坐標(biāo)X1,Y1,Z1,…,XN,YN,ZN。說明,或研究背景以前在未知相機(jī)姿態(tài)數(shù)據(jù)的情況下,兩相機(jī)之間相對定向計(jì)算是需要至少5對點(diǎn)的,而本發(fā)明中在已知相機(jī)姿態(tài)的前提下,只需要至少2對即可計(jì)算相對位置了,可應(yīng)用于,序列圖像三維重建,基于圖像的室內(nèi)外定位等領(lǐng)域。具體實(shí)施方式本算法在得到相對姿態(tài)T以后可進(jìn)一步虛擬出物方點(diǎn),然后通過多相機(jī)LM算法優(yōu)化R,T數(shù)據(jù),使得精度進(jìn)一步提高。本發(fā)明基于智能機(jī)姿態(tài)的目標(biāo)識(shí)別方法,可解決任意姿態(tài)拍攝視頻仍能準(zhǔn)確識(shí)別目標(biāo)的難題,而不必考慮目標(biāo)大角度旋轉(zhuǎn),仍能實(shí)現(xiàn)高效準(zhǔn)確的目標(biāo)檢測。該方法包括以下步驟:通過H=K2RτTK-1對原圖像I進(jìn)行糾正得到I'然后對糾正圖像I'進(jìn)行處理,處理得到I'圖像上的坐標(biāo)集xi,yi,i=1,...,N再通過反糾正H-1的方法得到坐標(biāo)集在原圖上映射的坐標(biāo)xi',yi,'I'圖像處理的方式一般是目標(biāo)識(shí)別,攝影測量,坐標(biāo)檢測。具體實(shí)施方式:傳感器糾正目標(biāo)識(shí)別算法首先根據(jù)傳感器得到的R矩陣對原始圖I進(jìn)行H=K2RτTK-1標(biāo)準(zhǔn)化糾正得到標(biāo)準(zhǔn)糾正圖I’,然后對I’圖像進(jìn)行目標(biāo)檢測、跟蹤(如采用行掃描box方法)得到它對應(yīng)的目標(biāo)框r,目標(biāo)框r相對于標(biāo)準(zhǔn)模板的平移是rx,ry,矩形塊r首先經(jīng)過平移變換Ht映射到標(biāo)準(zhǔn)圖上,然后再經(jīng)過H-1變換映射到原始圖上。因此目標(biāo)框r相對于原始圖像I的H變換為r*=H-1Htr算法原理示意圖如圖3所示,由此定義H=H-1Ht實(shí)現(xiàn)了從標(biāo)準(zhǔn)目標(biāo)矩形框r(計(jì)量單位像素)到原始圖像4邊形r*。學(xué)習(xí)的時(shí)候扣選目標(biāo)一定要從糾正標(biāo)準(zhǔn)圖里選擇矩形框。這樣就能保證匹配識(shí)別都是在糾正標(biāo)準(zhǔn)圖域進(jìn)行的,這不需要考慮大角度旋轉(zhuǎn),大大減輕了圖像目標(biāo)檢測的計(jì)算負(fù)荷。應(yīng)當(dāng)理解的是,對本領(lǐng)域普通技術(shù)人員來說,可以根據(jù)上述說明加以改進(jìn)或變換,而所有這些改進(jìn)和變換都應(yīng)屬于本發(fā)明所附權(quán)利要求的保護(hù)范圍。