使用圖像內容來幫助在全景圖像數據中導航的制作方法
【專利摘要】本發明涉及使用圖像內容來幫助在全景圖像數據中導航。在一個實施例中,一種計算機實現的用于在全景圖像數據中導航的方法包括:(1)確定射線和虛擬模型的交點,其中射線自圖像的照相機視口延伸,以及虛擬模型包括多個立面平面;(2)檢索全景圖像;(3)將全景圖像定向為朝向交點;以及(4)顯示定向的全景圖像。
【專利說明】使用圖像內容來幫助在全景圖像數據中導航
[0001]分案說明
[0002]本申請屬于申請日為2009年2月26日的中國發明專利申請N0.200980114885.5(國際申請號為PCT/US2009/001216)的分案申請。
【技術領域】
[0003]本發明涉及在全景圖像之間導航。
【背景技術】
[0004]存在包括被地理編碼到地圖上的位置的多個全景圖像的計算機系統。為了在鄰近全景圖像之間導航,用戶可以選擇地圖上的按鈕,然后新的鄰近全景圖像可以被加載并顯示。盡管該技術是有益的,但是從一個圖像跳到下一個圖像對用戶來說會分散注意力。因此,需要新的導航方法和系統。
【發明內容】
[0005]本發明涉及使用圖像內容來幫助在全景圖像數據中導航。在第一實施例中,一種用于在全景圖像數據中導航的計算機實現的方法包括:(I)確定射線(ray)和虛擬模型的交點,其中射線自圖像的照相機視口(viewport)延伸,以及虛擬模型包括多個立面平面(facade planes) ; (2)檢索全景圖像;(3)將全景圖像定向為朝向交點(orienting thepanoramic image to the intersection);以及(4)顯不定向的(oriented)全景圖像。
[0006]在第二實施例中,一種用于創建并顯示注釋的方法包括:(1)從多個二維圖像創建虛擬模型;(2)確定射線和虛擬模型的交點,其中射線自第一圖像的照相機視口延伸;
(3)檢索全景圖像;(4)將全景圖像定向為面向交點;以及(5)顯示全景圖像。
[0007]在第三實施例中,一種系統創建并顯示對應于虛擬模型的注釋,其中虛擬模型是從多個二維圖像創建的。該系統包括導航控制器,其確定自第一圖像的照相機視口延伸的射線和虛擬模型的交點、檢索第三全景圖像以及將第三全景圖像定向為面向交點。虛擬模型包括多個立面平面。
[0008]在下面參照附圖詳細描述本發明的進一步實施例、特征和優勢以及本發明的各種實施例的結構和操作。
【專利附圖】
【附圖說明】
[0009]合并于此并且形成說明書的一部分的附圖圖示了本發明,并且與描述一起進一步用于解釋本發明的原理,并且使相關領域的技術人員能夠制作并使用本發明。
[0010]圖1是圖示了根據本發明的一個實施例的使用圖像內容來幫助在全景圖像數據中導航的圖。
[0011]圖2A-D是更詳細地示范了幫助在全景圖像數據中導航的方式的圖。
[0012]圖3是圖示了根據本發明的一個實施例的用于在全景圖像數據內導航的方法的流程圖。
[0013]圖4是圖示了根據本發明的一個實施例的用于從圖像數據創建虛擬模型的方法的流程圖。
[0014]圖5A-C是圖示了根據圖4的方法找到匹配特征的圖。
[0015]圖6-7是圖示了根據圖4中的方法基于匹配特征對來確定點的圖。
[0016]圖8A-B是圖示了根據圖4的方法確定的多個點的圖。
[0017]圖9A-C是圖不了根據圖4的方法基于多個點來確定表面的圖。
[0018]圖10是示出了根據本發明的一個實施例的用于使用虛擬模型來在圖像數據內導航的系統的圖。
[0019]圖11是示出了根據本發明的一個實施例的用于從圖像數據創建虛擬模型的系統的圖。
[0020]元素首次出現的附圖典型地由對應的參考數字中最左邊的數字指示。在附圖中,相同的參考數字可以指示相同或功能上相似的元素。
【具體實施方式】
[0021]本發明涉及使用圖像內容來幫助在全景圖像數據中導航。在下文的本發明的詳細描述中,對“一個實施例”、“實施例”、“示例實施例”等的引用指示所描述的實施例可以包括特定特征、結構或特性,但是每一個實施例可以不必包括該特定特征、結構或特性。而且,這樣的短語不必是指同一實施例。此外,當結合實施例描述特定特征、結構或特性時,應認為,無論是否明確描述,與其它實施例結合來實現這樣的特征、結構或特性是在本領域技術人員的知識范圍內。
[0022]如在此所描述的,本發明的實施例使用戶能夠使用圖像內容來在全景圖像之間導航。在一個實施例中,創建表示圖像內容的模型。用戶可以選擇包含在第一全景圖像中的對象。該對象的位置由用戶的選擇到模型上的投影來確定。根據該位置來選擇和/或定向第二全景圖。以這種方式,本發明的實施例使用戶能夠使用圖像內容來在第一和第二全景圖之間導航。
[0023]圖1是圖示了根據本發明的實施例的使用圖像內容來幫助在全景圖像數據中導航的圖100。圖100示出了建筑物114和樹116。建筑物114和樹116的位置由虛擬模型112估計。虛擬模型112可以如下所述是使用拍攝有建筑物114和樹116的圖像來生成的三維模型。街道102在建筑物114和樹116旁邊伸展。
[0024]在街道102上的位置處示出了數個化身(avatar)(例如,汽車)104、106、108和110。每一個化身104、106、108和110具有被地理編碼到化身在街道102上的位置的相關聯的全景圖像。全景圖像可以包括360度圍繞化身的內容。然而,每次可以例如通過視口向用戶顯示全景圖的僅一部分。在圖100中,向用戶顯示的全景圖的部分由每一個化身的朝向示出。化身104、106、108和110分別具有朝向124、126、122、120。
[0025]化身104具有面向點118的朝向124。化身104的視口將顯示被地理編碼到化身104的位置的全景圖的一部分。在視口中顯示的全景圖的該部分將包含點118。本發明的實施例使用虛擬模型112來從化身104的位置導航到化身106、108和110的位置。
[0026]在下文中被稱為轉換車道實施例的本發明的第一實施例中,用戶可以在車道之間導航。轉換車道實施例使用戶能夠從化身104的全景圖導航到化身106的全景圖。化身106的全景圖被地理編碼到相似于化身104的全景圖但是位于街道102的不同車道的位置。由于全景圖被地理編碼到不同的位置,所以如果化身104和化身106具有相同的朝向,則其對應的視口將顯示不同的內容。改變在視口中顯示的內容對用戶來說會迷失方向。轉換車道實施例使化身106定向為面向虛擬模型112上的點118。以這種方式,在化身106的視口中顯示的全景圖的部分包含與在化身104的視口中顯示的全景圖的部分相同的內容。以這種方式,轉換車道實施例使在車道之間的轉換較少使人迷失方向。
[0027]在下文中被稱為繞行(walk-around)實施例的本發明的第二實施例中,用戶可以從不同的視角更容易地查看對象。用戶可以獲得他/她正繞對象步行的感覺。繞行實施例使用戶能夠從化身104的全景圖導航到化身108的全景圖。化身108的位置可以例如由用戶選擇。例如,用戶可以通過選擇在地圖上的位置或按下在鍵盤上的箭頭按鈕來選擇化身108的位置。由于全景圖被地理編碼到不同的位置,所以如果化身104和化身106具有相同的朝向,則其對應的視口將顯示不同的內容,并且在化身104的視口中顯示的感興趣的對象可能不在化身106的視口中顯示。繞行實施例使化身108定向為面向虛擬模型112上的點118。以這種方式,在化身106的視口中顯示的全景圖的部分包含與在化身104的視口中顯示的全景圖的部分相同的內容。結果,用戶可以從不同的視角更容易地查看對象。
[0028]在一個實施例中,可以向用戶顯示在化身104和化身108之間的過渡。過渡可以示出用于在化身104和化身108之間的化身位置的中間全景圖。也可以將中間全景圖定向為面向點118。
[0029]在下文中被稱為點擊進入(click-and-go)實施例的第三實施例中,用戶可以根據第一全景圖的對象的位置導航到在新位置處的第二全景圖像。點擊進入實施例使用戶能夠從化身104的全景圖導航到化身110的全景圖。化身110的位置是對虛擬模型112上的點118來說最靠近的可用全景圖的位置。點118可以根據用戶在第一全景圖上的選擇來確定。
[0030]在實施例中,化身110可以具有面向點118的朝向120或不同的朝向128。朝向128可以是街道102的朝向的朝向。
[0031]通過根據虛擬模型112上的點118來選擇化身110,點擊進入實施例使用虛擬模型112來在全景圖像之間導航。如下所述,在一個實施例中,虛擬模型112使用全景圖像的內容來生成。
[0032]在一個示例中,點擊進入實施例可以使用戶能夠更近查看對象。在該示例中,用戶可以選擇第一全景圖中的對象,然后靠近該對象的第二全景圖被加載。此外,可以在視口中顯示包含該對象的第二全景圖的部分。以這種方式,使用全景圖像的內容來在全景圖像之間導航創建了更滿意并且更少迷失方向的用戶體驗。
[0033]在一個實施例中,全景圖查看器可以顯示在化身104和化身108之間的過渡。過渡可以顯示用于在化身104和化身108之間的化身位置的中間全景圖。也可以將中間全景圖定向到面向點118。
[0034]圖2A-D是更詳細地示范了幫助在全景圖像數據中導航的方式的圖。
[0035]圖2A是示出了可以如何生成諸如圖1中的點118的在模型上的點的圖200。圖200示出了建筑物262和樹264。虛擬模型202表示建筑物262和樹264。模型202可以如下所詳細描述使用圖像內容來生成。圖200還示出了拍攝有建筑物262和樹264的圖像266。圖像266可以是從街面拍攝的通過視口向用戶顯示的全景圖像的一部分。在圖像266上示出了點268。在諸如轉換車道和繞行實施例的一些實施例中,點268可以是圖像266的中心。在諸如點擊進入實施例的其它實施例中,點268可以由用戶使用諸如鼠標的輸入設備來選擇。
[0036]射線212自照相機視點(viewpOint)210延伸經過點268。在一個示例中,照相機視點210可以是用來拍攝照片圖像266的照相機的焦點。在該示例中,在圖像266和照相機視點210之間的距離為焦距270。
[0037]點204為射線212和虛擬模型202之間的交點。可以如在圖2B_D中所示使用點204來在街面全景圖像之間導航。
[0038]圖2B是示出了轉換車道實施例的示例的圖220。使用具有在街道208上的位置214的圖像來確定模型202上的點204和射線212。在圖2B中還識別了從靠近位置214但是位于街道208的不同車道的位置206拍攝的全景圖像。將具有位置206的全景圖像定向為面向點204。
[0039]圖2C是示出了繞行實施例的示例的圖230。使用從位置214拍攝的圖像來確定模型202上的點204和射線212。可以例如由用戶選擇具有位置232的全景圖像。將具有位置232的全景圖像定向為面向點204。
[0040]圖2D是示出了點擊進入實施例的示例的圖250。使用具有位置214的圖像來確定模型202上的點204和射線212。選擇具有位置252、靠近位置204的全景圖像。在一個示例中,點204可以如圖2D中所示從位置252與街道208正交。在另一個示例中,位置252可以從點204與虛擬模型202正交。可以將具有位置252的全景圖像定向為面向點204或可以將具有位置252的全景圖像定向為面向街道208的方向。
[0041]圖3是示范了根據本發明的一個實施例的用于在全景圖像數據內導航的方法300的流程圖。方法300以在步驟302定向第一全景圖像開始。在步驟304,沿第一全景圖像的定向的方向延伸射線,如例如關于圖2A所述。還可以根據在全景圖像上用戶所選擇的點來確定射線。在步驟306,確定在射線和虛擬模型之間的交點。可以使用圖像內容來確定虛擬模型。
[0042]在實施例中,可以以數種方式使用交點來在全景圖像之間導航。例如,在轉換車道或繞行實施例中,可以在步驟310選擇第二全景圖像。在轉換車道實施例中,第二全景圖像具有與第一全景圖像相似但位于不同車道的位置。在繞行實施例中,可以例如由用戶來選擇第二全景圖像。在步驟316將第二全景圖像定向為面向交點。在步驟316后,方法300結束。
[0043]在點擊進入實施例中,在步驟308,第二全景圖像如關于圖2D所述可以是這樣的:其靠近交點(例如,在交點的所選擇或預定的距離內)。在步驟314,可以將第二全景圖像定向為面向交點,或可以將第二全景圖像定向到其它方向。例如,可以將第二全景圖像定向到街道的方向。在步驟314后,方法300結束。
[0044]圖4是示范了根據本發明的一個實施例的用于從圖像數據創建虛擬模型的方法400的流程圖。
[0045]方法400以步驟402開始。在步驟402,識別圖像的特征。在一個實施例中,從圖像提取特征以用于隨后的比較。將在下面關于圖5A-B更詳細地描述這一點。在一個實施例中,所使用的圖像是街面全景圖像,所述街面全景圖像是沿著行進路線從彼此接近的位置拍攝的。
[0046]在步驟404,匹配在鄰近圖像中的特征。在一個實施例中,匹配特征可以包括構建溢出樹(spill tree)ο將在下面關于圖5C更詳細地描述這一點。
[0047]在步驟406,將特征的位置計算為例如在三維空間中的點。在一個實施例中,通過使用如在步驟404中確定的匹配特征對,計算立體三角來確定點。將在下面關于圖6-7更詳細地描述如何計算三維空間中的點。步驟406的結果為點云。
[0048]在步驟408,基于在步驟406中計算的點云來估計立面平面。在一個實施例中,步驟408可以包括使用自適應優化算法或最佳適應算法。在一個實施例中,步驟408包括掃過(sweep)例如與如將在下面關于圖9描述的街道對準的平面。
[0049]在步驟410,基于街道的位置來估計街道平面。這些街道平面與在步驟408中估計的立面平面一起用于形成虛擬模型,所述虛擬模型對應于在多個二維圖像中所示的對象。
[0050]圖5A-C圖示了如何根據方法400識別并匹配圖像中的特征的示例。
[0051]圖5A描述了圖像502和圖像504。圖像502和圖像504例如表示從不同視角的同一建筑物和樹的兩張照片。在一個實施例中,圖像502和圖像504可以是街面全景圖像的部分。可以從附近的位置但是以不同的視角來拍攝兩個圖像502和504。
[0052]在一個實施例中,可以從附接有8個照相機的叢簇(a rosette of eightcameras)的移動車輛拍攝圖像502和504。所述8個照相機從不同的視角同時拍攝8個圖像。可以隨后將所述8個圖像拼接在一起以形成全景圖。圖像502可以是來自所述8個照相機叢簇中的第一照相機的未拼接的圖像,所述第一照相機被定向為與車輛垂直。圖像504可以是在稍后的時間點期間拍攝的來自第二照相機的未拼接的圖像,所述第二照相機與第一照相機相鄰。
[0053]圖5B圖示了具有根據方法400的步驟404識別/提取的代表性特征的圖像502和圖像504。圖像502包括代表性特征506、508和512。圖像504包括代表性特征510、514和516。雖然僅示出了 6個代表性特征,但實際上可以有為每一個圖像識別和提取的成千上萬的特征。
[0054]在一個實施例中,提取特征的步驟可以包括興趣點檢測和特征描述。興趣點檢測根據條件來檢測在圖像中的點,并且優選地在圖像變化的情況下可再現,所述圖像變化諸如在亮度和視角上的變化。每一個興趣點的鄰域是特征。每一個特征由特征描述符表示。特征描述符優選地是獨特的。
[0055]在一個示例中,使用快速魯棒特征(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算法可以在每一個圖像中提取四到五千個特征,導致在大小上為一到二兆字節的特征描述符文件。
[0056]圖5C圖示了匹配的提取特征。圖5C描述了匹配520和匹配522。匹配520包括特征512和特征514。匹配522包括特征506和特征516。如在圖5C中所表示的,不是在圖像502中的每個特征都在圖像504中具有匹配特征,反之亦然。例如,由于特征508示出了在圖像504中被遮掩的樹的一部分,所以在圖像502中的特征508在圖像504中沒有匹配特征。在另一個示例中,例如由于在特征識別上的不精確,所以在圖像504中的特征510在圖像502中沒有匹配。特征識別應當盡可能精確。然而,由于在照明、朝向和其它因素上的變化,某種程度的不精確是可能的。因為這個原因,需要補償不精確的特征匹配方案。將在下面描述示例特征匹配方案。
[0057]在一個實施例中,諸如特征512的每一個特征由特征描述符表示。每一個特征描述符包括128維向量。可以通過找到在第一特征描述符的向量和第二特征描述符的向量之間的歐幾里得距離來確定在第一特征和第二特征之間的相似度。
[0058]例如可以如下確定第一圖像中的特征在第二圖像中的特征中的匹配。首先,從在第二圖像中的特征中確定在第一圖像中的特征的最近鄰域(例如,在128維空間中)。其次,從在第二圖像中的特征中確定在第一圖像中的特征的第二最近鄰域(例如,在128維空間中)。第三,確定在第一圖像中的特征和在第二圖像中的最近鄰近特征之間的第一距離,并且確定在第一圖像中的特征和在第二圖像中的第二最近鄰近特征之間的第二距離。第四,通過以第一距離除以第二距離來計算特征相似度比值。如果所述特征相似度比值低于特定閾值,則在第一圖像中的特征和在第二圖像中的其最近鄰域之間存在匹配。
[0059]如果特征相似度比值太低,則不能確定足夠的匹配。如果特征相似度比值太高,則存在太多的誤匹配。在一個實施例中,特征相似度比值可以在0.5和0.95之間并且包括
0.5 和 0.95。
[0060]在一個實施例中,可以通過構建在第二圖像中的特征的溢出樹來確定所述最近鄰域和所述第二最近鄰域。溢出樹緊密逼近最近鄰域,并且有效地使用處理器資源。在被比較的圖像為從街面拍攝的全景圖像的一個示例中,對于每一個圖像對,可以有成百上千匹配的特征對。對于每一個匹配的特征對,可以例如使用立體三角來確定在三維空間中的點。
[0061]圖6和7圖示了使用三維立體三角基于匹配的特征來確定在三維空間中的點的示例。在一個實施例中,這種技術例如用于實現方法400的步驟406。為了確定在三維空間中的與匹配的特征對相對應的點,為所述匹配的特征對構建射線,并且基于射線的交點來確定所述點。將在下面更詳細地描述這一點。
[0062]圖6示出了說明如何形成射線的示例600。如圖6中所示,可以通過將射線從圖像608的照相機視點602投影或延伸經過圖像608的特征604來形成射線606。在示例600中,照相機視點602對應于用來拍攝圖像608的照相機的焦點。在圖像608和照相機視點602之間的距離等于焦距610。
[0063]在形成用于匹配特征中的每一個的射線后,可以確定在三維空間中的點。圖7圖示了描繪如何確定點的示例700。
[0064]在示例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可以是線段的中點。
[0065]在實施例中,如上所述,對于每一個匹配的特征對重復由示例600和700圖示的步驟,以確定三維點云。
[0066]圖8A示出了包括建筑物806和樹808的三維空間的示例800。示例800還包括街道810。在一個實施例中,可以從沿著街道810移動的車輛拍攝建筑物806和樹808的照片圖像。可以從位置802拍攝第一照片圖像,而可以從位置804拍攝第二照片圖像。
[0067]如在此所述,根據本發明的一個實施例,從第一和第二圖像提取特征。識別匹配特征,并且對于每一個匹配特征對,例如使用立體三角來確定三維點。這產生三維點云,諸如在圖8B中所圖示的那些。圖8B圖示了其中描述了三維點云852的示例850。
[0068]圖9A-C圖示了如何基于在三維空間中的多個點來確定立面表面的示例。這個示例僅是說明性的,并且可以例如用于實現方法400的步驟408。在其它實施例中,可以使用諸如最小二乘方或自適應優化算法的最佳適應或回歸分析算法來確定所述表面。自適應優化算法的示例包括但不限于爬山算法、隨機爬山算法、A星算法和遺傳算法。
[0069]圖9A描述了街道908和三維點云910。立面平面902與街道908平行。在操作中,立面平面902從街道908沿軸向外平移。在向外移動的每一個位置,求取在立面平面902的特定范圍內的點的數量。在圖9A中,所述范圍由虛線912和914示出。如圖9A中所示,零點位于虛線912和914之間。
[0070]圖9B示出了從街道908沿軸向外平移的立面平面904。在圖9B中,立面平面904比在圖9A中所示的立面平面902從街道908向外移動了更大的距離。結果,有三個點在立面平面904的范圍內。
[0071]在一個實施例中,如果未找到立面平面的位置(例如具有指定數量的接近點的位置),則可以相對于街道來改變立面平面的角度。因此,圖9C示出了相對于街道908在非平行的角度的立面平面906。如圖9C中所示,存在5個點靠近立面平面906。
[0072]如在此所述,從立面平面形成根據本發明的虛擬模型。可以根據圖像內容來生成立面平面。在一個實施例中,模型還可以包括一個或多個街道平面(例如,平行于街道的平面)。在一個實施例中,可以基于街道的已知位置來計算街道平面(例如,可以知道街道相對于用于拍攝圖像的照相機的位置)。虛擬模型可以是二維或三維的。
[0073]圖10示出了根據本發明的一個實施例的用于使用三維模型來在圖像數據內導航的系統1000。如圖10中所示,系統1000包括客戶端1002。客戶端1002例如跨網絡1044與一個或多個服務器1024進行通信。客戶端1002可以是通用的計算機。替選地,客戶端1002可以是諸如移動電話的專用計算設備。類似地,可以使用能夠向客戶端1002提供數據的任何計算設備來實現服務器1024。
[0074]服務器1024可以包括web服務器。Web服務器是軟件組件,其用超文本傳送協議(HTTP)應答來響應HTTP請求。作為說明性示例,web服務器在沒有限制的情況下可以是Apache HTTP 服務器、Apache Tomcat > Micro soft Internet Information Server (微軟因特網信息服務器)、JBoss應用服務器、WebLogic應用服務器或Sun Java System Web服務器。所述web服務器可以提供內容,諸如超文本標記語言(HTML)、可擴展標記語言(XML)、文檔、視頻、圖像、多媒體特征或其任何組合。這個示例嚴格地說是說明性的,并且不限制本發明。
[0075]服務器1024可以如下所述提供地圖瓦片(tile) 1014、程序1016、配置信息1018和/或全景圖瓦片1020。
[0076]網絡1044可以是可以承載數據通信的任何網絡或網絡組合,并且在此可以被稱為計算機網絡。網絡1044可以包括但不限于局域網、中間區域網和/或諸如因特網的廣域網。網絡1044可以支持協議和技術,包括但不限于萬維網協議和/或服務。可以取決于特定應用或環境在系統1000的組件之間提供中間web服務器、網關或其它服務器。
[0077]服務器1024耦接到全景圖數據庫1028和模型數據庫1030。全景圖數據庫1028存儲圖像。在一個示例中,圖像可以是從街面拍攝的照片圖像。可以將從同一位置拍攝的照片圖像拼接在一起,以形成全景圖。模型數據庫1030存儲與全景圖數據庫1028中的圖像相對應的三維模型。將在下面進一步詳細論述可以如何生成三維模型的示例。注釋數據庫1032存儲用戶生成的注釋。
[0078]可以在關系數據庫管理系統上實現全景圖數據庫1028、模型數據庫1030和注釋數據庫1032中的每一個。關系數據庫的示例包括Oracle、微軟SQL Server和MySQL。這些示例是說明性的,并且并不意在限制本發明。
[0079]服務器1024包括導航控制器1032。導航控制器1032使用模型數據庫1030中的從圖像內容生成的模型來幫助在全景圖之間導航。導航控制器1032從導航數據1042接收輸入。導航數據1042包含關于當前位置和朝向的數據以及關于期望的下一位置的數據。例如,在點擊進入實施例中,導航數據1042可以包含第一全景圖像和第一全景圖像中的用戶意欲前往的位置。導航數據1042可以是例如帶有被編碼為HTTP參數的數據的HTTP請求。
[0080]響應于導航數據1042,導航控制器1032基于在模型數據庫1030中的模型來確定在全景圖數據庫1028中的新的全景圖。導航控制器1032還確定顯示第二全景圖的朝向。導航控制器1032將新的全景圖和朝向輸出在配置信息1018和全景圖瓦片1020中。
[0081]導航控制器1032可以包括轉換車道控制器1034、點擊進入控制器1036和繞行控制器1038。轉換車道控制器1034、點擊進入控制器1036和繞行控制器1038中的每一個根據本發明的實施例對導航數據1042作出響應。
[0082]轉換車道控制器1034根據本發明的轉換車道實施例來操作。響應于導航數據1042,轉換車道控制器1034從全景圖數據庫1028選擇第二全景圖像。第二全景圖像靠近第一全景圖像的位置,但是在不同的車道。在一個示例中,第二全景圖像可以是在全景圖數據庫1028中的存在于不同車道的最靠近的全景圖像。轉換車道控制器1034根據導航數據1042中的第一全景圖的位置和朝向來確定模型數據庫1030中的模型中的位置。在一個實施例中,為了確定位置,轉換車道控制器1034如關于圖2A所述從該位置沿朝向的方向延伸射線。轉換車道控制器1034然后如關于圖2B所述確定第二全景圖的朝向。最后,轉換車道控制器1034將第二全景圖返回在全景圖瓦片1020中,以及將第二全景圖的朝向返回在配置信息1018中。
[0083]點擊進入控制器1036根據本發明的點擊進入實施例操作。響應于導航數據1042,點擊進入控制器1036從全景圖數據庫1028選擇第二全景圖像。點擊進入控制器1036基于來自導航數據1042的第一全景圖像中的位置來選擇第二全景圖像。在第一全景圖像中的位置可以由諸如鼠標的用戶輸入來確定。點擊進入控制器1036如關于圖2A所述使用在第一全景圖像中的位置來確定在模型數據庫1042中的模型中的位置。點擊進入控制器1036然后基于模型中的位置來選擇第二全景圖像。第二全景圖像如關于圖2D所述靠近模型中的位置。在一個示例中,第二全景圖像可以具有使得模型上的位置與街道正交的位置。在另一個示例中,第二全景圖像可以具有與虛擬模型正交的位置。點擊進入控制器1036然后確定第二全景圖的朝向。可以將第二全景圖定向為面向模型中的位置,或者可以將第二全景圖定向到街道的方向。最后,點擊進入控制器1036將第二全景圖返回在全景圖瓦片1020中,以及將其朝向返回在配置信息1018中。
[0084]繞行控制器1038響應于導航數據1042從全景圖數據庫1028選擇第二全景圖像。第二全景圖像可以例如根據導航數據1042中的由用戶輸入的位置來選擇。繞行控制器1038根據導航數據1042中的第一全景圖的位置和朝向來確定模型數據庫1030中的模型中的位置。為了確定位置,繞行控制器1038如關于圖2A所述從該位置沿朝向的方向延伸射線。繞行控制器1038如上所述確定第二全景圖的朝向。最后,繞行控制器1038將第二全景圖返回在全景圖瓦片1020中,以及將第二全景圖的朝向返回在配置信息1018中。
[0085]在一個實施例中,客戶端1002可以包含地圖服務1006和全景圖查看器1008。地圖服務1006和全景圖查看器1008中的每一個可以是單獨的應用或可以在瀏覽器1004中執行。在實施例中,瀏覽器1004可以是Mozilla Firefox或微軟的Internet Explorer。例如可以將全景圖查看器1008作為在瀏覽器1004內的腳本、作為在瀏覽器1004內的插件或作為在諸如Adobe (Macromedia) Flash插件的瀏覽器插件內執行的程序來執行。
[0086]地圖服務1006將地圖的可視表示例如作為視口顯示到地圖瓦片的網格中。使用標記和腳本元素的組合,例如使用HTML和Javascript,來實現地圖系統1006。當移動視口時,地圖服務1006從服務器1024請求額外的地圖瓦片1014,假定所請求的地圖瓦片還未被緩存在本地高速緩沖存儲器中。值得注意地,提供地圖瓦片1014的服務器可以是與提供全景圖瓦片1020、配置信息1018或在此涉及的其它數據的服務器相同或不同的服務器。
[0087]在一個實施例中,地圖服務1006可以請求瀏覽器1004從服務器1024下載用于全景圖查看器1008的程序1016,并且實例化運行程序1016所必需的任何插件。程序1016可以是Flash文件或某種其它形式的可執行內容。全景圖查看器1008根據程序1016來執行和操作。
[0088]全景圖查看器1008從服務器1024請求配置信息1018。配置信息包括關于待加載的全景圖的元信息,包括關于在全景圖內的到其它全景圖的鏈接的信息。在一個實施例中,以諸如可擴展標記語言(XML)的形式來呈現配置信息。全景圖查看器1008例如以全景圖像形式或以全景圖像瓦片形式檢索用于全景圖的可視資產(visual asset) 1020。在另一個實施例中,可視資產包括以相關文件格式的配置信息。全景圖查看器1008在全景圖的客戶端顯示器和額外的用戶界面元素上呈現如從配置信息1018和可視資產1020生成的可視表示。當用戶與輸入設備交互以操縱全景圖的可視表示時,全景圖查看器1008更新可視表示,并且根據需要下載額外的配置信息和可視資產。
[0089]可以以硬件、軟件、固件或其任何組合來實現瀏覽器1004、地圖服務1006和全景圖查看器1008中的每一個。[0090]圖11示出了根據本發明的一個實施例的用于從圖像數據創建虛擬模型的系統1100。系統1100包括全景圖數據庫1028和模型數據庫1030,其中每一個耦接到處理管線服務器1124。處理管線服務器1124可以是任何計算設備。示例計算設備包括但不限于計算機、工作站、分布式計算系統、嵌入式系統、獨立電子設備、聯網設備、移動設備、機架式服務器、電視或其它類型的計算系統。
[0091]處理管線服務器1124包括特征提取器1116、特征匹配器1118、點計算器1120和表面估計器1122。可以以硬件、軟件、固件或其任何組合來實現特征提取器1116、特征匹配器1118、點計算器1120和表面估計器1122中的每一個。
[0092]特征提取器1116從全景圖數據庫1028選擇圖像1102。在一個實施例中,圖像1102可以包括兩個圖像,所述兩個圖像為街面未拼接的全景圖像。可以從彼此接近的位置但是從不同的視角來拍攝所述兩個圖像。在一個實施例中,從安裝有8個照相機的叢簇的移動車輛拍攝圖像。所述8個照相機同時從不同的視角拍攝8個圖像。隨后可以將所述8個圖像拼接在一起以形成全景圖。第一圖像可以是來自所述8個照相機叢簇中的第一照相機的未拼接的圖像。第二圖像可以是在稍后的時間點期間拍攝的來自第二照相機的未拼接的圖像,所述第二照相機與第一照相機相鄰。
[0093]特征提取器1116從圖像1102提取特征。在一個實施例中,特征提取器1116可以執行多于一個功能,諸如興趣點檢測和特征描述。興趣點檢測根據條件來檢測在圖像中的點,并且優選地在圖像變化的情況下可再現,所述圖像變化諸如在亮度和視角上的變化。每一個興趣點的鄰域因此被描述為特征。這些特征由特征描述符表示。特征描述符優選地是獨特的。
[0094]在一個示例中,可以使用快速魯棒特征(SURF)算法從圖像提取特征。SURF算法包括興趣點檢測和特征描述方案。在SURF算法中,每一個特征描述符包括向量。在一種實施方式中,所述向量可以是128維的。在圖像為從街面拍攝的全景圖的一個示例中,SURF算法可以在每一個圖像中提取四到五千個特征,導致在大小上為一到二兆字節的特征描述符文件1104。
[0095]特征匹配器1118使用每一個特征描述符文件1104來匹配在兩個圖像中的特征。在一個示例中,每一個特征由在特征描述符文件1104中的特征描述符表示。每一個特征描述符包括128維向量。可以通過找到在第一特征的向量和第二特征的向量之間的歐幾里得距離來確定在第一特征和第二特征之間的相似度。
[0096]可以如下確定第一圖像中的特征在第二圖像中的特征中的匹配。首先,特征匹配器1118確定從在第二圖像中的特征中確定的在第一圖像中的特征的最近鄰域(例如,在118維空間中)。其次,特征匹配器1118確定從在第二圖像中的特征中確定的在第一圖像中的特征的第二最近鄰域。第三,特征匹配器1118確定在第一圖像中的特征和在第二圖像中的最近鄰近特征之間的第一距離,并且特征匹配器1118確定在第一圖像中的特征和在第二圖像中的第二最近鄰近特征之間的第二距離。第四,特征匹配器1118通過以第一距離除以第二距離來計算特征相似度比值。如果所述特征相似度比值低于特定閾值,則在第一圖像中的特征和在第二圖像中的其最近鄰域之間存在匹配。
[0097]特征匹配器1118可以例如通過構造溢出樹來確定最近鄰域和第二最近鄰域。
[0098]如果特征相似度比值太低,則特征匹配器1118可能不能確定足夠的匹配。如果特征相似度比值太高,則特征匹配器1118可能確定太多的誤匹配。在一個實施例中,特征相似度比值可以在0.5和0.95之間并且包括0.5和0.95。在圖像為從街面拍攝的全景圖的示例中,可以有數百個匹配的特征。所述匹配的特征作為匹配的特征1106被發送到點計算器 1120。
[0099]點計算器1120對于每一個匹配的特征1106對確定三維空間中的點。為了確定三維空間中的點,對于每一個特征形成或確定射線,并且基于特征的射線的交點來確定所述點。在一個實施例中,如果射線未相交,則基于連接兩條射線的最短線段的中點來確定所述點。點計算器1120的輸出為三維點云1108 (例如一個點用于每一個匹配的特征對)。
[0100]表面估計器1122基于點云1108來確定立面平面。表面估計器1122可以通過使用諸如最小二乘方或自適應優化算法的最佳適應或回歸分析算法來確定立面平面。自適應優化算法的示例包括但不限于爬山算法、隨機爬山算法、A星算法和遺傳算法。替選地,表面估計器1122可以通過下述方式來確定立面表面:通過沿軸平移平面以確定平面的最佳位置,如在上面關于圖9A-C所述。
[0101]表面估計器1122還可以確定一個或多個街道平面。街道平面和立面平面一起形成表面平面1110。表面估計器1122將表面平面1110存儲在模型數據庫1030中。
[0102]應當理解,意在使用【具體實施方式】部分而不是
【發明內容】
和摘要部分解釋權利要求。
【發明內容】
和摘要部分可以闡明發明人考慮的本發明的一個或多個而非所有的示例性實施例,因此
【發明內容】
和摘要部分并不意在以任何方式來限制本發明和所附的權利要求。
[0103]在上面借助于說明指定的功能及其關系的實現的功能構造塊來描述了本發明。在此為了便于描述,任意地限定了這些功能構造塊的邊界。可以限定替選邊界,只要所述指定的功能及其關系被適當地執行。
[0104]特定實施例的前述描述如此充分地揭示了本發明的一般特性,使得其他人可以在不背離本發明的一般思想的情況下,通過應用在本領域的技術內的知識而容易地修改和/或調整本發明的一般特性以用于這樣的特定實施例的各種應用,而不用進行過度的實驗。因此,基于在此提供的教導和指導,這樣的調整和修改意在在所公開的實施例的等同物的含義和范圍內。應當明白的是,在此的措詞或術語用于描述而非限制的目的,因此本說明書的術語或措詞應當由技術人員根據所述教導和指導來解釋。
[0105]本發明的寬度和范圍不應當由上述示例性實施例的任何一個限制,而是應當僅根據所附權利要求及其等同物來限定。
【權利要求】
1.一種用于在全景圖像數據中導航的方法,包括: 接收指定在全景圖像上的位置的用戶輸入; 確定射線和三維模型的交點,其中所述射線自所述全景圖像的照相機視口延伸至與所述三維模型中與所述用戶輸入相關聯的所述位置; 識別所述全景圖像中的多個特征; 計算所識別的多個特征中的每一個特征的位置; 基于所識別的多個特征中的每一個特征的位置,確定所述三維模型的立面平面;以及 基于多個街道的位置,確定街道平面, 其中所述立面平面和所述街道平面被用來創建所述三維模型。
2.根據權利要求1所述的方法,其中確定所述交點包括:檢索具有照相機視點的全景圖像,其中所述照相機視點的位置與街道的第一車道相對應。
3.根據權利要求1所述的方法,其中確定所述交點包括:檢索具有照相機視點的全景圖像,其中所述照相機視點的位置由用戶選擇。
4.根據權利要求1所述的方法,其中確定所述交點包括:檢索處于距所述交點選定距離內的全景圖像。
5.根據權利要求1所述的方法,其中所述全景圖像包括從街道水平拍攝的照相圖像。
6.一種用于創建和顯示對應于虛擬模型的注釋的系統,包括: 計算設備; 服務器,所述服務器被實現在所述計算設備上并且包括導航控制器,所述導航控制器被配置為: 接收指定在全景圖像上的位置的用戶輸入; 確定射線和三維模型的交點,其中所述射線自所述全景圖像的照相機視口延伸至與所述三維模型中與所述用戶輸入相關聯的所述位置;以及表面估計器,所述表面估計器被配置為: 識別所述全景圖像中的多個特征; 計算所識別的多個特征中的每一個特征的位置; 基于所識別的多個特征中的每一個特征的位置,確定所述三維模型的立面平面;以及 基于多個街道的位置,確定街道平面, 其中所述立面平面和所述街道平面被用來創建所述三維模型。
7.根據權利要求6所述的系統,其中所述導航控制器包括轉換車道控制器,所述轉換車道控制器確定位于不同于第二車道的第一車道中的所述全景圖像的所述照相機視口的位置。
8.根據權利要求6所述的系統,其中所述導航控制器包括點擊進入控制器,所述點擊進入控制器確定與用戶選擇相對應的所述全景圖像的照相機視口的位置。
9.根據權利要求6所述的系統,其中所述導航控制器包括繞行控制器,所述繞行控制器確定與所述交點相對應的所述全景圖像的照相機視口的位置。
10.根據權利要求6所述的系統,進一步包括: 處理管線服務器,所述處理管線服務器從多個二維圖像創建所述三維模型。
11.根據權利要求10所述的系統,其中所述處理管線服務器包括:特征提取器,所述特征提取器識別第一圖像的第一多個特征和第二圖像的第二多個特征; 特征匹配器,所述特征匹配器確定多個特征對,其中每一個特征對包括來自所述第一多個特征的第一特征和來自所述第二多個特征的第二特征,并且其中所述第一特征與所述第二特征相匹配; 點計算器,所述點計算器確定與所述多個特征對相對應的多個點;以及 表面估計器,所述表面估計器基于所述多個點來創建所述三維模型。
12.根據權利要求11所述的系統,其中所述特征提取器使用快速魯棒特征(SURF)算法。
13.根據權利要求11所述的系統,其中所述特征匹配器確定用于所述第一多個特征的溢出樹,對所述溢出樹搜索在所述第二圖像中的每一個特征的近似最近鄰域和近似第二最近鄰域,以及確定所述近似最近鄰域和所述近似第二最近鄰域的特征相似度比值是否低于閾值。
14.根據權利要求13所述的系統,其中所述閾值在0.5和0.95之間,并且包括0.5和0.95。
15.根據權利要求11所述的系統,其中對于所述多個特征對中的每一個特征對,所述點計算器確定第一射線和第二射線,所述第一射線從所述第一圖像的第一照相機視點延伸經過來自所述特征對的所述第一特征,所述第二射線從來自所述特征對的所述第二特征的第二照相機視點延伸,以及將來自所述多個點的點確定為在所述第一射線和所述第二射線之間的交點。
16.一種用于在全景`圖像數據中導航的方法,包括: 根據多個二維圖形創建三維模型; 接收指定在全景圖像上的位置的用戶輸入; 確定射線和所述三維模型的交點,其中所述射線自所述全景圖像的照相機視口延伸至與所述三維模型中與所述用戶輸入相關聯的所述位置; 識別所述全景圖像中的多個特征; 計算所識別的多個特征中的每一個特征的位置; 基于所識別的多個特征中的每一個特征的位置,確定所述三維模型的立面平面;以及 基于多個街道的位置,確定街道平面, 其中所述立面平面和所述街道平面被用來創建所述三維模型。
17.根據權利要求16所述的方法,其中識別多個特征包括使用快速魯棒特征(SURF)算法。
18.根據權利要求16所述的方法,其中確定立面平面包括使用最佳適應或自適應優化算法。
19.一種用于在全景圖像數據中導航的設備,包括: 用于接收指定在全景圖像上的位置的用戶輸入的裝置; 用于確定射線和三維模型的交點的裝置,其中所述射線自所述全景圖像的照相機視口延伸至與所述三維模型中與所述用戶輸入相關聯的所述位置; 用于識別所述全景圖像中的多個特征的裝置;用于計算所識別的多個特征中的每一個特征的位置的裝置; 用于基于所識別的多個特征中的每一個特征的位置,確定所述三維模型的立面平面的裝置;以及 用于基于多個街道的位置,確定街道平面的裝置, 其中所述立面平面 和所述街道平面被用來創建所述三維模型。
【文檔編號】G06T15/06GK103824317SQ201310473478
【公開日】2014年5月28日 申請日期:2009年2月26日 優先權日:2008年2月27日
【發明者】朱佳俊, 丹尼爾·菲利普, 盧克·文森特 申請人:谷歌公司