圖像傳感器的使用最近已經變得更加普遍。通常采用用于在制造之后對圖像傳感器的本征參數進行定制校準的各種技術。常規(guī)地在圖像傳感器的制造之后校準的本征參數的示例包括焦距、透鏡畸變、光軸中心的偏移等等。此外,基于本征參數的校準的校正可以在圖像傳感器產生讀數時實時地應用。
盡管各種常規(guī)方案往往會校準圖像傳感器的本征參數,但是常規(guī)方案有時候沒有充分地解決深度讀數偏置。因而,相比于由精確距離測量儀器(例如,激光測距儀)所測量的到這樣的對象的距離而言,其中許多個在離開制造現場之后具有有限的準確度的深度傳感器通常報告到對象的不正確的距離。
深度傳感器通常包括在用于采用到場景上的對象的距離的各種應用的視覺系統(tǒng)中。例如,深度傳感器可以用于在室內環(huán)境中導航或者操控桌面上的對象。深度傳感器典型地在離開制造現場之后具有有限的準確度,其可能是由于用于深度傳感器的硬件能力和傳統(tǒng)校準技術的組合的緣故。例如,許多深度傳感器通常作為制造過程的部分而在逐傳感器的基礎上進行校準。通常源自于這樣的常規(guī)校準技術的低準確度水平對于用于利用由深度傳感器檢測的距離的應用的總體系統(tǒng)性能而言可能是有害的,諸如二維(2D)和三維(3D)場景重構、3D掃描、場景分段、機器人導航和操控以及其它。
技術實現要素:
本文描述了針對由深度傳感器捕獲的輸入深度圖像的校正的各種技術。輸入深度圖像可以包括像素,并且像素可以具有輸入深度圖像中的相應深度值。此外,用于像素的逐像素校正值可以利用針對深度傳感器所校準的非線性誤差模型的深度校準數據來確定。逐像素校正值可以基于分別對應于像素和深度值的深度校準數據的部分來確定。逐像素校正值可以應用于深度值以生成經校正的深度圖像。另外,經校正的深度圖像可以被輸出。
依照各種實施例,針對深度傳感器所校準的非線性誤差模型的深度校準數據可以包括參數矩陣,并且參數矩陣可以包括用于像素的誤差擬合參數。因而,對于輸入深度圖像的每一個像素,來自像素的參數矩陣的誤差擬合參數可以用于在評估非線性誤差函數時計算逐像素校正值。根據其它實施例,針對深度傳感器所校準的非線性誤差模型的深度校準數據可以包括查找表,其包括在用于像素的預設深度值處的預限定的校正值。
依照各種實施例,可以標識形成相應補片的輸入深度圖像的多個像素??梢詾檠a片分配深度校準數據的相應子集。例如,包括在給定補片中的多個像素可以共享深度校準數據的對應子集。因而,可以基于分別對應于像素和深度值的深度校準數據的子集來確定逐像素校正值。
另外,本文闡述的各種實施例針對深度傳感器的校準??梢越邮沼缮疃葌鞲衅鞑东@的表面的深度圖像。表面的深度圖像的子集可以在距表面的相應距離處捕獲。此外,深度圖像各自包括像素,其中像素具有每一個深度圖像中的相應深度值。還可以接收針對與深度圖像的子集對應的表面的相應地面實況測量結果。地面實況測量結果可以由距離測量設備測量。像素的深度值可以在距表面的相應距離處所捕獲的深度圖像的每一個子集中的深度圖像之上平均。另外,像素的平均深度值可以與地面實況測量結果比較以計算距表面的每一個相應距離處的像素的誤差值。此外,可以針對深度傳感器所校準的非線性誤差模型而基于距表面的每一個相應距離處的像素的誤差值和地面實況測量結果來生成深度校準數據。
以上發(fā)明內容呈現了簡化總結以便提供對本文討論的系統(tǒng)和/或方法的一些方面的基本理解。該發(fā)明內容不是本文討論的系統(tǒng)和/或方法的全面概述。其不意圖標識關鍵/必要特征,也不描繪這樣的系統(tǒng)和/或方法的范圍。其唯一目的是將一些概念以簡化形式呈現,以作為對隨后呈現的更詳細描述的前序。
附圖說明
圖1圖示了校正由深度傳感器生成的輸入深度圖像的示例性系統(tǒng)的功能框圖。
圖2圖示了示例性深度圖像。
圖3圖示了校正由深度傳感器生成的深度圖像的另一示例性系統(tǒng)的功能框圖。
圖4圖示了包括深度傳感器的示例性系統(tǒng)的功能框圖,其中深度傳感器可以校正輸入深度圖像。
圖5圖示了校準深度傳感器的示例性系統(tǒng)的功能框圖。
圖6圖示了校準深度傳感器的另一示例性系統(tǒng)的功能框圖。
圖7圖示了包括豎直帶的示例性深度圖像。
圖8是圖示了校正輸入深度圖像的示例性方法的流程圖。
圖9是圖示了校準深度傳感器的示例性方法的流程圖。
圖10圖示了示例性計算設備。
具體實施方式
現在參照附圖來描述針對由深度傳感器捕獲的深度圖像的逐像素校正和深度傳感器校準的各種技術,其中相同參考標號自始至終用于指代相同元件。在以下描述中,出于解釋的目的,闡述眾多具體細節(jié)以便提供對一個或多個方面的透徹理解。然而,可以顯而易見的是,(多個)這樣的方面可以在沒有這些具體細節(jié)的情況下實踐。在其它實例中,以框圖形式示出公知的結構和設備以便促進對一個或多個方面的描述。另外,要理解到,被描述為由某些系統(tǒng)組件實施的功能性可以由多個組件執(zhí)行。類似地例如,組件可以配置為執(zhí)行被描述為由多個組件實施的功能性。
此外,術語“或”旨在意指包括性的“或”而非排他性的“或”。也就是說,除非以其它方式指定,或者從上下文清楚,否則短語“X采用A或B”旨在意指任何自然的包括性置換。也就是說,短語“X采用A或B”滿足以下實例中的任一個:X采用A;X采用B;或者X采用A和B二者。此外,如在該說明書和隨附權利要求中使用的冠詞“一”和“一個”應當一般地解釋為意指“一個或多個”,除非以其它方式指定或者從上下文清楚的是針對單數形式。
現在參照附圖,圖1圖示了校正由深度傳感器102生成的輸入深度圖像的系統(tǒng)100。系統(tǒng)100包括深度傳感器102和深度校正系統(tǒng)104。深度傳感器102可以捕獲輸入深度圖像106。輸入深度圖像106包括像素,并且像素具有輸入深度圖像106中的相應深度值。由深度傳感器102捕獲的輸入深度圖像106可以提供給深度校正系統(tǒng)104。深度校正系統(tǒng)104可以校正由深度傳感器102捕獲的輸入深度圖像106中的深度值以生成經校正的深度圖像108。因而,在深度傳感器102產生輸入深度圖像(例如,深度幀)時的運行時間處,深度校正系統(tǒng)104可以應用由深度傳感器102報告的輸入深度圖像中的深度值的逐像素校正。
各種類型的深度傳感器旨在落入隨附于此的權利要求的范圍。例如,深度傳感器102可以是結構化光3D掃描儀、飛行時間掃描儀、調制光3D掃描儀等。例如,結構化光3D掃描儀可以在場景上投射光圖案,捕獲光的快照,并且分析圖案的畸變以確定輸入深度圖像106中的像素的深度值。
深度校正系統(tǒng)104包括接收由深度傳感器102捕獲的輸入深度圖像106的輸入組件110。例如,輸入組件110可以響應于由深度傳感器102捕獲到輸入深度圖像106而接收輸入深度圖像106(例如,深度傳感器102可以將輸入深度圖像的流發(fā)送給深度校正系統(tǒng)104)。根據另一示例,輸入組件110可以接收批量的輸入深度圖像(包括輸入深度圖像106)(例如,深度傳感器102可以收集并且發(fā)送該批量輸入深度圖像)。盡管本文闡述的許多示例描述了輸入深度圖像106,但是要領會到,這樣的示例可以擴展到由深度傳感器102捕獲的其它輸入深度圖像。
依照示例,輸入組件110可以直接地從深度傳感器102接收輸入深度圖像106。按照該示例的說明,計算設備可以包括深度校正系統(tǒng)104,并且這樣的計算設備可以與深度傳感器102耦合或者包括深度傳感器102。根據另一示例,輸入組件110可以從網絡中的全異節(jié)點(沒有示出)接收由深度傳感器102捕獲的輸入深度圖像106。作為說明,服務器計算設備(或者多個服務器計算設備)可以包括深度校正系統(tǒng)104。
深度校正系統(tǒng)104還包括調節(jié)確定組件112,其利用針對深度傳感器102所校準的非線性誤差模型的深度校準數據114來確定用于像素的逐像素校正值。逐像素校正值由調節(jié)確定組件112基于分別對應于像素的深度校準數據114的部分來確定。調節(jié)確定組件112還基于輸入深度圖像106中的深度值來確定逐像素校正值。
此外,深度校正系統(tǒng)104包括補償組件116,其將逐像素校正值應用于深度值以生成經校正的深度圖像108。例如,補償組件116可以從對應深度值減除逐像素校正值以產生經校正的深度圖像108。經校正的深度圖像108可以進一步由深度校正系統(tǒng)104的輸出組件118輸出。輸出組件118例如可以使經校正的深度圖像108顯示在顯示屏幕上,保持在數據倉庫中,傳送給全異的計算設備(或多個計算設備),其組合等。
因而,在響應于輸入深度圖像106由深度傳感器102產生的運行時間處,調節(jié)確定組件112可以基于像素的所報告的深度值來計算逐像素校正值(例如,用于輸入深度圖像106中的每一個像素的誤差)。此外,補償組件116可以從對應深度值減除逐像素校正值(例如,逐像素誤差可以從來自輸入深度圖像106的原始讀數減除)。相應地,深度校正系統(tǒng)104可以補償系統(tǒng)性偏置(負和/或正)。
根據各種實施例,針對深度傳感器102所校準的非線性誤差模型的深度校準數據114可以包括參數矩陣,并且參數矩陣可以包括用于像素的誤差擬合參數。因而,調節(jié)確定組件112可以利用參數矩陣確定逐像素校正值。更具體地,調節(jié)確定組件112可以從參數矩陣檢索用于像素的誤差擬合參數,其中像素具有輸入深度圖像106中的深度值。此外,調節(jié)確定組件112可以通過使用用于像素的誤差擬合參數評估非線性誤差函數來計算用于像素的逐像素校正值。非線性誤差函數可以由調節(jié)確定組件112針對輸入深度圖像106而基于深度值來評估。前述內容可以由調節(jié)確定組件112針對輸入深度圖像106的每一個像素來執(zhí)行。
根據其中深度校準數據114包括參數矩陣的示例,非線性誤差函數可以是二階多項式,諸如:誤差=Ax2+Bx+C。在前述內容中,x是用于輸入深度圖像106中的給定像素的深度值,并且A、B和C是來自參數矩陣的給定像素的誤差擬合參數。然而,要領會到,可以由調節(jié)確定組件112使用來自參數矩陣的誤差擬合參數評估的其它非線性誤差函數(例如,三角法函數等)是旨在落入隨附于此的權利要求的范圍內。
根據其它實施例,針對深度傳感器102所校準的非線性誤差模型的深度校準數據114可以包括查找表。查找表可以包括用于像素的預設深度值處的預限定的校正值。調節(jié)確定組件112可以利用查找表確定逐像素校正值。更具體地,調節(jié)確定組件112可以從查找表檢索用于像素的第一預設深度值處的第一預限定的校正值,其中像素具有輸入深度圖像106中的深度值。此外,第一預設深度值可以等于或者貼近地大于查找表中的像素的深度值。另外,調節(jié)確定組件112可以在查找表中檢索用于像素的第二預設深度值處的第二預限定的校正值。第二預設深度值可以貼近地小于查找表中的像素的深度值。調節(jié)確定組件112可以基于第一預設深度值處的第一預限定的校正值與第二預設深度值處的第二預限定的校正值之間的線性插值來確定具有深度值的像素的逐像素校正值。再次,前述內容可以由調節(jié)確定組件112針對輸入深度圖像106的每一個像素來執(zhí)行。
深度校準數據114可以包括經逐像素或者逐補片校準的數據的子集,其中補片包括多個像素。作為說明,在深度校準數據114經逐像素校準的情況下,深度校準數據114可以包括針對第一像素所校準的數據的第一子集、針對第二像素所校準的數據的第二子集等等。按照其中深度校準數據114經逐補片校準的另一說明,深度校準數據114可以包括針對第一補片(例如,第一多個像素)所校準的數據的第一子集、針對第二補片(例如,第二多個像素)所校準的數據的第二子集等等。
根據各種實施例,深度校準數據114可以包括經逐補片校準的數據的子集。相應地,調節(jié)確定組件112可以標識形成相應補片的輸入深度圖像106的多個像素??梢詾檠a片分配深度校準數據114的相應子集。另外,包括在補片中的多個像素可以共享深度校準數據114的子集。此外,調節(jié)確定組件112可以基于分別對應于像素和深度值的深度校準數據的子集來確定逐像素校正值。
作為說明,針對深度傳感器102所校準的非線性誤差模型的深度校準數據114可以包括參數矩陣,并且深度校準數據114可以包括經逐補片校準的數據的子集。遵循該說明,輸入深度圖像106可以包括多個補片(例如,如由調節(jié)確定組件112所標識),其包括輸入深度圖像106的相應多個像素。此外,可以為補片分配參數矩陣的相應誤差擬合參數。因而,包括在給定補片中的多個像素可以共享分配給補片的誤差擬合參數。
設想到,補片可以具有基本上任何形狀和尺寸。例如,補片可以是方形或矩形;然而,其它形狀旨在落入隨附于此的權利要求的范圍內。根據其中補片具有方形形狀的各種示例,補片可以是8x8(例如,8個像素寬乘以8個像素高)或者20x20;然而,其它尺寸的補片旨在落入隨附于此的權利要求的范圍內。
按照另外的示例,每一個補片可以是輸入深度圖像106的預設份額。遵循該示例,輸入深度圖像的預設份額可以獨立于由深度傳感器102捕獲的輸入深度圖像106的分辨率。因而,深度校準數據114可以是分辨率不可知的。相應地,并不是以像素計來測量補片的尺寸,而是補片可以為具有所指定的適用性區(qū)域(例如,將補片應用于輸入深度圖像106的給定區(qū)域中的像素)的幀分辨率的預設份額(例如,方形補片的寬度可以是輸入深度圖像106的寬度的1/40并且方形補片的高度可以是輸入深度圖像106的高度的1/30)。遵循該示例,補片可以以相對性術語,而不是絕對性術語來限定。
設想到,計算設備(或者多個計算設備)可以包括深度校正系統(tǒng)104。作為說明,深度校正系統(tǒng)104可以由計算設備的處理器或圖形處理單元(GPU)執(zhí)行。根據各種示例,深度校準數據114可以保持在計算設備的數據倉庫、計算設備的固件等中。此外,基本上任何類型的計算設備都旨在落入隨附于此的權利要求的范圍內(例如,個人計算機,移動計算設備,服務器計算設備,游戲操控臺,包括在機器人、機動車、相機、電視等中的嵌入式計算設備等)。
轉向圖2,圖示了示例性深度圖像200(例如,深度幀)。深度圖像200可以是圖1的輸入深度圖像106。此外,可以針對深度圖像200而標識包括深度圖像200的相應多個像素的多個補片(包括補片202)。圖2所描繪的示例示出了包括方形補片的深度圖200;然而設想到,其它形狀的補片旨在落入隨附于此的權利要求的范圍內。所要求保護的主題還不限于在圖2所圖示的示例中示出的補片的數目、深度圖像200的分辨率或者深度圖像200的縱橫比。
根據各種實施例,補片可以包括深度圖像200的相應預確定的多個像素。在其它實施例中,補片可以是深度圖像200的預設份額,每一個處于深度圖像200內的相應指定區(qū)域處。因而例如,補片202可以是深度圖像200的寬度的1/20,深度圖像200的高度的1/15,并且位于深度圖像200的右上角落處。
如圖2中所圖示,以分解視圖圖示出了深度圖像200的區(qū)段204。在區(qū)段204中,描繪了四個補片,也就是說,補片206、補片208、補片210和補片212。如圖2中所圖示,每一個補片206-212是8個像素寬乘以8個像素高。然而,再次要指出的是,補片206-212可以包括其它數目的像素。
此外,可以為深度圖像200的每一個補片分配圖1的深度校準數據114的對應子集。例如,包括在補片206中的像素可以共享分配給補片206的深度校準數據114的子集。因而,分配給補片206的深度校準數據114的子集可以用于確定補片206中的像素的逐像素校正值。
轉向圖3,圖示了校正由深度傳感器102捕獲的深度圖像的另一系統(tǒng)300。系統(tǒng)300再次包括深度傳感器102和深度校正系統(tǒng)104。與以上情況類似,深度校正系統(tǒng)104可以包括輸入組件110、調節(jié)確定組件112、深度校準數據114、補償組件116和輸出組件118。
更具體地,輸入組件110可以接收由深度傳感器102捕獲的輸入深度圖像106。此外,調節(jié)確定組件112可以利用針對深度傳感器102所校準的非線性誤差模型的深度校準數據114來確定用于像素的逐像素校正值。調節(jié)確定組件112還可以標識形成相應補片的輸入深度圖像106的多個像素。另外,為補片分配深度校準數據114的相應子集。因而,包括在補片中的多個像素可以共享深度校準數據114的子集。此外,調節(jié)確定組件112可以基于分別對應于像素和深度值的深度校準數據114的子集來確定逐像素校正值。相應地,由包括在補片中的像素所共享的深度校準數據114的子集可以被調節(jié)確定組件112使用以確定用于包括在補片中的像素的逐像素校正值。另外,補償組件116可以將逐像素校正值應用于深度值以生成經校正的深度圖像108。
深度校正系統(tǒng)104還可以包括濾波器組件302,其對經校正的深度圖像108進行濾波以使補片之間平滑。因而,響應于補償組件116將逐像素校正值應用于深度值,濾波器組件302可以對經校正的深度圖像108進行濾波。此外,輸出組件118可以輸出濾波的經校正的深度圖像108。濾波器組件302可以采用補片之間的基本上任何類型的濾波。例如,濾波器組件302可以采用雙邊濾波、引導式濾波等。由濾波器組件302實現的這樣的濾波可以使補片之間平滑,由此緩解補片之間的偽影的可見性。
現在轉向圖4,圖示了包括深度傳感器102的系統(tǒng)400,其中深度傳感器102可以校正輸入深度圖像。在圖4的示例中,深度傳感器102包括深度校正系統(tǒng)104,其可以進一步包括調節(jié)確定組件112、深度校準數據114和補償組件116。因而,深度傳感器102可以使用深度校正系統(tǒng)104來實現由其捕獲的輸入深度圖像的逐像素校正以生成經校正的深度圖像。
參照圖5,圖示了校準深度傳感器102的系統(tǒng)500。系統(tǒng)500包括校準系統(tǒng)502,其從與深度傳感器102所捕獲的表面504的深度圖像以及由距離測量設備506對表面504測量的對應地面實況測量結果來生成用于深度傳感器102的深度校準數據114。根據示例,表面504可以是平坦墻壁;然而,設想到,表面504可以具有任何已知的幾何結構,只要可以直接地確定從深度傳感器102的投射平面到表面504的(多個)距離的地面實況測量結果即可(例如,表面504可以是地板等)。
距離測量設備506測量到表面504的距離,其中由距離測量設備506測量的這樣的距離被視為地面實況測量結果。距離測量設備506例如可以是激光測距儀;然而,其它類型的距離測量設備旨在落入隨附于此的權利要求的范圍內。例如,距離測量設備506可以是可以確定地面實況測量結果的(例如,深度傳感器102或可移動裝置514的)內部測量設備和/或傳感器。遵循該示例,距離測量設備506可以是慣性測量單元(IMU)或者采用測距法的組件。此外設想到,距離測量設備506例如不需要直接測量地面實況測量結果。
校準系統(tǒng)502可以接收由深度傳感器102捕獲的表面504的深度圖像。表面504的深度圖像的子集可以在距表面504的相應距離處捕獲(例如,表面504的深度圖像的第一子集可以在距表面504的第一距離處捕獲,表面504的深度圖像的第二子集可以在距表面504的第二距離處捕獲等)。另外,深度圖像可以各自包括像素,其中像素具有每一個深度圖像中的相應深度值。校準系統(tǒng)502可以進一步(例如,從距離測量設備506)接收與深度圖像的子集對應的表面的相應地面實況測量結果。
校準系統(tǒng)502包括樣本組合組件508,其可以在距表面504的相應距離處所捕獲的每一個子集中的深度圖像之上對像素的深度值進行平均。作為說明,如果由深度傳感器102在距離50cm處捕獲的表面504的100個深度圖像被校準系統(tǒng)502所接收,則樣本組合組件508可以在100個深度圖像之上對像素的深度值進行平均。在距表面504的其它距離處捕獲的表面504的深度圖像可以類似地由樣本組合組件508組合。
此外,校準系統(tǒng)502可以包括誤差計算組件510,其比較像素的平均深度值與從距離測量設備506所獲取的地面實況測量結果以便計算距表面504的每一個相應距離處的像素的誤差值。再次參照其中接收到在50cm處捕獲的表面504的100個深度圖像并且在100個深度圖像之上對像素的深度值進行平均的前述說明,誤差計算組件510可以比較像素的平均深度值與地面實況測量結果(例如,在該說明中,距離測量設備506可以提供用于100個深度圖像的50cm的地面實況測量結果)以便計算距離50cm處的像素的誤差值。
校準系統(tǒng)502可以進一步包括校準數據生成組件512,其基于距表面504的每一個相應距離處的像素的誤差值和地面實況測量結果來生成針對深度傳感器102所校準的非線性誤差模型的深度校準數據114。根據各種實施例,針對深度傳感器102所校準的非線性誤差模型的深度校準數據114可以包括參數矩陣,其中參數矩陣包括用于像素的誤差擬合參數。按照其它實施例,針對深度傳感器102所校準的非線性誤差模型的深度校準數據114可以包括查找表,其中查找表包括用于像素的預設深度值處的預限定的校正值。
系統(tǒng)500可以進一步包括可移動裝置514,其可以使深度傳感器102和距離測量設備506關于表面504移動。例如,可移動裝置514可以是深度傳感器102和距離測量設備506安裝在其上的可移動平臺。根據另一示例,可移動裝置514可以是機器人,其包括深度傳感器102和距離測量設備506。但是,所要求保護的主題不限于前述示例。
根據各種實施例,可移動裝置514可以可編程地控制成自主地移動,使得其可以使深度傳感器102沿垂直于表面504的軸線移動。另外,可移動裝置514可以使深度傳感器102對照表面504對準(例如,使深度傳感器102平移和/或傾斜)。根據示例,可移動裝置514可以采用對照其運行校準的表面的自動發(fā)現(例如,在自主導航機器人場景中);但是,所要求保護的主題不限于這樣的示例。
此外設想到,可以檢測表面504的非平坦部分并且使其從場景移除(例如,墻壁、地板上的隆起等可以被檢測到并且移除)。例如,校準系統(tǒng)502可以檢測并且移除表面504的非平坦部分;但是,所要求保護的主題不如此受限制。
對于距離的集合中距表面504的每一個距離,深度傳感器102可以從這樣的距離捕獲表面504的多于一個深度圖像,其可以被提供給校準系統(tǒng)502。例如,在可移動裝置514移動到距表面504的下一距離之前,可以從深度傳感器102收集T個樣本,其中T可以是基本上任何整數(例如,T可以是100等)。在每一個測量之前,深度傳感器102可以對照表面504對準。這樣的對準可以通過例如平移深度傳感器102而以機械方式達成。根據另一示例,平面可以通過點云來擬合并且可以計算每一個像素從平面的偏離以使深度傳感器102對準到表面504。
表面504的深度圖像的子集可以在X個步長處捕獲,其中X可以是基本上任何整數(例如,X可以是10等)。因而,深度圖像可以由深度傳感器102在距表面504的X個不同距離處捕獲,其中可移動裝置514可以將深度傳感器102和距離測量設備506定位在距表面504的X個不同距離處。例如,步長可以在其之上發(fā)生的距離范圍可以是從4m到50 cm;然而,基本上任何其它的范圍旨在落入隨附于此的權利要求的范圍之內。
根據示例,可移動裝置514可以使深度傳感器102和距離測量設備506在等同大小的步長(例如,1/2米步長)中移動。按照另一示例,可移動裝置514可以使深度傳感器102和距離測量設備506在到表面504的距離減小時以逐漸變小的步長移動(例如,每一個步長可以是到表面504的總距離的10%)。采用逐漸變小的步長可以引起更高分辨率的樣本數據全集,其中深度傳感器102的本生分辨率和準確度處于最高處,其可能導致在近范圍處的樣本相比于在較遠距離處獲得的樣本的更高權重。
相應地,校準系統(tǒng)502可以獲取用于給定像素的誤差值(例如,如由誤差計算組件510所計算)的陣列連同在其處觀察到那些誤差的距離的地面實況測量結果。如上文所指出,校準數據生成組件512可以基于距表面504的每一個相應距離處的像素的誤差值和地面實況測量結果來生成針對深度傳感器102所校準的非線性誤差模型的深度校準數據114。非線性誤差模型的各種示例包括二階多項式、三角法函數(例如,正弦曲線的疊加等)等。
根據示例,非線性誤差模型可以是二階多項式,諸如:誤差=Ax2+Bx+C。在以上內容中,x是用于給定像素的深度值,并且A、B和C是用于給定像素的誤差擬合參數(例如,深度校準數據114的部分)。誤差擬合參數可以對于深度傳感器102是唯一的,但是非線性誤差模型可以跨相同類型的其它深度傳感器而類似。遵循該示例,校準數據生成組件512可以(例如使用遞歸)而將二階多項式擬合到誤差值以生成深度校準數據114(例如,參數矩陣的誤差擬合參數)。相應地,深度校準數據114可以在運行時間處用于在給定其在深度圖像上的坐標以及由像素報告的距離的情況下,計算像素的預期誤差偏置(例如,逐像素校正值)。
設想到,非線性誤差模型的各種分析形式和階次旨在落入隨附于此的權利要求的范圍之內。例如,可以明確地確定對深度傳感器102的誤差進行近似的非線性誤差函數的分析形式和階次(例如,通過知曉深度傳感器102和物理過程的底層特性)。根據又一示例,非線性誤差函數的分析形式和階次可以手動地確定(例如,通過分析模型和/或發(fā)現模型)。按照又一示例,非線性誤差函數的分析形式和階次可以通過采用算法來分析用于遞歸的分析函數形式的范圍和/或使用神經網絡/SVM(支持向量機)遞歸來自動地確定。
參照圖6,圖示了校準深度傳感器102的另一示例性系統(tǒng)600。再次,系統(tǒng)600包括校準系統(tǒng)502,其可以進一步包括樣本組合組件508、誤差計算組件510和校準數據生成組件512。校準系統(tǒng)502從深度傳感器102所捕獲的表面(例如,圖5的表面504等)的深度圖像以及由距離測量設備506對表面所測量的對應地面實況測量結果來生成用于深度傳感器102的深度校準數據114。
一些深度傳感器可以生成被提供給校準系統(tǒng)502的深度圖像中的偽影。例如,深度傳感器102可以提供豎直帶,其是類似于深度圖像上的豎直列的偽影。豎直帶在由深度傳感器102捕獲的深度圖像內的位置可以隨時間而變化。另外,豎直帶可能不能夠受控制。
校準系統(tǒng)502可以包括偽影移除組件602。在樣本組合組件508對在距表面的相應距離處所捕獲的每一個子集中的深度圖像之上的像素的深度值進行平均之前,偽影移除組件602可以針對由深度傳感器102捕獲的表面的每一個深度圖像而檢測深度圖像中的豎直帶。此外,偽影移除組件602可以確定用于深度圖像中的豎直帶的深度值中的相應偏移值。另外,偽影移除組件可以從深度圖像中的對應深度值移除偏移值。
在記錄樣本之前,可以由偽影移除組件602將豎直帶從深度圖像移除,因為豎直帶的位置和幅度隨時間和距離而變化。如果豎直帶將要被移除,則深度校準數據114將具有短壽命,其可能在幾分鐘內過時,由此引起深度傳感器102的頻繁再校準。然而將領會到,豎直帶可能不能夠在運行時間處從深度傳感器102所捕獲的深度圖像所移除(例如,豎直帶可能不能夠從圖1的深度校正系統(tǒng)104的輸入組件110所接收的輸入深度圖像106移除);但是,逐像素校正可能仍舊在這樣的情況下執(zhí)行。
圖7圖示了包括豎直帶(例如,豎直帶702、豎直帶704、豎直帶706和豎直帶708)的示例性深度圖像700。如在深度圖像700的深度輪廓710中所示,每一個豎直帶702-708從暴跌值(collapsed value)向上或向下偏移(例如,由虛線表示)。例如,豎直帶702中的像素的深度值可以向上偏移15毫米,豎直帶704中的像素的深度值可以向下偏移5毫米等。然而,還設想到,豎直帶中的一個或多個不需要從暴跌值偏移。
包括在豎直帶中的像素的列可以隨時間改變,豎直帶的數目可以隨時間改變,并且偏移值的數量可以隨時間改變。偽影移除組件602可以檢測深度圖像700中的豎直帶702-708,確定用于豎直帶的相應偏移值,并且通過相應偏移值而補償深度圖像700中的深度值。
再次參照圖6。校準系統(tǒng)502可以進一步包括鄰居結合組件604。鄰居結合組件604可以針對深度傳感器102所捕獲的表面的深度圖像而計算距表面的每一個相應距離處的像素的補片的平均誤差值,其中補片包括像素中的相應多個像素。此外,校準數據生成組件512可以基于距表面的每一個相應距離處的像素的補片的平均誤差值和地面實況測量結果,來生成用于補片的深度校準數據114的相應子集。
甚至在樣本組合組件508跨數個深度圖像對像素的深度值進行平均之后,來自各個像素的噪聲水平可以為高,從而導致可能遭受過量擬合噪聲的深度校準數據114(例如,逐像素參數矩陣等),尤其是在外推超出在其處獲得測量結果的距離時。為了補償像素水平噪聲,以及減小深度校準數據114的大?。ɡ?,減小參數矩陣的大小等),鄰居結合組件604可以對來自作為補片的部分的相鄰像素的誤差值進行裝倉(例如,裝桶)。因而,校準數據生成組件512可以計算用于補片的擬合函數。補片可以具有任意形狀(例如,方形、矩形、其它形狀等),只要它們表示像素的本地緊密鄰域。如由深度圖像中的坐標所限定的補片中的像素可以設定成共享深度校準數據114的公共子集(例如,校正參數的公共集合、擬合多項式的公共系數等)。
根據示例,補片的大小可以由鄰居結合組件604自動地檢測。遵循該示例,鄰居結合組件604可以使用粗到細方案,其中(例如,由圖5的可移動裝置514自主地)執(zhí)行附加測量并且可以測試補片大小和噪聲水平和/或預測質量改進之間的相關性。然而,將領會到,所要求保護的主題不如此受限制。
按照各種示例,補片可以是全分辨率(例如,640x480)幀上的8個像素乘以8個像素、20個像素乘以20個像素等。要領會到,小于8x8的補片大小可能是有噪聲的并且可能展現過擬合偽影(例如,高變化),并且20x20以上的補片大小可能不具有足夠的分辨率以抑制明顯的深度場畸變(例如,高偏置)。
深度校準數據114例如可以包括參數矩陣。相應地,參數矩陣可以是包括每一補片的誤差擬合參數的二維陣列。這樣的陣列可以是稀疏陣列。此外,參數矩陣可以是分辨率不可知的,例如每一個補片的大小可以被確定為幀分辨率的份額,如以像素數目為單位測量大小形成對照。因而,方形補片的寬度可以是所指定的適用性區(qū)域中的圖像幀的寬度的1/40和圖像幀的高度的1/30(例如,補片可以被應用于視場的給定區(qū)域中的像素)。前述內容可以提供靈活性(例如,參數矩陣的導出可以在由深度傳感器102捕獲的全分辨率深度圖像上執(zhí)行以實現高質量參數矩陣,但是可以針對深度傳感器102所捕獲的更低分辨率深度圖像而應用于實時場景中,如由底層應用所確定的那樣)。
圖8-9圖示了涉及校準深度傳感器并且校正由深度傳感器捕獲的深度圖像的示例性方法。盡管將方法示出并且描述為順序執(zhí)行的動作的序列,但是要理解和領會到,方法不受順序的次序所限制。例如,一些動作可以以與本文描述的次序不同的次序而發(fā)生。此外,動作可以與另一動作并發(fā)地發(fā)生。另外,在一些實例中,并非所有動作對于實現本文描述的方法而言都是所要求的。
此外,本文描述的動作可以是計算機可執(zhí)行指令,其可以由一個或多個處理器實現和/或存儲在計算機可讀介質或媒介上。計算機可執(zhí)行指令可以包括例程、子例程、程序、執(zhí)行線程等。仍進一步地,方法的動作的結果可以存儲在計算機可讀介質中,顯示在顯示設備上等。
圖8圖示了校正輸入深度圖像的方法800。在802處,可以接收由深度傳感器捕獲的輸入深度圖像。輸入深度圖像可以包括像素。另外,像素可以具有輸入深度圖像中的相應深度值。在804處,可以利用針對深度傳感器所校準的非線性誤差模型的深度校準數據,來確定用于像素的逐像素校正值。逐像素校正值可以基于分別對應于像素和深度值的深度校準數據的部分來確定。在806處,逐像素校正值可以被應用于深度值以生成經校正的深度圖像。在808處,經校正的深度圖像可以被輸出。
參照圖9,圖示了校準深度傳感器的方法900。在902處,可以接收由深度傳感器捕獲的表面的深度圖像。表面的深度圖像的子集可以在距表面的相應距離處捕獲。深度圖像可以各自包括像素,其中像素可以具有每一個深度圖像中的相應深度值。在904處,可以接收與深度圖像的子集對應的表面的相應地面實況測量結果。地面實況測量結果可以由距離測量設備測量。在906處,可以在距表面的相應距離處所捕獲的每一個子集中的深度圖像之上對像素的深度值進行平均。在908處,像素的平均深度值可以與地面實況測量結果比較以計算距表面的每一個相應距離處的像素的誤差值。在910處,可以基于距表面的每一個相應距離處的像素的誤差值和地面實況測量結果而針對深度傳感器所校準的非線性誤差模型來生成深度校準數據。
現在參照圖10,圖示了可以依照本文描述的系統(tǒng)和方法而使用的示例性計算設備1000的高層圖示。例如,計算設備1000可以使用在執(zhí)行由深度傳感器捕獲的輸入深度圖像的逐像素校正以生成經校正的深度圖像的系統(tǒng)中。作為另一示例,計算設備1000可以使用在校準深度傳感器以生成深度校準數據的系統(tǒng)中。計算設備1000包括至少一個處理器1002,其執(zhí)行存儲在存儲器1004中的指令。指令可以例如是用于實現被描述為由以上所討論的一個或多個組件實施的功能性的指令或者用于實現以上所描述的方法中的一個或多個的指令。處理器1002可以通過系統(tǒng)總線1006的方式而訪問存儲器1004。除了存儲可執(zhí)行指令之外,存儲器1004還可以存儲深度圖像、深度校準數據、地面實況測量結果、距表面的相應距離處的像素的平均深度值等。
計算設備1000附加地包括數據倉庫1008,其由處理器1002通過系統(tǒng)總線1006的方式而可訪問。數據倉庫1008可以包括可執(zhí)行指令、深度圖像、深度校準數據、地面實況測量結果、距表面的相應距離處的像素的平均深度值等。計算設備1000還包括輸入接口1010,其允許外部設備與計算設備1000通信。例如,輸入接口1010可以用于從外部計算設備、從用戶等接收指令。計算設備1000還包括輸出接口1012,其使計算設備1000與一個或多個外部設備對接。例如,計算設備1000可以通過輸出接口1012的方式而顯示文本、圖像等。
設想到,經由輸入接口1010和輸出接口1012與計算設備1000通信的外部設備可以包括在提供用戶可以與其交互的基本上任何類型的用戶接口的環(huán)境中。用戶接口類型的示例包括圖形用戶界面、自然用戶接口等。例如,圖形用戶界面可以接受來自采用諸如鍵盤、鼠標、遙控等等的(多個)輸入設備的用戶的輸入,并且在諸如顯示器之類的輸出設備上提供輸出。另外,自然用戶接口可以使得用戶能夠以免受由諸如鍵盤、鼠標、遙控等等輸入設備所施加的約束的方式而與計算設備1000交互。相反,自然用戶接口可以依賴于語音識別、觸摸和觸筆識別、屏幕上和屏幕附近的手勢識別、空中手勢、頭部和眼睛追蹤、話音和語音、視覺、觸摸、手勢、機器智能等。
附加地,盡管被圖示為單個系統(tǒng),但是要理解到,計算設備1000可以是分布式系統(tǒng)。因而例如,若干設備可以通過網絡連接的方式而通信,并且可以聯(lián)合地執(zhí)行被描述為由計算設備1000執(zhí)行的任務。
如本文中所使用的,術語“組件”和“系統(tǒng)”旨在涵蓋配置有計算機可執(zhí)行指令的計算機可讀數據存儲裝置,該計算機可執(zhí)行指令在由處理器執(zhí)行時引起某些功能性的執(zhí)行。計算機可執(zhí)行指令可以包括例程、函數等。還要理解到,組件或系統(tǒng)可以位于單個設備上或者跨若干設備分布。
另外,如本文中所使用的,術語“示例性”旨在意指“充當某事物的說明或者示例”。
本文描述的各種功能可以實現在硬件、軟件或者其任何組合中。如果實現在軟件中,則功能可以作為一個或多個指令或代碼而存儲在計算機可讀介質上或者在計算機可讀介質之上傳送。計算機可讀介質包括計算機可讀存儲介質。計算機可讀存儲介質可以是可以由計算機訪問的任何可用的存儲介質。作為示例而非限制,這樣的計算機可讀存儲介質可以包括RAM、ROM、EEPROM、CD-ROM或其它光盤存儲裝置、磁盤存儲裝置或其它磁性存儲設備、或可以用于以指令或數據結構的形式承載或存儲期望的程序代碼并且可以由計算機訪問的任何其它介質。如本文中所使用的,盤和圓盤包括致密盤(CD)、激光盤、光盤、數字多用盤(DVD)、軟盤和藍光盤(BD),其中盤通常以磁性方式再現數據并且圓盤通常利用激光以光學方式再現數據。另外,傳播信號不包括在計算機可讀存儲介質的范圍之內。計算機可讀介質還包括通信介質,其包括促進計算機程序從一個地方向另一個的轉移的任何介質。連接例如可以是通信介質。例如,如果軟件使用同軸線纜、光纖線纜、雙絞線、數字訂戶線路(DSL)或無線技術(諸如紅外、無線電和微波)而從網站、服務器或其它遠程源傳送,則同軸線纜、光纖線纜、雙絞線、DSL或無線技術(諸如紅外、無線電和微波)包括在通信介質的定義中。以上的組合也應當包括在計算機可讀介質的范圍之內。
可替換地或者此外,本文描述的功能性可以至少部分地由一個或多個硬件邏輯組件執(zhí)行。例如并且不作為限制,可以使用的硬件邏輯組件的說明性示例包括現場可編程門陣列(FPGA)、程序特定集成電路(ASIC)、程序特定標準產品(ASSP)、片上系統(tǒng)(SOC)、復雜可編程邏輯器件(CPLD)等。
以上已經描述的內容包括一個或多個實施例的示例。當然,不可能描述以上設備或方法的每一個可預見的修改和更改以用于描述前述方面的目的,但是本領域普通技術人員可以認識到,各種方面的許多另外的修改和置換是可能的。相應地,所描述的方面旨在涵蓋落入隨附權利要求的精神和范圍之內的所有這樣的更改、修改和變化。此外,就術語“包括”在詳細描述或權利要求中所使用的程度而言,這樣的術語旨在以術語“包含”類似的方式為包括性的,如“包含”在被用作權利要求中的過渡性詞語時所解釋的那樣。