專利名稱:使用圖像內容來幫助在全景圖像數據中導航的制作方法
技術領域:
本發明涉及在全景圖像之間導航。
背景技術:
存在包括被地理編碼到地圖上的位置的多個全景圖像的計算機系統。為了在鄰 近全景圖像之間導航,用戶可以選擇地圖上的按鈕,然后新的鄰近全景圖像可以被加載 并顯示。盡管該技術是有益的,但是從一個圖像跳到下一個圖像對用戶來說會分散注意 力。因此,需要新的導航方法和系統。
發明內容
本發明涉及使用圖像內容來幫助在全景圖像數據中導航。在第一實施例中, 一種用于在全景圖像數據中導航的計算機實現的方法包括(1)確定射線(ray)和虛擬 模型的交點,其中射線自圖像的照相機視口(viewport)延伸,以及虛擬模型包括多個立 面平面(facade planes) (2)檢索全景圖像;(3)將全景圖像定向為朝向交點(orienting the panoramic image to the intersection)以及(4)顯不定向的(oriented)全景圖像。在第二實施例中,一種用于創建并顯示注釋的方法包括(1)從多個二維圖像 創建虛擬模型;(2)確定射線和虛擬模型的交點,其中射線自第一圖像的照相機視口延 伸;(3)檢索全景圖像;(4)將全景圖像定向為面向交點;以及(5)顯示全景圖像。在第三實施例中,一種系統創建并顯示對應于虛擬模型的注釋,其中虛擬模型 是從多個二維圖像創建的。該系統包括導航控制器,其確定自第一圖像的照相機視口延 伸的射線和虛擬模型的交點、檢索第三全景圖像以及將第三全景圖像定向為面向交點。 虛擬模型包括多個立面平面。在下面參照附圖詳細描述本發明的進一步實施例、特征和優勢以及本發明的各 種實施例的結構和操作。
合并于此并且形成說明書的一部分的附示了本發明,并且與描述一起進一 步用于解釋本發明的原理,并且使相關領域的技術人員能夠制作并使用本發明。圖1是圖示了根據本發明的一個實施例的使用圖像內容來幫助在全景圖像數據 中導航的圖。圖2A-D是更詳細地示范了幫助在全景圖像數據中導航的方式的圖。圖3是圖示了根據本發明的一個實施例的用于在全景圖像數據內導航的方法的 流程圖。圖4是圖示了根據本發明的一個實施例的用于從圖像數據創建虛擬模型的方法 的流程圖。圖5A-C是圖示了根據圖4的方法找到匹配特征的圖。
圖6-7是圖示了根據圖4中的方法基于匹配特征對來確定點的圖。圖8A-B是圖示了根據圖4的方法確定的多個點的圖。圖9A-C是圖示了根據圖4的方法基于多個點來確定表面的圖。圖10是示出了根據本發明的一個實施例的用于使用虛擬模型來在圖像數據內導 航的系統的圖。圖11是示出了根據本發明的一個實施例的用于從圖像數據創建虛擬模型的系統 的圖。元素首次出現的附圖典型地由對應的參考數字中最左邊的數字指示。在附圖 中,相同的參考數字可以指示相同或功能上相似的元素。
具體實施例方式本發明涉及使用圖像內容來幫助在全景圖像數據中導航。在下文的本發明的 詳細描述中,對“一個實施例”、“實施例”、“示例實施例”等的引用指示所描述的 實施例可以包括特定特征、結構或特性,但是每一個實施例可以不必包括該特定特征、 結構或特性。而且,這樣的短語不必是指同一實施例。此外,當結合實施例描述特定 特征、結構或特性時,應認為,無論是否明確描述,與其它實施例結合來實現這樣的特 征、結構或特性是在本領域技術人員的知識范圍內。如在此所描述的,本發明的實施例使用戶能夠使用圖像內容來在全景圖像之間 導航。在一個實施例中,創建表示圖像內容的模型。用戶可以選擇包含在第一全景圖像 中的對象。該對象的位置由用戶的選擇到模型上的投影來確定。根據該位置來選擇和/ 或定向第二全景圖。以這種方式,本發明的實施例使用戶能夠使用圖像內容來在第一和 第二全景圖之間導航。圖1是圖示了根據本發明的實施例的使用圖像內容來幫助在全景圖像數據中導 航的圖100。圖100示出了建筑物114和樹116。建筑物114和樹116的位置由虛擬模 型112估計。虛擬模型112可以如下所述是使用拍攝有建筑物114和樹116的圖像來生 成的三維模型。街道102在建筑物114和樹116旁邊伸展。在街道102上的位置處示出了數個化身(avatar)(例如,汽車)104、106、108和 110。每一個化身104、106、108和110具有被地理編碼到化身在街道102上的位置的相 關聯的全景圖像。全景圖像可以包括360度圍繞化身的內容。然而,每次可以例如通過 視口向用戶顯示全景圖的僅一部分。在圖100中,向用戶顯示的全景圖的部分由每一個 化身的朝向示出。化身104、106、108和110分別具有朝向124、126、122、120。化身104具有面向點118的朝向124。化身104的視口將顯示被地理編碼到化身 104的位置的全景圖的一部分。在視口中顯示的全景圖的該部分將包含點118。本發明 的實施例使用虛擬模型112來從化身104的位置導航到化身106、108和110的位置。在下文中被稱為轉換車道實施例的本發明的第一實施例中,用戶可以在車道之 間導航。轉換車道實施例使用戶能夠從化身104的全景圖導航到化身106的全景圖。化 身106的全景圖被地理編碼到相似于化身104的全景圖但是位于街道102的不同車道的位 置。由于全景圖被地理編碼到不同的位置,所以如果化身104和化身106具有相同的朝 向,則其對應的視口將顯示不同的內容。改變在視口中顯示的內容對用戶來說會迷失方向。轉換車道實施例使化身106定向為面向虛擬模型112上的點118。以這種方式,在 化身106的視口中顯示的全景圖的部分包含與在化身104的視口中顯示的全景圖的部分相 同的內容。以這種方式,轉換車道實施例使在車道之間的轉換較少使人迷失方向。在下文中被稱為繞行(walk-around)實施例的本發明的第二實施例中,用戶可以 從不同的視角更容易地查看對象。用戶可以獲得他/她正繞對象步行的感覺。繞行實 施例使用戶能夠從化身104的全景圖導航到化身108的全景圖。化身108的位置可以例 如由用戶選擇。例如,用戶可以通過選擇在地圖上的位置或按下在鍵盤上的箭頭按鈕來 選擇化身108的位置。由于全景圖被地理編碼到不同的位置,所以如果化身104和化身 106具有相同的朝向,則其對應的視口將顯示不同的內容,并且在化身104的視口中顯示 的感興趣的對象可能不在化身106的視口中顯示。繞行實施例使化身108定向為面向虛 擬模型112上的點118。以這種方式,在化身106的視口中顯示的全景圖的部分包含與在 化身104的視口中顯示的全景圖的部分相同的內容。結果,用戶可以從不同的視角更容 易地查看對象。在一個實施例中,可以向用戶顯示在化身104和化身108之間的過渡。過渡可 以示出用于在化身104和化身108之間的化身位置的中間全景圖。也可以將中間全景圖 定向為面向點118。在下文中被稱為點擊進入(click-and-go)實施例的第三實施例中,用戶可以根據 第一全景圖的對象的位置導航到在新位置處的第二全景圖像。點擊進入實施例使用戶能 夠從化身104的全景圖導航到化身110的全景圖。化身110的位置是對虛擬模型112上 的點118來說最靠近的可用全景圖的位置。點118可以根據用戶在第一全景圖上的選擇 來確定。在實施例中,化身110可以具有面向點118的朝向120或不同的朝向128。朝向 128可以是街道102的朝向的朝向。通過根據虛擬模型112上的點118來選擇化身110,點擊進入實施例使用虛擬模 型112來在全景圖像之間導航。如下所述,在一個實施例中,虛擬模型112使用全景圖 像的內容來生成。在一個示例中,點擊進入實施例可以使用戶能夠更近查看對象。在該示例中, 用戶可以選擇第一全景圖中的對象,然后靠近該對象的第二全景圖被加載。此外,可以 在視口中顯示包含該對象的第二全景圖的部分。以這種方式,使用全景圖像的內容來在 全景圖像之間導航創建了更滿意并且更少迷失方向的用戶體驗。在一個實施例中,全景圖查看器可以顯示在化身104和化身108之間的過渡。過 渡可以顯示用于在化身104和化身108之間的化身位置的中間全景圖。也可以將中間全 景圖定向到面向點118。圖2A-D是更詳細地示范了幫助在全景圖像數據中導航的方式的圖。圖2A是示出了可以如何生成諸如圖1中的點118的在模型上的點的圖200。圖 200示出了建筑物262和樹264。虛擬模型202表示建筑物262和樹264。模型202可以 如下所詳細描述使用圖像內容來生成。圖200還示出了拍攝有建筑物262和樹264的圖 像266。圖像266可以是從街面拍攝的通過視口向用戶顯示的全景圖像的一部分。在圖 像266上示出了點268。在諸如轉換車道和繞行實施例的一些實施例中,點268可以是圖像266的中心。在諸如點擊進入實施例的其它實施例中,點268可以由用戶使用諸如鼠 標的輸入設備來選擇。射線212自照相機視點(viewpoint) 210延伸經過點268。在一個示例中,照相機 視點210可以是用來拍攝照片圖像266的照相機的焦點。在該示例中,在圖像266和照 相機視點210之間的距離為焦距270。點204為射線212和虛擬模型202之間的交點。可以如在圖2B_D中所示使用 點204來在街面全景圖像之間導航。圖2B是示出了轉換車道實施例的示例的圖220。使用具有在街道208上的位置 214的圖像來確定模型202上的點204和射線212。在圖2B中還識別了從靠近位置214 但是位于街道208的不同車道的位置206拍攝的全景圖像。將具有位置206的全景圖像 定向為面向點204。圖2C是示出了繞行實施例的示例的圖230。使用從位置214拍攝的圖像來確定 模型202上的點204和射線212。可以例如由用戶選擇具有位置232的全景圖像。將具 有位置232的全景圖像定向為面向點204。圖2D是示出了點擊進入實施例的示例的圖250。使用具有位置214的圖像來確 定模型202上的點204和射線212。選擇具有位置252、靠近位置204的全景圖像。在 一個示例中,點204可以如圖2D中所示從位置252與街道208正交。在另一個示例中, 位置252可以從點204與虛擬模型202正交。可以將具有位置252的全景圖像定向為面 向點204或可以將具有位置252的全景圖像定向為面向街道208的方向。圖3是示范了根據本發明的一個實施例的用于在全景圖像數據內導航的方法300 的流程圖。方法300以在步驟302定向第一全景圖像開始。在步驟304,沿第一全景圖 像的定向的方向延伸射線,如例如關于圖2A所述。還可以根據在全景圖像上用戶所選擇 的點來確定射線。在步驟306,確定在射線和虛擬模型之間的交點。可以使用圖像內容 來確定虛擬模型。在實施例中,可以以數種方式使用交點來在全景圖像之間導航。例如,在轉換 車道或繞行實施例中,可以在步驟310選擇第二全景圖像。在轉換車道實施例中,第二 全景圖像具有與第一全景圖像相似但位于不同車道的位置。在繞行實施例中,可以例如 由用戶來選擇第二全景圖像。在步驟316將第二全景圖像定向為面向交點。在步驟316 后,方法300結束。在點擊進入實施例中,在步驟308,第二全景圖像如關于圖2D所述可以是這樣 的其靠近交點(例如,在交點的所選擇或預定的距離內)。在步驟314,可以將第二全 景圖像定向為面向交點,或可以將第二全景圖像定向到其它方向。例如,可以將第二全 景圖像定向到街道的方向。在步驟314后,方法300結束。圖4是示范了根據本發明的一個實施例的用于從圖像數據創建虛擬模型的方法 400的流程圖。方法400以步驟402開始。在步驟402,識別圖像的特征。在一個實施例中, 從圖像提取特征以用于隨后的比較。將在下面關于圖5A-B更詳細地描述這一點。在一 個實施例中,所使用的圖像是街面全景圖像,所述街面全景圖像是沿著行進路線從彼此 接近的位置拍攝的。
8
在步驟404,匹配在鄰近圖像中的特征。在一個實施例中,匹配特征可以包括構 建溢出樹(spill tree)。將在下面關于圖5C更詳細地描述這一點。在步驟406,將特征的位置計算為例如在三維空間中的點。在一個實施例中, 通過使用如在步驟404中確定的匹配特征對,計算立體三角來確定點。將在下面關于圖 6-7更詳細地描述如何計算三維空間中的點。步驟406的結果為點云。在步驟408,基于在步驟406中計算的點云來估計立面平面。在一個實施例中, 步驟408可以包括使用自適應優化算法或最佳適應算法。在一個實施例中,步驟408包 括掃過(sweep)例如與如將在下面關于圖9描述的街道對準的平面。在步驟410,基于街道的位置來估計街道平面。這些街道平面與在步驟408中估 計的立面平面一起用于形成虛擬模型,所述虛擬模型對應于在多個二維圖像中所示的對 象。圖5A-C圖示了如何根據方法400識別并匹配圖像中的特征的示例。圖5A描述了圖像502和圖像504。圖像502和圖像504例如表示從不同視角的 同一建筑物和樹的兩張照片。在一個實施例中,圖像502和圖像504可以是街面全景圖 像的部分。可以從附近的位置但是以不同的視角來拍攝兩個圖像502和504。在一個實施例中,可以從附接有8個照相機的叢簇(a rosette of eight cameras)的 移動車輛拍攝圖像502和504。所述8個照相機從不同的視角同時拍攝8個圖像。可以 隨后將所述8個圖像拼接在一起以形成全景圖。圖像502可以是來自所述8個照相機叢 簇中的第一照相機的未拼接的圖像,所述第一照相機被定向為與車輛垂直。圖像504可 以是在稍后的時間點期間拍攝的來自第二照相機的未拼接的圖像,所述第二照相機與第 一照相機相鄰。 圖5B圖示了具有根據方法400的步驟404識別/提取的代表性特征的圖像502和 圖像504。圖像502包括代表性特征506、508和512。圖像504包括代表性特征510、 514和516。雖然僅示出了 6個代表性特征,但實際上可以有為每一個圖像識別和提取的 成千上萬的特征。在一個實施例中,提取特征的步驟可以包括興趣點檢測和特征描述。興趣點檢 測根據條件來檢測在圖像中的點,并且優選地在圖像變化的情況下可再現,所述圖像變 化諸如在亮度和視角上的變化。每一個興趣點的鄰域是特征。每一個特征由特征描述符 表示。特征描述符優選地是獨特的。在一個示例中,使用快速魯棒特征(SURF)算法來從鄰近圖像提取特征。例 如,在 2006 年 5 月 Proceedings of the Ninth European Conference on Computer Vision (第九 屆歐洲計算機視覺會議的論文集)中,Herbert Bay, Tinne Tuytelaars,Luc Van Gool的
"SURF Speeded Up Robust Features (SURF 快速魯棒特征)”中描述了 SURF 算法。 SURF算法包括興趣點檢測和特征描述方案。在SURF算法中,每一個特征描述符包括向 量。在一種實施方式中,向量可以是128維的。在圖像為從街面拍攝的全景圖的一個示 例中,SURF算法可以在每一個圖像中提取四到五千個特征,導致在大小上為一到二兆字 節的特征描述符文件。圖5C圖示了匹配的提取特征。圖5C描述了匹配520和匹配522。匹配520包 括特征512和特征514。匹配522包括特征506和特征516。如在圖5C中所表示的,不是在圖像502中的每個特征都在圖像504中具有匹配特征,反之亦然。例如,由于特征 508示出了在圖像504中被遮掩的樹的一部分,所以在圖像502中的特征508在圖像504 中沒有匹配特征。在另一個示例中,例如由于在特征識別上的不精確,所以在圖像504 中的特征510在圖像502中沒有匹配。特征識別應當盡可能精確。然而,由于在照明、 朝向和其它因素上的變化,某種程度的不精確是可能的。因為這個原因,需要補償不精 確的特征匹配方案。將在下面描述示例特征匹配方案。在一個實施例中,諸如特征512的每一個特征由特征描述符表示。每一個特征 描述符包括128維向量。可以通過找到在第一特征描述符的向量和第二特征描述符的向 量之間的歐幾里得距離來確定在第一特征和第二特征之間的相似度。例如可以如下確定第一圖像中的特征在第二圖像中的特征中的匹配。首先,從 在第二圖像中的特征中確定在第一圖像中的特征的最近鄰域(例如,在128維空間中)。 其次,從在第二圖像中的特征中確定在第一圖像中的特征的第二最近鄰域(例如,在128 維空間中)。第三,確定在第一圖像中的特征和在第二圖像中的最近鄰近特征之間的第 一距離,并且確定在第一圖像中的特征和在第二圖像中的第二最近鄰近特征之間的第二 距離。第四,通過以第一距離除以第二距離來計算特征相似度比值。如果所述特征相似 度比值低于特定閾值,則在第一圖像中的特征和在第二圖像中的其最近鄰域之間存在匹 配。如果特征相似度比值太低,則不能確定足夠的匹配。如果特征相似度比值太 高,則存在太多的誤匹配。在一個實施例中,特征相似度比值可以在0.5和0.95之間并 且包括0.5和0.95。在一個實施例中,可以通過構建在第二圖像中的特征的溢出樹來確定所述最近 鄰域和所述第二最近鄰域。溢出樹緊密逼近最近鄰域,并且有效地使用處理器資源。在 被比較的圖像為從街面拍攝的全景圖像的一個示例中,對于每一個圖像對,可以有成百 上千匹配的特征對。對于每一個匹配的特征對,可以例如使用立體三角來確定在三維空 間中的點。圖6和7圖示了使用三維立體三角基于匹配的特征來確定在三維空間中的點的示 例。在一個實施例中,這種技術例如用于實現方法400的步驟406。為了確定在三維空 間中的與匹配的特征對相對應的點,為所述匹配的特征對構建射線,并且基于射線的交 點來確定所述點。將在下面更詳細地描述這一點。圖6示出了說明如何形成射線的示例600。如圖6中所示,可以通過將射線從 圖像608的照相機視點602投影或延伸經過圖像608的特征604來形成射線606。在示 例600中,照相機視點602對應于用來拍攝圖像608的照相機的焦點。在圖像608和照 相機視點602之間的距離等于焦距610。在形成用于匹配特征中的每一個的射線后,可以確定在三維空間中的點。圖7 圖示了描繪如何確定點的示例700。在示例700中,示出了兩個照相機叢簇702和704。在一個實施例中,這兩個 照相機叢簇可以是相同的(例如同一照相機叢簇可以用于在不同的位置和在不同的時間 點拍攝圖像)。每一個照相機叢簇702和704包括具有匹配的特征的圖像。在示例700 中,照相機叢簇702包括與照相機叢簇704的特征708相匹配的特征706。如圖7中所示,通過將射線710從照相機叢簇702的照相機視點延伸經過特征706來形成第一射線 710。類似地,通過將射線712從照相機叢簇704的照相機視點延伸經過特征708來形成 第二射線712。射線710和射線712的交點為三維點714。在實施例中,例如,由于特 征識別和匹配上的不精確,射線710和712可能實際上并未在點714相交。如果射線710 和712實際上未相交,則可以確定這兩個射線最靠近的線段。在這些情況下,所使用的 三維點714可以是線段的中點。在實施例中,如上所述,對于每一個匹配的特征對重復由示例600和700圖示的
步驟,以確定三維點云。圖8A示出了包括建筑物806和樹808的三維空間的示例800。示例800還包括 街道810。在一個實施例中,可以從沿著街道810移動的車輛拍攝建筑物806和樹808的 照片圖像。可以從位置802拍攝第一照片圖像,而可以從位置804拍攝第二照片圖像。如在此所述,根據本發明的一個實施例,從第一和第二圖像提取特征。識別匹 配特征,并且對于每一個匹配特征對,例如使用立體三角來確定三維點。這產生三維點 云,諸如在圖8B中所圖示的那些。圖8B圖示了其中描述了三維點云852的示例850。圖9A-C圖示了如何基于在三維空間中的多個點來確定立面表面的示例。這個 示例僅是說明性的,并且可以例如用于實現方法400的步驟408。在其它實施例中,可以 使用諸如最小二乘方或自適應優化算法的最佳適應或回歸分析算法來確定所述表面。自 適應優化算法的示例包括但不限于爬山算法、隨機爬山算法、A星算法和遺傳算法。圖9A描述了街道908和三維點云910。立面平面902與街道908平行。在操 作中,立面平面902從街道908沿軸向外平移。在向外移動的每一個位置,求取在立面 平面902的特定范圍內的點的數量。在圖9A中,所述范圍由虛線912和914示出。如 圖9A中所示,零點位于虛線912和914之間。圖9B示出了從街道908沿軸向外平移的立面平面904。在圖9B中,立面平面 904比在圖9A中所示的立面平面902從街道908向外移動了更大的距離。結果,有三個 點在立面平面904的范圍內。在一個實施例中,如果未找到立面平面的位置(例如具有指定數量的接近點的 位置),則可以相對于街道來改變立面平面的角度。因此,圖9C示出了相對于街道908 在非平行的角度的立面平面906。如圖9C中所示,存在5個點靠近立面平面906。如在此所述,從立面平面形成根據本發明的虛擬模型。可以根據圖像內容來生 成立面平面。在一個實施例中,模型還可以包括一個或多個街道平面(例如,平行于街 道的平面)。在一個實施例中,可以基于街道的已知位置來計算街道平面(例如,可以知 道街道相對于用于拍攝圖像的照相機的位置)。虛擬模型可以是二維或三維的。圖10示出了根據本發明的一個實施例的用于使用三維模型來在圖像數據內導航 的系統1000。如圖10中所示,系統1000包括客戶端1002。客戶端1002例如跨網絡 1044與一個或多個服務器1024進行通信。客戶端1002可以是通用的計算機。替選地, 客戶端1002可以是諸如移動電話的專用計算設備。類似地,可以使用能夠向客戶端1002 提供數據的任何計算設備來實現服務器1024。服務器1024可以包括web服務器。Web服務器是軟件組件,其用超文本傳送 協議(HTTP)應答來響應HTTP請求。作為說明性示例,web服務器在沒有限制的情況下可以是 Apache HTTP 月艮務器、Apache Tomcat、 Microsoft Internet Information Server (微 軟因特網信息服務器)、JBoss應用服務器、WebLogic應用服務器或Sun Java System Web
服務器。所述web服務器可以提供內容,諸如超文本標記語言(HTML)、可擴展標記語 言(XML)、文檔、視頻、圖像、多媒體特征或其任何組合。這個示例嚴格地說是說明性 的,并且不限制本發明。服務器1024可以如下所述提供地圖瓦片(tile) 1014、程序1016、配置信息1018 和/或全景圖瓦片1020。網絡1044可以是可以承載數據通信的任何網絡或網絡組合,并且在此可以被稱 為計算機網絡。網絡1044可以包括但不限于局域網、中間區域網和/或諸如因特網的廣 域網。網絡1044可以支持協議和技術,包括但不限于萬維網協議和/或服務。可以取 決于特定應用或環境在系統1000的組件之間提供中間web服務器、網關或其它服務器。服務器1024耦接到全景圖數據庫1028和模型數據庫1030。全景圖數據庫1028 存儲圖像。在一個示例中,圖像可以是從街面拍攝的照片圖像。可以將從同一位置拍攝 的照片圖像拼接在一起,以形成全景圖。模型數據庫1030存儲與全景圖數據庫1028中 的圖像相對應的三維模型。將在下面進一步詳細論述可以如何生成三維模型的示例。注 釋數據庫1032存儲用戶生成的注釋。可以在關系數據庫管理系統上實現全景圖數據庫1028、模型數據庫1030和注釋 數據庫1032中的每一個。關系數據庫的示例包括Oracle、微軟SQL Server和MySQL。 這些示例是說明性的,并且并不意在限制本發明。服務器1024包括導航控制器1032。導航控制器1032使用模型數據庫1030中 的從圖像內容生成的模型來幫助在全景圖之間導航。導航控制器1032從導航數據1042 接收輸入。導航數據1042包含關于當前位置和朝向的數據以及關于期望的下一位置的數 據。例如,在點擊進入實施例中,導航數據1042可以包含第一全景圖像和第一全景圖像 中的用戶意欲前往的位置。導航數據1042可以是例如帶有被編碼為HTTP參數的數據的 HTTP請求。響應于導航數據1042,導航控制器1032基于在模型數據庫1030中的模型來確 定在全景圖數據庫1028中的新的全景圖。導航控制器1032還確定顯示第二全景圖的朝 向。導航控制器1032將新的全景圖和朝向輸出在配置信息1018和全景圖瓦片1020中。導航控制器1032可以包括轉換車道控制器1034、點擊進入控制器1036和繞行控 制器1038。轉換車道控制器1034、點擊進入控制器1036和繞行控制器1038中的每一個 根據本發明的實施例對導航數據1042作出響應。轉換車道控制器1034根據本發明的轉換車道實施例來操作。響應于導航數據 1042,轉換車道控制器1034從全景圖數據庫1028選擇第二全景圖像。第二全景圖像靠 近第一全景圖像的位置,但是在不同的車道。在一個示例中,第二全景圖像可以是在全 景圖數據庫1028中的存在于不同車道的最靠近的全景圖像。轉換車道控制器1034根據 導航數據1042中的第一全景圖的位置和朝向來確定模型數據庫1030中的模型中的位置。 在一個實施例中,為了確定位置,轉換車道控制器1034如關于圖2A所述從該位置沿朝向 的方向延伸射線。轉換車道控制器1034然后如關于圖2B所述確定第二全景圖的朝向。 最后,轉換車道控制器1034將第二全景圖返回在全景圖瓦片1020中,以及將第二全景圖的朝向返回在配置信息1018中。點擊進入控制器1036根據本發明的點擊進入實施例操作。響應于導航數據 1042,點擊進入控制器1036從全景圖數據庫1028選擇第二全景圖像。點擊進入控制器 1036基于來自導航數據1042的第一全景圖像中的位置來選擇第二全景圖像。在第一全 景圖像中的位置可以由諸如鼠標的用戶輸入來確定。點擊進入控制器1036如關于圖2A 所述使用在第一全景圖像中的位置來確定在模型數據庫1042中的模型中的位置。點擊進 入控制器1036然后基于模型中的位置來選擇第二全景圖像。第二全景圖像如關于圖2D 所述靠近模型中的位置。在一個示例中,第二全景圖像可以具有使得模型上的位置與街 道正交的位置。在另一個示例中,第二全景圖像可以具有與虛擬模型正交的位置。點擊 進入控制器1036然后確定第二全景圖的朝向。可以將第二全景圖定向為面向模型中的位 置,或者可以將第二全景圖定向到街道的方向。最后,點擊進入控制器1036將第二全景 圖返回在全景圖瓦片1020中,以及將其朝向返回在配置信息1018中。繞行控制器1038響應于導航數據1042從全景圖數據庫1028選擇第二全景圖 像。第二全景圖像可以例如根據導航數據1042中的由用戶輸入的位置來選擇。繞行控制 器1038根據導航數據1042中的第一全景圖的位置和朝向來確定模型數據庫1030中的模 型中的位置。為了確定位置,繞行控制器1038如關于圖2A所述從該位置沿朝向的方向 延伸射線。繞行控制器1038如上所述確定第二全景圖的朝向。最后,繞行控制器1038 將第二全景圖返回在全景圖瓦片1020中,以及將第二全景圖的朝向返回在配置信息1018 中。在一個實施例中,客戶端1002可以包含地圖服務1006和全景圖查看器1008。 地圖服務1006和全景圖查看器1008中的每一個可以是單獨的應用或可以在瀏覽器1004 中執行。在實施例中,瀏覽器1004可以是Mozilla Firefox或微軟的Internet Explorer。例 如可以將全景圖查看器1008作為在瀏覽器1004內的腳本、作為在瀏覽器1004內的插件 或作為在諸如Adobe(Macromedia)Flash插件的瀏覽器插件內執行的程序來執行。地圖服務1006將地圖的可視表示例如作為視口顯示到地圖瓦片的網格中。使用 標記和腳本元素的組合,例如使用HTML和Javascript,來實現地圖系統1006。當移動 視口時,地圖服務1006從服務器1024請求額外的地圖瓦片1014,假定所請求的地圖瓦片 還未被緩存在本地高速緩沖存儲器中。值得注意地,提供地圖瓦片1014的服務器可以是 與提供全景圖瓦片1020、配置信息1018或在此涉及的其它數據的服務器相同或不同的服 務器。在一個實施例中,地圖服務1006可以請求瀏覽器1004從服務器1024下載用于 全景圖查看器1008的程序1016,并且實例化運行程序1016所必需的任何插件。程序 1016可以是Flash文件或某種其它形式的可執行內容。全景圖查看器1008根據程序1016 來執行和操作。全景圖查看器1008從服務器1024請求配置信息1018。配置信息包括關于待加 載的全景圖的元信息,包括關于在全景圖內的到其它全景圖的鏈接的信息。在一個實施 例中,以諸如可擴展標記語言(XML)的形式來呈現配置信息。全景圖查看器1008例如 以全景圖像形式或以全景圖像瓦片形式檢索用于全景圖的可視資產(visual asset) 1020。在 另一個實施例中,可視資產包括以相關文件格式的配置信息。全景圖查看器1008在全景圖的客戶端顯示器和額外的用戶界面元素上呈現如從配置信息1018和可視資產1020生成 的可視表示。當用戶與輸入設備交互以操縱全景圖的可視表示時,全景圖查看器1008更 新可視表示,并且根據需要下載額外的配置信息和可視資產。可以以硬件、軟件、固件或其任何組合來實現瀏覽器1004、地圖服務1006和全 景圖查看器1008中的每一個。圖11示出了根據本發明的一個實施例的用于從圖像數據創建虛擬模型的系統 1100。系統1100包括全景圖數據庫1028和模型數據庫1030,其中每一個耦接到處理管 線服務器1124。處理管線服務器1124可以是任何計算設備。示例計算設備包括但不限 于計算機、工作站、分布式計算系統、嵌入式系統、獨立電子設備、聯網設備、移動設 備、機架式服務器、電視或其它類型的計算系統。處理管線服務器1124包括特征提取器1116、特征匹配器1118、點計算器1120 和表面估計器1122。可以以硬件、軟件、固件或其任何組合來實現特征提取器1116、特 征匹配器1118、點計算器1120和表面估計器1122中的每一個。特征提取器1116從全景圖數據庫1028選擇圖像1102。在一個實施例中,圖像 1102可以包括兩個圖像,所述兩個圖像為街面未拼接的全景圖像。可以從彼此接近的位 置但是從不同的視角來拍攝所述兩個圖像。在一個實施例中,從安裝有8個照相機的叢 簇的移動車輛拍攝圖像。所述8個照相機同時從不同的視角拍攝8個圖像。隨后可以將 所述8個圖像拼接在一起以形成全景圖。第一圖像可以是來自所述8個照相機叢簇中的 第一照相機的未拼接的圖像。第二圖像可以是在稍后的時間點期間拍攝的來自第二照相 機的未拼接的圖像,所述第二照相機與第一照相機相鄰。特征提取器1116從圖像1102提取特征。在一個實施例中,特征提取器1116可 以執行多于一個功能,諸如興趣點檢測和特征描述。興趣點檢測根據條件來檢測在圖像 中的點,并且優選地在圖像變化的情況下可再現,所述圖像變化諸如在亮度和視角上的 變化。每一個興趣點的鄰域因此被描述為特征。這些特征由特征描述符表示。特征描 述符優選地是獨特的。在一個示例中,可以使用快速魯棒特征(SURF)算法從圖像提取特征。SURF算 法包括興趣點檢測和特征描述方案。在SURF算法中,每一個特征描述符包括向量。在 一種實施方式中,所述向量可以是128維的。在圖像為從街面拍攝的全景圖的一個示例 中,SURF算法可以在每一個圖像中提取四到五千個特征,導致在大小上為一到二兆字節 的特征描述符文件1104。特征匹配器1118使用每一個特征描述符文件1104來匹配在兩個圖像中的特征。 在一個示例中,每一個特征由在特征描述符文件1104中的特征描述符表示。每一個特征 描述符包括128維向量。可以通過找到在第一特征的向量和第二特征的向量之間的歐幾 里得距離來確定在第一特征和第二特征之間的相似度。可以如下確定第一圖像中的特征在第二圖像中的特征中的匹配。首先,特征匹 配器1118確定從在第二圖像中的特征中確定的在第一圖像中的特征的最近鄰域(例如, 在118維空間中)。其次,特征匹配器1118確定從在第二圖像中的特征中確定的在第一 圖像中的特征的第二最近鄰域。第三,特征匹配器1118確定在第一圖像中的特征和在 第二圖像中的最近鄰近特征之間的第一距離,并且特征匹配器1118確定在第一圖像中的特征和在第二圖像中的第二最近鄰近特征之間的第二距離。第四,特征匹配器1118通過 以第一距離除以第二距離來計算特征相似度比值。如果所述特征相似度比值低于特定閾 值,則在第一圖像中的特征和在第二圖像中的其最近鄰域之間存在匹配。特征匹配器1118可以例如通過構造溢出樹來確定最近鄰域和第二最近鄰域。如果特征相似度比值太低,則特征匹配器1118可能不能確定足夠的匹配。如果 特征相似度比值太高,則特征匹配器1118可能確定太多的誤匹配。在一個實施例中,特 征相似度比值可以在0.5和0.95之間并且包括0.5和0.95。在圖像為從街面拍攝的全景圖 的示例中,可以有數百個匹配的特征。所述匹配的特征作為匹配的特征1106被發送到點 計算器1120。點計算器1120對于每一個匹配的特征1106對確定三維空間中的點。為了確定 三維空間中的點,對于每一個特征形成或確定射線,并且基于特征的射線的交點來確定 所述點。在一個實施例中,如果射線未相交,則基于連接兩條射線的最短線段的中點來 確定所述點。點計算器1120的輸出為三維點云1108 (例如一個點用于每一個匹配的特征 對)。表面估計器1122基于點云1108來確定立面平面。表面估計器1122可以通過使 用諸如最小二乘方或自適應優化算法的最佳適應或回歸分析算法來確定立面平面。自適 應優化算法的示例包括但不限于爬山算法、隨機爬山算法、A星算法和遺傳算法。替選 地,表面估計器1122可以通過下述方式來確定立面表面通過沿軸平移平面以確定平面 的最佳位置,如在上面關于圖9A-C所述。表面估計器1122還可以確定一個或多個街道平面。街道平面和立面平面一起形 成表面平面1110。表面估計器1122將表面平面1110存儲在模型數據庫1030中。應當理解,意在使用具體實施方式
部分而不是發明內容和摘要部分解釋權利要 求。發明內容和摘要部分可以闡明發明人考慮的本發明的一個或多個而非所有的示例 性實施例,因此發明內容和摘要部分并不意在以任何方式來限制本發明和所附的權利要 求。在上面借助于說明指定的功能及其關系的實現的功能構造塊來描述了本發明。 在此為了便于描述,任意地限定了這些功能構造塊的邊界。可以限定替選邊界,只要所 述指定的功能及其關系被適當地執行。特定實施例的前述描述如此充分地揭示了本發明的一般特性,使得其他人可以 在不背離本發明的一般思想的情況下,通過應用在本領域的技術內的知識而容易地修改 和/或調整本發明的一般特性以用于這樣的特定實施例的各種應用,而不用進行過度的 實驗。因此,基于在此提供的教導和指導,這樣的調整和修改意在在所公開的實施例的 等同物的含義和范圍內。應當明白的是,在此的措詞或術語用于描述而非限制的目的, 因此本說明書的術語或措詞應當由技術人員根據所述教導和指導來解釋。本發明的寬度和范圍不應當由上述示例性實施例的任何一個限制,而是應當僅 根據所附權利要求及其等同物來限定。
權利要求
1.一種計算機實現的用于在全景圖像數據中導航的方法,包括(1)確定射線和虛擬模型的交點,其中所述射線自圖像的照相機視口延伸,并且所述 虛擬模型包括多個立面平面;(2)檢索全景圖像;(3)將所述全景圖像定向為朝向所述交點;以及(4)顯示所定向的全景圖像。
2.如權利要求1所述的方法,其中(2)包括檢索具有帶有與街道的第一車道相對應的 位置的照相機視點的全景圖像,以及所述圖像的所述具有與所述街道的第二車道相對應 的位置。
3.如權利要求1所述的方法,其中(2)包括檢索具有帶有用戶所選擇的位置的照相機 視點的全景圖像。
4.如權利要求1所述的方法,其中(2)包括檢索在所述交點的所選擇的距離內的全景 圖像。
5.如權利要求1所述的方法,其中所述圖像包括從街面拍攝的照片圖像,以及所述全 景圖像包括從街面拍攝的照片圖像。
6.—種用于創建并顯示注釋的方法,包括(1)從多個二維圖像創建虛擬模型;(2)確定自第一圖像的照相機視口延伸的射線和所述虛擬模型的交點,其中所述虛擬 模型對應于第二圖像中的特征;(3)檢索全景圖像;(4)將所述全景圖像定向為面向所述交點;以及(5)顯示所定向的全景圖像。
7.如權利要求6所述的方法,其中(1)包括(a)識別第一圖像的第一多個特征和第二圖像的第二多個特征;(b)確定多個特征對,其中每一個特征對包括來自所述第一多個特征的第一特征和來 自所述第二多個特征的第二特征,所述第二特征與所述第一特征相匹配;(c)確定與所述多個特征對相對應的多個點;以及(d)基于所述多個點來確定立面平面;(e)確定與街道的位置相對應的街道平面;以及(f)創建與所述立面平面和所述街道平面相對應的虛擬模型。
8.如權利要求7所述的方法,其中(a)包括使用快速魯棒特征(SURF)算法。
9.如權利要求8所述的方法,其中(b)包括 ω確定用于所述第一多個特征的溢出樹;( )對所述溢出樹搜索在所述第二圖像中的每一個特征的近似最近鄰域和近似第二最 近鄰域;以及( )將所述近似最近鄰域和所述近似第二最近鄰域的特征相似度比值與閾值相比較。
10.如權利要求9所述的方法,其中(iii)包括將所述近似最近鄰域和所述近似第二最 近鄰域的特征相似度比值與在0.5和0.95之間并且包括0.5和0.95的閾值相比較。
11.如權利要求7所述的方法,其中(C)包括ω對于所述多個特征對中的每一個特征對,確定第一射線和第二射線,所述第一射 線從所述第一圖像的第一照相機視點延伸經過來自所述對的所述第一特征,并且所述第 二射線從所述第二圖像的第二照相機視點延伸經過來自所述對的所述第二特征;以及(ii)對于所述多個特征對中的每一個特征對,確定與所述第一射線和所述第二射線的 交點相對應的點。
12.如權利要求7所述的方法,其中(d)包括使用最佳適應或自適應優化算法。
13.一種用于創建并顯示與虛擬模型相對應的注釋的系統,其中所述虛擬模型創建自 多個二維圖像,包括包括導航控制器的服務器,所述導航控制器確定自圖像的照相機視口延伸的射線和 虛擬模型的交點、檢索全景圖像以及將所述全景圖像定向為面向所述交點,其中所述虛 擬模型包括多個立面平面。
14.如權利要求13所述的系統,其中所述導航控制器包括轉換車道控制器,所述轉換 車道控制器確定位于不同于第二車道的第一車道中的所述全景圖像的所述照相機視口的 位置,其中所述圖像的所述照相機視口的所述位置位于所述第二車道。
15.如權利要求13所述的系統,其中所述導航控制器包括點擊進入控制器,所述點擊 進入控制器確定與用戶選擇相對應的所述全景圖像的照相機視口的位置。
16.如權利要求15所述的系統,其中所述導航控制器包括繞行控制器,所述繞行控制 器確定與所述交點相對應的所述全景圖像的照相機視口的位置。
17.如權利要求13所述的系統,進一步包括處理管線服務器,所述處理管線服務器從多個二維圖像創建虛擬模型。
18.如權利要求17所述的系統,其中所述處理管線服務器包括特征提取器,所述特征提取器識別第一圖像的第一多個特征和第二圖像的第二多個 特征;特征匹配器,所述特征匹配器確定多個特征對,其中每一個特征對包括來自所述第 一多個特征的第一特征和來自所述第二多個特征的第二特征,并且其中所述第一特征與 所述第二特征相匹配;點計算器,所述點計算器確定與所述多個特征對相對應的多個點;以及表面估計器,所述表面估計器基于所述多個點來創建所述虛擬模型。
19.如權利要求18所述的系統,其中所述特征提取器使用快速魯棒特征(SURF)算法。
20.如權利要求18所述的系統,其中所述特征匹配器確定用于所述第一多個特征的溢 出樹,對所述溢出樹搜索在所述第二圖像中的每一個特征的近似最近鄰域和近似第二最 近鄰域,以及確定所述近似最近鄰域和所述近似第二最近鄰域的特征相似度比值是否低 于閾值。
21.如權利要求20所述的系統,其中所述閾值在0.5和0.95之間,并且包括0.5和 0.95。
22.如權利要求18所述的系統,其中對于所述多個特征對中的每一個特征對,所述點 計算器確定第一射線和第二射線,所述第一射線從所述第一圖像的第一照相機視點延伸經過來自所述對的所述第一特征,所述第二射線從來自所述對的所述第二特征的第二照 相機視點延伸,以及將來自所述多個點的點確定為在所述第一射線和所述第二射線之間 的交點。
23. 一種計算機實現的用于在全景圖像數據中導航的方法,包括 用于確定射線和虛擬模型的交點的裝置,其中所述射線從圖像的照相機視口延伸, 并且所述虛擬模型包括多個立面平面; 用于檢索全景圖像的裝置;用于將所述全景圖像定向為朝向所述交點的裝置;以及 用于顯示所定向的全景圖像的裝置。
全文摘要
本發明涉及使用圖像內容來幫助在全景圖像數據中導航。在一個實施例中,一種計算機實現的用于在全景圖像數據中導航的方法包括(1)確定射線和虛擬模型的交點,其中射線自圖像的照相機視口延伸,以及虛擬模型包括多個立面平面;(2)檢索全景圖像;(3)將全景圖像定向為朝向交點;以及(4)顯示定向的全景圖像。
文檔編號G06T15/06GK102016927SQ200980114885
公開日2011年4月13日 申請日期2009年2月26日 優先權日2008年2月27日
發明者丹尼爾·菲利普, 盧克·文森特, 朱佳俊 申請人:谷歌公司