專利名稱:視差補償的制作方法
視差補償
背景技術:
數碼攝影可以允許將圖像序列拼接或粘合在一起以提供從一幅圖像到下一幅圖像的相對無縫的過渡。另外,可以在沿諸如街道的路線行進的同時收集諸如側視像之類的圖像。例如,將這些側視像拼接在一起能夠提供沿該路線行進的用戶體驗。
發(fā)明內容
提供本發(fā)明內容用于以簡 化形式引入將在下面的具體實施方式
中進一步描述的一系列概念。本發(fā)明內容并非旨在確定要求保護的主題的關鍵因素或必要特征,也不旨在用來限制要求保護的主題的范圍。全景影像的側視圖或橫向視圖可以包括被拼接/粘合在一起以形成該影像的稍顯無縫的視圖的一系列圖像(例如,照片幀、視頻幀等)。這種類型的平面全景影像通常同時顯示拼接在一起的許多圖像。目前,以這種方式拼接在一起的圖像可以結合數字地圖附圖而加以利用,例如,其中用戶可以觀看到與他們可能正在觀看的地圖相關聯的街道的平面全景類型的圖像。例如,當沿平面全景影像橫向移動時,用戶可能看到全景中對象的不同視角和/或圖像中的對象由于不同圖像被獲取的不同觀看角度而可能有所變化。影像中相同對象的不同觀看角度可能是視差的結果,這是一種從不同位置觀看相同對象由此向提供了針對該對象的不同視線所導致的效果。當相鄰圖像被拼接在一起時,常規(guī)技術可能沒有考慮到視差而使得用戶在產生全景影像的橫向移動(例如,搖攝)時體驗不那么自然。因此,除其它之外,公開了一種或多種技術和/或系統(tǒng)以便例如通過將影像分解為不同層次而對視差進行補償以提供圖像到平面全景的有所改進的拼接、融合等。生成的影像例如可以利用視差,這允許處于不同深度的對象和/或數據標簽的更為自然的觀看體驗。例如,在沿橫向全景進行橫向搖攝時,視差效果可以通過對影像中的層次進行區(qū)分并且以不同移動速度(例如當沿著橫向全景橫向移動時)呈現不同層次而得到補償。作為示例,影像前景中的對象可以包括在比背景層次中的對象移動更快的層次中。因此,對象、數據標簽等可以(至少看上去)遵循類似的視差規(guī)則。在呈現對視差進行補償的影像的一個實施例中,可以接收圖像數據,其中該圖像數據包括第一層,其包括第一深度,并且該圖像數據包括第二層,其第二深度。另外,第一層可以在產生的影像的第一深度處進行合成,并且第二層可以在產生的影像的第二深度處進行合成。此外,產生的影像可以被呈現以對視差進行補償。為了補償視差,第一層可以以第一移動速度進行呈現而第二層可以以第二移動速度進行呈現。第一移動速度和第二移動速度可以至少基于第一深度和第二深度。為了實現以上和相關目的,以下描述和附圖給出了某些說明性方面和實施方式。這些僅指示了一個或多個方面可以得以采用的各種方式中的一些。在結合附圖考慮時,公開的其它方面、優(yōu)勢和新穎特征將由于以下詳細描述而變得顯而易見。
圖1A和IB圖示了視差的示例。圖2是圖示用于呈現對視差進行補償的影像的示例性方法的流程圖。圖3是圖示其中可以實施這里所描述的一種或多種技術的一個或多個部分的示例實施例的流程圖。圖4是圖示其中可以實施這里所描述的一種或多種技術的一個或多個部分的示例實施例的流程圖。圖5圖示了其中可以實施這里所描述的一種或多種技術的一個或多個部分的示 例實施例。圖6是圖示用于呈現對視差進行補償的影像的示例性系統(tǒng)的組件示圖。圖7是圖示其中可以實施這里所描述的一個或多個系統(tǒng)的示例實施例的組件示圖。圖8是包括被配置為體現這里所給出的一個或多個提供內容的處理器可執(zhí)行指令的示例性計算機可讀介質的圖示。圖9圖示了其中可以實施這里所給出的一個或多個提供內容的示例性計算環(huán)境。
具體實施例方式現在參考附圖對所請求保護的主題進行描述,其中貫穿全文總體上使用同樣的附圖標記來指代同樣的要素。在以下描述中,出于解釋的目的,給出了多處具體細節(jié)以便提供對所請求保護主題的全面理解。然而,所請求保護的主題顯然可以在沒有這些具體細節(jié)的情況下進行實踐。在其它實例中,以框圖形式示出結構和設備以便促進對所請求保護主題進行描述。視差是所感知到的對象的位置和/或方向的變化,這可能是相對物體的觀察位置變化的結果。當觀察者改變其觀察位置時,到對象的視線也可能有所改變。作為說明性示例,圖1A和IB圖示了可以識別出視差的示例性實施例100、150。在示例實施例100中,第一圖像102包括第一對象112 (建筑物)和第二對象114 (電線桿)。第一圖像102可以是第一觀察位置106 (例如,觀察者所處之處和/或圖像捕捉設備捕捉該圖像的位置)的結果。另外,在示例實施例100中,第二圖像104也包括第一對象112和第二對象114 ;然而,第二對象114看上去位于第一對象112之前。第二圖像104可以是第二觀察位置108的結果。此外,第二觀察位置108處于不同位置,遠離第一觀察位置106特定距離110。作為示例,電線桿114可以被部署為比建筑物112 (距離觀察位置106、108)更接近于觀察位置106、108。在該示例中,如果相應對象112、114和觀察位置106、108之間的距離在觀察者從第一位置106移動至第二位置108 (和/或從108至106)時得以保持,則電線桿114會看上去在橫向生與建筑物112以不同速率進行移動。(例如,從觀察者的角度來看)對象112、114的該所感知的移動速率差異是視差的結果,其中較接近對象(例如114)與較遠對象(例如112)的視線角度以不同速率進行變化。因此,在該示例中,當觀察者橫向移動特定距離110時,電線桿114會出現在建筑物112之前,這是因為觀察者針對相應對象112,114的視線角度也有所變化,但是是以不同速率進行變化(例如,針對建筑物112的視線角度從85度變?yōu)?0度,而針對電線桿114的視線角度則從60度(例如,更快、更劇烈地等)變?yōu)?5度)。在示例實施例150中,相應圖像102、104被覆蓋,以與觀察位置106、108之間的特定距離Iio相同的相對距離而有所偏移152。也就是說,例如,相應圖像102、104可以包括很多相同的圖像數據(例如,所捕捉的圖像對象);然而,第一圖像102可以包括距離第二圖像104的邊界103左側的偏移152所包括的附加圖像數據158,并且第二圖像104可以包括距離第一圖像102的邊界105右側的偏移152所包括的附加圖像數據160。另外,在該示例實施例150中,第一對象112的位置變化的第一感知距離154可以小于第二對象114的位置變化的第二感知距離156 ;其可以小于偏移距離152 (例如,相對地等同于第一觀察位置106和第二觀察位置108之間的特定距離110)。也就是說,例如,觀察者可以橫向移動,包括觀察距離(例 如,110和/或152),而諸如電線桿114的前景對象則可以在第一和第二圖像102、104之間移動小于觀察距離的第二距離156,而諸如建筑物112的背景對象可以移動小于第二距離156的第一距離154。以這種方式,作為示例,在橫向移動的同時,所觀察的前景對象會看上去比所觀察的背景對象移動得更快,這是視差的結果。如這里所提供的,可以設計一種方法,其提供了生成導致視差的諸如橫向全景(例如,人類尺度(human-scale)、街道標高(street-level)、全景圖像)的影像。從其獲取圖像的觀察位置之間的各種距離,以及圖像內對象的各種感知位置可以被用來識別包括圖像的圖像數據的相對分層(例如,前景、中景和/或背景對象層次)。具有基本上對應于第一深度的相應深度的對象可以被用來識別第一層,具有基本上對應于第二深度的相應深度的對象可以被用來識別第二層,等等。當沿生成的影像搖攝時,例如,層次可以以不同速度移動以對視差進行補償,因此在用戶與生成的影像進行交互時有效利用視差來提供更為自然、真實等的體驗。圖2是圖示用于呈現對視差進行補償的影像的示例性方法200的流程圖。示例性方法200在202開始。在204,接收圖像數據,其中該圖像數據包括第一層,其包括相關聯的第一深度,以及第二層,其包括相關聯的第二深度。作為一個示例,圖像數據可以包括多個圖像或者圖像內容的幀(例如,包括照片或視頻),其中圖像數據表示可以沿短的間隔進行收集的連續(xù)圖像(例如,每三米所收集的圖像),其示出了街道標高影像(例如,沿街道的一側)。此外,在一個實施例中,與相應圖像層次的圖像層次深度一起,可能已在圖像數據中識別出兩個或更多圖像層次。作為示例,街道一側的街道標高圖像可以包括前景中的對象(例如,汽車、人、設施和/或景觀等),中景中的對象(例如,建筑前方、商業(yè)標志和/或更多景觀等)以及背景中的對象(例如,山和/或空中的云等)。在該示例中,圖像數據可以包括三個層次,包括前景、中景和背景,其中相應層次與深度相關聯,包括從層次到觀察點的相對距離。在示例性方法200中的206,在生成的影像的第一深度合成第一層并且在生成的影像的第二深度合成第二層。作為一個示例,包括在第一深度所識別的對象的圖像部分(例如,處于第一深度范圍之內)可以被合成在一起作為第一層圖像數據(例如,包括第一層的圖像);并且包括在第二深度所識別的對象的圖像部分(例如,處于第二深度范圍之內)可以被合成在一起作為第二層圖像數據(例如,包括第二層的圖像)。此外,作為示例,第一層和第二層圖像數據可以被合并,生成包括處于第一深度(例如,處于影像的前景)的第一層以及處于第二深度(例如,在影像中第一層之后的背景中)的第二層的影像。在一個實施例中,第一層和第二層(例如,以及第三層、第四層等)中的至少一個可以包括對象標簽層,其中對象標簽層可以包括可與圖像數據中所識別的對象相關聯的信息。作為示例,對象標簽可以包括與圖像中的對象(和/或地理位置)相關的元數據,諸如實體名稱(例如,商業(yè)、公共運輸站、街道、興趣點等)、與實體相關的信息(例如,運營時間、公交時刻表、地址、聯系信息、描述信息、評論、網址等)、與實體和/或地理位置相關的網絡供給更新(例如,社交網絡供給、微博供給、新聞供給等),和/或與實體或地理位置相關聯的媒體(例如,圖像、視頻、音頻、直播媒體供給等)。在一個實施例中,例如,可以從一個或多個在線源接收所識別對象的地理位置數據并且合并在一個或多個層次中。作為示例,能夠從互聯網接收(例如,通過針對鏈接到對象和/或地理位置的數據而對互聯網進行抓取(crawl))與圖像數據中的對象相關聯的地理位置相關的信息(例如,指示用戶最近所處位置的社交狀態(tài)更新)。在一個實施例中,與對 象相關聯的信息可以在對象標簽層中對對象進行注釋,該對象標簽層可以合成在生成的影像中。另外,在一個實施例中,多于一個的對象標簽層可以被合成在生成的影像中。例如,前景對象標簽可以對前景中的對象進行注釋,中景對象標簽可以對中景中的對象進行注釋,和/或背景對象標簽可以對背景中的對象進行注釋。以這種方式,例如,運營時間可以出現以停留在背景的商業(yè)標志對象之上,餐食特殊廣告可以出現以停留在中景的餐廳對象之上,并且天氣信息可以出現以停留在背景的滑雪斜坡對象之上。在示例性方法200中的208,可以呈現生成的影像以對視差進行補償。第一層以第一移動速度進行呈現而第二層以第二移動速度進行呈現,其中第一移動速度和第二移動速度至少基于來自圖像數據的第一深度和第二深度。作為一個示例,第一深度到觀察點(例如,圖1A的106)的距離可以比第二深度更短。在該示例中,第二移動速度可以比第一移動速度慢,因為第二層包括比第一層中所包括的對象(例如,圖1A和IB的114)距離觀察點更遠的對象(例如,圖1A和IB的112)。作為一個示例,以不同相應速度呈現不同層次在觀看橫向全景時能夠提供使用視差來提升空間認知度的用戶體驗。也就是說,例如,橫向全景可以包括由多個相對連續(xù)圖像所組成的圖像,它們被拼接在一起以形成對視差進行補償的全景。在該示例中,通過以比背景層更快的速度對前景層進行搖攝,在搖攝圖像時,用戶的觀看體驗可以感覺到更像是從街道標高、人類尺度觀看影像,同時自然地體驗到視差。另外,作為一個示例,一個或多個對象標簽層可以被合成在生成的影像中,其中合成圖像可以包括使用視差來提供有所提升的觀看體驗的對象標簽。作為一個示例,對象標簽(例如,元數據覆蓋,諸如Ρ0Ι、門戶、透鏡等)可以在合成圖像中分層以便能夠參與到圖像之中。當用戶觀看和/或搖攝合成圖像時,對象標簽可以遵循與包括對象(例如,建筑物等)的一個或多個層次類似的視差規(guī)則。也就是說,例如,POI氣泡可以在第二層中所包括的商業(yè)之前而在第一層中進行呈現。在該示例中,包括該氣泡的第一層可以以比包括商業(yè)的第二層更快的速度(例如,在用戶搖攝時)進行“移動”;由此使用視差來創(chuàng)建空間用戶體驗,其中該氣泡看上去漂浮在建筑物之前,并且在搖攝期間以不同于建筑物的速率進行移動。在呈現了生成的影像之后,示例性方法200在210結束。圖3是圖示其中可以實施這里所描述的一種或多種技術的一個或多個部分的示例實施例300的流程圖。在302,識別圖像數據350中的層次可以包括在304識別第一圖像中的第一對象,并且在306識別第一圖像中的第二對象。另外,可以在308在第二圖像中識別第一對象,并且在310在第二圖像中識別第二對象。在一個實施例中,識別一個或多個層次可以包括從觀察點(例如,圖1A的106、108)識別圖像數據中各個對象的深度。例如,一種確定對象深度的方式可以是從兩個不同視角觀看相同對象(例如,就像動物,諸如人,利用立體視覺)。因此,在一個實施例中,第一個所識別對象可以在圖像數據的兩個不同圖像(例如,所收集的諸如街道的位置的橫向視圖的相對連續(xù)的圖像)中被識別;并且第二個所識別對象也可以在圖像數據的兩個不同圖像(例如,與用于第一對象相同的圖像)被識別。在312,可以針對第一對象確定第一深度,并且可以針對第二對象確定第二深度 (例如,以及針對第三對象的第三深度,和針對第四對象的第四深度,等等)。作為一個示例,第一深度可以通過從至少兩個不同視角(例如,兩個或更多相對連續(xù)的圖像)觀看第一對象來確定,并且第二深度可以通過從至少兩個不同視角觀看第二對象來確定。在該示例中,如以上所描述的,可以感知到由于相對于對象的觀察者位置(例如,用于相應圖像的觀察點)的變化所導致的所觀察對象的位置和/或方向的變化。例如,當觀察者改變其觀察位置時,針對對象的視線也會改變,這可以被用來識別對象的深度。在314,可以針對圖像數據識別兩個或更多層次,諸如前景和背景(例如,或者前景、中景和背景,或者更多)。此外,在316,至少基于相應對象的對象深度,所識別對象可以與至少一個所識別層次相關聯。作為一個示例,圖像數據中所識別的層次可以包括所期望深度范圍內的對象。例如,被識別為包括距離觀察點為零和零加X之間的深度的對象(例如,其中X是第一層的所期望深度)可以與第一層相關聯(例如,與圖像的觀察點最為接近)。另外,在該示例中,對于觀察點而言,被識別為包括零加X和零加Y之間的深度的對象(例如,其中Y是第二層的所期望深度)可以與第二層相關聯,等等。在示例實施例300中,在圖像數據350中識別層次會生成包括所識別的層次數據的圖像數據。作為示例,圖像數據350可以包括分別從沿諸如街道、道路或高速公路的位置的觀察點所收集的多個相對連續(xù)的(包括對象)圖像。例如,圖像數據可以包括描述(例如,以沿街道的所期望間隔(例如,距離)收集的)沿街道一側(或兩側)的街道標高影像的人類尺度圖像。生成的圖像數據352可以進一步包括識別出兩個或更多層次,并且識別出相應的所識別對象可以與哪一層相關聯(例如,對象1,層次I ;對象2,層次2 ;對象3,層次2 ;對象4,層次I ;等等)的層次數據。圖4是圖示其中可以實施這里所描述的一種或多種技術的一個或多個部分的示例實施例400的流程圖。在一個方面,諸如平面全景影像之類的影像可以包括所不期望的對象視圖。作為示例,當圖像數據中所包括的圖像被拼接在一起以形成平面全景時,壓縮對象(例如,裁切)、遮蔽對象(例如,被所不期望對象所遮蔽的所期望對象)、重復對象和/或不希望出現的對象(例如,分散注意力和/或不需要的)可以包括在生成的影像中。在一個實施例中,所不期望視圖可以在生成的影像中被識別并弱化。在示例實施例400中的402,如果存在,可以在圖像數據452 (例如,包括層次數據的圖像數據,諸如圖3的352)中識別所不期望的對象視圖(例如,一個或多個所不期望對象的一個或多個所不期望視圖)。如果所不期望的對象視圖被識別(402處的是),則在406,影像(例如,具有層次的圖像數據452)可以被合成而沒有所不期望的視圖。作為一個示例,包括圖像數據在內的位置的兩個或更多連續(xù)圖像幀可以包括相對相同的對象。然而,在該示例中,連續(xù)幀可以包括不同視圖,以使得第一幀包括所期望視圖而第二幀包括所不期望的視圖。在該示例中,生成的影像可以使用第一幀而不是第二幀來合成。在另一個示例中,可以從包括所不期望視圖的幀中去除(例如,擦除、裁切、覆蓋、填充等)所不期望的對象,以使得生成的影像并不包括所不期望的對象。如果圖像數據452并不包括所不期望的對象視圖(402處的否)(例如,和/或在406去除了所不期望的視圖之后),在404,在圖像數據452中所識別的相應層次可以根據它們相關聯的深度在生成的影像中進行合成。作為一個示例,諸如包括前景對象的前景層次的第一層可以被合成在生成的影像的前景,諸如包括中景對象的中景層次的第二層可以被合成在生成的影像中的第一層之后,并且諸 如包括背景對象的背景層次的第三層可以被合成在生成的影像中的第二層之后。在一個實施例中,所接收的圖像數據452可以包括對象標簽層,其中該對象標簽層包括可以與圖像數據中所識別的對象相關聯的信息。作為一個示例,圖像數據452中的對象可以包括建筑物、商業(yè)、興趣點、地理位置、街道等。在該示例中,一個或多個對象可以分別于諸如商業(yè)名稱、運營時間、描述信息、位置名稱、來自社交網絡的更新、評價、媒體以及更多內容相關聯。在412,如果圖像數據452包括對象標簽層(408處的是),則對象標簽層中的標簽可以對與標簽中的信息相關聯的相應對象進行注釋。在一個實施例中,包括對對象進行注釋的標簽的對象標簽層例如可以在生成的影像中的第三深度進行合成。在一個實施例中,對象標簽層可以被合成在生成的影像中,以使得該對象標簽層包括生成的影像中的對象的相應標簽。在另一個實施例中,包括對象影像的層次可以與對象標簽層相關聯。作為示例,在該實施例中,第一對象的圖像層次可以與第一對象標簽層相關聯,第二對象的圖像層次可以與第二對象標簽層相關聯,和/或第三對象的圖像層次可以與第三對象標簽層相關聯,等等。以這種方式,例如,相應層次中的相應對象可以利用包括與標簽相關聯的信息的標簽進行注釋。作為說明性示例,圖5圖示了其中可以實施這里所描述的一種或多種技術的一個或多個部分的示例實施例500。在該示例實施例500中,三個層次502、504、506被合成在生成的影像中。第一層506包括前景影像,諸如可以在街道位置的前景所觀察到的對象(例如,汽車、人、設施、人行道等)。第二層504包括中景影像,諸如可以在前景影像之后觀察到的對象(例如,建筑物、商業(yè)標志、建筑物入口等)。第三層502包括背景影像,諸如在中景影像之后的、可能從遠處觀察到的對象(例如,風景、天空、遠處的建筑物等)。另外,在該示例實施例500中,相應層次502、504、506可以包括標簽508,其指示興趣點(Ρ0Ι )、門戶、透鏡、其它元數據覆蓋等。作為示例,背景層502的POI標簽508可以指示遠處對象(例如,看不到的),諸如遠處的城市名稱、古跡、建筑物名稱等。作為另一個示例,中景層504的POI標簽508可以指示影像中所看到的對象,諸如商業(yè)名稱、位置的描述符(例如,商業(yè)類型、運營時間等),等等。作為另一個示例,前景層506的POI標簽508可以指示前景中的對象(例如,具有時間表的巴士站、交叉的街道名稱等),和/或地理位置的更新信息(例如,針對位置的在線社交網絡更新)。在一個實施例中,第一層(例如,或者其它層次之一)可以包括包含針對地理位置的一個或多個POI列表(例如,處于地理位置或其附近)的對象標簽層。作為示例,地理位置(例如,包括與影像相關聯的區(qū)域,諸如商場、公園等)可以包括一個或多個Ρ0Ι。在該示例中,可以在影像中針對相應地理位置在對象標簽層(例如,506)中的標簽中指示POI列表。在另一個實施例中,在相應層次中,標簽508可以針對影像中的相應POI進行注釋。作為示例,相應層次502、504、506可以與包括相關聯層次的一個或多個標簽的對象標簽層相關聯。而且,多于一個的標簽層可以與一個層次相關聯以使得標簽的特征、功能、表現等可以獨立于其它標簽(例如,以使得標簽能夠單獨追蹤相關聯對象(例如,在相關聯對象上進行停留、點擊等時改變顏色等))。返回圖4,在410,可以接收搖攝速度454的指示。作為一個示例,用戶可以諸如在附屬于計算設備的屏幕上觀看生成的影像,其中生成的影像包括街道標高位置的平面全景。在該示例中,用戶可以通過輸入搖攝命令(例如,使用鼠標、使用觸摸屏上的翻頁手勢 等)對影像進行搖攝(例如,向左、右、上和/或下)。另外,在該示例中,搖攝輸入可以包括所期望的搖攝速度454 (例如,由用戶對影像進行多快的搖攝)。在414,可以確定生成的影像中相應層次的移動速度。在一個實施例中,至少基于所接收的搖攝速度454,可以為第一層確定第一移動速度,并且可以為第二層確定第二移動速度(例如,以及針對第三層的第三移動速度,等等)。作為說明性示例,在圖5中,第一層506可以具有比第二層504的第二移動速度更高的第一移動速度,并且第三層503可以具有比第二移動速度更慢的移動速度。作為一個示例,由于(如以上所描述的)視差,前景中的對象在橫向移動時可能看上去比背景(例如,和/或中景)中的對象移動更快。在一個實施例中,生成的影像中所合成的層次的移動速度可以基于對象(例如,距離觀察點)的深度以及搖攝速度(例如,圖4的454)。也就是說,例如,在確定層次的移動速度時,搖攝速度可以被統(tǒng)一應用于相應層次(例如,相同的搖攝速度被用來確定相應層次的移動速度),并且不同深度變量可以被用于相應層次。以這種方式,例如,層次在生成的影像中合成地越深,無論搖攝速度如何,該層次的移動速度在所呈現圖像視圖中將更慢(例如,相對所呈現影像中的其它層)。返回圖4,生成的橫向全景(例如,平面全景)影像456可以包括相應層次以及相關聯的移動速度。在一個實施例中,生成的橫向全景影像456可以包括如以上所描述的對象標簽層,其具有相關聯的對象標簽層移動速度。在一個實施例中,對象標簽層移動速度至少可以基于權重因數。作為示例,可能期望以與相關聯層次不同的移動速度呈現POI的標簽,該層次包括POI標簽對其進行注釋的對象(例如,對遠處背景城市進行注釋的城市名稱),以使得標簽和對象在所呈現的生成的影像中以不同速度移動(例如,由于城市可能相對大以使得即使標簽沒有以與城市相同的程度進行移動其仍然可以以足夠的準確程度“指向”該城市)。在該示例中,權重因數可以被應用于對象標簽層,導致比對象標簽層所關聯的層次的移動速度更快(例如,或者更慢)的移動速度。在示例實施例400中的416,生成的影像456可以被呈現458,其中相應層次以其相關聯的移動速度被呈現。作為說明性示例,在圖5中,第一層506可以被呈現在第二層504之前,該第二層504可以被呈現在第三層503之前。另外,作為示例,在進行搖攝時,第一層506可以以第一移動速度進行呈現;第二層可以以比第一移動速度更慢的第二移動速度進行呈現;并且第三層502可以以比第二移動速度更慢的第三移動速度進行呈現。以這種方式,例如,可以對視差效應進行補償以創(chuàng)建并呈現影像458 (圖4中),由此為用戶提供有所提升的用戶體驗(例如,與以街道標高自然觀看的更為接近),其中視差可以被用來提升體驗。通過在創(chuàng)建橫向全景影像時對視差進行補償,可以設計一種能夠使用視差而為橫向全景影像提供更為自然的觀看體驗的系統(tǒng)。二維圖像(例如,照片)可以被拼接在一起以提供位置的全景視圖,諸如位置的街道標高影像。在從不同觀察位置觀看對象時,視差可以提供對象的不同觀看角度。通過在生成的影像中以不同深度合成層次而可以導致視差效應,其中相應層次包括與相應深度相關聯的對象 。另外,在(例如,由觀看所呈現影像的用戶)對生成的影像進行搖攝時,相應層次可以根據其深度而以不同速度進行移動。圖6是圖示用于呈現對視差進行補償的影像的示例性系統(tǒng)600的組件示圖。在示例性系統(tǒng)600中,被配置為為系統(tǒng)處理數據的基于計算機的處理器602可操作地與影像合成組件604相耦接。影像合成組件604被配置為將所接收的圖像數據650合成到生成的影像652,其中生成的影像652包括置于第一深度的第一層并且包括置于第二深度的第二層(例如,和/或處于其它深度的其它層,等等)。在示例性實施例600中,移動速度確定組件606可操作地與處理器602相耦接。移動速度確定組件606被配置為為第一層確定第一移動速度以及為第二層確定第二移動速度,等等。第一和第二移動速度至少基于第一深度和第二深度所確定,例如,生成包括相應層次、相關聯深度和相關聯速度的影像654。影像呈現組件608可操作地與處理器602相耦接,并且被配置為以第一移動速度呈現生成的影像654中的第一層并且以第二移動速度呈現生成的影像654中的第二層,等等。例如,通過以不同速度呈現第一和第二層(例如,前方層次比后方層次更快),視差被用來向影像的用戶提供有所提升的空間體驗。圖7是圖示可以實施這里所描述的一個或多個系統(tǒng)的示例實施例700的組件示圖。在該示例700中,提供了圖6的擴展并且因此為了簡明可以不對關于圖6所描述的部件、組件等的描述進行重復。在示例實施例700中,深度確定組件710可以被配置為確定圖像數據750中的第一深度和/或第二深度以生成具有深度的圖像數據755。例如,確定第一和/或第二層的深度可以基于來自第一圖像中的第一視角的圖像數據750中對象的第一對象深度,和/或來自第二圖像中的第二視角的圖像數據750中對象的第二對象深度。深度確定組件710可以包括對象深度確定組件712,其可以被配置為識別圖像數據750中的一個或多個對象。另外,對象深度確定組件712可以被配置為確定第一對象深度和/或第二對象深度。第一對象深度和/或第二對象深度例如可以包括對象和圖像捕捉位置之間的距離。作為示例,對象深度確定組件712可以從圖像數據750中的圖像序列中識別置于兩個或更多相對連續(xù)圖像中的對象。在該示例中,對象深度確定組件712能夠識別出對象和觀察點之間的距離。作為示例,第一圖像可以包括來自第一觀察點的沿第一視線的對象的第一視圖,并且第二圖像可以包括來自第二觀察點的沿第二視線的對象的第二視圖。在該示例中,當第一觀察點和第二觀察點之間(例如,第一圖像的圖像捕捉點和第二圖像的圖像捕捉點之間)的距離已知時,到對象和相鄰對象的第一和第二視線之間的角度變化可以被用來識別出到對象的距離。作為另一個示例,第一對象深度和/或第二對象深度可以由圖像數據中所包括的元數據來識別。作為一個示例,光線檢測和排列(LIDAR)類型的設備可以隨用來捕捉位置圖像的圖像捕捉設備一起使用。在該示例中,LIDAR可以收集成像設備在圖像捕捉期間所捕捉的對象的距離元數據,并且該距離元數據可以被包括在所接收的圖像數據中。例如,以這種方式,到所識別對象的距離可以由距離元數據所提供。在示例實施例700中,對象標簽層組件714可以被配置為識別圖像數據750的對象標簽層。在一個實施例中,對象標簽層組件714可以接收對象標簽層數據758,其中對象標簽層數據758可以包括與圖像數據中的對象相關聯的信息。另外,對象標簽層組件714可以對生成的影像752中的對象注釋762以與該對象相關聯的至少一部分信息。作為一個示例,對象標簽層可以被合成在生成的影像756中,其中對象標簽層可以使用視差來提供有所提升的觀看體驗。例如,對象標簽(例如,元數據覆蓋,諸如Ρ0Ι、門戶、透鏡等)可以在 生成的影像756中進行分層(例如,第一),并且當用戶對圖像進行搖攝時,對象標簽層可以通過以與圖像中的對象有所不同的搖攝速度進行移動而出現以體驗視差。也就是說,例如,對象標簽可以被呈現在第二層中所包括的建筑物之前的第一層中。在該示例中,包括對象標簽的第一層可以以比包括建筑物的第二層更快的速度進行呈現;由此使用視差來創(chuàng)建對象標簽看上去處于建筑物之前的空間用戶體驗。在一個實施例中,與對象相關聯的信息可以包括表示對象位置的地理位置數據(例如,位置名稱、地址、坐標等)。另外,與對象相關聯的信息可以包括識別對象的標識信息(例如,POI名稱、商業(yè)名稱等)。此外,與對象相關聯的信息可以包括提供與該對象相關的信息的描述符信息(例如,與POI相關的信息、在線用戶更新等)。在一個實施例中,移動速度確定組件606可以被配置為至少基于所接收的生成的影像754的搖攝速度760的指示來確定第一移動速度和第二移動速度。在一個實施例中,移動速度確定組件606可以被配置為至少基于例如與對象標簽層相關聯的第三深度并且基于所接收的搖攝速度760的指示來確定對象標簽層的第三移動速度。在示例700中,不期望的視圖弱化組件716可以被配置為弱化圖像數據中所不期望的對象視圖。在一個實施例中,不期望的視圖弱化組件716能夠識別圖像數據750中所不期望的對象視圖,諸如遮擋了影像中的期望對象的所不期望對象。另外,不期望的視圖弱化組件716能夠至少基于第一深度和第二深度而對生成的影像752應用一種或多種調整764(例如,對象去除、圖像幀去除等)來弱化不期望的對象視圖。再另一個實施例涉及一種計算機可讀介質,其包括被配置為實施這里所給出的一種或多種技術的處理器可執(zhí)行指令。圖8圖示了可以以這些方式進行設計的一種示例性計算機可讀介質,其中實施方式800包括計算機可讀數據806在其上進行編碼的計算機可讀介質808 (例如,⑶-R、DVD-R或硬盤驅動器的盤片)。該計算機可讀數據806進而包括被配置為根據這里所給出的一個或多個原則進行操作的計算機指令804的集合。在一個這樣的實施例802中,處理器可執(zhí)行指令804例如可以被配置為執(zhí)行諸如圖2的示例性方法200的至少一些的方法。在另一個這樣的實施例中,處理器可執(zhí)行指令804例如可以被配置為實施諸如圖6的示例性系統(tǒng)600的至少一些的系統(tǒng)。許多這樣的計算機可讀媒體可以由本領域技術人員所設計,其可以被配置為依據這里所給出的技術進行操作。雖然已經以特定于結構特征和/或方法動作的語言對主題進行了描述,但是所要理解的是,所附權利要求中所限定的主題并不必然局限于以上所描述的具體特征或動作。相反,以上所描述的具體特征和動作是作為實施權利要求的示例形式而公開。如本申請中所使用的,術語“組件”、“模塊”、“系統(tǒng)”、“接口”等總體上意在指代計算機相關實體,其為硬件、硬件和軟件的組合、軟件或者執(zhí)行中的軟件。例如,組件可以是處理器上運行的進程、處理器、對象、可執(zhí)行程序、執(zhí)行的線程、程序和/或計算機,但是并不局限于此。通過說明,控制器上運行的應用以及控制器都可以是組件。一個或多個組件可以存在于進程和/或執(zhí)行的線程之內,并且組件可以位于一個計算機上和/或在兩個或更多計算機之間進行分布。
此外,所要求保護的主題可以被實施為方法、裝置或制造品,其使用標準編程和/或工程技術來產生軟件、固件、硬件或者其任意組合以控制計算機來實施所公開的主題。如這里所使用的術語“制造品”意在包含可從任意計算機可讀設備、載體或媒體進行訪問的計算機程序。當然,本領域技術人員將會認識到,可以對該配置進行許多修改而并不背離所請求保護主題的范圍和精神。圖9和以下討論提供了實施這里所給出的一個或多個提供內容的實施例的適當計算環(huán)境的簡要、總體的描述。圖9的操作環(huán)境僅是適當操作環(huán)境的一個示例而并非意在對操作環(huán)境的使用或功能的范圍暗示任何限制。示例計算設備包括個人計算機、服務器計算機、手持或膝上設備、移動設備(諸如智能電話、個人數字助理(PDA)、媒體播放器等)、多處理器系統(tǒng)、消費者電器、小型計算機、大型計算機、包括以上任意系統(tǒng)或設備的分布式計算環(huán)境,等等,但是并不局限于此。雖然并未要求,但是實施例在由一個或多個計算設備所執(zhí)行的“計算機可讀指令”的一般背景下進行描述。計算機可讀指令可以經由(以下討論的)計算機可讀媒體進行分布。計算機可讀指令可以被實施為執(zhí)行特定任務或實施特定抽象數據類型的程序模塊,諸如函數、對象、應用編程接口(API)、數據結構等。典型地,計算機可讀指令的功能可以如各個實施例中所期望地進行合并或分布。圖9圖示了系統(tǒng)900的示例,其包括被配置為實施這里所提供的一個或多個實施例的計算設備912。在一種配置中,計算設備912包括至少一個處理單元916和存儲器918。根據計算設備的確切配置和類型,存儲器918可以是易失性(例如,諸如RAM)、非易失性(例如,諸如ROM、閃存等)或者二者的某種組合。該配置在圖9中由虛線914所圖示。在其它實施例中,設備912可以包括附加的特征和/或功能。例如,設備912還可以包括附加存儲(例如,可移動和/或非可移動的),包括但并不局限于磁性存儲、光學存儲等。這樣的附加存儲在圖9中由存儲920所圖示。在一個實施例中,用于實施這里所提供的一個或多個實施例的計算機可讀指令可以處于存儲920中。存儲920還可以存儲其它計算機可讀指令以實施操作系統(tǒng)、應用程序等。例如,計算機可讀指令可以加載到存儲器918中以便由處理單元916來執(zhí)行。如這里所使用的術語“計算機可讀媒體”包括計算機存儲媒體。計算機存儲媒體包括以用于存儲諸如計算機可讀指令或其它數據的信息的任意方法或技術所實施的易失性和非易失性、可移動和非可移動媒體。存儲器918和存儲920是計算機存儲媒體的示例。計算機存儲媒體包括RAM、ROM、EEPR0M、閃存或其它存儲器技術,CD-ROM、數字多功能盤(DVD)或其它光學存儲、磁性盒帶、磁帶、磁盤存儲或其它磁性存儲設備,或者能夠被用來存儲所期望信息并且能夠由設備912訪問的任意其它介質。任意這樣的計算機存儲媒體都可以是設備912的一部分。設備912還可以包括允許設備912與其它設備進行通信的(多個)通信連接926。(多個)通信連接926可以包括調制解調器、網絡接口卡(NIC)、集成網絡接口、射頻傳送器/接收器、紅外端口、USB連接,或者用于將計算設備912連接至其它計算設備的其它接口,但是并不局限于此。(多個)通信連接926可以包括有線連接或無線連接。(多個)通信連接926可以傳送和/或接收通信媒體。術語“計算機可讀媒體”可以包括通信媒體。通信媒體通常以諸如載波或其它傳輸 機制的“調制數據信號”來體現計算機可讀指令或其它數據,并且包括任意信息傳遞媒體。術語“調制數據信號”可以包括使得其一個或多個特征以在該信號中編碼信息的方式進行設置或改變的信號。設備912可以包括諸如鍵盤、鼠標、筆、語音輸入設備、觸摸輸入設備、紅外相機、視頻輸入設備和/或任意其它輸入設備的(多個)輸入設備924。設備912中還可以包括諸如一個或多個顯不器、揚聲器、打印機和/或任意其它輸出設備的(多個)輸出設備922。(多個)輸入設備924和(多個)輸出設備922可以經由有線連接、無線連接或者其任意組合而連接至設備912。在一個實施例中,來自另一個計算設備的輸入設備或輸出設備可以被用作用于計算設備912的(多個)輸入設備924或(多個)輸出設備922。計算設備912的組件可以通過諸如總線的各種互連進行連接。這樣的互連可以包括外部組件互連(PCI ),諸如PCI Express,通用串行總線(USB)、火線(IEEE 1394)、光學總線結構等。在另一個實施例中,計算設備912的組件可以通過網絡進行互連。例如,存儲器918可以由位于通過網絡進行互連的不同物理位置的多個物理存儲器單元所構成。本領域技術人員將會認識到,用來存儲計算機可讀指令的存儲設備可以跨網絡進行分布。例如,可經由網絡928進行訪問的計算設備930可以存儲計算機可讀指令以實施這里所提供的一個或多個實施例。計算設備912可以訪問計算設備930并且下載部分或全部計算機可讀指令以便執(zhí)行。可替換地,計算設備912可以按照需要下載計算機可讀指令的片段,或者一些指令可以在計算設備912執(zhí)行而一些則在計算設備930執(zhí)行。這里提供了實施例的各種操作。在一個實施例中,在一個實施例中,所描述的一個或多個操作可以構成存儲在一個或多個計算機可讀媒體上的計算機可讀指令,如果被計算設備所執(zhí)行,其將使得該計算設備執(zhí)行所描述的操作。一些或所有操作被描述的順序不應當被理解為暗示了這些操作必然是依賴于順序的。本領域技術人員借助于該說明書將會意識到可替換地排序。另外,將要理解的是,并非所有操作都必然出現在這里所提供的每個實施例中。此外,詞語“示例性”在這里被用來表示用作示例、實例或說明。這里被描述為“示例性”的任意方面或設計都不必被理解為優(yōu)于其它方面或設計。相反,使用詞語示例性意在以具體的方式給出概念。如本申請中所使用的,術語“或”意在表示包含性的“或”而非排他性的“或”。也就是說,除非另外指出或者從上下文所明確,否則“X采用A或B”意在表示任意的自然包含性的排列。也就是說,如果X采用A ;X采用B ;或者X采用A和B,則“X采用A或B”在以上任意實例下都得以滿足。另外,A和B中的至少一個等一般表示A或B或者A和B 二者。此外,除非另外指出或者從上下文明確為針對單數形式,否則如本申請和所附權利要求中所使用的冠詞“一個”(“a”和“an”)通??梢员焕斫鉃楸硎尽耙粋€或多個”。而且,雖然已經關于一個或多個實施方式示出并描述了本公開,但是基于對本說明書和附圖的閱讀和理解,對于本領域技術人員而言將能夠進行等同的變化和修改。本公開包括所有這樣的修改和變化并且僅由以下權利要求的范圍所限制。特別是關于以上所描述組件(例如,部件、資源等)所執(zhí)行的各種功能,除非另外指出,否則用來描述這樣的組件的術語意在對應于執(zhí)行所描述組件的指定功能(例如,功能等同)的任意組件,盡管在結構上并不等同于執(zhí)行本公開這里所說明的示例性實施方式中的功能的所公開的結構。此外,雖然已經僅關于若干實施方式之一公開了本公開的特定特征,但是如可能所期望的并且對于任意給定或特定應用有利的,這樣的特征可以與其它實施方式的一個或多個其它特征相結合。此外,至于如具體實施方式
或權利要求中所使用的術語“包括”、“具有”、“有” “帶有” 或其變化形式的范圍而言,這樣的術語意在與術語“包含”類似的方式而是包含性的。
權利要求
1.一種基于計算機的用于呈現對視差進行補償的影像的方法(200),包括 接收包括第一層和第二層的圖像數據,所述第一層包括第一深度,所述第二層包括第二深度(204); 在生成的影像中的第一深度合成第一層并且在生成的影像中的第二深度合成第二層(206);并且 呈現生成的影像以對視差進行補償,包括以第一移動速度呈現第一層并且以第二移動速度呈現第二層,所述第一移動速度和第二移動速度至少基于第一深度和第二深度,呈現的至少一部分由基于計算機的處理器所執(zhí)行(208)。
2.根據權利要求1的方法,所述生成的影像包括由從相對應圖像數據所獲得的多個合并的連續(xù)圖像所創(chuàng)建的橫向全景。
3.根據權利要求1的方法,包括確定第一深度和第二深度中的至少一個,包括以下一個或多個 對第一圖像中來自第一視角的圖像數據中的對象識別第一對象深度;并且 對第二圖像中來自第二視角的圖像數據中的對象識別第二對象深度。
4.根據權利要求1的方法,第一層和第二層中的至少一個包括對象標簽層,所述對象標簽層包括與圖像數據中所識別的對象相關聯的信息。
5.根據權利要求1的方法,第一層包括前景圖像數據,而第二層包括背景圖像數據。
6.根據權利要求1的方法,包括 接收生成的影像的搖攝速度的指示;并且 至少基于所述搖攝速度確定第一移動速度和第二移動速度。
7.根據權利要求1的方法,包括 識別圖像數據中所不期望的對象視圖;并且 至少基于第一深度和第二深度合成生成的影像以弱化所述所不期望的對象視圖。
8.一種用于呈現對視差進行補償的影像的系統(tǒng)(600),包括 被配置為處理系統(tǒng)的數據的基于計算機的處理器(602); 可操作地與所述處理器相耦接的影像合成組件(604),其被配置為將所接收的圖像數據合成為生成的影像,所述生成的影像包括置于第一深度的第一層以及置于第二深度的第二層; 可操作地與所述處理器相耦接的移動速度確定組件(606),其被配置為至少基于第一深度和第二深度確定第一層的第一移動速度以及第二層的第二移動速度;和 可操作地與所述處理器相耦接的影像呈現組件(608),其被配置為以第一移動速度呈現生成的影像中的第一層并且以第二移動速度呈現生成的影像中的第二層以對視差進行補償。
9.根據權利要求8的系統(tǒng),包括深度確定組件,其被配置為基于以下一個或多個來確定第一深度和第二深度中的至少一個 第一圖像中來自第一視角的圖像數據中的對象的第一對象深度;和 第二圖像中來自第二視角的圖像數據中的對象的第二對象深度。
10.根據權利要求8的系統(tǒng),包括對象標簽層組件,其被配置為識別圖像數據的對象標簽層,所述識別包括以下一個或多個接收對象標簽層數據,所述對象標簽層數據包括與圖像數據中的對象相關聯的信息;并且 對生成的影像中的對象注釋以與該對象相關聯的至少一部分信息。
11.一種或多種其上存儲計算機可執(zhí)行指令的計算機可讀存儲媒體,所述指令當由計算設備執(zhí)行時,使得所述計算設備實現如權利要求1 一 7中的任一個所述的方法。
全文摘要
除其它之外,公開了用于呈現對視差進行補償的影像的一種或多種技術和/或系統(tǒng)。圖像數據包括諸如沿路徑以已知間隔(例如,距離)所收集的一個位置的圖像的序列。圖像數據可以包括第一層,其包括第一深度,以及第二層,其包括與第一深度有所不同的第二深度。圖像數據可以被合成為生成的影像,其中第一層被合成在第一深度而第二層被合成在第二深度。生成的影像可以被呈現以對視差進行補償而不是對其加以利用,以使得第一層至少基于第一深度以第一移動速度進行呈現,而第二層至少基于第二深度以第二移動速度進行呈現。
文檔編號H04N13/00GK103024416SQ20121054080
公開日2013年4月3日 申請日期2012年12月14日 優(yōu)先權日2011年12月14日
發(fā)明者T.旺特蘭德, G.A.拉莫斯, D.巴內特 申請人:微軟公司