背景技術(shù):
已經(jīng)使用了組織和導(dǎo)航多個(gè)用戶捕獲的各種場景的圖像的許多方法。在一些示例中,可以將由多個(gè)用戶捕獲的相同場景的圖像組合到組。這樣的組可以包含從與捕獲的場景相關(guān)的許多角度和距離拍攝的各種數(shù)量的捕獲的圖像。然后,用戶可以在單個(gè)組內(nèi)查看圖像,而不考慮捕獲的圖像的位置。因此,當(dāng)前組織和導(dǎo)航圖像的方法導(dǎo)致圖像的不可預(yù)測的顯示,這對用戶可能是不直觀的并且令人不快的。
技術(shù)實(shí)現(xiàn)要素:
本公開內(nèi)容內(nèi)的實(shí)施例一般涉及呈現(xiàn)圖像。一個(gè)方面包括用于在設(shè)備上組織和導(dǎo)航圖像聚類的方法。可以由一個(gè)或多個(gè)處理設(shè)備訪問捕獲的圖像集。一個(gè)或多個(gè)處理設(shè)備然后可以檢測捕獲的圖像集內(nèi)的圖像是否滿足預(yù)定模式;根據(jù)所檢測到的預(yù)定模式將捕獲的圖像集中的圖像分組到一個(gè)或多個(gè)聚類;接收顯示捕獲的圖像的一個(gè)或多個(gè)聚類中的第一聚類的請求;以及響應(yīng)于請求,選擇來自第一聚類的第一捕獲的圖像以顯示??梢蕴峁﹣碜缘谝痪垲惖牡谝徊东@的圖像以顯示。
一個(gè)實(shí)施例提供了用于組織和導(dǎo)航圖像聚類的系統(tǒng)。該系統(tǒng)包括一個(gè)或多個(gè)計(jì)算設(shè)備;以及存儲(chǔ)指令的存儲(chǔ)器,指令可由一個(gè)或多個(gè)計(jì)算設(shè)備執(zhí)行。指令包括:由一個(gè)或多個(gè)計(jì)算設(shè)備訪問捕獲的圖像集;由一個(gè)或多個(gè)計(jì)算設(shè)備檢測捕獲的圖像集內(nèi)的圖像是否滿足預(yù)定模式;以及由一個(gè)或多個(gè)計(jì)算設(shè)備根據(jù)所檢測到的預(yù)定模式將捕獲的圖像集中的圖像分組到一個(gè)或多個(gè)聚類;由一個(gè)或多個(gè)計(jì)算設(shè)備接收顯示捕獲的圖像的一個(gè)或多個(gè)聚類中的第一聚類的請求;由一個(gè)或多個(gè)計(jì)算設(shè)備響應(yīng)于該請求而選擇來自第一聚類的第一捕獲的圖像以顯示;以及提供來自第一聚類的第一捕獲的圖像以顯示。
一個(gè)實(shí)施例提供了用于組織和導(dǎo)航圖像聚類的系統(tǒng)。該系統(tǒng)包括一個(gè)或多個(gè)計(jì)算設(shè)備;以及存儲(chǔ)指令的存儲(chǔ)器,指令可由一個(gè)或多個(gè)計(jì)算設(shè)備執(zhí)行。指令包括:由一個(gè)或多個(gè)計(jì)算設(shè)備訪問捕獲的圖像集;由一個(gè)或多個(gè)計(jì)算設(shè)備檢測捕獲的圖像集內(nèi)的圖像是否滿足預(yù)定模式;由一個(gè)或多個(gè)計(jì)算設(shè)備根據(jù)所檢測到的預(yù)定模式將捕獲的圖像集中的圖像分組到一個(gè)或多個(gè)聚類;由一個(gè)或多個(gè)計(jì)算設(shè)備接收顯示捕獲的圖像的一個(gè)或多個(gè)聚類中的第一聚類的請求;由一個(gè)或多個(gè)計(jì)算設(shè)備響應(yīng)于該請求而選擇來自第一聚類的第一捕獲的圖像以顯示;提供來自第一聚類的第一捕獲的圖像以顯示;由一個(gè)或多個(gè)計(jì)算設(shè)備從第一聚類內(nèi)的圖像確定在第一捕獲的圖像的預(yù)定接近度內(nèi)的相鄰捕獲圖像集;由一個(gè)或多個(gè)處理設(shè)備從相鄰捕獲圖像集指派第一捕獲的圖像的一個(gè)或多個(gè)相鄰圖像;以及由一個(gè)或多個(gè)處理設(shè)備響應(yīng)于點(diǎn)擊或拖動(dòng)事件而提供一個(gè)或多個(gè)相鄰圖像。
附圖說明
圖1是根據(jù)本公開的方面的示例系統(tǒng)的功能圖。
圖2是圖1的示例系統(tǒng)的示意圖。
圖3是根據(jù)本公開的方面的以全景模式捕獲圖像的計(jì)算設(shè)備的示例。
圖4是根據(jù)本公開的方面的以平移模式捕獲圖像的計(jì)算設(shè)備的示例。
圖5是根據(jù)本公開的方面的以軌道模式捕獲圖像的計(jì)算設(shè)備的示例。
圖6a是根據(jù)本公開的方面的全景模式聚類集合的示例。
圖6b是根據(jù)本公開的方面的視角閾值的示例。
圖7a是根據(jù)本公開的方面的捕獲的平移圖像的初始候選集的示例。
圖7b是根據(jù)本公開的方面的角度閾值的示例。
圖8是根據(jù)本公開的方面的軌道模式聚類的示例。
圖9是根據(jù)本公開的方面的在聚類內(nèi)導(dǎo)航的計(jì)算設(shè)備的示例。
圖10是根據(jù)本公開的方面的視角的示例。
圖11是根據(jù)本公開的方面的在聚類之間導(dǎo)航的計(jì)算設(shè)備的示例。
圖12是根據(jù)本公開的方面的流程圖。
具體實(shí)施方式
該技術(shù)涉及導(dǎo)航在捕獲圖像時(shí)基于展現(xiàn)的公共模式而被組織到聚類的圖像。例如,可以由一個(gè)或多個(gè)計(jì)算設(shè)備來分析由多個(gè)用戶捕獲的各種場景的圖像,以將捕獲的圖像組織到與相同場景對應(yīng)的聚類,并且當(dāng)組合時(shí)滿足至少一個(gè)公共模式。然后,用戶可以選擇聚類,并且作為響應(yīng),所選擇的聚類內(nèi)的捕獲的圖像可以顯示在一個(gè)或多個(gè)計(jì)算設(shè)備中的一個(gè)上。當(dāng)用戶平移通過聚類內(nèi)的捕獲的圖像時(shí),顯示器可以根據(jù)指派給聚類內(nèi)的圖像的公共模式切換到另一捕獲的圖像。另外,用戶可以在觀看不同的聚類之間切換。因此,向用戶提供了可以模仿多個(gè)用戶通常捕獲正在顯示的場景的方式的平滑導(dǎo)航體驗(yàn)。
來自一個(gè)或多個(gè)用戶的捕獲的圖像也可以組合到模式。例如,可以由一個(gè)或多個(gè)計(jì)算設(shè)備,根據(jù)捕獲的圖像在組合時(shí)滿足的模式的類型,將給定場景的捕獲的圖像分組到聚類。在這方面,來自一個(gè)或多個(gè)用戶的捕獲的圖像集可以被放置在全景模式聚類、平移模式聚類和軌道模式聚類中的一個(gè)或多個(gè)中。
為了確定全景模式聚類,可以確定表示相機(jī)從該處捕獲第一捕獲的圖像的坐標(biāo)的全景中心??梢酝ㄟ^使用第一全景圓內(nèi)的每個(gè)附加捕獲的圖像對第一全景中心的坐標(biāo)迭代地進(jìn)行平均來找到更新的全景中心。然后可以計(jì)算最終的全景圓,以包括盡可能多的在第一全景圓內(nèi)的捕獲的圖像。可以通過對不落在確定的最終全景圓內(nèi)的捕獲的圖像反復(fù)執(zhí)行上述過程來發(fā)現(xiàn)附加的最終全景圓。
為了確定平移模式聚類,可以對于每個(gè)捕獲的圖像計(jì)算和關(guān)聯(lián)閾值角度內(nèi)的最近相鄰圖像的縮小的候選集。可以擴(kuò)展縮小的候選集以創(chuàng)建處于相關(guān)聯(lián)的捕獲的圖像的角度閾值內(nèi)的捕獲的圖像的潛在平移模式聚類。可以通過保持滿足閾值判據(jù)的潛在平移模式聚類來確定平移模式聚類。在這方面,可以忽略包含小于閾值數(shù)量的捕獲的圖像的潛在平移模式聚類??梢允沟冒辽匍撝禂?shù)量的捕獲的圖像的潛在平移模式聚類成為平移模式聚類。
為了確定軌道模式聚類,可以發(fā)現(xiàn)或識別針對一個(gè)或多個(gè)軌道對象中心并且圍繞軌道對象中心提供平滑平移的捕獲的圖像。例如,可以比較捕獲的圖像以確定具有重疊圖像數(shù)據(jù)的捕獲的圖像的組。包含重疊圖像數(shù)據(jù)的捕獲的圖像的組被視為相鄰圖像。軌道對象中心是通過將每個(gè)捕獲的圖像視為從捕獲的圖像的位置發(fā)出的并且以在捕獲的圖像被捕獲時(shí)相機(jī)中心指向的方向的射線來確定的。然后可以找到相鄰圖像的射線之間的交點(diǎn)。然后,聚類算法可以由確定具有足夠水平的交叉點(diǎn)的區(qū)域來找到軌道對象中心。
對于每個(gè)軌道對象中心,包含與位于軌道對象中心的場景的一部分相關(guān)聯(lián)的圖像數(shù)據(jù)的捕獲的圖像可以與該軌道對象中心相關(guān)聯(lián)。可以分析包含至少閾值數(shù)量的捕獲的圖像的捕獲的圖像的組,以確定每組圖像內(nèi)的捕獲的圖像所覆蓋的視角是否包含大于閾值角度值的視角。滿足設(shè)定閾值的所有組圖像都可以被視為軌道模式聚類。
可以在計(jì)算設(shè)備的顯示器上觀看所確定的聚類內(nèi)的一個(gè)或多個(gè)捕獲的圖像。在這方面,用戶可以在不同的聚類之間或在單個(gè)聚類內(nèi)進(jìn)行導(dǎo)航。例如,可以在顯示器上提供表示當(dāng)前未被查看的聚類的點(diǎn)擊目標(biāo),以使用戶能夠在聚類之間切換。此外,可以向用戶提供表示當(dāng)前查看的聚類內(nèi)的相鄰圖像的拖動(dòng)目標(biāo),以使用戶能夠在當(dāng)前查看的聚類內(nèi)導(dǎo)航。
可以基于當(dāng)前選擇的聚類來確定點(diǎn)擊目標(biāo)。例如,用戶可以選擇要查看的初始聚類。初始聚類內(nèi)的捕獲的圖像可以顯示在計(jì)算設(shè)備上。在初始聚類之外當(dāng)前顯示的捕獲的圖像的一個(gè)或多個(gè)相鄰的捕獲的圖像可以被指派為一個(gè)或多個(gè)點(diǎn)擊目標(biāo)。
為了使用拖動(dòng)目標(biāo)在全景模式聚類內(nèi)提供導(dǎo)航,可以對于當(dāng)前聚類內(nèi)當(dāng)前顯示的捕獲的圖像最接近的每個(gè)捕獲的圖像計(jì)算拖動(dòng)目標(biāo)成本。對于每個(gè)拖動(dòng)矢量方向,可以將具有最低拖動(dòng)目標(biāo)成本的圖像成為沿該拖動(dòng)矢量方向的拖動(dòng)目標(biāo)。因此,當(dāng)用戶沿著拖動(dòng)矢量方向平移顯示器時(shí),可以在計(jì)算設(shè)備上顯示具有最低拖動(dòng)目標(biāo)成本的拖動(dòng)目標(biāo)。
為了在軌道和平移模式聚類內(nèi)導(dǎo)航,可以找到或識別當(dāng)前顯示的捕獲的圖像的右側(cè)和左側(cè)的相鄰捕獲的圖像??梢詫⑾噜張D像的視角與當(dāng)前顯示的圖像的視角進(jìn)行比較,以確定圖像是否位于當(dāng)前顯示的圖像的左側(cè)或右側(cè)。然后可以分別使得左或右的目標(biāo)拖動(dòng)距離最接近的相鄰圖像成為左右拖動(dòng)目標(biāo)。因此,當(dāng)用戶將顯示器向左或向右平移時(shí),可以分別在計(jì)算設(shè)備上顯示左或右拖動(dòng)目標(biāo)。
本文描述的特征可以允許模擬用戶通常將如同在那里觀看場景的方式的平滑導(dǎo)航體驗(yàn)。通過這樣做,用戶可以體驗(yàn)可預(yù)測的導(dǎo)航體驗(yàn),其提供場景的自然視圖。此外,當(dāng)導(dǎo)航場景的大組和小組的捕獲的圖像時(shí),導(dǎo)航體驗(yàn)將是一致的。
示例系統(tǒng)
圖1和圖2包括其中可以實(shí)現(xiàn)上述特征的示例系統(tǒng)100。不應(yīng)將其視為限制本公開的范圍或本文所述特征的有用性。在該示例中,系統(tǒng)100可以包括計(jì)算設(shè)備110、120、130和140以及存儲(chǔ)系統(tǒng)150。每個(gè)計(jì)算設(shè)備110可以包含通常存在于通用計(jì)算設(shè)備中的一個(gè)或多個(gè)處理器112、存儲(chǔ)器114和其它組件。計(jì)算設(shè)備110、120、130和140中的每一個(gè)的存儲(chǔ)器114可以存儲(chǔ)由一個(gè)或多個(gè)處理器112可訪問的信息,包括可由一個(gè)或多個(gè)處理器112執(zhí)行的指令116。
存儲(chǔ)器還可以包括可由處理器檢索、操縱或存儲(chǔ)的數(shù)據(jù)118。存儲(chǔ)器可以是能夠存儲(chǔ)處理器可訪問的信息的任何非暫時(shí)類型,諸如硬盤驅(qū)動(dòng)器、存儲(chǔ)卡、rom、ram、dvd、cd-rom、可寫入、和只讀存儲(chǔ)器。
指令116可以是由一個(gè)或多個(gè)處理器直接(諸如機(jī)器代碼)或間接地執(zhí)行(諸如腳本)的任何指令集。在這方面,術(shù)語“指令”、“應(yīng)用”、“步驟”和“程序”在本文中可以互換使用。指令可以以對象代碼格式存儲(chǔ)以由處理器直接處理,或以任何其它計(jì)算設(shè)備語言,包括根據(jù)需要或預(yù)先編譯的獨(dú)立源代碼模塊的腳本或集合。下面更詳細(xì)地說明指令的功能、方法和例程。
可以根據(jù)指令116由一個(gè)或多個(gè)處理器112檢索、存儲(chǔ)或修改數(shù)據(jù)118。例如,盡管本文描述的主題不受任何特定數(shù)據(jù)結(jié)構(gòu)限制,但是數(shù)據(jù)可以存儲(chǔ)在計(jì)算機(jī)寄存器中、作為具有許多不同字段和記錄的表存儲(chǔ)在關(guān)系數(shù)據(jù)庫中、或xml文檔。數(shù)據(jù)還可以以任何計(jì)算設(shè)備可讀格式格式化,例如但不限于二進(jìn)制值、ascii或unicode。此外,數(shù)據(jù)可以包括足以識別相關(guān)信息的任何信息,諸如數(shù)字、描述性文本、專有代碼、指針、對存儲(chǔ)在諸如在其它網(wǎng)絡(luò)位置處的其它存儲(chǔ)器中的數(shù)據(jù)的引用,或由函數(shù)使用以計(jì)算相關(guān)數(shù)據(jù)的信息。
一個(gè)或多個(gè)處理器112可以是任何常規(guī)處理器,諸如市售cpu?;蛘撸幚砥骺梢允菍S媒M件,諸如專用集成電路(“asic”)或其它基于硬件的處理器。盡管不是必需的,但是一個(gè)或多個(gè)計(jì)算設(shè)備110可以包括專門的硬件組件來執(zhí)行特定的計(jì)算過程,諸如更快或更有效率地解碼視頻、匹配視頻幀與圖像、使視頻畸變、編碼畸變的視頻。
盡管圖1功能性地將處理器112、存儲(chǔ)器114和計(jì)算設(shè)備110的其它元件示為在相同的塊內(nèi),但是處理器、計(jì)算機(jī)、計(jì)算設(shè)備或存儲(chǔ)器實(shí)際上可以包括可能在或不在同一物理外殼內(nèi)存儲(chǔ)的多個(gè)處理器、計(jì)算機(jī)、計(jì)算設(shè)備或存儲(chǔ)器。例如,存儲(chǔ)器可以是位于與計(jì)算設(shè)備110不同的外殼中的硬盤驅(qū)動(dòng)器或其它存儲(chǔ)介質(zhì)。因此,對處理器、計(jì)算機(jī)、計(jì)算設(shè)備或存儲(chǔ)器的引用將被理解為包括對可能并行操作或不并行操作的處理器、計(jì)算機(jī)、計(jì)算設(shè)備或存儲(chǔ)器的集合的引用。例如,計(jì)算設(shè)備110可以包括作為負(fù)載平衡的服務(wù)器場、分布式系統(tǒng)等操作的服務(wù)器計(jì)算設(shè)備。此外,盡管下面描述的一些功能被指示為在具有單個(gè)處理器的單個(gè)計(jì)算設(shè)備上發(fā)生,但是各種本文描述的主題的各方面可以由多個(gè)計(jì)算設(shè)備例如通過網(wǎng)絡(luò)160傳送信息來實(shí)現(xiàn)。
每個(gè)計(jì)算設(shè)備110可以在網(wǎng)絡(luò)160的不同節(jié)點(diǎn)處,并能夠直接和間接地與網(wǎng)絡(luò)160的其它節(jié)點(diǎn)進(jìn)行通信。盡管圖1-2中僅描繪了幾個(gè)計(jì)算設(shè)備,但是應(yīng)當(dāng)理解,典型的系統(tǒng)可以包括大量連接的計(jì)算設(shè)備,其中每個(gè)不同的計(jì)算設(shè)備位于網(wǎng)絡(luò)160的不同節(jié)點(diǎn)處。本文描述的網(wǎng)絡(luò)160和中間節(jié)點(diǎn)可以使用各種協(xié)議和系統(tǒng)互連,使得網(wǎng)絡(luò)可以是互聯(lián)網(wǎng)、萬維網(wǎng)、特定內(nèi)部網(wǎng)、廣域網(wǎng)或本地網(wǎng)絡(luò)的一部分。網(wǎng)絡(luò)可以利用諸如以太網(wǎng)、wifi和http的標(biāo)準(zhǔn)通信協(xié)議、一個(gè)或多個(gè)公司專有的協(xié)議、以及上述各種組合。雖然如上所述發(fā)送或接收信息時(shí)獲得了某些優(yōu)點(diǎn),但是本文描述的主題的其它方面不限于任何特定的信息傳輸方式。
作為示例,每個(gè)計(jì)算設(shè)備110可以包括能夠經(jīng)由網(wǎng)絡(luò)與存儲(chǔ)系統(tǒng)150以及計(jì)算設(shè)備120、130和140進(jìn)行通信的web服務(wù)器。例如,服務(wù)器計(jì)算設(shè)備110中的一個(gè)或多個(gè)可以使用網(wǎng)絡(luò)160來在諸如計(jì)算設(shè)備120、130和140的顯示器122、132或142的顯示器上向諸如用戶220、230或240的用戶傳送和呈現(xiàn)信息。在這方面,計(jì)算設(shè)備120、130和140可以被視為客戶端計(jì)算設(shè)備,并且可以執(zhí)行本文所描述的全部或一些特征。
使用如上所述的一個(gè)或多個(gè)處理器、存儲(chǔ)器和指令,可以與服務(wù)器計(jì)算設(shè)備110類似地配置每個(gè)客戶端計(jì)算設(shè)備120、130和140。每個(gè)客戶端計(jì)算設(shè)備120、130或140可以是指期望由用戶220、230、240使用的個(gè)人計(jì)算設(shè)備,并且具有通常與個(gè)人計(jì)算設(shè)備結(jié)合使用的所有組件,諸如中央處理單元(cpu),存儲(chǔ)數(shù)據(jù)和指令的存儲(chǔ)器(例如,ram和內(nèi)部硬盤驅(qū)動(dòng)器),諸如顯示器122、132或142的顯示器(例如,具有屏幕的監(jiān)視器、觸摸屏、投影儀、電視機(jī)或其它可操作以顯示信息的設(shè)備),和用戶輸入設(shè)備124(例如,鼠標(biāo)、鍵盤、觸摸屏或麥克風(fēng))??蛻舳擞?jì)算設(shè)備還可以包括用于記錄視頻流和/或捕獲圖像的相機(jī)、揚(yáng)聲器、網(wǎng)絡(luò)接口設(shè)備以及用于將這些元件彼此連接的所有組件。
雖然客戶端計(jì)算設(shè)備120、130和140可以各自包括全尺寸的個(gè)人計(jì)算設(shè)備,但是它們也可以替選地包括能夠通過諸如互聯(lián)網(wǎng)的網(wǎng)絡(luò)與服務(wù)器無線地交換數(shù)據(jù)的移動(dòng)計(jì)算設(shè)備。僅作為示例,客戶端計(jì)算設(shè)備120可以是移動(dòng)電話或能夠經(jīng)由互聯(lián)網(wǎng)獲得信息的諸如啟用無線的pda、平板pc或上網(wǎng)本的設(shè)備。在另一示例中,客戶端計(jì)算設(shè)備130可以是頭戴式計(jì)算系統(tǒng)。用戶可以例如通過使用小型鍵盤、小鍵盤、麥克風(fēng),利用照相機(jī)使用視覺信號、或觸摸屏來輸入信息,與客戶端計(jì)算設(shè)備進(jìn)行交互。
與存儲(chǔ)器114一樣,存儲(chǔ)系統(tǒng)150可以是能夠存儲(chǔ)服務(wù)器計(jì)算設(shè)備110可訪問的信息的任何類型的計(jì)算機(jī)化存儲(chǔ)裝置,諸如硬盤驅(qū)動(dòng)器、存儲(chǔ)器卡、rom、ram、dvd、cd-rom、可寫、和只讀存儲(chǔ)器。此外,存儲(chǔ)系統(tǒng)150可以包括分布式存儲(chǔ)系統(tǒng),其中數(shù)據(jù)存儲(chǔ)在可以物理上位于相同或不同地理位置的多個(gè)不同存儲(chǔ)設(shè)備上。如圖1所示,存儲(chǔ)系統(tǒng)150可以經(jīng)由網(wǎng)絡(luò)160連接到計(jì)算設(shè)備,和/或可以直接連接到計(jì)算設(shè)備110、120、130和140中的任何(未示出)。
示例方法
現(xiàn)在將描述根據(jù)本公開的各個(gè)方面的操作。應(yīng)當(dāng)理解,以下操作不必以下面描述的精確順序執(zhí)行。相反,各種步驟可以以相反的順序處理或同時(shí)處理或根本不處理。
可以由一個(gè)或多個(gè)計(jì)算設(shè)備分析由多個(gè)用戶捕獲的各種場景的圖像,以將捕獲的圖像組織到對應(yīng)于相同場景的聚類,并且當(dāng)組合時(shí)滿足至少一個(gè)公共模式。用戶可以根據(jù)三個(gè)公共模式之一捕獲圖像。用戶可以通過執(zhí)行全景模式、平移模式或軌道模式來捕獲具有相機(jī)的場景的圖像。例如,用戶可以在轉(zhuǎn)動(dòng)照相機(jī)時(shí)站在單個(gè)位置并且捕獲場景的多個(gè)圖像,因此執(zhí)行全景模式。諸如使用客戶端計(jì)算設(shè)備120的用戶220的用戶可以在捕獲場景的圖像時(shí)使計(jì)算設(shè)備以弧線運(yùn)動(dòng)進(jìn)行移動(dòng)。圖3示出了用戶通過搖攝配備有相機(jī)的客戶端計(jì)算設(shè)備120來捕獲場景302的示例。在這方面,計(jì)算設(shè)備120可以圍繞軸線301旋轉(zhuǎn)以旋轉(zhuǎn)配備有相機(jī)的客戶端計(jì)算設(shè)備120相對于場景302的視野。隨著計(jì)算設(shè)備120旋轉(zhuǎn)通過不同的視野311至314,可以捕獲場景302的不同部分。
用戶還可以當(dāng)在線性方向上移動(dòng)時(shí)捕獲場景的多個(gè)圖像,從而執(zhí)行平移模式。圖4示出了當(dāng)捕獲場景402時(shí)諸如用戶220的用戶可以如何沿著軸線401以線性運(yùn)動(dòng)來移動(dòng)計(jì)算設(shè)備120的示例。在這方面,計(jì)算設(shè)備120可以沿軸線401移動(dòng)以將配備有相機(jī)的客戶端計(jì)算設(shè)備120的視野相對于場景402切換。隨著計(jì)算設(shè)備120沿著軸線401移動(dòng),可以捕獲不同的視場411至414。
此外,用戶可以在圍繞場景的圓方向上移動(dòng)時(shí)捕獲場景的多個(gè)圖像,因此執(zhí)行軌道模式。圖5示出了諸如用戶220的用戶可以如何圍繞場景521在圓方向上移動(dòng)計(jì)算設(shè)備120的示例。在這方面,用戶220可以圍繞場景521沿著從523到533的路徑移動(dòng)計(jì)算設(shè)備120。當(dāng)計(jì)算設(shè)備120沿著路徑移動(dòng)時(shí),可以捕獲不同的視場511至521。
來自一個(gè)或多個(gè)用戶的捕獲的圖像也可以組合到模式。例如,可以由一個(gè)或多個(gè)計(jì)算設(shè)備基于捕獲的圖像在組合時(shí)滿足的模式的類型,將給定場景的捕獲的圖像分組到聚類。在這方面,來自一個(gè)或多個(gè)用戶的一組捕獲的圖像可以被放置在全景模式聚類、平移模式聚類和/或軌道模式聚類中。在分組捕獲的圖像時(shí),可能會(huì)省略高度維度(海拔),因?yàn)榭赡茉谛》秶叨葍?nèi)獲取多組照片。因此,捕獲的圖像的分組可以基于表示橫向和縱向平面的二維平面。
為了確定全景模式聚類,確定表示相機(jī)從此處捕獲第一捕獲的圖像的坐標(biāo)的第一全景中心。在這方面,如圖6a所示,可以由計(jì)算具有諸如約3米或更多或更小的設(shè)定半徑的第一全景中心周圍的圓距離來圍繞第一全景中心找到第一全景圓。在該示例中,可以在其中捕獲第一捕獲的圖像611的(x1,y1)處找到第一全景中心a??梢酝ㄟ^對第一全景中心a的坐標(biāo)與第一全景圓605內(nèi)的每個(gè)附加捕獲的圖像613和615迭代地求平均來找到更新的全景中心。第一全景圓605包括來自(x1,y1)處的捕獲點(diǎn)a和(x2,y2)處的捕獲點(diǎn)c的捕獲的圖像。可以執(zhí)行迭代,直到更新的全景中心坐標(biāo)收斂,或直到已經(jīng)執(zhí)行了設(shè)定閾值的迭代,諸如30次或更多次或更少次迭代。
然后可以在更新的全景中心坐標(biāo)周圍找到最終的全景圓,以便盡可能包括在第一全景圓內(nèi)的捕獲的圖像。在圖6a的示例中,可以確定最終的全景圓607以包括在捕獲點(diǎn)a處捕獲的圖像611和615以及在捕獲點(diǎn)c處捕獲的圖像613??梢酝ㄟ^對不落在確定的最終全景圓內(nèi)的捕獲的圖像,諸如在(x3,y3)處的點(diǎn)b捕獲的圖像,迭代地執(zhí)行上述過程,來發(fā)現(xiàn)附加的最終全景圓609。可以執(zhí)行該過程,直到所有捕獲的圖像在最終全景圓內(nèi)。在某些情況下,最終的全景圓可能只包括單個(gè)捕獲的圖像。
可以通過保持滿足某些閾值判據(jù)的最終全景圓來確定全景模式聚類。在這方面,可以忽略包含小于閾值數(shù)量的捕獲的圖像(例如8個(gè)或更多或更少)的最終全景圓。此外,可以分析至少包含閾值數(shù)量的捕獲的圖像的任何最終全景圓,以確定每個(gè)最終全景圓內(nèi)的捕獲的圖像覆蓋的視角即視場的總角度是否包含大于閾值角度值的視角,如圖6b所示。在圖6b的示例中,可以確定分別在兩個(gè)最終全景圓607和609內(nèi)捕獲的圖像x2和x3之間的視角以看它們是否滿足閾值角度值。滿足上述判據(jù)中的至少一個(gè)或兩個(gè)的所有最終全景圓可以被視為全景模式聚類。
為了確定平移模式聚類,可以確定在彼此的設(shè)定角度閾值內(nèi)的捕獲的圖像。例如,如圖7a所示,對于第一捕獲的圖像,可以確定相對于場景沿著水平軸線在第一捕獲的圖像的左側(cè)和右側(cè)最接近的相鄰捕獲的圖像的初始候選集。在圖7a的示例中,可以確定第一捕獲的圖像a以及初始候選集內(nèi)的捕獲的圖像(這里圖像b至e),當(dāng)捕獲的圖像時(shí)相機(jī)中心指向的方向。如圖7b所示,可以丟棄初始候選集內(nèi)的其方向處于與第一捕獲的圖像的角度大于例如約36度或更多或更小的閾值角度的每個(gè)捕獲的圖像,使得剩余圖像是從大致相同的角度捕獲的那些。在這方面,第一捕獲的圖像a可以處于90度角,x1,而圖像c可以處于45度角,x2。因此,由于差大于設(shè)定角度閾值,可以從初始候選集中丟棄圖像c。然后可以將初始候選集減少為包括預(yù)定數(shù)量的縮小的候選集,諸如最接近第一捕獲的圖像的初始候選集的六個(gè)或更多或更少的捕獲的圖像。因此,可以為每個(gè)捕獲的圖像計(jì)算和關(guān)聯(lián)縮小的候選集。
可以擴(kuò)展縮小的候選集以創(chuàng)建潛在的平移模式聚類。例如,從第一捕獲的圖像開始,可以分析與第一捕獲的圖像相關(guān)聯(lián)的縮小候選集內(nèi)的每個(gè)捕獲的圖像。處于設(shè)定角度閾值內(nèi)并且位于相對于場景沿著水平軸線的第一捕獲的圖像的左側(cè)的捕獲的圖像可以被組合到潛在平移模式聚類。如果與第一捕獲的圖像相關(guān)聯(lián)的縮小候選集內(nèi)的所有捕獲的圖像滿足設(shè)定角度閾值或處于設(shè)定角度閾值內(nèi),則也可以分析與第一捕獲的圖像的左側(cè)緊鄰的捕獲的圖像相關(guān)聯(lián)的相鄰候選集內(nèi)的捕獲的圖像。滿足角度閾值的相鄰候選集的每個(gè)捕獲的圖像可以被放置到潛在平移聚類中。例如,可以迭代地分析與當(dāng)前分析的捕獲的圖像的左側(cè)緊鄰的捕獲的圖像相關(guān)聯(lián)的相鄰候選集,從最接近當(dāng)前分析的圖像的圖像開始,以確定所捕獲的圖像是否滿足角度閾值或者處于當(dāng)前分析的圖像的角度閾值內(nèi)。這可以繼續(xù),直到相鄰候選集內(nèi)的捕獲的圖像之一不滿足或不在當(dāng)前分析的圖像的角度閾值內(nèi)。然后可以將滿足當(dāng)前分析的圖像的角度閾值的所有分析的捕獲的圖像包括在潛在平移模式聚類中。然后可以執(zhí)行相同的處理以在第一捕獲的圖像的右側(cè)找到圖像。
可以通過保持滿足附加閾值判據(jù)的潛在平移模式聚類來確定平移模式聚類。在這方面,可以忽略包含小于閾值數(shù)量(諸如8個(gè)或更多或更少)的捕獲的圖像的潛在平移模式聚類。包含至少閾值數(shù)量的捕獲的圖像的潛在平移模式聚類可以被視為平移模式聚類。
為了確定軌道模式聚類,發(fā)現(xiàn)指向一個(gè)或多個(gè)軌道對象中心并且圍繞軌道對象中心提供平滑平移的捕獲的圖像。例如,可以比較捕獲的圖像以確定具有重疊圖像數(shù)據(jù)的捕獲的圖像的組??梢允褂糜?jì)算機(jī)視覺算法,諸如特征檢測算法和來自運(yùn)動(dòng)的結(jié)構(gòu)(sfm)算法,找到重疊圖像數(shù)據(jù)。在這方面,可以確定每個(gè)捕獲的圖像的特征點(diǎn)。然后可以使用sfm算法來比較每個(gè)捕獲的圖像的特征點(diǎn),以確定是否這些點(diǎn)中的任何是公共的,這意味著它們包含重疊圖像數(shù)據(jù)。包含重疊圖像數(shù)據(jù)的捕獲的圖像的組被視為相鄰圖像。
如圖8所示,可以通過將每個(gè)捕獲的圖像視為從捕獲的圖像的位置發(fā)出的、并且在當(dāng)捕獲的圖像被捕獲時(shí)相機(jī)中心指向的方向上的射線,來確定軌道對象中心。在該示例中,然后可以找到相鄰圖像a到e的射線之間的交點(diǎn)。然后可以通過確定具有足夠水平的相交點(diǎn)803的區(qū)域,使用聚類算法,以找到軌道對象中心。在一個(gè)示例中,可以使用確定用交叉射線密集填充的區(qū)域的中心點(diǎn)的k均值聚類算法來確定軌道對象中心坐標(biāo)。
可以通過將捕獲的圖像與軌道對象中心相關(guān)聯(lián)來確定軌道模式聚類。例如,如圖8所示,對于每個(gè)軌道對象中心,可以將包含與位于軌道對象中心803的場景801的一部分相關(guān)聯(lián)的圖像數(shù)據(jù)的捕獲的圖像與該軌道對象中心相關(guān)聯(lián)。然后可以將與相應(yīng)軌道對象中心803相關(guān)聯(lián)的捕獲的圖像a、b、c和d分組在一起。在一個(gè)示例中,可以通過使用不相交集數(shù)據(jù)結(jié)構(gòu)將與相應(yīng)軌道對象中心相關(guān)聯(lián)的捕獲的圖像組合在一起,以合并具有平滑變換的捕獲的圖像??梢酝ㄟ^找到兩個(gè)捕獲的圖像中的第一和第二圖像到相關(guān)聯(lián)的軌道對象中心之間的距離來確定平滑變換。如果兩個(gè)捕獲的圖像之間的距離差不大于更接近軌道中心的捕獲的圖像的到軌道中心距離的約一半到約四分之三,則兩個(gè)捕獲的圖像可以被認(rèn)為具有平滑變換。在這方面,可以將多組捕獲的圖像與軌道對象中心相關(guān)聯(lián)。
可以通過保持滿足某些閾值判據(jù)的捕獲的圖像的組來確定軌道模式聚類。在這方面,可以忽略包含小于閾值數(shù)量(諸如8個(gè)或更多或更少)的捕獲的圖像的捕獲的圖像的組??梢苑治霭辽匍撝禂?shù)量的捕獲的圖像的捕獲的圖像的組,以確定每組圖像內(nèi)的捕獲的圖像所涵蓋的視角是否包含大于閾值的視角。滿足上述閾值判據(jù)中的至少一個(gè)或兩個(gè)的所有圖像組可以被視為軌道模式聚類。
可以在計(jì)算設(shè)備的顯示器上觀看所確定的聚類內(nèi)的一個(gè)或多個(gè)捕獲的圖像。在這方面,用戶可以在不同的聚類之間或在單個(gè)聚類內(nèi)進(jìn)行導(dǎo)航。例如,可以在顯示器上提供表示當(dāng)前未被查看的聚類的點(diǎn)擊目標(biāo),以使用戶能夠在聚類之間切換。可以通過使用鼠標(biāo)點(diǎn)擊目標(biāo)或在觸摸屏上輕拍來激活點(diǎn)擊目標(biāo)。此外,可以向用戶提供表示當(dāng)前查看的聚類內(nèi)的相鄰圖像的拖動(dòng)目標(biāo),以使用戶能夠在當(dāng)前查看的聚類內(nèi)導(dǎo)航??梢酝ㄟ^使用鼠標(biāo)點(diǎn)在目標(biāo)上拖動(dòng)或在觸摸屏上輕拍來激活拖動(dòng)目標(biāo)。
可以基于當(dāng)前選擇的聚類來確定點(diǎn)擊目標(biāo)。例如,用戶可以選擇要查看的初始聚類??梢栽谟?jì)算設(shè)備上顯示初始聚類內(nèi)的捕獲的圖像。如圖11所示,可以將初始聚類之外的當(dāng)前顯示的捕獲的圖像的一個(gè)或多個(gè)相鄰捕獲的圖像指派為一個(gè)或多個(gè)點(diǎn)擊目標(biāo)。在這方面,如果一個(gè)或多個(gè)相鄰捕獲的圖像是從比當(dāng)前顯示的捕獲的圖像1140更接近場景的位置捕獲的,則可以將該相鄰圖像指派為點(diǎn)擊目標(biāo)1130。如果一個(gè)或多個(gè)相鄰捕獲的圖像是從更接近場景的位置捕獲的,則可以使捕獲的圖像1120的一個(gè)或多個(gè)相鄰捕獲的圖像內(nèi)的最接近當(dāng)前顯示的捕獲的圖像成為點(diǎn)擊目標(biāo)1130。因此,當(dāng)用戶選擇點(diǎn)擊目標(biāo)1130時(shí),計(jì)算設(shè)備120的顯示器122從當(dāng)前顯示的捕獲的圖像1120切換到指派的與該點(diǎn)擊目標(biāo)相關(guān)聯(lián)的最近的捕獲的圖像。每次用戶在聚類和/或顯示的捕獲的圖像之間切換時(shí),可以確定新的點(diǎn)擊目標(biāo)。
為了使用拖動(dòng)目標(biāo)在全景模式聚類內(nèi)提供導(dǎo)航,可以對當(dāng)前聚類內(nèi)最接近當(dāng)前顯示的捕獲的圖像的每個(gè)捕獲的圖像計(jì)算拖動(dòng)目標(biāo)成本。在這方面,拖動(dòng)目標(biāo)成本可以包括各種成本項(xiàng)。這些成本項(xiàng)可以與當(dāng)前顯示的捕獲的圖像和與當(dāng)前顯示的捕獲的圖像最接近的捕獲的圖像之間的像素的平移和旋轉(zhuǎn)“流”的流場相關(guān)。也可以使用不基于流的其它成本項(xiàng),例如重疊成本。在一個(gè)示例中,目標(biāo)圖像應(yīng)盡可能與參考圖像重疊。因此,重疊成本可以包括兩個(gè)成本值:(1)參考圖像的多少與目標(biāo)圖像重疊,以及(2)目標(biāo)圖像的多少與參考圖像重疊。隨著重疊的增加,重疊成本可能會(huì)降低。因此,該成本值可以是反值。對于每個(gè)捕獲的圖像,可以將這些成本復(fù)合以為每個(gè)捕獲的圖像創(chuàng)建拖動(dòng)目標(biāo)成本。
在一個(gè)示例中,如圖9所示,對每個(gè)拖動(dòng)矢量方向,具有最低拖動(dòng)目標(biāo)成本的圖像可以成為沿著該拖動(dòng)矢量方向的拖動(dòng)目標(biāo)。因此,當(dāng)用戶910沿著拖動(dòng)矢量方向930搖計(jì)算設(shè)備120的顯示器122時(shí),當(dāng)前顯示的捕獲的圖像920可以以最低拖動(dòng)目標(biāo)成本切換到拖動(dòng)目標(biāo)。
為了在軌道和平移模式聚類內(nèi)導(dǎo)航,找到當(dāng)前顯示的捕獲的圖像的左側(cè)和左側(cè)的相鄰捕獲的圖像。例如,可以確定當(dāng)前顯示的聚類的中心點(diǎn)。返回到圖10,可以通過計(jì)算從每個(gè)圖像到中心點(diǎn)的視角來找到當(dāng)前顯示的捕獲的圖像a的視角x1和一個(gè)或多個(gè)相鄰捕獲的圖像b和c。可以丟棄具有大大偏離當(dāng)前顯示圖像a的視角x1例如約30度的視角的圖像。可以將相鄰圖像b和c的視角x2和x3與當(dāng)前顯示圖像a的視角x1進(jìn)行比較,以確定圖像是否位于當(dāng)前顯示的圖像的左側(cè)或右側(cè)。
可以使得軌道和平移模式聚類內(nèi)的相鄰圖像相對于當(dāng)前顯示的圖像成為左或右拖動(dòng)目標(biāo)。在這方面,可以使得最接近目標(biāo)拖動(dòng)距離的相鄰圖像成為左或右拖動(dòng)目標(biāo)。目標(biāo)拖動(dòng)距離可以在約0和30度之間,或更多或更少。可以分別使得最接近目標(biāo)拖動(dòng)距離的相鄰圖像成為左和右拖動(dòng)目標(biāo),該目標(biāo)拖動(dòng)距離被計(jì)算為在左或在右的相應(yīng)的每個(gè)相鄰圖像和當(dāng)前顯示的圖像之間的視角差。因此,當(dāng)用戶向左或向右搖顯示器時(shí),可以分別在計(jì)算設(shè)備上顯示左或右拖動(dòng)目標(biāo)。
圖12的流程圖1200是可以由諸如客戶端計(jì)算設(shè)備120、130或140的一個(gè)或多個(gè)計(jì)算設(shè)備執(zhí)行的上述某些方面的示例流程圖。應(yīng)當(dāng)理解,本文討論的步驟是僅僅是示例;步驟可以以不同的順序發(fā)生,可以添加步驟,并且可以省略步驟。在該示例中,在框1202處,可以訪問捕獲的圖像集。一個(gè)或多個(gè)計(jì)算設(shè)備然后可以檢測所捕獲的圖像集內(nèi)的圖像是否滿足預(yù)定模式,如框1204所示。基于檢測到的模式,圖像可以被分組到一個(gè)或多個(gè)聚類,如框1206所示。如框1208所示,正接收顯示一個(gè)或多個(gè)聚類的第一聚類的請求。如框1210所示,可以選擇第一捕獲的圖像以顯示。然后如框1212所示,可以提供所選擇的第一捕獲的圖像以顯示。
雖然已經(jīng)參考特定實(shí)施例描述了本技術(shù),但是應(yīng)當(dāng)理解,這些實(shí)施例僅僅是本技術(shù)的原理和應(yīng)用的說明。因此,應(yīng)當(dāng)理解,可以對說明性實(shí)施例進(jìn)行許多修改,并且在不脫離由所附權(quán)利要求限定的本技術(shù)的精神和范圍的情況下,可以設(shè)計(jì)其它布置。