用於高效深度圖像變換的方法和設備與流程
2023-08-10 15:25:01 1

本申請主張2015年9月3日遞交的標題為「用於高效深度圖像變換的方法和設備」的第14/845,203號美國申請以及2014年9月5日遞交的標題為「用於高效深度圖像變換的方法和設備」的第62/046,860號美國臨時申請的權益,所述申請以引用的方式併入本文中。
技術領域
本文中所揭示的標的物大體上涉及深度相機輸出圖像處理。
背景技術:
移動或可攜式裝置通常包含廣泛的特徵集合以滿足各種各樣的使用需求。這些裝置可以包括多種多樣的用於記錄環境數據的傳感器,例如彩色圖像相機傳感器。另外,一些裝置還包括深度相機傳感器以俘獲用於場景的對象距離信息。對於一些應用(例如,擴增實境),深度圖像信息可以用於映射環境中的3D對象。深度相機通常是放置在與彩色相機相比不同的但是附近的位置中的獨立相機。
因此,當深度相機和彩色相機在大致相同的時間觸發時,深度相機和相機傳感器通常從略微不同的視點俘獲圖像。在視點和其它因素(例如焦距、解析度)中的細微的差異或在相機/傳感器特性中的其它差異意味著可能發生一些類別的轉變以便適當地將深度信息應用在彩色相機坐標系中。將深度信息應用於彩色相機坐標系是所期望的,這是因為擴增實境應用的輸出通常利用場景的彩色相機圖像作為用於擴增的基礎。
深度圖像可以由2D坐標系中的像素組成,其中每個像素表示深度值或距離值。可以將來自深度相機的深度信息映射到彩色相機以輔助擴增實境應用。
然而,擴增實境系統通常包括與彩色相機物理地隔開且不同於彩色相機的深度相機。因此,用於深度相機和彩色相機的相機視點將不是相同的匹配。舉例來說,深度相機可以放置在相對於彩色相機(例如,集成到行動電話或其它裝置中的)的左側、右側或某個方向。
由於視差效應,深度相機的深度圖可以具有用於在兩個不同深度處的兩個點的深度值,其中從彩色相機的角度,兩個點中較近的點遮擋較遠的點,並且因此彩色相機的圖像僅俘獲兩個點中較近的點。當嘗試將來自深度圖的數據集成到通過彩色相機拍攝的彩色圖像時,忽略此上文所描述的遮擋可產生輸出錯誤並且影響用戶體驗。
技術實現要素:
本文中所揭示的實施例可涉及一種用於深度相機圖像變換的方法。所述方法可以包括接收來自深度相機的深度相機圖像,並且根據深度相機相對於另一個物理位置的物理位置確定處理順序,所述處理順序用於將深度相機圖像的點變換到在與另一個物理位置相關聯的另一個坐標系中的深度圖像中。所述方法還可以包括在不測試深度的情況下根據所確定的處理順序將深度相機圖像變換到另一個坐標系的坐標系中。
本文中所揭示的實施例還可以涉及具有執行深度相機圖像變換的指令的機器可讀取非暫時性存儲媒體。所述媒體可以包括接收來自深度相機的深度相機圖像並且根據深度相機相對於另一個物理位置的物理位置確定處理順序的指令,所述處理順序用於將深度相機圖像的點變換到在與另一個物理位置相關聯的另一個坐標系中的深度圖像中。所述媒體還可以包括在不測試深度的情況下根據所確定的處理順序將深度相機圖像變換到另一個坐標系的坐標系中的指令。
本文中所揭示的實施例還可以涉及一種包括用於深度相機圖像變換的裝置的設備。所述設備可以包括用於接收來自深度相機的深度相機圖像的裝置以及用於根據深度相機相對於另一個物理位置的物理位置來確定處理順序的裝置,所述處理順序用於將深度相機圖像的點變換到在與另一個物理位置相關聯的另一個坐標系中的深度圖像中。所述設備還可以包括用於在不測試深度的情況下根據所確定的處理順序將深度相機圖像變換到另一個坐標系的坐標系中的裝置。
本文中所揭示的實施例可能進一步涉及移動裝置,其包括處理器以及可配置以存儲執行深度相機圖像變換的指令的存儲裝置。所述裝置可以包括接收來自深度相機的深度相機圖像並且根據深度相機相對於另一個物理位置的物理位置確定處理順序的指令,所述處理順序用於將深度相機圖像的點變換到在與另一個物理位置相關聯的另一個坐標系中的深度圖像中。所述裝置還可以包括在不測試深度的情況下根據所確定的處理順序將深度相機圖像變換到另一個坐標系的坐標系中的指令。
其它特徵及優點將從附圖及具體實施方式中顯而易見。
附圖說明
圖1是一個實施例中的系統的框圖,在所述系統中可以實踐高效深度圖像變換(Efficient Depth Image Transformation,EDIT)的方面;
圖2是在一個實施例中用於執行EDIT的方法;
圖3說明了在一個實施例中俘獲包括目標對象的場景的裝置;
圖4說明了在一個實施例中來自圖3的深度相機圖像;
圖5說明了在一個實施例中通過EDIT執行的可能的處理方向的樣本;
圖6說明了在一個實施例中的運行環境,其中EDIT可以執行從右到左的深度相機圖像處理;以及
圖7說明了在一個實施例中的一個運行環境,其中EDIT可以執行從下到上的深度相機圖像處理。
具體實施方式
詞語「示例性」或「實例」在本文中用於表示「充當實例、例子或說明」。本文中描述為「示例性」或描述為「實例」的任何方面或實施例未必應被解釋為比其它方面或實施例優選或有利。
如上文所介紹,如果不恰當地操縱,那麼結合彩色/RGB(紅色、綠色和藍色)相機傳感器使用深度相機傳感器可以產生遮擋。校正兩個相機遮擋的一種方法是將來自深度相機視點的深度數據映射到彩色相機視點。映射深度數據可以包括解除投影深度圖數據、將深度圖數據變換到新的視點以及再次投影深度圖數據。作為典型的映射過程的一部分,當僅應當存儲最近距離表項時,多個深度圖樣本可能落在同一像素處。確定應當存儲哪一個像素的一個解決方法是測試表項是否已經存在於新的圖中以及確定所述之前所存儲的表項是否是更靠近的(確定遮擋)。本文中所介紹的確定遮擋也可被稱為深度測試,這需要處理時間以完成對可能被遮擋的每個像素的處理。
在一個實施例中,高效深度圖變換(本文中簡單地描述為「EDIT」)將深度圖變換(例如,作為集成到例如下文描述的裝置100的裝置中的過程、模塊、引擎或方法)為彩色相機坐標系同時考慮遮擋且沒有清楚的像素存在和距離測試。在一個實施例中,EDIT俘獲深度相機圖像和彩色相機圖像並且通過確定深度相機相對於另一個物理位置(例如,彩色相機的位置)的物理位置有效地處理深度相機圖像。深度相機圖像可以按照通過相對物理位置所確定的順序被變換到彩色相機的坐標系中。舉例來說,如果深度相機安裝在彩色相機的右側,那麼EDIT可以按照從右到左的處理順序變換來自深度相機圖像的點,這種處理順序在本文中也被描述為掃描順序。其它物理位置也是可能的並且在下文進行更詳細地描述。與先前技術相比點的變換可以快很多,因為不存在針對深度或遮擋的清楚的測試,或者在使用本文中描述的EDIT的技術的同時不需要此類測試。
圖1是說明其中可實踐本發明的實施例的裝置的框圖。所述系統可以是裝置100,其可以包括通用處理器161、EDIT模塊170和存儲器164。為了清晰起見EDIT模塊170是與處理器161和/或硬體162分開示出的,但是EDIT模塊170可以基於軟體165和固件163中的指令組合在處理器161和/或硬體162中和/或在處理器161和/或硬體162中實施。控制單元160可經配置以實施執行如本文所述的EDIT的方法。舉例來說,裝置100和控制單元160可經配置以實施在下文的圖2中所描述的過程。
裝置100可以是移動裝置、無線裝置、蜂窩電話、擴增實境裝置(AR)、個人數字助理、可穿戴式裝置(例如,眼鏡、手錶、頭飾或類似身體附接裝置)、移動計算機、平板計算機、個人計算機、膝上型計算機、數據處理裝置/系統,伺服器,或具有處理和/或顯示能力的任何類型的裝置。
裝置100可以包括能夠呈現彩色圖像(包括3D圖像)的屏幕或顯示器112。在一些實施例中,顯示器112可用於顯示由彩色相機114俘獲的實況圖像、擴增實境(AR)圖像、圖形用戶接口(GUI)、程序輸出等。在一些實施例中,顯示器112可以包括和/或容納有觸控螢幕,以準許用戶經由虛擬鍵盤、圖標、菜單或其它圖形用戶接口(GUI)、用戶手勢和/或輸入裝置(例如觸控筆及其它寫入工具)的某一組合輸入數據。在一些實施例中,可使用液晶顯示(LCD)顯示器或發光二極體(LED)顯示器(例如有機LED(OLED)顯示器)實施顯示器112。在其它實施例中,顯示器112可為可穿戴顯示器,其可操作地耦合到裝置100中的其它功能單元但與其分開容納。在一些實施例中,裝置100可以包括埠以允許3D經重構圖像通過隔開的監視器(例如,顯示器112)顯示,所述監視器通過有線和/或無線接口耦合到裝置100。
用戶接口150還可以包括用戶可經由其將信息輸入到裝置100中的鍵盤、小鍵盤152,或其它輸入裝置。如果需要,通過觸控螢幕/傳感器將虛擬小鍵盤集成到顯示器112中可免除鍵盤或小鍵盤152。用戶接口150還可以包括麥克風154和揚聲器156,例如,如果移動裝置100是例如蜂窩式電話的移動平臺。裝置100可以包括與本發明無關的其它元件,例如,衛星定位系統接收器、電力裝置(例如,電池),以及通常與可攜式和非可攜式電子裝置相關聯的其它組件。
裝置100可充當移動/可攜式平臺或無線裝置並且可經由一或多個無線通信鏈路通過基於或支持任何合適的無線通信技術的無線網絡來通信。舉例來說,在一些方面中,裝置100可為客戶端或伺服器並且可與無線網絡相關聯。在一些方面中,網絡可以包括人體區域網路或個人區域網路(例如,超寬帶網絡)。在一些方面中,網絡可以包括區域網或廣域網。無線裝置可以支持或使用多種無線通信技術、協議或標準中的一或多個,舉例來說,例如,3G、LTE、高級LTE、4G、CDMA、TDMA、OFDM、OFDMA、WiMAX和Wi-Fi。類似地,無線裝置可以支持或使用多種對應的調製或多路復用方案中的一或多個。移動無線裝置可以無線方式與其它移動裝置、蜂窩電話、其它有線及和無線計算機、網際網路網站等通信。
裝置100可以實施用於多種環境中(例如,商場、街道、辦公室、家庭,或用戶可攜帶他們的可攜式裝置的任何地方)的AR系統。用戶可以在多種情況中與他們的裝置100的多個特徵介接。在AR情境中,用戶可使用他們的裝置來通過他們的裝置的顯示器觀察現實世界的表示。用戶可通過使用他們的裝置的相機與他們的具備AR功能的裝置交互以接收現實世界圖像/視頻且以將額外或替代信息疊加到裝置上的所顯示的現實世界圖像/視頻上的方式來處理圖像。當用戶在他們的裝置上觀察AR實施時,可在裝置顯示器上實時替換或更改現實世界對象或場景。虛擬對象(例如,文本、圖像、視頻)可插入到裝置顯示器上描繪的場景的表示中。
在一些實施例中,裝置100可以包括例如CCD或互補金屬氧化物半導體(CMOS)傳感器的圖像傳感器和/或紅色綠色和藍色(RGB)相機114,所述相機在下文中被稱為「彩色相機114」。彩色相機114可以將光學圖像轉換為電子或數字圖像且可將所俘獲圖像發送到處理器161。
一般而言,彩色相機114可以是提供「彩色信息」的彩色或灰度相機,而「深度信息」可以由深度傳感器(例如,深度相機115)提供。雖然說明為裝置100的一部分,但是應理解彩色相機114和深度相機115中的一個或兩個可能未集成到裝置100中,而實際上是裝置100從單獨的彩色相機114和/或深度相機115中接收數據輸入。如本文所使用的術語「彩色信息」是指彩色和/或灰度信息。一般而言,如本文所使用,彩色圖像或彩色信息可以被視為包括1到N個通道,其中N是取決於用於存儲圖像的色彩空間的某個整數。舉例來說,RGB圖像包括三個通道,紅色、藍色和綠色信息各一個通道。
深度信息可以通過多種方式使用深度傳感器(例如,深度相機115)俘獲。術語「深度傳感器」用於指代可用於從彩色相機114獨立地獲得深度信息的功能單元。作為另一個實例,深度傳感器可以採取耦合到裝置100的光源的形式。在一個實施例中,光源可將結構化或紋理化光圖案投影到場景中的對象上,所述光圖案可以由光的一或多個窄帶組成。隨後可通過利用由對象的表面形狀引起的經投影圖案的幾何失真來獲得深度信息。深度相機115可以物理地安裝在與彩色相機114相同的一般位置中,然而深度相機115可以物理地偏移到彩色相機114的一側。舉例來說,深度相機115可以安裝在裝置中使得深度相機是在彩色相機的頂部、底部、左側或右側的一或多個組合。因此,因為深度相機115和彩色相機114不是恰好與相同視點重疊的,所以雖然在近似相等時間處被觸發但是每個相機可俘獲不同的場景。此外,深度相機115和彩色相機114可以具有不同坐標系,使得來自深度相機的輸出圖像被變換到用於擴增實境系統或輸出中的彩色相機114的坐標系。
在一些實施例中,裝置100可以包括多個相機,例如,雙重正面相機和/或正向和背向相機,所述相機還可以併入各種傳感器。在一些實施例中,相機可能能夠俘獲靜態圖像與視頻圖像兩者。在一些實施例中,相機可以是能夠以每秒30幀(fps)俘獲圖像的立體攝像機。在一個實施例中,由相機俘獲的圖像可以是原始的未經壓縮格式且可在得到處理及/或存儲在存儲器164中之前壓縮。在一些實施例中,可由處理器161使用無損或有損壓縮技術來執行圖像壓縮。
深度相機115和彩色相機114優選地以大致相同的對準集成到裝置100中,使得橫滾角度(而非必須地平移或其它旋轉角度)小於兩個相機傳感器的位置之間的偏移差異的+/-0.1度。
在一些實施例中,處理器161還可接收來自運動傳感器111的輸入。傳感器111可以包括3軸加速計、3軸陀螺儀和/或磁力計。傳感器111可將速度、取向和/或其它位置相關信息提供給處理器161。在一些實施例中,傳感器111可以通過彩色相機114和深度相機115輸出與每個圖像幀的俘獲相關聯的測量信息。在一些實施例中,傳感器111的輸出可以部分由處理器161使用以確定彩色相機114和深度相機115和/或裝置100的位姿。
彩色相機114的位姿是指相對於參考系的彩色相機114的位置和取向。在一些實施例中,可針對6個自由度(6DOF)確定相機位姿,所述6個自由度是指三個平移分量(其可由參考系的X、Y、Z坐標給定)及三個角度分量(例如,相對於相同參考系的橫滾、俯仰及橫偏)。
在一些實施例中,彩色相機114和/或裝置100的位姿可以基於由彩色相機114俘獲的圖像通過處理器161使用視覺追蹤解決方案來確定和/或追蹤。舉例來說,在處理器161上運行的同時定位與映射(SLAM)模塊175可實施和執行基於計算機視覺的追蹤、基於模型的追蹤和/或SLAM方法。SLAM指一類技術,其中在形成環境的圖(例如,由裝置100建模的環境的圖)的同時追蹤相對於所述圖的相機的位姿。在一些實施例中,通過SLAM模塊175實施的方法可以基於由彩色相機114俘獲的彩色或灰度圖像數據並且可用於產生相機的6DOF位姿測量的估計。在一些實施例中,傳感器111的輸出可用於估計、校正和/或調節所估計的位姿。另外,在一些實施例中,由彩色相機114和深度相機115俘獲的圖像可用於為傳感器111重新校準或執行偏置調節。
圖2是在一個實施例中用於執行EDIT的方法。在框205處,所述實施例(例如,EDIT)從深度相機接收深度相機圖像。
在框210處,實施例根據深度相機相對於另一個物理位置的物理位置確定處理順序,所述處理順序用於將深度相機圖像的點變換到在與另一個物理位置相關聯的另一個坐標系中的深度圖像中。舉例來說,另一個物理位置可以是彩色相機的物理位置。在一些實施方案中,在確定處理順序之前,實施例接收深度相機的相對於另一個物理位置的物理位置的指示。替代地,舉例來說,深度相機與彩色相機的物理位置的相對物理位置可以是已知的,並且實施例可未接收到深度相機的相對物理位置的指示。在一些實施例中,在深度相機圖像的點的變換之前是來自深度相機圖像的2D像素到3D點中的解除投影。換句話說,從深度相機的視點來看,解除投影需要深度值的2D陣列並且形成3D點的陣列。在其它實施例中,來自深度相機圖像的2D像素的解除投影集成到框210的變換中而不是作為單獨的過程或計算來執行。在一個實施例中,EDIT執行變換的3D點回到像素/點中的投影以用於分配到彩色相機的坐標系中。投影可以在框210的變換之後發生或作為框210的變換的一部分發生。
在一個實施例中,深度相機具有例如焦距、主點和失真值的內部特性。當將深度相機圖像像素/點變換到彩色相機的坐標系時EDIT可充分利用兩個相機的內部特性。
在框215處,根據所確定的處理順序在不測試深度的情況下實施例將深度相機圖像變換到另一個坐標系的坐標系中。在下文中關於圖6到9描述了關於各種處理順序的進一步說明的論述。
圖3說明了在一個實施例中的目標對象的裝置場景俘獲。舉例來說,裝置100可俘獲彩色相機114和深度相機115上的場景305(例如,參見圖1、6和7)。場景310的表示可以顯示在裝置100上。
圖4說明了在一個實施例中在圖3中說明的場景的深度相機圖像俘獲。深度相機圖像(例如,包含目標對象的深度表示460的深度相機圖像405)可以由在深度圖像中的每個2D坐標處的深度像素(例如,深度像素430)組成。每個深度像素表示深度值(例如,從深度相機傳感器到目標對象上的空間中的物理點的距離)。深度相機圖像中的較暗(即,較大強度)像素指示目標對象(例如,目標對象300的正面)上的點是物理上更靠近(即,在附近)裝置和深度相機傳感器的。成遠離深度相機115的角度的目標對象300的側面可以在深度圖像中通過具有與對象的最近表面相比更低/較小的強度然而與更遠的深度像素相比具有更高/較大強度的深度像素表示。舉例來說,目標對象300的側面可以在深度相機圖像中通過中等深度值415表示。目標對象300在沒有背景的情況下或在並不擱置在對象表面上的情況下說明,並且可以被視為有效地懸置於空氣中。因此,目標對象300周圍的像素可以具有如從深度相機115圖像中確定的無強度或無限距離的等效物。
如上文所介紹,深度傳感器與彩色傳感器之間的橫滾角度可能影響通過EDIT處理的遮擋的準確性。舉例來說,目標圖像中的每條線可以獨立地處理且不具有特定的遮擋測試。因此,如果(例如,由於旋轉)在行N處的線溢出到已經寫入的N-1,那麼可能引入偽聲。這在旋轉足夠大以形成大於0.5像素的豎直偏移時可能發生。
圖5說明了在一個實施例中通過EDIT執行的可能的處理方向的樣本。圖5說明了作為2D坐標的柵格的深度相機圖像,其中每個坐標表示從深度相機傳感器到相應的對象點的深度。舉例來說,EDIT可根據從深度相機相對於另一個物理位置/定位(例如,彩色相機的位置)的相對物理定位中所確定的方向來處理圖像中的線。因此,EDIT以一定順序或方向處理深度相機圖像中的像素使得在變換到2D彩色相機的坐標系期間隨後的深度像素(遮擋像素)可自動覆蓋或替換先前的深度像素(被遮擋像素)。在圖5中說明的實例處理方向起源於深度相機圖像的一個邊緣,並且在深度相機圖像的相對邊緣處結束當兩個或大於兩個深度像素被分配到相同彩色像素時自動替換先前深度像素。
在一個實施例中,EDIT可處理來自圖像的轉角或邊緣中的一個的深度相機圖像405並且前進到在由彩色相機和深度相機的相對物理安置限定的方向上處理深度相機圖像。
舉例來說,EDIT可從深度相機圖像的左上處理深度相機圖像並且前進到跨越深度相機圖像從左到右處理像素。如圖5中所說明,EDIT可在深度相機圖像的邊緣處開始處理並且行進跨越到相對邊緣(例如,邊緣可以是在深度相機圖像的左側或右側處的最遠的像素)。
在一些實施例中,處理順序包括在垂直方向(例如,相對於圖像頂部/向上或底部/向下的垂直方向515)上前進之前用於第一行(例如,行505)的水平深度相機像素處理以選擇用於額外的水平深度相機像素處理的第二行。EDIT可通過一次一個地處理單個行前進同時在垂直方向上前進選擇下一個未經處理的行。舉例來說,如在圖5中所說明EDIT可處理像素(0,0)隨後是像素(1,0),隨後是像素(2,0)等等,直至像素(7,0),在這之後前進到以像素(1,0)開始的下一行,隨後繼續到下一個像素(1,1)等。如果在圖5中說明的像素(0,7)處開始,那麼EDIT可前進到像素(1,7)並且繼續直至完成所述行並且隨後處理以像素(0,6)開始的下一個行(例如,剛處理的行上方的下一個行)。替代地,處理可以在像素(7,7)處開始並且前進到左側到達下一個像素(6,7)並且繼續直至完成所述行且隨後處理下一個行,例如,上文所述的以像素(7,6)開始的行。如在本文中的其它地方所描述可以確定水平處理是從左到右前進還是從右到左前進。類似地,如在本文中的其它地方所描述可以確定垂直處理是從上到下前進還是從下到上前進。通過這種水平和/或垂直處理技術,EDIT可以完全處理圖像。
圖5是在變換期間深度相機圖像處理的若干可能開始位置的說明性實例,然而未特定地說明的其它處理開始位置也是可能的。
圖6到7說明根據物理相機相對安置的處理方向的各種實例。舉例來說,考慮圖6到7,裝置100被說明為包括以相對並排配置(例如,從左到右)物理地放置的彩色相機114和深度相機115。彩色相機114可緊鄰深度相機115,或者可以通過其它組件或空間分離。舉例來說,裝置100可以包括距離深度相機115以釐米、英寸或某個其它距離量度放置的彩色相機114。因此,彩色相機114和深度相機115可以具有相同場景的略微不同或歪斜的視點(例如,目標對象300的不同視圖)。
目標對象300可根據裝置100內的實際物理設施被彩色相機114和深度相機115從略微不同的視點看到。舉例來說,彩色像素670和770具有相應地來自圖6到7的相應的彩色投影線698和798。彩色投影線相應地繪製到較近對象點635和735的直達線路。如果不是為了較近的對象點635和735,那麼相應地阻擋/遮擋較遠的對象點630和730,較遠的對象點630和730應是對彩色相機114可見的。在一個實施例中,EDIT能夠將深度值變換到較近對象點而不是較遠(被遮擋)對象點為彩色相機圖像提供更適當的深度值。
與彩色相機114的視圖相比,深度相機115相應地對於較近對象點635和735以及相應地對於較遠對象點630和730這兩者都具有清楚的不受阻的視圖(如通過深度投影線699和799所指示)。因此,深度相機115可對於初始/先前處理的深度像素660和隨後處理的深度像素665在單獨的深度像素中記錄單獨的深度值。
根據相應的圖像在圖6到7中從頂部/下方視點(例如,6902和7902)相應地說明深度相機圖像690和790。在圖6到7中相應地說明如從上方/下方所觀察的處理方向(例如,處理方向6501和7501)。在一個實施例中,處理方向650和750相應地在物理空間中對應的方向上前進到來自/遠離深度相機115朝向彩色相機114的方向。
處理方向可以相對於深度相機圖像內的坐標實施。舉例來說,EDIT可執行跨越從最小x值(例如,x-y坐標0,0)遞增直至達到最大x值(例如,x-y坐標640,0可指示2D深度相機坐標系中具有640X 480的像素解析度的最後x值)的水平或x坐標行的像素的從左到右的處理。EDIT可執行沿著從最小y值(例如,x-y坐標0,0)遞增直至達到最大y值(例如,x-y坐標0,480可指示2D深度相機坐標系中具有640X 480的像素解析度的最後/最頂部y值)的垂直或y坐標列的從上到下的像素處理。
圖6到7中的柵格視圖6901和7901相應地說明深度相機的2D坐標系中的目標對象。柵格視圖說明從深度相機傳感器的視點來看的深度相機圖像的2D坐標系(例如,x-y軸系)。柵格中的每個框可表示具有定義的深度值/強度的單獨像素(例如,圖4的深度像素430)。
如本文所使用,左側、右側、頂部和底部是相對於裝置100中的每個相應的相機傳感器的視點的。舉例來說,彩色相機114和深度相機115視點包括目標對象300。目標對象300可以是在場景(例如,俘獲的場景305)中對裝置100的一或多個相機可見的許多對象中的一個。
如在圖6到7中所說明,每個相機可以具有相應的坐標系。舉例來說,彩色相機114具有包括2D坐標的彩色相機坐標系,其中2D坐標系內的每個像素或點表示色彩值(例如,RGB賦值/值)。深度相機115具有包括2D坐標的深度相機坐標系,其中2D坐標系內的每個像素或點表示深度值/強度(例如,從傳感器到空間中的點的距離,例如,到目標對象300的對象點的距離)。
圖6說明了在一個實施例中EDIT可在其中執行從右到左的深度相機圖像處理的運行環境。特定地考慮圖6,彩色相機114被說明為具有在深度相機115的左側的物理位置(例如,「左側」和「右側」可以是相對於握持裝置以拍攝包括目標對象300的場景的照片的用戶的視點)。因此,EDIT可設置/確定深度圖像處理方向(例如,在俯視圖處理方向6501和柵格視圖處理方向6502中表示的處理方向)。以替代方式描述,當從深度相機115到彩色相機114物理地遍歷時處理方向6501-2在行進的方向上。舉例來說,對於圖6,處理方向是從裝置右側6101到裝置左側6051。處理方向用於將深度相機圖像像素值變換到彩色相機圖像680中。當執行圖像的從右到左處理時,EDIT將處理初始深度像素660然後處理隨後的深度像素665。當變換到彩色相機114的彩色相機圖像680時,隨後處理的深度像素665可被分配到(即,覆蓋)與先前(第一或初始)深度像素660相同的彩色像素670。通常,當兩個深度像素被分配到彩色相機坐標系內的相同彩色點時,驗證檢查確定兩個深度衝突深度值中的哪個是較小強度/較小值以便將最準確的深度值分配到在彩色像素670處彩色相機114「看到」的彩色點。舉例來說,遮擋深度像素(例如,較近對象點635)應當被存儲為彩色像素670的深度值而不是遮擋深度像素(例如,較遠對象點630)。
在一個實施例中,EDIT設置處理順序以用於根據深度相機相對於彩色相機的物理位置變換深度相機圖像(例如,如本文中至少在上述圖2中所描述)。因此,在一個實施例中EDIT自動覆蓋/覆寫分配到特定彩色像素(像素670)的先前(不當/遮擋)深度像素值。
用於確定「左側」、「右側」、「上」或「下」的參考點並不必須總是相對於用戶視圖或裝置視圖,而是可以相對於任何所定義的開始點或取向並且EDIT可以將相同的相對處理方向應用於深度相機圖像。在一個實施例中,當確定用於深度相機圖像的處理方向時用於確定方向的替代開始點或取向在EDIT的範圍內,並且EDIT將應用相同相對定位。舉例來說,在確定相對於裝置100的定位傳感器的「左」、「右」、「上」或「下」(例如,左6051、右6101、頂部6151和底部6201)的相對方向設置之後,EDIT將相同相對方向設置應用於深度相機圖像的處理方向的基礎(例如,左6053、右6103、頂部6153和底部6203)。換句話說,如果「頂部」是任意應用於參考點的,那麼EDIT可以驗證處理方向是不斷地應用的使得在深度相機圖像的處理期間應用「頂部」的相同相對方向。
如在圖6中所說明,第一處理深度像素660表示到較遠對象點630的深度並且是在時間T1處最初指派/存儲到彩色像素670的。接下來,在時間T2處,EDIT以緊鄰初始處理的深度像素660的左側的2D坐標處理像素(如根據深度相機和彩色相機的相對相機安置所確定的)。如所說明,深度相機圖像中的此鄰近像素是隨後處理的深度像素665。響應於將此點變換到彩色相機圖像680,深度像素665也(在時間T2處)被分配/存儲到彩色像素670、覆寫來自初始處理的深度像素660的先前深度值。
圖7說明了在一個實施例中EDIT可在其中執行從右到左的深度相機圖像處理的運行環境。圖7說明了其中深度相機115被放置到彩色相機114的左側的環境。因此,如所說明,EDIT按照左側到右側的順序處理深度相機圖像。
舉例來說,如在圖7中所說明,第一處理深度像素760表示到較遠對象點730的深度並且是在時間T1處最初指派/存儲到彩色像素770的。接下來,在時間T2處EDIT通過2D坐標(經由方向755)將像素處理為緊鄰(如早先根據深度相機和彩色相機的相對相機安置所確定的)第一(最初處理的)深度像素760的左側。如所說明,深度相機圖像中的此鄰近像素是隨後處理的深度像素765。響應於將此點變換到彩色相機圖像780,隨後處理的深度像素765也在時間T2處被分配/存儲到彩色像素770所佔據的位置、覆寫來自深度像素760的先前深度值。
參考圖6和7,應理解從右到左的處理順序或從左到右的處理順序可以都被視為水平深度相機像素處理順序。在一些實施例中,處理順序包括垂直深度相機像素處理順序。當深度相機物理地放置在另一個物理位置下方(例如,在彩色相機下方)時垂直深度相機像素處理順序可以包括從下到上的深度相機像素處理順序。當深度相機物理地放置在另一個物理位置上方(例如,在彩色相機上方)時垂直深度相機像素處理順序可以包括從上到下的深度相機像素處理順序。
在一些實施例中,響應於如上文所述完成深度到彩色圖像變換(例如,執行EDIT),所變換的深度圖可能不是完全填充的。舉例來說,扭曲可使得初始深度圖的多個像素渲染到新深度圖的單個像素中或初始深度圖可能無法作為完全填充的而開始。當變換的深度圖具有不帶深度量度的像素時,可以實施孔填充過程。舉例來說,孔填充可以包括分析相鄰像素以確定它們是否是類似的並且以平均深度填充所述孔。如果相鄰像素不是類似的,那麼孔可能無法填充。孔填充過程可以是單獨的且不同於與如上文所述的物理深度相機傳感器位置相關聯的變換過程。
如上文所述,裝置100可以是可攜式電子裝置(例如,智慧型手機、專用擴增實境(AR)裝置、遊戲裝置、例如眼鏡的可穿戴式裝置或具有AR處理和顯示能力以用於顯示擴增實境圖像的其它裝置)。實施本文所描述的AR系統的裝置可用於多種環境中,例如,商場、街道、房間,或用戶可攜帶可攜式裝置的任何地方。在AR情境中,用戶可使用裝置100來通過他們的裝置的顯示器觀察現實世界的表示。用戶可通過使用他們的裝置的相機與他們的具備AR功能的裝置交互以接收現實世界圖像/視頻並且以將額外或替代信息疊加或重疊到裝置上的所顯示的現實世界圖像/視頻上。當用戶在他們的裝置上觀察AR實施時,可在裝置顯示器上實時替換或更改現實世界對象或場景。虛擬對象(例如,文本、圖像、視頻)可插入到裝置顯示器上描繪的場景的表示中。
裝置100和彩色相機114的移動可以使得顯示器實時更新SLAM圖中的目標(例如,一或多個對象或場景)的擴增。通過裝置遠離初始參考圖像位置的移動,裝置可從替代視圖中俘獲額外圖像。在提取特徵及從額外的關鍵幀三角測量之後,可實現擴增的提高的準確性(例如,對象周圍的邊界可更精確地擬合、場景中的對象的表示將顯得更真實,及目標放置相對於彩色相機114位姿可更準確)。
在一個實施例中,對象或圖形可插入或集成到通過彩色相機114俘獲的視頻流(或圖像)中並且顯示在顯示器112上。EDIT可任選地促使用戶為了額外的信息而擴增目標。舉例來說,用戶可能夠添加用戶內容以擴增目標的表示。用戶內容可為圖像、3D對象、視頻、文本,或可與目標的表示集成或重疊或替代目標的表示的其它內容類型。
顯示器可基於從原始場景的追蹤實時更新。舉例來說,標誌上的文本可用替代文本替換,或3D對象可在戰略上放入場景中且顯示在裝置100上。當用戶改變彩色相機114的位置和取向,可調節或擴增圖形或對象以匹配彩色相機114的相對移動。舉例來說,如果虛擬對象插入到擴增實境顯示器中,那麼遠離虛擬對象的相機移動可減小虛擬對象相對於彩色相機114所行進距離的大小。舉例來說,與從虛擬對象退後半步相比,從虛擬對象退後四步應引起虛擬對象大小的更大減小,所有其它變量是相同的。運動圖形或動畫可在由EDIT表示的場景內製成動畫。舉例來說,動畫對象可在擴增實境顯示器中所描繪的場景內「移動」。所屬領域的技術人員將認識到本文中描述的實施例可以除了AR之外的方式實施(例如,機器人定位)。
EDIT可實施為軟體、固件、硬體、模塊或引擎。在一個實施例中,先前的EDIT描述可以通過裝置100的存儲器164中的通用處理器161實施以實現先前所希望的功能(例如,實施圖2的方法)。在一些實施例中,所描述的子組件中的一或多個的特徵可組合或分割成不同的個體組件、模塊或引擎。
所屬領域的技術人員將理解,可使用多種不同技術和技藝中的任一者來表示信息和信號。舉例來說,可由電壓、電流、電磁波、磁場或磁粒子、光場或光粒子或其任何組合來表示貫穿以上描述可能參考的數據、指令、命令、信息、信號、位、符號及碼片。
所屬領域的技術人員將進一步了解,結合本文所揭示的實施例描述的各種說明性邏輯塊、模塊、引擎、電路及算法步驟可實施為電子硬體、計算機軟體或兩者的組合。為清楚說明硬體與軟體的此互換性,上文已大致關於其功能性而描述了各種說明性組件、塊、模塊、引擎、電路及步驟。此類功能性是實施為硬體還是軟體取決於具體應用及施加於整個系統的設計約束。所屬領域的技術人員可針對每一特定應用以不同方式來實施所描述的功能性,但這樣的實施方案決策不應被解釋為會導致脫離本發明的範圍。
可使用經設計以執行本文所描述的功能的通用處理器、數位訊號處理器(DSP)、專用集成電路(ASIC)、現場可編程門陣列(FPGA)或其它可編程邏輯裝置、離散門或電晶體邏輯、離散硬體組件或其任何組合來實施或執行結合本文中所揭示的實施例而描述的各種說明性邏輯塊、模塊和電路。通用處理器可為微處理器,但在替代方案中,處理器可為任何常規處理器、控制器、微控制器或狀態機。處理器也可以實施為計算裝置的組合,例如,DSP與微處理器的組合、多個微處理器、一或多個微處理器結合DSP核心,或任何其它此類配置。
結合本文揭示的實施例而描述的方法或算法的步驟可直接體現在硬體、由處理器執行的軟體模塊或所述兩者的組合中。軟體模塊可駐留在隨機存取存儲器(RAM)、快閃記憶體、只讀存儲器(ROM)、可擦除可編程只讀存儲器(EPROM)、電可擦除可編程只讀存儲器(EEPROM)、寄存器、硬碟、可移動的磁碟、CD-ROM或所屬領域中已知的任何其它形式的存儲媒體中。示例性存儲媒體耦合到處理器,使得處理器可以從存儲媒體讀取信息並且將信息寫入到存儲媒體。在替代方案中,存儲媒體可與處理器成一體式。處理器和存儲媒體可駐留在ASIC中。ASIC可駐留在用戶終端中。在替代方案中,處理器和存儲媒體可作為離散組件駐留在用戶終端中。
在一或多個示例性實施例中,所描述的功能或模塊可以在硬體(例如,硬體162)、軟體(例如,軟體165)、固件(例如,固件163)或其任何組合中實施。如果在軟體中作為電腦程式產品實施,那麼功能或模塊可作為一或多個可執行指令或代碼存儲在非暫時性計算機可讀媒體上或在非暫時性計算機可讀媒體上傳輸。計算機可讀媒體可包括計算機存儲媒體與通信媒體兩者,通信媒體包括有助於將電腦程式從一處傳送到另一處的任何媒體。存儲媒體可以是可通過計算機或數據處理裝置/系統存取的任何可供使用的媒體。藉助於實例而非限制,此類非暫時性計算機可讀媒體可包括RAM、ROM、EEPROM、CD-ROM或其它光碟存儲裝置、磁碟存儲裝置或其它磁性存儲裝置,或可用於攜載或存儲呈可執行指令或數據結構的形式的所要程序代碼且可由計算機存取的任何其它媒體。並且,恰當地將任何連接稱作計算機可讀媒體。舉例來說,如果使用同軸纜線、光纖纜線、雙絞線、數字訂戶線(DSL)或諸如紅外線、無線電及微波的無線技術從網站、伺服器或其它遠程源傳輸軟體,那麼同軸纜線、光纖纜線、雙絞線、DSL或諸如紅外線、無線電及微波的無線技術包含於媒體的定義中。本文中使用的磁碟和光碟包括壓縮光碟(CD)、雷射光碟、光學光碟、數字多功能光碟(DVD)、軟盤及藍光光碟,其中磁碟通常是以磁性方式再現數據,而光碟是用雷射以光學方式再現數據。以上各者的組合還應包含在非暫時性計算機可讀媒體的範圍內。
提供所揭示的實施例的先前描述以使得所屬領域的技術人員能夠製作或使用本發明。所屬領域的技術人員將容易了解對這些實施例的各種修改,且可在不脫離本發明的精神或範圍的情況下將本文定義的一般原理應用於其它實施例。因此,本發明並不意圖限於本文中所示出的實施例,而應被賦予與本文中所揭示的原理和新穎特徵相一致的最廣泛範圍。