用于擴(kuò)增實境的在線參考補(bǔ)丁產(chǎn)生和姿態(tài)估計的制作方法
【專利摘要】在空中產(chǎn)生未知環(huán)境的參考補(bǔ)丁,以用于定位和跟蹤。使用具有兩個垂直的平行線集合的平面對象的所捕獲圖像來產(chǎn)生所述參考補(bǔ)丁。在圖像中檢測所述平面對象,且使用所述兩平行線集合的消失點(diǎn)來界定世界坐標(biāo)系的軸?;谒鏊缍ǖ妮S來恢復(fù)相機(jī)旋轉(zhuǎn),且使用所述所恢復(fù)相機(jī)旋轉(zhuǎn)來產(chǎn)生所述平面對象的所述圖像的至少一部分的所述參考補(bǔ)丁。接著,可將所述參考補(bǔ)丁用于基于視覺的檢測和跟蹤。可在所述圖像中檢測所述平行對象,作為平行線集合或作為矩形。
【專利說明】用于擴(kuò)增實境的在線參考補(bǔ)丁產(chǎn)生和姿態(tài)估計
[0001]未決臨時申請案的交叉參考
[0002]本申請案主張2011年7月26日申請且標(biāo)題為“用于擴(kuò)增實境的在線參考補(bǔ)丁產(chǎn)生和姿態(tài)估計(Online Reference Patch Generation and Pose Estimation forAugmented Reality) ”的第13 / 191,340號美國申請案的優(yōu)先權(quán),第13 / 191,340號美國申請案又根據(jù)35 USC 119而主張2011年4月20日申請且標(biāo)題為“用于擴(kuò)增實境的在線參考地圖產(chǎn)生和姿態(tài)估計(Online Reference Map Generation and Pose Estimation forAugmented Reality) ”的第61 / 477,524號美國臨時申請案的優(yōu)先權(quán),上述兩個申請案均轉(zhuǎn)讓給本案受讓人,且以引用的方式并入本文中。
【技術(shù)領(lǐng)域】【背景技術(shù)】
[0003]擴(kuò)增實境系統(tǒng)可將虛擬對象插入在真實世界的用戶視圖中。成功的擴(kuò)增實境系統(tǒng)的一個關(guān)鍵要求是可準(zhǔn)確地估計用戶相對于參考(例如3D模型等)的姿態(tài)的跟蹤系統(tǒng)。這允許虛擬擴(kuò)增與真實世界環(huán)境緊密重合。
[0004]用于擴(kuò)增實境的跟蹤系統(tǒng)需要獲取參考,其可為環(huán)境的3D模型、放在環(huán)境中的人工標(biāo)記,或環(huán)境中的平面表面的正視圖像。然而,在執(zhí)行擴(kuò)增實境之前獲得參考并不總是方便或可能的。對環(huán)境的現(xiàn)有知識的依賴性大大限制了擴(kuò)增實境技術(shù)的使用。因此,在空中產(chǎn)生環(huán)境的參考是合意的。
[0005]喬治.克萊因(George Klein)和大衛(wèi).穆雷(David Murray)的“相機(jī)電話上的并行跟蹤和測繪(Parallel Tracking and MappingOn a Camera Phone) ”(第 8 屆 IEEE 混合與擴(kuò)增實境國際研討會(ISMAR),第83-86頁,2009年10月19-22日)(“PTAM”)描述已知跟蹤技術(shù)的實例,其不需要環(huán)境的現(xiàn)有知識。PTAM方法通過檢測環(huán)境中的平面表面來初始化參考補(bǔ)丁。此方法要求在兩個圖像中檢測表面,且計算兩個圖像之間的單應(yīng)性,并將其用以估計在表面上檢測到的點(diǎn)的3D位置。因此,PTAM方法需要兩個圖像來產(chǎn)生參考補(bǔ)丁,而本發(fā)明只需要一個。W.李、Y.帕克、V.雷培提(L印eti)、W.吳的“用于移動電話上的普適加標(biāo)簽的對準(zhǔn)即拍(Point-and-Shoot) ” (2010年第9屆IEEE混合與擴(kuò)增實境國際研討會,第57-64頁,2010年10月13-16日)中描述跟蹤技術(shù)的另一實例(有時稱為對準(zhǔn)即拍方法),其中通過加速計來估計相機(jī)定向。使圖像彎曲到正視圖,且產(chǎn)生一組“平均補(bǔ)丁”。將每一平均補(bǔ)丁計算為有限范圍的視點(diǎn)內(nèi)的補(bǔ)丁的平均值,且所有平均補(bǔ)丁上的范圍涵蓋所有可能視圖。因此,對準(zhǔn)即拍方法依靠傳感器來產(chǎn)生參考補(bǔ)丁。此外,對準(zhǔn)即拍方法需要垂直或水平位置上的平面對象。例如由ARTookKit使用的另一方法跟蹤印刷在待跟蹤環(huán)境的表面上的預(yù)產(chǎn)生的高對比度正方形。因此,改進(jìn)是合意的。
【發(fā)明內(nèi)容】
[0006]在空中產(chǎn)生未知環(huán)境的參考補(bǔ)丁以用于定位和跟蹤。使用具有垂直的兩平行線集合的平面對象的所捕獲圖像來產(chǎn)生參考補(bǔ)丁。在圖像中檢測平面對象,且使用兩平行線集合的消失點(diǎn)來界定世界坐標(biāo)系的軸?;谒缍ǖ妮S恢復(fù)相機(jī)旋轉(zhuǎn),且使用恢復(fù)的相機(jī)旋轉(zhuǎn)來產(chǎn)生平面對象的圖像的至少一部分的參考補(bǔ)丁。接著可將參考補(bǔ)丁用于基于視覺的檢測和跟蹤??稍趫D像中檢測平面對象,作為平行線集合或作為矩形。
[0007]在一個方面中,一種方法包含:用移動平臺捕獲平面對象的一個圖像,所述平面對象包括第一平行線集合,其垂直于第二平行線集合;檢測所述一個圖像中的所述平面對象;使用所述第一平行線集合的第一消失點(diǎn)界定世界坐標(biāo)系的第一軸,且使用所述第二平行線集合的第二消失點(diǎn)界定所述世界坐標(biāo)系的第二軸;使用所述第一軸和所述第二軸恢復(fù)相機(jī)旋轉(zhuǎn);使用恢復(fù)的所述相機(jī)旋轉(zhuǎn)產(chǎn)生所述平面對象的所述一個圖像的至少一部分的參考補(bǔ)丁;以及比較所述參考補(bǔ)丁與所述平面對象的額外所捕獲圖像,以估計所述移動平臺相對于所述平面對象的姿態(tài)。
[0008]在另一方面中,一種設(shè)備包含相機(jī),其用于捕獲平面對象的圖像,所述平面對象包括第一平行線集合,其垂直于第二平行線集合。所述設(shè)備進(jìn)一步包含處理器,其耦合到所述相機(jī),用于接收所述平面對象的所述圖像,所述處理器適于檢測所述圖像中的所述平面對象,使用所述第一平行線集合的第一消失點(diǎn)界定世界坐標(biāo)系的第一軸,且使用所述第二平行線集合的第二消失點(diǎn)界定所述世界坐標(biāo)系的第二軸,使用所述第一軸和所述第二軸恢復(fù)相機(jī)旋轉(zhuǎn),使用恢復(fù)的所述相機(jī)旋轉(zhuǎn)產(chǎn)生所述平面對象的所述一個圖像的至少一部分的參考補(bǔ)丁,且比較所述參考補(bǔ)丁與所述平面對象的額外所捕獲圖像,以估計相對于所述平面對象的姿態(tài)。
[0009]在另一方面中,一種設(shè)備包含:用于捕獲平面對象的一個圖像的裝置,所述平面對象包括第一平行線集合,其垂直于第二平行線集合;用于檢測所述一個圖像中的所述平面對象的裝置;用于使用所述第一平行線集合的第一消失點(diǎn)界定世界坐標(biāo)系的第一軸且使用所述第二平行線集合的第二消失點(diǎn)界定所述世界坐標(biāo)系的第二軸的裝置;用于使用所述第一軸和所述第二軸恢復(fù)相機(jī)旋轉(zhuǎn)的裝置;用于使用恢復(fù)的所述相機(jī)旋轉(zhuǎn)產(chǎn)生所述平面對象的所述一個圖像的至少一部分的參考補(bǔ)丁的裝置;以及用于比較所述參考補(bǔ)丁與所述平面對象的額外所捕獲圖像以估計相對于所述平面對象的姿態(tài)的裝置。
[0010]在又一方面中,一種其上存儲有程序代碼的非暫時計算機(jī)可讀媒體包含:用以檢測圖像中的平面對象的程序代碼,所述平面對象具有第一平行線集合,其垂直于第二平行線集合;用以使用所述第一平行線集合的第一消失點(diǎn)界定世界坐標(biāo)系的第一軸且使用所述第二平行線集合的第二消失點(diǎn)界定所述世界坐標(biāo)系的第二軸的程序代碼;用以使用所述第一軸和所述第二軸恢復(fù)相機(jī)旋轉(zhuǎn)的程序代碼;用以使用恢復(fù)的所述相機(jī)旋轉(zhuǎn)產(chǎn)生所述平面對象的所述圖像的至少一部分的參考補(bǔ)丁的程序代碼;以及用以比較所述參考補(bǔ)丁與所述平面對象的額外所捕獲圖像以估計相對于所述平面對象的姿態(tài)的程序代碼。
【專利附圖】
【附圖說明】
[0011]圖1說明可產(chǎn)生未知環(huán)境的參考補(bǔ)丁的移動平臺,其可用于定位和跟蹤。
[0012]圖2是描述產(chǎn)生未知環(huán)境的參考補(bǔ)丁的過程的流程圖。
[0013]圖3說明平面矩形對象的消失點(diǎn),所述消失點(diǎn)用以界定真實世界坐標(biāo)系的軸。
[0014]圖4說明彎曲到正視圖以產(chǎn)生參考補(bǔ)丁的平面對象的圖像。[0015]圖5說明將參考補(bǔ)丁發(fā)射到第二移動平臺的第一移動平臺。
[0016]圖6是說明基于檢測垂直平行線集合來檢測圖像中的平面對象的過程的流程圖。
[0017]圖7是說明識別平行線和消失點(diǎn)的過程的流程圖。
[0018]圖8和9說明消失點(diǎn)的確定。
[0019]圖10說明基于垂直平行線集合而識別的平面對象。
[0020]圖11是說明通過識別圖像中的矩形來檢測平面對象的過程的流程圖。
[0021]圖12說明識別為矩形的平面對象。
[0022]圖13說明可產(chǎn)生假正矩形的平面對象。
[0023]圖14是說明消除假正矩形的過程的流程圖。
[0024]圖15說明能夠在空中產(chǎn)生未知環(huán)境的參考補(bǔ)丁的移動平臺的框圖。
【具體實施方式】
[0025]圖1說明可在空中產(chǎn)生未知環(huán)境的參考補(bǔ)丁的移動平臺100,其可(例如)用于在擴(kuò)增實境(AR)類型應(yīng)用中進(jìn)行定位和跟蹤。移動平臺100通過用相機(jī)114捕獲環(huán)境104內(nèi)的矩形平面對象102的圖像來執(zhí)行初始化過程。將對象102的圖像102A說明為顯示于移動平臺100的顯示器112中。根據(jù)所捕獲的圖像,辨識對象102,且產(chǎn)生參考補(bǔ)丁 106,從中可確定移動平臺100的定向和位置(姿態(tài))。如果需要,可將參考補(bǔ)丁 106發(fā)射到其它移動平臺(未圖示),使得檢視對象102的若干移動平臺全部具有相同參考圖像,這可能在需要多個移動平臺相對于彼此以及對象102的姿態(tài)時是有用的,例如,在AR游戲類型應(yīng)用中。
[0026]應(yīng)理解,移動平臺可為任何便攜式電子裝置,例如蜂窩式或其它無線通信裝置、個人通信系統(tǒng)(PCS)裝置、個人導(dǎo)航裝置(PND)、個人信息管理器(PM)、個人數(shù)字助理(PDA)、膝上型計算機(jī)、相機(jī)或其它能夠捕獲圖像且能夠定位和跟蹤的合適移動裝置。
[0027]圖2是描述產(chǎn)生未知環(huán)境的參考補(bǔ)丁的過程的流程圖。移動平臺100用相機(jī)114捕獲圖像202。應(yīng)理解,如本文所使用,所捕獲的圖像可為單個圖像,例如照片,或由相機(jī)114捕獲的視頻的幀。所捕獲的圖像具有平面對象,其包含垂直于第二平行線集合的第一平行線集合。舉例來說,平面對象可為例如平放于表面(例如桌子)上的一張紙、信用卡或其它矩形對象,如圖1中所說明。平面對象可或者為具有多個平行線集合的建筑物或其它結(jié)構(gòu),其中至少兩個平行線集合是垂直的且共面。
[0028]在所捕獲圖像204中檢測平面對象。使用所述第一平行線集合和所述第二平行線集合的消失點(diǎn)來界定正交的真實世界軸206。舉例來說,如圖3中所說明,可將平面對象102的第一消失點(diǎn)Vl界定為對應(yīng)于真實世界坐標(biāo)系的X軸X,且可將第二消失點(diǎn)v2界定為對應(yīng)于y軸Y。當(dāng)然,可使用適當(dāng)變換將消失點(diǎn)Vl和v2界定為對應(yīng)于任何正交軸。因為平面對象102包含垂直的平行線集合,所以使用消失點(diǎn)vl和v2界定的X軸X和y軸Y將正交??蓪⑾鄬τ谄矫鎸ο?02的法線方向(即,z軸Z)界定為X與Y的交叉乘積,即Z=vlXv2。平面對象的定向因此由3X3矩陣R[X|Y|Z]給出。
[0029]接著基于平面對象的所界定定向來恢復(fù)相機(jī)旋轉(zhuǎn)208。接著使用相機(jī)的經(jīng)恢復(fù)旋轉(zhuǎn)來產(chǎn)生平面對象的圖像的至少一部分的參考補(bǔ)丁 210。舉例來說,可將平面對象102的圖像彎曲到正視圖,即其中與平面對象正交的表面與相機(jī)的檢視方向平行的視圖,如圖4中的變換105所說明。然而,如果需要,那么可彎曲少于平面對象的整個圖像來形成參考補(bǔ)丁106。舉例來說,從由兩個平行線集合限定的區(qū)域(例如,在矩形內(nèi)部)提取的點(diǎn)特征或關(guān)鍵點(diǎn)特征可彎曲到正視圖。或者,由兩個平行線集合限定的線特征或其部分(例如,在矩形內(nèi)部)(包含平行線本身)可彎曲到正視圖。舉例來說,線特征可為第一平行線集合上和第二平行線集合上的多個點(diǎn),包含所述平行線集合之間的交叉點(diǎn)。如果需要,在平面對象的平面內(nèi)但不由兩個平行線集合限定的點(diǎn)特征可彎曲以形成參考補(bǔ)丁 106。
[0030]如果存在一個以上用戶,那么可將正視圖參考補(bǔ)丁 106發(fā)送給其它用戶。舉例來說,圖5說明第一移動平臺100A,其捕獲對象102的圖像,且產(chǎn)生參考補(bǔ)丁 106,如上文所述。移動平臺100A可接著直接(如由虛箭頭117所指示)或經(jīng)由無線網(wǎng)絡(luò)120將參考補(bǔ)丁 106發(fā)射到第二移動平臺100B。如果參考補(bǔ)丁為標(biāo)準(zhǔn)圖像,那么可使用現(xiàn)存網(wǎng)絡(luò)協(xié)議和圖像標(biāo)準(zhǔn)來壓縮、發(fā)送和解壓縮參考補(bǔ)丁。
[0031]使用參考補(bǔ)丁通過比較參考補(bǔ)丁與平面對象102的額外所捕獲圖像來相對于平面對象102而估計移動平臺的姿態(tài)212,且如果需要,可基于所確定的姿態(tài)來執(zhí)行AR應(yīng)用程序214。參考補(bǔ)丁與額外所捕獲圖像的比較可使用來自參考補(bǔ)丁的點(diǎn)或線特征,例如使用已知特征提取技術(shù)(例如標(biāo)度不變特征變換(SIFT),其局部化特征且產(chǎn)生其描述)提取的特征。如果需要,可使用其它技術(shù),例如快速穩(wěn)健特征(SURF)、梯度位置-定向直方圖(GLOH)、壓縮梯度直方圖(CHoG)或其它相當(dāng)技術(shù)。對于任何檢測到的2D點(diǎn)(X,y),其3D坐標(biāo)為(sx, sy,O),其中s為非零任意常數(shù)。如果存在多個用戶,那么s應(yīng)對所有用戶具有相同值,其可為所定義值。在每一新捕獲的圖像(例如,傳入視頻幀)上搜索3D點(diǎn)的2D投影,且使用匹配的3D-2D點(diǎn)對來估計姿態(tài)。
[0032]如果需要,線特征也可用于姿態(tài)估計。首先,在參考補(bǔ)丁上檢測2D線。對于任何所檢測2D線,其由其兩個端點(diǎn)(xl,yl)和(x2,y2)表示;其對應(yīng)的3D線可由兩個3D點(diǎn)(sxl,syl,0)和(sx2,sy2,0)表示。第二,在每一傳入視頻圖像上檢測3D線的2D投影。最后,使用匹配的3D-2D線對來估計姿態(tài)。
[0033]如果移動平臺100遠(yuǎn)離對象102平移(pan),即,使得對象102不再在相機(jī)114的視野中,那么跟蹤移動平臺100相對于對象102的姿態(tài)可繼續(xù)使用機(jī)載運(yùn)動傳感器(例如,加速計、陀螺儀、磁強(qiáng)計等)來執(zhí)行。當(dāng)移動移動平臺100使得其再次對對象102進(jìn)行成像時,可使用從圖像內(nèi)提取的特征(例如由平行線集合限定的所提取特征點(diǎn)或線特征、或矩形內(nèi)部的紋理)來重新檢測或辨識矩形。
[0034]如果在預(yù)定數(shù)目的幀(例如5個幀)內(nèi)未檢測到矩形平面對象102,那么移動平臺100可使用基于特征的跟蹤,其中基于后續(xù)幀中的特征重合來初始化姿態(tài)。
[0035]圖6是說明檢測圖像中的平面對象的過程的流程圖(圖2中的步驟204)。通過檢測圖像內(nèi)的平行線集合來辨識平面對象250。確定平行線集合的消失點(diǎn)252。
[0036]圖7是說明識別平行線和消失點(diǎn)的過程的流程圖。如所說明,識別圖像中的線272,其可使用任何所要邊緣或線檢測器算子(例如,卷積核,例如坎尼(Canny)、索貝爾(Sobel)或羅伯斯克洛斯(Robers Cross),其檢測邊緣像素)來執(zhí)行,接著將所述線連接并擬合為線段。也可使用替代方法,例如線擬合算法,例如霍夫(Hough)變換。接著將所述線分組為水平和垂直群組274。舉例來說,如果線與圖像上的垂直軸之間的角度小于預(yù)定角度,例如20度,那么將所述線分類為垂直線,且否則將所述線分類為水平線。歸因于透視收縮,圖像可包含在二維圖像中不平行的線,即使他們在三維中平行。接著確定在三維中彼此平行的垂直線集合276。當(dāng)延長時,平行且位于3D空間中的樣本平面表面上的線將穿過2D圖像上的同一點(diǎn),其被識別為這些線的消失點(diǎn)。所述消失點(diǎn)可(但不一定)為2D空間中無窮處的點(diǎn)??勺R別兩條潛在平行線的延長線的相交點(diǎn),且接著可確定其它線在延長時是否穿過同一點(diǎn)。通常,當(dāng)兩條以上線(例如至少5條線)穿過2D空間中的同一點(diǎn)時,可將這些線視為在3D空間中平行。計算三維平行線的垂直消失點(diǎn)的位置278。
[0037]圖8和9說明消失點(diǎn)的定義。圖8說明由相機(jī)中心位置306、圖像300中的二維線302以及三維空間中的對應(yīng)線304形成的平面308。將高斯(單位)球體310說明為定中心于相機(jī)中心位置306上,且平面308在大圓312上與高斯球體310相交。圖9說明由三維空間中的線304和相機(jī)位置306以及高斯球體310和對應(yīng)大圓312形成的平面308。圖9還展示兩條額外線320和330,其平行于三維空間中的線304,以及由相應(yīng)線320和330以及相機(jī)位置306以及對應(yīng)大圓324和334形成的平面322和332。大圓312、324和334在高斯球體310上的共用消失點(diǎn)340處相交,其可用以識別平行線304、320和330的方向。在給定在三維空間中彼此平行的η條線的集合的情況下, 通過求解以下等式來確定消失點(diǎn)V:
[0038]I V =0 等式 I
[0039]其中IiMai, bi; Ci)表示第i條線??墒褂美鏡ANSAC(隨機(jī)樣本共識)等方法來估計垂直消失點(diǎn)。應(yīng)理解,當(dāng)圖像由大致直立相機(jī)產(chǎn)生時,可使用所描述的消失點(diǎn)估計方法。如果需要,可使用其它已知消失點(diǎn)估計方法。
[0040]對于垂直線,僅存在一個要確定的消失點(diǎn),因此,僅需要求解等式I 一次。然而,對于水平線,多個消失點(diǎn)是可能的。為了確定水平消失點(diǎn),將i設(shè)定為0279,且使用RANSAC方法來計算消失點(diǎn)Vi,內(nèi)圍層Η/η和外圍層故-280。將外圍層!Vut從水平線群組去除282。如果i〈M且左側(cè)存在六個水平線284,那么i增加一 286,且重復(fù)所述過程。如果i不小于M,或如果左側(cè)不存在六個以上水平線284,那么過程結(jié)束,且將垂直和水平消失點(diǎn)存儲288在存儲器中。舉例來說,可將值M設(shè)定為5,或設(shè)定為待使用的水平消失點(diǎn)的數(shù)目的任何其它所要值。
[0041]返回參看圖6,一旦確定平行線集合及其消失點(diǎn),就使用所述消失點(diǎn)來確定所述平行線集合彼此垂直254。舉例來說,圖10說明具有第一線集合102x和第二線集合102y的對象102,所述線可被識別為在3D空間中平行,因為其穿過2D圖像空間中的同一點(diǎn),如圖3中所說明。圖3說明來自平行線102x的消失點(diǎn)Vl以及來自平行線102y的消失點(diǎn)v2。如上文所論述,為了識別3D空間中的平行線,對象的圖像空間中的兩條以上線(例如5條或以上線)應(yīng)穿過2D圖像空間中的同一點(diǎn)。所述線穿過的點(diǎn)被視為平行線的消失點(diǎn)。可從例如5條或5條以上平行線的集合中選出兩條代表性線,例如由虛線102A和點(diǎn)線102B所說明??苫诶邕B續(xù)性、長度或線之間的最大距離等因素來選擇代表性線。平行線集合的垂直關(guān)系由|vl*v2|=0確定,其中*表示點(diǎn)積,Vl和v2在3D齊次坐標(biāo)中表示。歸因于圖像中的可能噪聲,vl*v2的絕對值可稍大于0,且因此,可使用小于預(yù)定閾值、接近零的值來檢驗垂直關(guān)系。
[0042]在圖11的流程圖中說明的另一實例中,可通過識別圖像中的矩形來執(zhí)行檢測平面對象的過程(圖2中的步驟204)。為了檢測圖像中的矩形,從所捕獲圖像提取輪廓350。輪廓檢測是此項技術(shù)中眾所周知的。舉例來說,可使用若干技術(shù),例如正方形跟蹤算法、摩爾鄰域跟蹤、徑向掃掠算法、西奧.帕福利迪斯(Theo Pavlidis')算法或由S.鈴木和K.亞伯在“通過邊界跟蹤對數(shù)字二進(jìn)制圖像的拓?fù)浣Y(jié)構(gòu)分析(Topological StructuralAnalysis of Digital Binary Images by Border Following) ”(程序計算機(jī)視覺、圖形和圖像會議,30 (1985):32-46)中描述的方法。接著可在輪廓內(nèi)識別矩形候選者。舉例來說,可通過多邊形近似(例如道格拉斯-普克法算法)用線對所提取的輪廓進(jìn)行分段352。如果經(jīng)分段的輪廓具有四條線,那么將其視為矩形候選者354。如果需要,可使用其它矩形檢測技術(shù)。舉例來說,可通過首先檢測所捕獲圖像中的直線,接著將檢測到的線擬合為矩形來識別矩形。
[0043]確定矩形候選者中的線集合的消失點(diǎn)356,且使用所述消失點(diǎn)來檢驗所述候選者為矩形358。當(dāng)使用矩形候選者時,可僅使用兩條線來識別消失點(diǎn),而當(dāng)在無矩形候選者的情況下找到消失點(diǎn)時,即如上文在圖7中所論述,使用兩條以上線。舉例來說,圖12說明對象102,其經(jīng)識別為矩形候選者,如圖12中由對象102的虛線周邊所說明。通過對矩形候選者上的相對線使用消失點(diǎn),例如使用線對103a和103c以及線對103b和103d,將矩形候選者102檢驗為矩形??衫缤ㄟ^將線103a和103c表示為相機(jī)坐標(biāo)系中的3D向量Ia和Ic來計算矩形候選者的線對的消失點(diǎn),其中消失點(diǎn)Vl=IaXlc ;且類似地消失點(diǎn)v2=lbXld,其中Ia為描述線103a的向量,Ib為描述線103b的向量。如果線對103a、103c以及103b、103d彼此垂直,那么將矩形候選者檢驗為矩形。平行線集合的垂直關(guān)系由|vl*v2|=0檢驗,其中*表示點(diǎn)積,如上文所論述。如果圖像中檢測到一個以上矩形,那么可例如基于最大面積、用戶選擇等選擇一個矩形。
[0044]然而,使用矩形檢驗(圖11中的步驟358)的| vl*v2 | =0正交性條件可導(dǎo)致假正,即可能將非矩形形狀分類為矩形。舉例來說,如圖13中所說明,將梯形102假說明為上覆對象102。梯形102假可產(chǎn)生假正矩形。因此,如圖11中所說明,消除假正矩形360。
[0045]圖14說明消除假正矩形的方法(圖11中的步驟360)。如圖14中所說明,消除具有形成于圖像平面的相鄰邊之間的超過閾值的角度的矩形400。一般來說,當(dāng)從頭頂位置(即,與法線成0° )檢視矩形時,矩形的邊將正交。當(dāng)以斜角(例如,與法線成45°到60° )檢視矩形時,圖像空間中的矩形的相鄰邊之間的角度將與正交偏離。因與法線成45°到60°的檢視角度而引起的與正交的偏離(圖13中的角度α )近似為15°到20°。因此,可使用矩形中的相鄰邊之間的偏離角度α的閾值(例如15°到20° )來消除假正矩形。換句話說,具有相鄰邊之間的在90° -α到90° +α的范圍外的角度的任何矩形被視為假正矩形。如果需要,可使用其它閾值,且如果需要,閾值可變化。舉例來說,閾值可基于矩形的大小。對矩形的相鄰邊之間的角度強(qiáng)加約束會丟棄大量的假正矩形。
[0046]另外,如果檢測到多個矩形,那么基于所檢測到的矩形的定向(即,每一矩形的平面法線)來選擇矩形402。因此,選擇具有來自所檢測矩形集合的最一致定向的矩形,且消除其余矩形。舉例來說,可基于離散定向間隔將每一所檢測矩形指派給若干個倉中的一者??蛇x擇具有最大數(shù)目個矩形的倉且/或最靠近所述倉的平均定向的矩形。
[0047]圖15說明能夠在空中產(chǎn)生未知環(huán)境的參考補(bǔ)丁例如以用于定位和跟蹤(例如在AR類型應(yīng)用中)的移動平臺100的框圖。將移動平臺100說明為包含用于捕獲環(huán)境的圖像的相機(jī)114,所述圖像可為照片或視頻幀。移動平臺100還可包含定向傳感器116,其可用以提供移動平臺100可借此確定其位置和定向的數(shù)據(jù),例如,如果移動平臺100遠(yuǎn)離所檢測對象而平移??晒┮苿悠脚_100使用的定向傳感器的實例包含加速計、石英傳感器、陀螺儀或用作線性加速計的微機(jī)電系統(tǒng)(MEMS)傳感器,以及磁強(qiáng)計。移動平臺100可進(jìn)一步包含無線收發(fā)器118,其可用以直接或經(jīng)由無線網(wǎng)絡(luò)120 (圖5)將所產(chǎn)生的參考補(bǔ)丁提供給其它移動平臺,無線網(wǎng)絡(luò)120可為無線廣域網(wǎng)(WffAN)、無線局域網(wǎng)(WLAN)、無線個人區(qū)域網(wǎng)(WPAN)等等,或通過蜂窩式電話接入點(diǎn)。
[0048]移動平臺100還可包含用戶接口 150,其包含能夠顯示例如環(huán)境的圖像以及渲染的AR數(shù)據(jù)(在需要時)的顯示器112。用戶接口 150還可包含小鍵盤154或其它輸入裝置,經(jīng)由其用戶可將信息輸入到移動平臺100中。如果需要,可通過將虛擬小鍵盤集成到具有觸摸傳感器的顯示器152中來排除小鍵盤154。用戶接口 150還可包含麥克風(fēng)156和揚(yáng)聲器158,例如如果移動平臺是蜂窩式電話。當(dāng)然,移動平臺100可包含與本發(fā)明無關(guān)的其它元件。
[0049]移動平臺100還包含控制單元170,其連接到相機(jī)114、定向傳感器116和無線收發(fā)器118并與之通信,以及用戶接口 150,以及任何其它所要特征??刂茊卧?70可由處理器172和相關(guān)聯(lián)存儲器/存儲裝置174提供,其可包含軟件176,以及硬件178和固件180??刂茊卧?70包含圖像處理引擎182,其用于檢測圖像中的矩形平面對象,以及彎曲所述圖像以產(chǎn)生參考補(bǔ)丁。控制單元170可進(jìn)一步包含基于視覺的檢測和跟蹤單元184,其用以使用與矩形平面對象的后續(xù)產(chǎn)生圖像相比的參考補(bǔ)丁中的矩形平面對象來確定移動平臺100的姿態(tài)??刂茊卧?70可進(jìn)一步包含圖形處理單元(GPU) 186,其用于響應(yīng)于所確定的姿態(tài)來渲染AR數(shù)據(jù),其可接著顯示于顯示器112上。GPU186還可用于通用編程技術(shù)來加速計算機(jī)視覺計算處理。為了清晰性,圖像處理引擎、檢測和跟蹤單元184以及GPU186分別且與處理器172分開說明,但可基于在處理器172中運(yùn)行的軟件176中的指令而在處理器172中組合且/或?qū)嵤?br>
[0050]將理解,如本文所使用,處理器172,以及圖像處理引擎182、檢測和跟蹤單元184以及GPU186中的一者或一者以上可但無需一定包含一個或一個以上微處理器、嵌入式處理器、控制器、專用集成電路(ASIC)、數(shù)字信號處理器(DSP)等。術(shù)語處理器既定描述由系統(tǒng)而不是特定硬件實施的功能。此外,如本文中所使用,術(shù)語“存儲器”和“存儲裝置”指代任何類型的計算機(jī)存儲媒體,包含與移動平臺相關(guān)聯(lián)的長期、短期或其它存儲器,且不限于任何特定類型的存儲器或存儲器數(shù)目,或其上可存儲存儲器的媒體類型。
[0051]依據(jù)應(yīng)用而定,本文所描述的方法可由各種裝置來實施。舉例來說,這些方法可在硬件178、固件180、軟件176或其任何組合中實施。對于硬件實施方案,圖像處理引擎、檢測和跟蹤單元184以及GPU186可實施于一個或一個以上專用集成電路(ASIC)、數(shù)字信號處理器(DSP)、數(shù)字信號處理裝置(DSPD)、可編程邏輯裝置(PLD)、現(xiàn)場可編程門陣列(FPGA)、處理器、控制器、微控制器、微處理器、電子裝置、經(jīng)設(shè)計以執(zhí)行本文所述功能的其它電子單元或其組合內(nèi)。
[0052]對于固件和/或軟件實施方案,可用執(zhí)行本文所述功能的模塊(例如,程序、功能等等)來實施方法。可使用有形地體現(xiàn)指令的任何機(jī)器可讀媒體來實施本文所述的方法。舉例來說,軟件代碼可存儲在存儲器174中,且由處理器172執(zhí)行。存儲器可在處理器172內(nèi)或處理器172外部實施。
[0053]如果在固件和/或軟件中實施,那么可將功能存儲為計算機(jī)可讀媒體上的一個或一個以上指令或代碼。實例包含編碼有數(shù)據(jù)結(jié)構(gòu)的非暫時計算機(jī)可讀媒體以及編碼有計算機(jī)程序的計算機(jī)可讀媒體。計算機(jī)可讀媒體包含物理計算機(jī)存儲媒體。存儲媒體可為可由計算機(jī)存取的任何可用媒體。舉例來說,且無限制,此類計算機(jī)可讀媒體可包括RAM、ROM、快閃存儲器、EEPROM、CD-ROM或其它光盤存儲裝置、磁盤存儲裝置或其它磁性存儲裝置,或任何其它可用于存儲呈指令或數(shù)據(jù)結(jié)構(gòu)的形式的所要程序代碼且可由計算機(jī)存取的媒體;磁盤和光盤(如本文中所使用)包含壓縮光盤(CD)、激光光盤、光學(xué)光盤、數(shù)字多功能光盤(DVD)、軟性磁盤和藍(lán)光光盤,其中磁盤通常以磁性方式復(fù)制數(shù)據(jù),而光盤用激光以光學(xué)方式復(fù)制數(shù)據(jù)。上文的組合也應(yīng)包含在計算機(jī)可讀媒體的范圍內(nèi)。
[0054]盡管出于指導(dǎo)目的結(jié)合特定實施例來說明本發(fā)明,但本發(fā)明不限于此。可在不脫離本發(fā)明的范圍的情況下,進(jìn)行各種適應(yīng)和修改。因此,所附權(quán)利要求書的精神和范圍不應(yīng)限于先前描述。
【權(quán)利要求】
1.一種方法,其包括: 用移動平臺捕獲平面對象的一個圖像,所述平面對象包括第一平行線集合,其垂直于第二平行線集合; 檢測所述一個圖像中的所述平面對象; 使用所述第一平行線集合的第一消失點(diǎn)來界定世界坐標(biāo)系的第一軸,且使用所述第二平行線集合的第二消失點(diǎn)來界定所述世界坐標(biāo)系的第二軸; 使用所述第一軸和所述第二軸恢復(fù)相機(jī)旋轉(zhuǎn); 使用恢復(fù)的所述相機(jī)旋轉(zhuǎn)來產(chǎn)生所述平面對象的所述一個圖像的至少一部分的參考補(bǔ)丁 ;以及 比較所述參考補(bǔ)丁與所述平面對象的額外所捕獲圖像,以估計所述移動平臺相對于所述平面對象的姿態(tài)。
2.根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包括: 使用所述移動平臺相對于所述平面對象的所述姿態(tài)而在所述移動平臺上執(zhí)行擴(kuò)增實境應(yīng)用。
3.根據(jù)權(quán)利要求1所述的方法,其中檢測所述一個圖像中的所述平面對象包括: 檢測所述一個圖像中的所述第一平行線集合和所述第二平行線集合; 確定所述第一平行線集合的所述第一消失點(diǎn)以及所述第二平行線集合的所述第二消失點(diǎn);以及` 使用所述第一消失點(diǎn)和所述第二消失點(diǎn)來確定所述第一平行線集合垂直于所述第二平行線集合。
4.根據(jù)權(quán)利要求3所述的方法,其中檢測所述一個圖像中的所述第一平行線集合和所述第二平行線集合以及確定所述第一平行線集合的所述第一消失點(diǎn)以及所述第二平行線集合的所述第二消失點(diǎn)包括: 通過識別延伸穿過同一消失點(diǎn)的若干線集合來檢測所述一個圖像中在三維空間中具有相同方向的多個線集合。
5.根據(jù)權(quán)利要求1所述的方法,其中所述平面對象為矩形,且其中檢測所述一個圖像中的所述平面對象包括矩形檢測。
6.根據(jù)權(quán)利要求5所述的方法,其中所述矩形檢測包括: 從所述一個圖像提取輪廓; 識別所述輪廓中的矩形候選者;以及 通過確定所述矩形候選者的所述第一平行線集合的所述第一消失點(diǎn)以及所述矩形候選者中的所述第二平行線集合的所述第二消失點(diǎn)且使用所述第一消失點(diǎn)和所述第二消失點(diǎn)來確定所述第一平行線集合垂直于所述第二平行線集合來檢驗所述輪廓為矩形。
7.根據(jù)權(quán)利要求6所述的方法,其中識別所述輪廓中的所述矩形候選者包括通過多邊形近似用線對所述輪廓進(jìn)行分段,其中具有四條線的經(jīng)分段輪廓被視為所述矩形候選者。
8.根據(jù)權(quán)利要求5所述的方法,其中所述矩形檢測包括在所檢測矩形的相鄰邊之間的角度小于閾值的情況下,消除所述所檢測矩形。
9.根據(jù)權(quán)利要求5所述的方法,其中所述矩形檢測包括:檢測多個矩形;將所述多個矩形的定向確定為含有所述多個矩形中的每一者的平面表面的表面法線;以及基于所述多個矩形的所述定向來選擇矩形。
10.根據(jù)權(quán)利要求1所述的方法,其中所述平面對象的所述一個圖像的至少所述部分的所述參考補(bǔ)丁包括由所述第一平行線集合和所述第二平行線集合限定的關(guān)鍵點(diǎn)特征。
11.根據(jù)權(quán)利要求1所述的方法,其中所述平面對象的所述一個圖像的至少所述部分的所述參考補(bǔ)丁包括由所述第一平行線集合和所述第二平行線集合限定的線特征。
12.根據(jù)權(quán)利要求11所述的方法,其中由所述第一平行線集合和所述第二平行線集合限定的所述線特征包括所述第一平行線集合和所述第二平行線集合上的多個點(diǎn),包含所述第一平行線集合與所述第二平行線集合之間的相交點(diǎn)。
13.根據(jù)權(quán)利要求1所述的方法,其中所述平面對象的所述一個圖像的至少所述部分的所述參考補(bǔ)丁包括不由所述第一平行線集合和所述第二平行線集合限定的特征。
14.根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包括將所述參考補(bǔ)丁發(fā)射到第二移動平臺。
15.—種設(shè)備,其包括: 相機(jī),其用于捕獲平面對象的圖像,所述平面對象包括第一平行線集合,其垂直于第二平行線集合; 處理器,其耦合到所述相機(jī),用于接收所述平面對象的所述圖像,所述處理器適于檢測所述圖像中的所述平面對象,使用所述第一平行線集合的第一消失點(diǎn)界定世界坐標(biāo)系的第一軸,且使用所述第二平行線集合的第二消失點(diǎn)界定所述世界坐標(biāo)系的第二軸,使用所述第一軸和所述第二軸恢復(fù)相機(jī)旋轉(zhuǎn),使用恢復(fù)的所述相機(jī)旋轉(zhuǎn)產(chǎn)生所述平面對象的所述一個圖像的至少一部分的參考補(bǔ)丁,且比較所述參考補(bǔ)丁與所述平面對象的額外所捕獲圖像以估計相對于所述平面對象的姿態(tài)。
16.根據(jù)權(quán)利要求15所述 的設(shè)備,其中所述處理器進(jìn)一步適于使用所述相對于所述平面對象的姿態(tài)來執(zhí)行擴(kuò)增實境應(yīng)用。
17.根據(jù)權(quán)利要求15所述的設(shè)備,所述處理器適于通過適于檢測所述圖像中的所述第一平行線集合和所述第二平行線集合來檢測所述圖像中的所述平面對象,確定所述第一平行線集合的所述第一消失點(diǎn)以及所述第二平行線集合的所述第二消失點(diǎn),且使用所述第一消失點(diǎn)和所述第二消失點(diǎn)來確定所述第一平行線集合垂直于所述第二平行線集合。
18.根據(jù)權(quán)利要求17所述的設(shè)備,其中所述處理器適于檢測所述圖像中的所述第一平行線集合和所述第二平行線集合,且通過適于識別延伸穿過同一消失點(diǎn)的若干線集合以檢測所述圖像中在三維空間中具有同一方向的多個線集合來確定所述第一平行線集合的所述第一消失點(diǎn)以及所述第二平行線集合的所述第二消失點(diǎn)。
19.根據(jù)權(quán)利要求15所述的設(shè)備,其中所述平面對象為矩形,且其中所述處理器適于通過適于檢測矩形來檢測所述圖像中的所述平面對象。
20.根據(jù)權(quán)利要求19所述的設(shè)備,其中所述處理器適于通過適于從所述圖像提取輪廓來檢測矩形,識別所述輪廓中的矩形候選者,且通過確定所述矩形候選者的所述第一平行線集合的所述第一消失點(diǎn)以及所述矩形候選者中的所述第二平行線集合的所述第二消失點(diǎn)且使用所述第一消失點(diǎn)和所述第二消失點(diǎn)確定所述第一平行線集合垂直于所述第二平行線集合來檢驗所述輪廓為矩形。
21.根據(jù)權(quán)利要求20所述的設(shè)備,其中所述處理器適于通過適于借助多邊形近似用線對所述輪廓進(jìn)行分段來識別所述輪廓中的所述矩形候選者,其中具有四條線的經(jīng)分段輪廓被視為所述矩形候選者。
22.根據(jù)權(quán)利要求19所述的設(shè)備,其中所述處理器適于通過適于在所檢測矩形的相鄰邊之間的角度小于閾值的情況下消除所述所檢測矩形來檢測矩形。
23.根據(jù)權(quán)利要求19所述的設(shè)備,其中所述處理器適于通過適于以下動作來檢測矩形:檢測多個矩形;將所述多個矩形的定向確定為含有所述多個矩形中的每一者的平面表面的表面法線;以及基于所述多個矩形的所述定向來選擇矩形。
24.根據(jù)權(quán)利要求15所述的設(shè)備,其中所述處理器適于通過適于產(chǎn)生具有由所述第一平行線集合和所述第二平行線集合限定的關(guān)鍵點(diǎn)的所述參考補(bǔ)丁來產(chǎn)生所述圖像的至少所述部分的所述參考補(bǔ)丁。
25.根據(jù)權(quán)利要求15所述的設(shè)備,其中所述處理器適于通過適于產(chǎn)生具有由所述第一平行線集合和所述第二平行線集合限定的線特征的所述參考補(bǔ)丁來產(chǎn)生所述圖像的至少所述部分的所述參考補(bǔ)丁。
26.根據(jù)權(quán)利要求25所述的設(shè)備,其中所述處理器適于通過適于產(chǎn)生具有所述第一平行線集合和所述第二平行線集合上的多個點(diǎn)的所述線特征來產(chǎn)生具有所述線特征的所述參考補(bǔ)丁,所述多個點(diǎn)包含所述第一平行線集合與所述第二平行線集合之間的相交點(diǎn)。
27.根據(jù)權(quán)利要求15所述的設(shè)備,其中所述處理器適于通過適于產(chǎn)生具有由所述第一平行線集合和所述第二平行線集合限定的特征的所述參考補(bǔ)丁來產(chǎn)生所述圖像的至少所述部分的所述參考補(bǔ)丁。
28.根據(jù)權(quán)利要求15所述的設(shè)備,其進(jìn)一步包括耦合到所述處理器的無線收發(fā)器,所述處理器進(jìn)一步適于使用所述無線收發(fā)器將所述參考補(bǔ)丁發(fā)射到不同設(shè)備。
29.—種設(shè)備,其包括: 用于捕獲平面對象的一個圖像的裝置,所述平面對象包括第一平行線集合,其垂直于第二平行線集合; 用于檢測所述一個圖像中的所述平面對象的裝置; 用于使用所述第一平行線集合的第一消失點(diǎn)界定世界坐標(biāo)系的第一軸且使用所述第二平行線集合的第二消失點(diǎn)界定所述世界坐標(biāo)系的第二軸的裝置; 用于使用所述第一軸和所述第二軸恢復(fù)相機(jī)旋轉(zhuǎn)的裝置; 用于使用恢復(fù)的所述相機(jī)旋轉(zhuǎn)產(chǎn)生所述平面對象的所述一個圖像的至少一部分的參考補(bǔ)丁的裝置;以及 用于比較所述參考補(bǔ)丁與所述平面對象的額外所捕獲圖像以估計相對于所述平面對象的姿態(tài)的裝置。
30.根據(jù)權(quán)利要求29所述的設(shè)備,其進(jìn)一步包括: 用于使用所述相對于所述平面對象的姿態(tài)來執(zhí)行擴(kuò)增實境應(yīng)用的裝置。
31.根據(jù)權(quán)利要求29所述的設(shè)備,其中檢測所述一個圖像中的所述平面對象包括: 用于檢測所述一個圖像中的所述第一平行線集合和所述第二平行線集合的裝置; 用于確定所述第一平行線集合的所述第一消失點(diǎn)以及所述第二平行線集合的所述第二消失點(diǎn)的裝置;以及 用于使用所述第一消失點(diǎn)和所述第二消失點(diǎn)來確定所述第一平行線集合垂直于所述第二平行線集合的裝置。
32.根據(jù)權(quán)利要求29所述的設(shè)備,其中所述平面對象為矩形,且其中所述用于檢測所述一個圖像中的所述平面對象的裝置包括用于矩形檢測的裝置。
33.根據(jù)權(quán)利要求32所述的設(shè)備,其中所述用于矩形檢測的裝置包括用于消除假正矩形的裝置。
34.根據(jù)權(quán)利要求29所述的設(shè)備,其進(jìn)一步包括用于發(fā)射所述參考補(bǔ)丁的裝置。
35.一種其上存儲有程序代碼的非暫時計算機(jī)可讀媒體,其包括: 用以檢測圖像中的平面對象的程序代碼,所述平面對象具有第一平行線集合,其垂直于第二平行線集合; 用以使用所述第一平行線集合的第一消失點(diǎn)界定世界坐標(biāo)系的第一軸且使用所述第二平行線集合的第二消失點(diǎn)界定所述世界坐標(biāo)系的第二軸的程序代碼; 用以使用所述第一軸和所述第二軸恢復(fù)相機(jī)旋轉(zhuǎn)的程序代碼; 用以使用恢復(fù)的所述相機(jī)旋轉(zhuǎn)來產(chǎn)生所述平面對象的所述圖像的至少一部分的參考補(bǔ)丁的程序代碼,以及 用以比較所述參考補(bǔ)丁與所述平面對象的額外所捕獲圖像以估計相對于所述平面對象的姿態(tài)的程序代碼。
36. 根據(jù)權(quán)利要求35所述的非暫時計算機(jī)可讀媒體,其中所述用以檢測所述圖像中的所述平面對象的程序代碼包括: 用以檢測所述圖像中的所述第一平行線集合和所述第二平行線集合的程序代碼; 用以確定所述第一平行線集合的所述第一消失點(diǎn)以及所述第二平行線集合的所述第二消失點(diǎn)的程序代碼 用以使用所述第一消失點(diǎn)和所述第二消失點(diǎn)來確定所述第一平行線集合垂直于所述第二平行線集合的程序代碼。
37.根據(jù)權(quán)利要求35所述的非暫時計算機(jī)可讀媒體,其中所述平面對象為矩形,且其中所述用以檢測所述圖像中的所述平面對象的程序代碼包括用以執(zhí)行矩形檢測的程序代碼。
38.根據(jù)權(quán)利要求37所述的非暫時計算機(jī)可讀媒體,其進(jìn)一步包括用以消除假正矩形的程序代碼。
【文檔編號】G06T7/00GK103492899SQ201280019255
【公開日】2014年1月1日 申請日期:2012年4月11日 優(yōu)先權(quán)日:2011年4月20日
【發(fā)明者】蔣博蘭, 查理·惠勒·斯威特三世, 普拉遜·喬杜里, 迪拉杰·阿胡賈 申請人:高通股份有限公司