各種特征涉及主動深度感測,且更具體地說,涉及在解釋從結(jié)構(gòu)光導(dǎo)出的深度信息時校正由于數(shù)據(jù)誤差而導(dǎo)致的深度圖中的間隙的技術(shù)。
背景技術(shù):
結(jié)構(gòu)光主動感測系統(tǒng)發(fā)射且接收對應(yīng)于空間代碼(碼字)的圖案以產(chǎn)生場景的深度圖。對象離發(fā)射器和接收器越遠,接收到的空間代碼投影離其在接收器處的原始位置越近,因為傳出空間代碼投影與反射的傳入空間代碼投影更平行。相反,對象離發(fā)射器和接收器越近,接收到的空間代碼投影離其在接收器處的原始位置越遠。因此,接收到的與所發(fā)射的碼字位置之間的差異指示場景中對象的深度。結(jié)構(gòu)光主動感測系統(tǒng)使用這些相對深度來產(chǎn)生場景的深度圖或三維表示。深度圖對于在從相機質(zhì)量增強到計算機視覺的范圍內(nèi)的許多應(yīng)用至關(guān)重要。
每一種碼字可使用分段成具有變化強度值的行和列的光圖案編碼。例如,明和暗的強度值可用于表示0和1,從而形成二進制圖案。其它空間代碼可使用多于兩個不同強度值。
干擾(例如,斑點)可使得接收到的空間代碼和所得深度圖具有間隙或孔洞。例如,在發(fā)射二進制代碼時存在干擾可使得所發(fā)射的代碼中經(jīng)編碼的“1”值被接收作為“0”,或反之亦然。因此,接收到的空間代碼將不會被辨識為所發(fā)射的空間代碼。此所得誤差可能導(dǎo)致場景的深度圖中的深度值不正確或缺失。
技術(shù)實現(xiàn)要素:
本文中所揭示的方法和設(shè)備或裝置各具有若干方面,所述方面中無單一者單獨負責(zé)其所需屬性。在不限制(例如)如由以下權(quán)利要求書所表達的本發(fā)明的范圍的情況下,現(xiàn)將簡要地論述其較顯著的特征。在考慮此論述之后,且確切地說,在閱讀名為“詳細描述”的部分區(qū)段之后,將理解所描述的特征如何提供包含結(jié)構(gòu)光中的誤差校正的優(yōu)點。
所揭示的一個方面是結(jié)構(gòu)光中的誤差校正的方法。在各種實施例中,所述方法可包含經(jīng)由接收器傳感器接收編碼多個碼字的復(fù)合代碼掩碼的至少一部分的結(jié)構(gòu)光圖像,所述圖像包含無效碼字。所述方法可進一步包含檢測無效碼字。所述方法可進一步包含基于無效碼字產(chǎn)生多個候選碼字。所述方法可進一步包含選擇多個候選碼字中的一個來替代無效碼字。所述方法可進一步包含基于所選候選碼字產(chǎn)生用于場景的圖像的深度圖。所述方法可進一步包含基于深度圖產(chǎn)生場景的數(shù)字表示。所述方法可進一步包含將場景的數(shù)字表示輸出到輸出裝置。
對于一些實施方案,檢測無效碼字包含確定接收到的碼字是否包含于多個經(jīng)編碼碼字中,和響應(yīng)于確定接收到的碼字不包含于多個經(jīng)編碼字中,確定接收到的碼字無效。
對于一些實施方案,經(jīng)編碼碼字由多個基底函數(shù)與多個基底函數(shù)的旋轉(zhuǎn)版本的組合形成。對于一些實施方案,檢測無效碼字包含將接收到的碼字與多個基底函數(shù)和多個基底函數(shù)的旋轉(zhuǎn)版本中的每一者進行比較。對于一些實施方案,比較包含將接收到的碼字匹配濾波到多個基底函數(shù)和多個基底函數(shù)的旋轉(zhuǎn)版本中的每一者。
對于一些實施方案,產(chǎn)生多個候選碼字包含個別擾動無效碼字的每一個元素來針對每一個別擾動產(chǎn)生一候選碼字。對于一些實施方案,產(chǎn)生多個候選碼字包括以迭代方式擾動無效碼字的至少兩個元素以針對每一迭代產(chǎn)生一候選碼字,直到至少兩個元素的全部組合均已被擾動一次為止。
對于一些實施方案,選擇多個候選碼字中的一個來替代無效碼字包括選擇包含于多個經(jīng)編碼碼字中的多個候選碼字的子集。對于一些實施方案,選擇多個候選碼字中的一個來替代無效碼字進一步包含確定在候選碼字的所選子集中的每一個候選碼字與無效碼字周圍的碼字的局部鄰域之間的相似性。對于一些實施方案,選擇多個候選碼字中的一個來替代無效碼字進一步包含選擇最類似于局部鄰域的候選碼字來替代無效碼字。對于一些實施方案,相似性對應(yīng)于與候選碼字的所選子集中的每一個候選碼字相關(guān)聯(lián)的深度和與無效碼字周圍的碼字的局部鄰域相關(guān)聯(lián)的深度的差異。對于一些實施方案,無效碼字的碼字的局部鄰域由在無效碼字的位置的1、2、3、4、5或6個碼字位置內(nèi)的碼字構(gòu)成。對于一些實施方案,與局部鄰域相關(guān)聯(lián)的深度是中值深度。
所揭示的另一方面是用于結(jié)構(gòu)光中的誤差校正的設(shè)備。誤差校正設(shè)備可包含接收器傳感器,其經(jīng)配置以接收編碼多個碼字的復(fù)合代碼掩碼的至少一部分的結(jié)構(gòu)光圖像,所述圖像包含無效碼字。誤差校正設(shè)備可進一步包含與接收器傳感器通信的處理電路、處理電路。處理電路可經(jīng)配置以檢測無效碼字。處理電路可進一步經(jīng)配置以基于無效碼字產(chǎn)生多個候選碼字。處理電路可進一步經(jīng)配置以選擇多個候選碼字中的一個來替代無效碼字。處理電路可進一步經(jīng)配置以基于所選候選碼字產(chǎn)生用于場景的圖像的深度圖。處理電路可進一步經(jīng)配置以基于深度圖產(chǎn)生場景的數(shù)字表示。處理電路可進一步經(jīng)配置以將場景的數(shù)字表示輸出到輸出裝置。
對于一些實施方案,處理電路進一步經(jīng)配置以確定接收到的碼字是否包含于所述多個經(jīng)編碼碼字中。對于一些實施方案,處理電路經(jīng)配置以響應(yīng)于確定接收到的碼字不包含于多個經(jīng)編碼字中,確定接收到的碼字無效。
對于一些實施方案,經(jīng)編碼碼字由多個基底函數(shù)與多個基底函數(shù)的旋轉(zhuǎn)版本的組合形成。對于一些實施方案,處理電路進一步經(jīng)配置以將接收到的碼字與多個基底函數(shù)和多個基底函數(shù)的旋轉(zhuǎn)版本中的每一者進行比較。對于一些實施方案,處理電路進一步經(jīng)配置以將接收到的碼字匹配濾波到多個基底函數(shù)和多個基底函數(shù)的旋轉(zhuǎn)版本中的每一者。
對于一些實施方案,處理電路進一步經(jīng)配置以擾動無效碼字的每一個元素并針對每一個別擾動產(chǎn)生候選碼字。對于一些實施方案,處理電路進一步經(jīng)配置為以迭代方式擾動無效碼字的至少兩個元素以針對每一迭代產(chǎn)生候選碼字,直到至少兩個元素的全部組合均已被擾動一次為止。
對于一些實施方案,處理電路進一步經(jīng)配置以選擇包含于多個經(jīng)編碼碼字中的多個候選碼字的子集。對于一些實施方案,處理電路進一步經(jīng)配置以確定候選碼字的所選子集中的每一個候選碼字與無效碼字周圍的碼字的局部鄰域之間的相似性。對于一些實施方案,處理電路進一步經(jīng)配置以選擇最類似于局部鄰域的候選碼字來替代無效碼字。對于一些實施方案,相似性對應(yīng)于與候選碼字的所選子集中的每一個候選碼字相關(guān)聯(lián)的深度和與無效碼字周圍的碼字的局部鄰域相關(guān)聯(lián)的深度的差異。對于一些實施方案,無效碼字周圍的碼字的局部鄰域由在無效碼字的碼字位置的1、2、3、4、5或6個碼字位置內(nèi)的碼字構(gòu)成。對于一些實施方案,與局部鄰域相關(guān)聯(lián)的深度是中值深度。
所揭示的另一方面是用于結(jié)構(gòu)光中的誤差校正的設(shè)備。所述設(shè)備可包含用于接收編碼多個碼字的復(fù)合代碼掩碼的至少一部分的結(jié)構(gòu)光圖像的裝置,所述圖像包含無效碼字。所述設(shè)備可包含用于檢測無效碼字的裝置。所述設(shè)備可包含用于基于無效碼字產(chǎn)生多個候選碼字的裝置。所述設(shè)備可包含用于選擇多個候選碼字中的一個來替代無效碼字的裝置。所述設(shè)備可包含用于基于所選候選碼字產(chǎn)生用于場景的圖像的深度圖的裝置。所述設(shè)備可包含用于基于深度圖產(chǎn)生場景的數(shù)字表示的裝置。所述設(shè)備可包含用于將場景的數(shù)字表示輸出到輸出裝置的裝置。
所揭示的另一方面為一種存儲用于結(jié)構(gòu)光中的誤差校正的指令的非暫時性計算機可讀媒體,所述指令當(dāng)經(jīng)執(zhí)行時當(dāng)經(jīng)執(zhí)行時執(zhí)行一方法。所述方法可包含經(jīng)由接收器傳感器接收編碼多個碼字的復(fù)合代碼掩碼的至少一部分的結(jié)構(gòu)光圖像,所述圖像包含無效碼字。所述方法可包含檢測無效碼字。所述方法可包含基于無效碼字產(chǎn)生多個候選碼字。所述方法可包含選擇多個候選碼字中的一個來替代無效碼字。所述方法可包含基于所選候選碼字產(chǎn)生用于場景的圖像的深度圖。所述方法可包含基于深度圖產(chǎn)生場景的數(shù)字表示。所述方法可包含將場景的數(shù)字表示輸出到輸出裝置。
附圖說明
現(xiàn)將參考附圖結(jié)合各種實施方案描述上文提及的方面以及本發(fā)明技術(shù)的其它特征、方面和優(yōu)點。然而,所說明的實施方案僅為實例,且并不希望是限制性的。在整個圖式中,除非上下文另有規(guī)定,否則相似符號通常識別相似組件。應(yīng)注意,以下各圖的相對尺寸可能未按比例繪制。
圖1是說明主動感測系統(tǒng)的實例的示意圖,其中已知圖案用于照明場景或?qū)ο蟛@得深度信息,利用所述深度信息以從2維圖像和/或信息產(chǎn)生3維信息。
圖2是說明用于主動感測的系統(tǒng)的另一實例的圖,其中3維(3d)場景由2維(2d)圖像或信息構(gòu)建。
圖3是說明可如何感測對象或場景的深度的示意圖。
圖4是說明可經(jīng)配置以產(chǎn)生復(fù)合代碼掩碼和/或投影此類復(fù)合代碼掩碼的發(fā)射器裝置的實例的框圖。
圖5是說明可經(jīng)配置以從復(fù)合代碼掩碼獲得深度信息的接收器裝置的實例的框圖。
圖6是經(jīng)配置以執(zhí)行本文中所揭示的一或多個誤差校正方法的設(shè)備的一個實施例的框圖。
圖7展示使用中值濾波器的誤差校正的變化程度。
圖8a說明具有展現(xiàn)埃爾米特(hermitian)對稱性的點的圖案的實例。
圖8b說明沒有重影圖像的埃爾米特對稱圖案的實例。
圖8c說明具有埃爾米特對稱性的代碼掩碼圖案的實例。
圖8d說明具有重影圖像的非埃爾米特對稱圖案的實例。
圖8e說明沒有埃爾米特對稱性的代碼掩碼圖案的實例。
圖9說明圖8c中所說明的示范性代碼掩碼的詳細視圖,所述示范性代碼掩碼具有多列不同基底函數(shù)和視窗化的4×4個空間代碼。
圖10展示從結(jié)構(gòu)光導(dǎo)出的深度圖中的間隙。
圖11為深度圖孔洞填充方法的數(shù)據(jù)流程圖的實例。
圖12說明深度圖中的誤差校正過程的實例。
圖13描繪說明使用中值濾波器在深度圖中進行空隙填充的一些方面的圖像。
圖14描繪說明使用本文中所揭示的方法和系統(tǒng)進行深度圖的空隙填充的一些方面的圖像。
圖15為說明校正從結(jié)構(gòu)光產(chǎn)生的碼字中的誤差的過程的實例的流程圖。
具體實施方式
以下詳細描述是針對某些特定實施例。然而,所揭示的方法和系統(tǒng)可以眾多的不同方式體現(xiàn)。應(yīng)顯而易見,本文中的方面可體現(xiàn)于廣泛多種形式中,且本文中所揭示的任一特定結(jié)構(gòu)、功能或這兩者僅為代表性的?;诒疚闹械慕淌?,所屬領(lǐng)域的技術(shù)人員應(yīng)了解,本文中所揭示的方面可獨立于任何其它方面而實施,且可以不同方式組合這些方面中的兩個或多于兩個方面。舉例來說,可以使用本文中所闡述的任何數(shù)目個方面來實施設(shè)備或?qū)嵺`方法。另外,使用其它結(jié)構(gòu)、功能性或除了本文中所闡述的一或多個方面之外或不同于本文中所闡述的一或多個方面的結(jié)構(gòu)和功能性可以實施這種設(shè)備或可以實踐這種方法。
另外,可在多種不同計算裝置上實施本文中所描述的系統(tǒng)和方法。所述計算裝置包括移動電話、平板計算機、專用相機、可佩戴式計算機、個人計算機、照相間或照相亭、個人數(shù)字助理、超移動個人電腦和移動互聯(lián)網(wǎng)裝置。其可使用通用或?qū)S糜嬎銠C系統(tǒng)環(huán)境或配置。可適合與本發(fā)明一起使用的計算系統(tǒng)、環(huán)境和/或配置的實例包含(但不限于)個人計算機、服務(wù)器計算機、手持式或筆記本電腦裝置、多處理器系統(tǒng)、基于處理器的系統(tǒng)、可編程消費型電子裝置、網(wǎng)絡(luò)pc、微型計算機、大型主機計算機,包含以上系統(tǒng)或裝置中的任一個的分布式計算環(huán)境等。
如上文所論述,結(jié)構(gòu)光系統(tǒng)在場景上投影已知圖案或代碼,并將接收到的圖案或代碼進行處理來獲得深度圖。每個碼字可經(jīng)由使用在下文更詳細地論述的“基底函數(shù)”產(chǎn)生??商暨x基底函數(shù)的周期性來滿足對于埃爾米特對稱性的集合圖案(用于消除重影圖像及簡化制造)、最小占空比(為確保每碼字最小功率)、完美的窗口特性(用于最佳輪廓分辨率與高分辨率的代碼封裝)和隨機移位(用于在對象邊界上的經(jīng)改進檢測)的一或多個需求。
如果接收到的代碼匹配列出有效代碼的碼簿中的代碼中的一個,那么接收到的代碼最有可能等效于所發(fā)射的代碼,且因此不存在誤差。不可避免地,由于斑點或其它噪聲源,接收到的圖案的某些區(qū)域可在代碼的發(fā)射與接收之間更改。如果接收到的代碼不精確匹配碼簿中的代碼中的一個,那么接收器可確定接收到的代碼不匹配經(jīng)發(fā)射代碼,且因此在接收到的代碼中存在誤差。任何未解碼碼字在深度圖中產(chǎn)生不含深度信息的孔洞,因此降低圖的效用。
一些解決方案利用匹配濾波器以提供關(guān)于接收到的碼字中的基底函數(shù)的存在的軟決策。用于誤差檢測和校正的其它機制涉及使用不使用基礎(chǔ)代碼結(jié)構(gòu)且由此不產(chǎn)生新信息的幾何約束。
在一些實施例中,所揭示的系統(tǒng)和方法可通過確定基于含有可能已發(fā)射的有效代碼的列表的碼簿而發(fā)射的最可能碼字和接收到的碼字來執(zhí)行誤差校正。
舉例來說,在一些方面中,如果接收到的代碼不匹配有效代碼碼簿中的任一代碼,那么接收到的代碼中包含與接收到的代碼的一或多個位差的變體可與碼簿進行比較,以確定變體中的任一個是否包含于有效代碼碼簿中。如果接收到的碼字的多個變體包含于碼簿中,那么采用碼字的局部鄰域與候選碼字之間的相似性度量來選擇最可能匹配原始發(fā)射碼字的變體。
示范性操作環(huán)境
圖1說明示范性主動感測系統(tǒng),其中結(jié)構(gòu)光圖案用于照明場景或?qū)ο笄耀@得深度信息。可在這種示范性主動感測系統(tǒng)內(nèi)實施本文所描述的一或多個方面和/或特征。圖1展示發(fā)射器102通過代碼掩碼104(例如,具有代碼的圖像)投影光以在對象或場景106上投影碼字。接收器108捕捉所投影的代碼掩碼110和其中的碼字。代碼掩碼104的區(qū)段/部分/窗口112(作為區(qū)段/部分/窗口114)投影到對象或場景106的表面(例如,所投影的區(qū)段/部分/窗口116)上。經(jīng)投影區(qū)段/部分/窗口116接著可由接收器108捕捉作為經(jīng)捕捉片段118。區(qū)段/部分/窗112編碼可唯一地識別的碼字。通過以此方式用獨特碼字使場景或?qū)ο?06成像,可識別/標(biāo)記場景或?qū)ο?06的區(qū)段/部分,且這個信息可用于深度感測。
可從由接收器108捕捉的圖像識別場景或?qū)ο?06上方的多個片段??稍诮邮掌?08和其相對于從經(jīng)譯碼掩碼104的已知圖案去人的其它片段的位置處唯一地識別每一片段118。每一片段/部分/窗口的代碼的識別可涉及圖案分段(例如,以解決失真)及將感知到的片段/部分/窗口解碼成對應(yīng)代碼。另外,三角測量可應(yīng)用于每一所捕捉片段/部分/窗口以確認定向和/或深度。多個此類片段/部分/窗口可經(jīng)組合以將所捕捉圖像圖案拼接在一起。以此方式,可產(chǎn)生場景或?qū)ο?06的深度圖。
圖2說明用于主動感測的另一示范性系統(tǒng),其中3維(3d)場景由2維(2d)圖像或信息構(gòu)建。編碼器/形狀調(diào)制器201可用以產(chǎn)生隨后由發(fā)射器裝置202在發(fā)射信道204上投影的代碼掩碼。代碼掩碼可投影到目標(biāo)(例如,場景或?qū)ο?上,且反射光由接收器傳感器205捕捉為圖像(例如,代碼掩碼圖像)。在接收器傳感器205(例如,圖1中的接收器108)處,捕捉目標(biāo)(例如,場景或?qū)ο?,且編碼205其形狀/深度。形狀/深度編碼可(例如)使用所投影的代碼掩碼確認深度信息而實現(xiàn)。舉例來說,可解碼206場景或?qū)ο蟮乃蹲綀D像(其包含所投影代碼掩碼)以獲得深度圖208。深度圖208可接著用以呈現(xiàn)、產(chǎn)生和/或提供目標(biāo)的3維版本210a到210e。
主動感測依賴于能夠從由發(fā)射器裝置202投影于場景或?qū)ο笊系拇a掩碼(在接收器傳感器205和/或解碼器206處)辨識出所有空間代碼(即,碼字)。如果場景或?qū)ο筮^于接近發(fā)射器/接收器,那么場景或?qū)ο蟮谋砻娉山嵌?彎曲及/或基線參考平面傾斜,代碼在未知仿射變換下被修改(例如,旋轉(zhuǎn)、偏斜、壓縮、伸長,等等)。
本文所描述的一或多個方面或特征可在圖1及2的示范性環(huán)境內(nèi)實施。
示范性主動深度感測
圖3說明可如何感測對象或場景的“深度”的實例。圖3展示包含發(fā)射器302和接收器304的裝置300。所述裝置利用從發(fā)射器302發(fā)出的結(jié)構(gòu)光作為碼字投影310來照明兩個對象306和308。碼字投影310從對象306和/或308反射且作為碼字反射311而被接收。
在所說明的方面中,發(fā)射器302與接收器304在同一基線參考平面(例如,透鏡平面305)上。發(fā)射器302通過透鏡或孔口313將代碼掩碼310投影到對象306和308上。
碼字投影310照明作為經(jīng)投影片段312'的對象306,且照明作為經(jīng)投影片段312”的對象308。當(dāng)經(jīng)投影片段312'和312”由接收器304通過接收器透鏡或孔口315接收時,碼字反射311可展示在第一距離d1處從對象308產(chǎn)生的反射和在第二距離d2處從對象306產(chǎn)生的反射。
如由圖3所展示,由于對象306定位為更接近發(fā)射器302(例如,距發(fā)射器裝置第一距離),因此經(jīng)投影片段312'出現(xiàn)在距其初始位置的距離d2處。相比之下,由于對象308位于更遠處(例如,距發(fā)射器302第二距離),因此經(jīng)投影片段/部分/窗口312”出現(xiàn)在距其初始位置的距離d1處(其中d1<d2)。即,對象距發(fā)射器/接收器越遠,接收到的投影片段/部分/窗口在接收器裝置304處距其原始位置越近(例如,傳出投影與傳入投影更為平行)。相反,對象距發(fā)射器/接收器越近,接收到的投影片段/部分/窗口在接收器304處距其原始位置越遠。因此,所接收的與所發(fā)射的碼字位置之間的差異可用作對象的深度的指標(biāo)。在一個實例中,這種深度(例如,相對深度)可為由圖像中的每個像素或分組像素(例如,兩個或多于兩個像素的區(qū)域)描繪的對象提供深度值。
已構(gòu)想各種類型的調(diào)制和譯碼方案來產(chǎn)生碼字投影或代碼掩碼。這些調(diào)制和譯碼方案包含時間譯碼、空間譯碼和直接譯成代碼(directcodification)。
在時間譯碼中,圖案連續(xù)地投影到測量表面上(例如,隨時間推移)。這種技術(shù)具有高準確度和分辨率,但較不適合于動態(tài)場景。
在空間譯碼中,信息基于形狀和圖案而編碼于局部鄰域中。偽隨機代碼可基于定義碼簿的德布魯因(de-bruijn)或m陣列(例如,m元強度或色彩調(diào)制)。例如,在形狀和圖案失真的情況下,可能不容易獲得圖案分段。
在直接編碼中,編碼水平和豎直像素坐標(biāo)兩者??赏ㄟ^單調(diào)相位或強度波形進行調(diào)制。然而,這個方案可利用大于用于其它方法的碼簿的碼簿。大部分方法中,接收到的碼字可與(例如,碼簿中的)一組所定義的可能碼字相關(guān)。因此,使用一組小碼字(例如,小碼簿)與較大碼簿相比可提供較好性能。并且,由于較大碼簿導(dǎo)致碼字之間的較小距離,使用較大碼簿的實施方案可能經(jīng)歷另外的誤差。
用于主動深度感測的示范性代碼
可通過照射光穿過代碼掩碼來將結(jié)構(gòu)光圖案投影到場景上。通過代碼掩碼所投影的光可含有一或多個棋盤狀代碼掩碼原語。每一代碼掩碼原語可含有空間代碼陣列。碼簿或數(shù)據(jù)結(jié)構(gòu)可包含代碼集合??墒褂没缀瘮?shù)產(chǎn)生空間代碼、代碼掩碼和代碼掩碼原語??商暨x基底函數(shù)的周期性來滿足對于埃爾米特對稱性的集合圖案(用于消除重影圖像及簡化制造)、最小占空比(以確保每碼字最小功率)、完美的窗口特性(用于最佳輪廓分辨率與高分辨率的代碼封裝)和隨機移位(用于在對象邊界上的經(jīng)改進檢測)的需求。在解調(diào)、解碼及校正接收到的圖案中的誤差時,接收器可利用碼簿和/或空間代碼、代碼掩碼和代碼掩碼原語的設(shè)計屬性。
空間代碼的大小與對應(yīng)分辨率對應(yīng)于代碼掩碼上的空間代碼的物理空間范圍。大小可對應(yīng)于表示每一碼字的矩陣中的行與列的數(shù)目。碼字越小,可檢測的對象就越小。例如,為檢測和確定在襯衫上的紐扣與襯衫織品之間的深度差異,碼字應(yīng)不大于紐扣的大小。在一實施例中,每一空間代碼可占據(jù)四行和四列。在一實施例中,代碼可占據(jù)更多或更少行和列(行×列),以占據(jù)(例如)3×3、4×4、4×5、5×5、6×4或10×10行和列。
空間代碼的空間表示對應(yīng)于每一碼字元素如何在代碼掩碼上圖案化并隨后投影到場景上。例如,每一碼字元素可使用一或多個點、一或多個線路片段、一或多個柵格、一些其它形狀或其某一組合來表示。
空間代碼的“占空比”對應(yīng)于碼字中經(jīng)確認位或部分(例如,“1”)的數(shù)目與未確認位/部分(例如,“0”)的數(shù)目的比率。當(dāng)包含碼字的經(jīng)譯碼光圖案投影到場景上時,具有“1”值的每一位或部分可具有能量(例如,“光能”),而具有“0”值的每一位可不含能量。為了使碼字更容易被檢測,碼字應(yīng)具有充足能量。低能量碼字可更難以檢測且可對噪聲更敏感。例如,如果碼字中的8個或多于8個位為“1”,那么4×4碼字具有50%或大于50%的占空比。可存在對于個別碼字的最小(或最大)占空比約束或?qū)τ诖a簿中的代碼集合的占空比約束,例如平均占空比。
代碼的“輪廓分辨率”或“完美窗口”特性指示:當(dāng)碼字移位少量(例如一位旋轉(zhuǎn))時,所得數(shù)據(jù)表示另一個碼字。碼字移位的量可被稱為移位量。具有高輪廓分辨率的代碼可使結(jié)構(gòu)光深度感測系統(tǒng)能夠辨識相對較小的對象邊界并提供對不同對象的辨識連續(xù)性。行維度中的移位量1和列維度中的移位量2可對應(yīng)于沿行維度向右移位一個位位置和沿列維度向下移位兩個位位置。碼字的高輪廓分辨率集合使得有可能在接收到的圖像上將窗口每次移動一行或一列且確定在每一窗口位置處的深度。這實現(xiàn)了在以接收到的圖像的第三行和第三列為中心的起始點處使用5×5窗口及移動5×5窗口至從第三行到倒數(shù)第三行和從第三列到倒數(shù)第三列的每一行、列位置來確定深度。由于碼字重疊,窗口可基于待確定的對象深度(例如,襯衫上的紐扣)的分辨率來設(shè)定大小。
代碼的對稱性可指示代碼掩碼或碼簿原語具有埃爾米特對稱性,其與使用非埃爾米特對稱的碼簿原語或圖案相比可提供若干益處。具有埃爾米特對稱性的圖案沿x和y(行和列)軸兩者“翻轉(zhuǎn)”或?qū)ΨQ。
代碼掩碼或代碼掩碼原語的混疊特性對應(yīng)于相同的兩個碼字之間的距離。當(dāng)光學(xué)圖案包含棋盤狀碼簿原語時及當(dāng)原語中的每一碼簿是唯一的時,混疊距離可基于碼簿原語的大小?;殳B距離可因此表示唯一性準則,其指示碼簿原語的每一碼字與碼簿原語的每一其它碼字不同且碼簿原語總的來說是唯一的。混疊距離可對一或多個接收器裝置為已知的,且可用來在碼字解調(diào)期間阻止混疊。
代碼掩碼的基數(shù)對應(yīng)于碼簿原語中的唯一代碼的數(shù)目。
示范性發(fā)射器裝置
圖4是說明可經(jīng)配置以產(chǎn)生復(fù)合代碼掩碼和/或投影此類復(fù)合代碼掩碼的發(fā)射器裝置的實例的框圖。發(fā)射器裝置402可包含耦合到存儲器/存儲裝置的處理電路404、圖像投影裝置408,和/或有形媒體409。在一些方面中,發(fā)射器裝置402可對應(yīng)于上文參考圖3所論述的發(fā)射器302。
在第一實例中,發(fā)射器裝置402可經(jīng)耦合以包含有形媒體409。有形媒體可定義、包含和/或存儲復(fù)合代碼掩碼414,所述復(fù)合代碼掩碼包含與載體層組合的代碼層。所述代碼層可包含由多個符號定義的可唯一識別的空間譯碼碼字。載體層可獨立地確認且不同于代碼層,且包含對于投影時的失真穩(wěn)健的多個參考對象??稍谕队爸巴ㄟ^合成點擴散函數(shù)來預(yù)整形代碼層與載體層中的至少一個。
在第二實例中,處理單元404可包含代碼層產(chǎn)生器/選擇器416、載體層產(chǎn)生器/選擇器418、復(fù)合代碼掩碼產(chǎn)生器/選擇器420和/或預(yù)整形電路422。代碼層產(chǎn)生器/選擇器416可選擇預(yù)先存儲的代碼層410且/或可產(chǎn)生此類代碼層。載體層產(chǎn)生器/選擇器418可選擇預(yù)先存儲的載體層412且/或可產(chǎn)生此類載體層。復(fù)合代碼掩碼產(chǎn)生器/選擇器可選擇預(yù)先存儲的復(fù)合代碼掩碼414且/或可將代碼層410和載體層412進行組合來產(chǎn)生復(fù)合代碼掩碼414。任選地,處理電路404可包含預(yù)整形復(fù)合代碼掩碼414、代碼層410和/或載體層412來補償復(fù)合代碼掩碼將通過其投影的信道中預(yù)期的失真的預(yù)整形電路。
在一些實施方案中,多個不同代碼層和/或載體層可能可用,其中每一此類載體層或代碼層可經(jīng)配置用于不同條件(例如,用于處于不同距離的對象,或發(fā)射器裝置與接收器裝置之間的不同配置)。舉例來說,對于第一距離或范圍內(nèi)的對象,可使用與處于第二距離或范圍的對象不同的代碼層與載體層的組合,其中所述第二距離大于所述第一距離。在另一實例中,可取決于發(fā)射器裝置與接收器裝置的相對定向而使用代碼層與載體層的不同組合。
圖像投影裝置408可用以將所產(chǎn)生/選擇的復(fù)合代碼掩碼投影到所關(guān)注的對象上。舉例來說,激光或其它光源可用以將復(fù)合代碼掩碼投影到所關(guān)注的對象上(例如,通過投影信道)。在一個實例中,復(fù)合代碼掩碼414可在紅外線光譜中投影,因此其對于肉眼可能不可見。替代地,紅外線光譜范圍中的接收器傳感器可用以捕捉此類所投影復(fù)合代碼掩碼。
示范性接收器裝置操作
圖5是說明可經(jīng)配置以從復(fù)合代碼掩碼獲得深度信息的接收器裝置502的實例的框圖。接收器裝置502可包含耦合到存儲器/存儲裝置的處理電路504和接收器傳感器508(例如,圖像捕捉裝置508)。在一些方面中,圖5中所說明的接收器裝置502可對應(yīng)于上文參考圖3所論述的接收器304。
接收器傳感器508(例如,相機)可用以獲得投影在對象的表面上的復(fù)合代碼掩碼的至少一部分。舉例來說,接收器傳感器可捕捉投影在目標(biāo)對象的表面上的復(fù)合代碼掩碼的至少一部分。復(fù)合代碼掩碼可通過以下定義:(a)由多個符號定義的可唯一識別的空間譯碼碼字的代碼層,和(b)載體層,其可獨立地確認且不同于所述代碼層且包含對于投影時的失真穩(wěn)健的多個參考對象??赡茉谕队爸耙淹ㄟ^合成點擴散函數(shù)來預(yù)整形代碼層與載體層中的至少一個。在一個實例中,接收器傳感器508可在紅外線光譜中捕捉復(fù)合代碼掩碼。
在實施方案中,代碼層可包括n1乘n2二進制符號,其中n1和n2為大于二的整數(shù)。在復(fù)合代碼掩碼中,每一符號可為不同于參考對象的兩個灰階陰影中的一者中的線段。代碼層的符號可在至少一個維度中交錯。載體層參考對象可包括用其間的保護間隔同等地隔開的多個參考條帶。所述參考條帶與所述保護間隔可具有不同寬度。相對于保護間隔寬度的每一參考條帶的寬度可通過發(fā)射器裝置和/或接收器裝置的預(yù)期光學(xué)擴散而確定。
處理電路504可包含參考條帶檢測器電路/模塊512、失真調(diào)整電路/模塊514、碼字識別器電路/模塊516、深度檢測電路/模塊518和/或深度圖產(chǎn)生電路/模塊520。
參考條帶檢測器電路/模塊512可經(jīng)配置以檢測復(fù)合代碼掩碼的所述部分內(nèi)的參考條帶。失真調(diào)整電路/模塊514可經(jīng)配置以基于相對于參考條帶的實際定向的參考條帶的預(yù)期定向而調(diào)整復(fù)合代碼掩碼的所述部分的失真。碼字識別器電路/模塊516可經(jīng)配置以從復(fù)合代碼掩碼的所述部分內(nèi)定義的窗口獲得碼字。深度檢測電路/模塊518可經(jīng)配置以基于以下獲得對應(yīng)于窗口的目標(biāo)對象的表面部分的深度信息:(a)復(fù)合代碼掩碼的單個投影,和(b)窗口相對于已知參考代碼掩碼的位移。
仍參考圖5,深度圖產(chǎn)生電路/模塊520可經(jīng)配置以基于檢測為未失真復(fù)合代碼掩碼的部分內(nèi)的不同重疊窗口的多個碼字而匯編對象的深度圖。
在一個實例中,對代碼層與載體層中的至少一個的預(yù)整形增大復(fù)合代碼掩碼投影期間的功率效率,使得與未經(jīng)整形復(fù)合代碼掩碼相比,接收器傳感器感知到更多功率。
在一個例項中,所使用的合成點擴散函數(shù)可基于以下中的至少一項而選自多個點擴散函數(shù):(a)復(fù)合代碼掩碼將經(jīng)由其投影的預(yù)期信道條件,(b)復(fù)合代碼掩碼投影到其上的表面的特性,和/或(c)將接收所投影復(fù)合代碼掩碼的接收器傳感器的靈敏度。在另一實例中,合成點擴散函數(shù)可基于以下中的至少一項而選自多個點擴散函數(shù):(a)對將投影復(fù)合代碼掩碼的投影儀的第一信道響應(yīng);和/或(b)對從將投影復(fù)合代碼掩碼的投影儀到將接收復(fù)合代碼掩碼的接收器傳感器的路徑的第二通道響應(yīng)。
示范性誤差校正裝置
圖6是說明經(jīng)配置以執(zhí)行本文中所揭示的一或多個誤差校正方法的設(shè)備的一實施例的框圖。設(shè)備600包含光發(fā)射器602、光接收元件604、處理器606和存儲器608。光發(fā)射器602、光接收元件604、處理器606和存儲器608經(jīng)由總線610可操作地連接。在一些方面中,光接收元件604可對應(yīng)于上文參考圖5所論述的接收器裝置502。在一些方面中,光發(fā)射器602可對應(yīng)于上文參考圖4所論述的發(fā)射器裝置402。
存儲器608可存儲將處理器606配置成執(zhí)行本文中所論述的方法的一或多個功能的指令。例如,存儲于存儲器中的指令可將處理器606配置成控制光發(fā)射器602發(fā)射將結(jié)構(gòu)光編碼為碼字的光以便照明目標(biāo)對象。存儲于存儲器608中的指令可進一步使得處理器606控制光接收元件604以接收從目標(biāo)對象反射的光且產(chǎn)生在反射光中編碼的數(shù)據(jù)。存儲于存儲器中的指令可將處理器進一步配置成根據(jù)下文所論述的方法1500校正由光接收元件產(chǎn)生的數(shù)據(jù)中的誤差。
圖7展示緩解圖像深度圖中的間隙效應(yīng)的已知方法的應(yīng)用的結(jié)果。圖像701a展示無需任何誤差校正的深度圖。深度圖中的孔洞可被視為(例如)手701b中的暗區(qū)。圖像702a展示在已執(zhí)行輕度孔洞填充過程之后的相同深度圖。雖然手702b與手701a相比在深度圖中包含更少孔洞時,但還是存在一些細節(jié)損失。圖像703a展示在已執(zhí)行中等水平孔洞填充之后與圖像701a相同的深度圖。圖像703a中的手703b展示深度圖間隙的數(shù)目中的進一步減小,而且展示了相對于手701b和702b的細節(jié)損失。圖像704a展示在徹底孔洞填充之后與圖像701a相同的深度圖。圖像704a中的手704b與手701b、702b和703b相比展示深度圖間隙的進一步減小。然而,相對于手701b、702b和703b的其它細節(jié)損失也是明顯的。
圖8a說明展現(xiàn)埃爾米特對稱性的圖案。具有正(x,y)的每個點a、b、c包含于碼簿原語中,且圍繞原點(例如,點(0,0))反射到也在碼簿原語中的點(-x,-y)。由點a、b、c中的每一個展現(xiàn)的埃爾米特對稱性可抑制當(dāng)使用非埃爾米特圖案時可接收的“重影”圖像的形成。例如,圖8b說明由埃爾米特對稱代碼掩碼形成的無重影圖像的圖案。相比之下,圖8d說明由不具有埃爾米特對稱性的代碼掩碼形成的具有重影圖像的圖案。消除重影圖像可減少接收器側(cè)信號處理,可增加碼字辨識和解調(diào)準確度,增加對移動對象的耐受性,增加對噪聲的耐受性和增加對照明變化的耐受性。
圖8c及8e展示埃爾米特對稱圖案可如何影響結(jié)構(gòu)光投影中的零階光束的大小。如圖所示,當(dāng)與具有非埃爾米特對稱圖案的圖8e中所展示的零階光束相比時,圖8c的埃爾米特對稱圖案產(chǎn)生較小零階光束。在光(例如,激光)穿過代碼掩碼且一部分光以非繞射方式穿過代碼掩碼的中心時,產(chǎn)生零階光束。這產(chǎn)生零階光束。因為零階光束不會繞射,所以零階光束與繞射光束相比可具有較高強度,導(dǎo)致在零階光束的位置周圍的接收圖像傳感器的盲點和飽和。與圖8e中所使用的非埃爾米特對稱圖案相比,圖8c中的零階光束的經(jīng)減小大小和較低強度可減小盲點的大小,并改進使用激光的系統(tǒng)中的人眼安全性。
圖9說明圖8c中所說明的示范性代碼掩碼的詳細視圖。代碼掩碼900的列內(nèi)的經(jīng)編碼數(shù)據(jù)可基于一組基底函數(shù)產(chǎn)生?;缀瘮?shù)用于形成空間代碼?;缀瘮?shù)(基底序列)的設(shè)計可類似于用于矩陣的特征向量,在于基底函數(shù)可經(jīng)挑選為與彼此正交且可經(jīng)線性組合。
圖9的代碼掩碼說明從三個基底函數(shù)產(chǎn)生的代碼掩碼。圖案中的白色方形表示為一(1)的值,而深色方形表示為零(0)的值。在圖9所說明的代碼掩碼中,每一列從以下三個基底函數(shù)中的一個對值進行編碼:
由(有時是旋轉(zhuǎn)的)基底函數(shù)產(chǎn)生的圖案組織成包括四列部分的代碼中,每一列部分由一個四元基底函數(shù)圖案組成。例如,代碼950可表示為
代碼950可以圖像形式存儲于碼簿中,作為4×4二進制矩陣,作為二進制矩陣的二進制表示(例如,按列為1111111101011100,或按行為1101111111001110),作為具有相位的基底函數(shù)的組合(910、910、930+1、920)或作為函數(shù)的組合(910、910、932、920)。
以類似方式,代碼
可識別圖9的代碼掩碼中的每一四乘四元素“窗口”的代碼。如由代碼952和954所示的可識別代碼“重疊”,在于代碼掩碼900的每一4×4部分表示有效代碼。由于對設(shè)計代碼掩碼900的輪廓分辨率(完美窗口)約束,每一4×4“窗口”從910、920、922、924、926、930或932的組合形成有效代碼。
用于圖9的代碼掩碼圖案的設(shè)計的完美窗口約束還要求經(jīng)移位碼字為唯一的。至代碼掩碼的一個窗口對應(yīng)于位置950、952、954和956中所展示的四乘四窗口。由于窗口移位一或多行和/或一或多列,窗口內(nèi)的四乘四碼字需要是唯一的且在抗混疊區(qū)域上不重復(fù)。如果碼字不是唯一的,那么不可能唯一識別抗混疊區(qū)域內(nèi)的每一碼字位置(對應(yīng)于每一唯一碼字的窗口位置)。對于具有七個函數(shù)910、920、922、924、926、930及932和四列的這個實例,存在四列74=2,401的可能的組合,使得有可能在至多2,401列的抗混疊區(qū)域上滿足完美窗口約束。
不用于此實例中的4×4個代碼的兩個其它候選基底函數(shù)是
圖9的代碼掩碼900可發(fā)射到場景中的一或多個對象上并隨后反射回接收器。接收器(例如,接收器502或光接收元件604)從場景中的對象接收經(jīng)發(fā)射圖案的反射。在接收后,可確定窗口950、952、954和956處的代碼的所接收版本。通過觀測經(jīng)編碼碼字在由對象反射時如何變化,可產(chǎn)生深度圖,例如圖10中所示的深度圖1002a。所產(chǎn)生的深度圖可提供至一或多個圖像處理方法,所述方法可基于深度圖修改圖像數(shù)據(jù)。所產(chǎn)生的深度圖可包含一或多個間隙或孔洞。間隙或孔洞可由解碼代碼的所接收版本時的誤差產(chǎn)生。誤差可由多種因素造成,所述因素包含具有低反射率的對象的部分、雜散環(huán)境光條件或多種其它因素。深度圖中的孔洞的實例可見于手1002b的經(jīng)擴展圖像中。在沒有用于校正這些誤差的裝置的情況下,可抑制對接近孔洞的圖像的區(qū)域進行圖像處理,從而導(dǎo)致經(jīng)處理圖像的視覺質(zhì)量降低。
當(dāng)接收到代碼掩碼900的碼字時,可解調(diào)或解釋每一接收到的碼字來確定接收到的代碼。
在一實施例中,接收到的空間代碼或接收到的空間代碼的符號(二進制或n進制)表示可匹配至基底函數(shù)(例如,使用匹配濾波器)、基底函數(shù)的移位版本或每一有效空間代碼陣列,以確定接收到的代碼是否對應(yīng)于有效代碼。代碼掩碼900可經(jīng)產(chǎn)生以包含僅表示基底函數(shù)的所有可能組合的子集的有效代碼。在圖9的4×4個代碼的實例中,七個函數(shù)910、920、922、924、926、930和932對應(yīng)于出自216(4×4)=65,536個可能性的74=2,401個可能的代碼。
用以產(chǎn)生代碼掩碼900的碼簿可選擇2,401個代碼的子集(例如,400),在此情況下小于1%的可能代碼是有效的。如果有效代碼差異很大,那么單個位誤差可能不會產(chǎn)生另一有效代碼。因此,如果接收到的代碼不匹配有效代碼,那么有可能確定所述接收到的代碼具有誤差,且對于單個位誤差來說,相對不大可能或甚至不可能使第一有效代碼被誤認為第二有效代碼。
本文中所描述的誤差校正系統(tǒng)和方法檢測在接收到無效代碼時的誤差,并通過確定對應(yīng)于接收到的無效代碼的最可能有效的經(jīng)發(fā)射碼字來校正所述誤差。最可能有效的經(jīng)發(fā)射碼字的確定在一些方面中可假設(shè)無效碼字包含僅一個差錯。這個假設(shè)限定確定最可能有效碼字的計算要求。此外,考慮到單一碼字中有多個誤差的機率相對較低,這個假設(shè)提供具有校正誤差的適當(dāng)能力的方法和系統(tǒng)。
圖11是深度圖孔洞填充方法的數(shù)據(jù)流程圖。所述方法包含在檢測誤差步驟1150中檢測接收到的空間碼字中的誤差。檢測誤差可包含確定接收到的碼字不包含于列出有效碼字的碼簿中。在檢測誤差之后,所述方法包含在產(chǎn)生碼字步驟1160中產(chǎn)生候選有效碼字。在檢查有效性步驟1170中對照有效碼字的集合檢查候選碼字中的每一個,以確定候選碼字中的哪些是有效候選。接下來,在產(chǎn)生深度步驟1180中產(chǎn)生有效碼字中的每一個的深度。圖11說明使用參考圖9所描述的基底函數(shù)產(chǎn)生的實例4×4個空間代碼的數(shù)據(jù)流,所述基底函數(shù)即基底函數(shù)
圖11首先豎直地說明誤差檢測過程1150。在誤差檢測過程11150內(nèi),解碼接收到的空間代碼1102。經(jīng)解碼空間代碼1102可由上文參考圖9所描述的空間代碼中的至少一者的反射產(chǎn)生。特殊代碼1102中的每一所接收的空間列使用匹配濾波器與圖9的基底函數(shù)的集合進行比較。1102的第一、第二和第三列分別匹配函數(shù)910、930和926。然而,列1104不匹配函數(shù)910、920、922、924、926、930或932中的任一個,表示列1104的至少一個元素中的誤差。
在圖11中豎直地說明,一旦誤差檢測過程1150在空間碼字1102的列1104中檢測到誤差,那么在候選碼字產(chǎn)生步驟1160中產(chǎn)生候選有效碼字產(chǎn)生。
圖11的實例候選產(chǎn)生步驟1160包含僅一個誤差存在于列1104中的設(shè)計假設(shè)。其它所預(yù)期的實施例可進行不同假設(shè),例如,其它實施例可假設(shè)不超過兩個、三個或四個誤差存在于列1104中。然而,檢測與校正大量差錯可需要較高計算成本和復(fù)雜度。在一些方面中,候選碼字可經(jīng)產(chǎn)生于無效代碼的特定漢明(hamming)距離內(nèi)。例如,在假設(shè)無效碼字中有至多一個誤差的實施方案中,可產(chǎn)生具有距無效碼字的漢明距離一(1)的候選碼字。在預(yù)期列1104中有至多兩個誤差的實施方案中,可產(chǎn)生在距無效碼字1102的漢明距離二(2)內(nèi)的候選碼字,等等。
如圖11中所示,在碼字產(chǎn)生步驟1160中產(chǎn)生候選碼字1106a至1106d。候選碼字1106a至1106d中的每一個具有距無效碼字1102的漢明距離一(1)。此對應(yīng)于上文所論述的單位誤差假設(shè)。替代地,取決于實施方案,候選碼字1106a至1106d可通過多種其它方法產(chǎn)生。在一個實施方案中,通過擾動(或改變)包含誤差的列1104的唯一位來產(chǎn)生每一候選碼字。因此,如果列1104包含八個位,那么可產(chǎn)生八個候選碼字,每一候選碼字包含不同的經(jīng)擾動位。
在產(chǎn)生候選碼字1106a至1106d之后,接著可在有效性步驟1170中檢查候選碼字中的每一個的有效性。在一些方面中,可通過確定候選碼字是否包含于用以產(chǎn)生代碼掩碼900的有效代碼的碼簿1108中來確定有效性。如果候選替代物1106a至1106d中的恰好一個是有效代碼(在碼簿1108中列出),那么單個匹配候選很可能是原始發(fā)射的有效代碼。在圖11的實例中,發(fā)現(xiàn)代碼1106a至1106c在碼簿1108中是有效的,而在碼簿1108中沒發(fā)現(xiàn)代碼1106d。應(yīng)注意,如果候選碼字中無一者經(jīng)確定為有效的(即在碼簿1108中),那么一些實施方案可確定無效碼字列1104包含多于單個誤差。響應(yīng)于此確定,一些實施方案可執(zhí)行第二候選碼字產(chǎn)生步驟。例如,可產(chǎn)生在距無效碼字的漢明距離二(2)內(nèi)的候選碼字且將其與碼簿1108進行比較。一些實施方案可對距無效碼字的漢明距離更大的候選碼字執(zhí)行額外步驟。一些實施方案可在單一步驟中確定在最接近漢明距離處的候選碼字。
在一些實施例中,有效性檢查過程1170可基于碼字分配方案執(zhí)行。例如,在一些方面中,水平方向上的碼字在x維度中可為唯一的,且在y維度中可重復(fù)。一些候選碼字可不符合這個總體碼字分配方案,且在有效性檢查308期間可受到排斥。
在執(zhí)行有效性檢查1170之后,產(chǎn)生深度步驟1180確定與每一候選有效碼字1110a至1110c相關(guān)聯(lián)的深度。與碼字1110a至1110c相關(guān)聯(lián)的候選深度可與局部鄰域內(nèi)的深度進行比較,以確定候選碼字1110a至1110c中的哪一個應(yīng)替代無效碼字1102。舉例來說,無論哪個候選深度1110a至1110c最接近局部鄰域,無效碼字1102的深度值可用于替代深度圖中的無效碼字1102。在一些情況下,局部鄰域可限于來自無效碼字1102的1、2、3、4、5、6、7、8、9或10個碼字。在一些方面中,局部鄰域可限于深度圖寬度或高度的百分之一內(nèi)的碼字。舉例來說,如果深度圖有100個碼字穿過,那么局部鄰域可經(jīng)定義為這個尺寸的百分之一(1)或在無效碼字1102的一個碼字內(nèi)。下文參考圖12描述關(guān)于產(chǎn)生深度步驟1180的更多細節(jié)。
應(yīng)注意,一些實例經(jīng)解碼碼字1102可包含多于一列中的誤差。例如,4×4碼字的第一與第三列可各自包含誤差。在此情況下,可產(chǎn)生八個潛在候選的候選碼字(在4×4碼字的情況下針對每一列產(chǎn)生四個候選碼字),對照碼簿來驗證每一候選,產(chǎn)生每一有效候選的深度,且選擇最相似深度以用于替代。方法可在位誤差的數(shù)目上設(shè)置上限以作考慮。
圖12展示在給定一組候選替代深度的情況下的深度圖中的誤差校正過程的一部分,所述候選替代深度例如是圖11中所說明的1110a至1110c,其分別對應(yīng)于圖12中的候選深度1204a至1204c)。在一些方面中,圖12的論述接著描述圖11的過程1180的一個實施方案。圖12展示在中心位置1203處具有未知深度值的3×3區(qū)域。深度在位置1203處未知,因為在位置1203處接收到的代碼不是有效代碼,如由圖11的檢測誤差1150所確定。存在由圖11的檢查有效性1170驗證的三個經(jīng)驗證的候選碼字1204a至1204c,且通過產(chǎn)生深度步驟1180產(chǎn)生所述碼字的候選深度。圖12說明確定候選深度的相似性度量1206a至1206c,所述候選深度是針對在3×3鄰域中具有其他位置的深度的每一對應(yīng)候選碼字1204a至1204c而確定的。圖12展示基于對三個候選碼字1204a至1204c的相似性度量,具有值63691的碼字1204c具有最類似于八個鄰近位置1208a至1208h的深度的深度。經(jīng)誤差校正的深度值包含經(jīng)選擇的深度。
在一些方面中,在每一候選替代深度1204a至1204c與鄰近深度之間計算相似性度量1206a至1206c。在一些方面中,鄰近深度可限于深度1208a至1208h。在一些方面中,鄰近深度的中值可與每一替代深度1110a至1110c進行比較,且最相似(例如,在一些方面中,基于最近鄰者的中值深度之間的差異的絕對值)的候選深度可用于替代圖11的無效碼字1102。其它實施例可使用除中值外的度量(例如,平均值),且/或考慮更少(例如,四個)或更多鄰近者的深度。在一實施例中,如果所有相似性度量1206a至1206c指示低于相似性閾值的相似性,那么可能會排斥所有候選碼字。
已知方法不使用上文參考圖9、11及12的所描述的誤差檢測及校正過程。例如,圖13展示使用中值濾波器在深度圖中進行間隙填充?;谥兄禐V波器的解決方案不使用結(jié)構(gòu)光的基礎(chǔ)編碼的知識,且因此實際上不會校正誤差。相反,誤差一般是通過中值濾波器平滑到周圍區(qū)域中。這個平滑的結(jié)果在圖13中顯而易見。圖像1302a包含左手1302b和右手1302c。左手1302b和右手1302c兩者展示除對應(yīng)的細節(jié)損失以外的經(jīng)減小的間隙數(shù)目。
與由圖13的基于中值濾波器的解決方案所展示的細節(jié)損失相反,圖14展示使用本文中所揭示的方法和系統(tǒng)對深度圖的間隙填充。如在圖像1404a的左手1404b和右手1404c中可見,雖然由基礎(chǔ)譯碼中的誤差產(chǎn)生的間隙已經(jīng)減少,但保留相對于圖13中所展示的中值濾波器的左手1402b和右手1402c的細節(jié)。
在一實施例中,為確定最可能發(fā)射哪一候選空間代碼,候選空間代碼中的每一個可與鄰近空間代碼進行比較,且基于該比較選擇一候選作為最可能發(fā)射的代碼。例如,如果鄰近空間代碼的基底函數(shù)與所有其它基底函數(shù)相比更符合一個候選,那么可選擇所述候選。在一實施例中,對應(yīng)于候選空間代碼中的每一個的深度可與鄰近經(jīng)估算的深度進行比較,且基于該比較來選擇候選。例如,鄰近深度的中值濾波器值可與對應(yīng)于每一候選代碼的深度進行比較,且可選擇具有最接近中值濾波器值的深度的候選代碼。
圖15是校正由結(jié)構(gòu)光產(chǎn)生的碼字中的誤差的方法的流程圖。在一些方面中,上文所論述的特征中的一或多個也可能與參考圖15所描述的實施方案相關(guān)聯(lián)。
在一些方面中,方法1500可由上文參考圖6所論述的裝置600執(zhí)行。例如,存儲于存儲器608中的處理器指令可將處理器606配置成執(zhí)行下文參考方法1500所論述的功能中的一或多個。在一些方面中,方法1500可由上文參考圖5所論述的裝置500執(zhí)行。例如,存儲于存儲器/存儲裝置506中的處理器指令可將處理電路504配置成執(zhí)行下文參考方法1500所論述的功能中的一或多個。
在框1510中,接收器傳感器接收編碼多個碼字的復(fù)合代碼掩碼的至少一部分的結(jié)構(gòu)光圖像,所述圖像包含無效碼字。在一些方面中,框1510由上文參考圖6所論述的光接收元件604執(zhí)行。在一些方面中,框1510由處理器606執(zhí)行,所述處理器控制光接收元件604接收復(fù)合代碼掩碼。在一些方面中,框1510由下文參考圖5所論述的接收器傳感器508執(zhí)行。在一些方面中,框1510由處理電路504執(zhí)行,所述處理電路控制接收器傳感器508接收復(fù)合代碼掩碼。在一些方面中,代碼掩碼部分可包括一或多個碼字。在一些方面中,代碼具有如上文參考“用于主動深度感測的示范性代碼(exemplarycodesforactivedepthsensing)”所描述的特性。舉例來說,代碼可包含諸如以下的特性:代碼掩碼原語(其可為棋盤狀的)、碼簿、大小和空間分辨率、碼字圖案、占空比、輪廓分辨率或完美窗口特性、對稱性(如參考圖8a至8e所描述)、混疊和基數(shù)。在一些方面中,經(jīng)編碼碼字可經(jīng)組織成數(shù)據(jù)的行和或列。在一些方面中,代碼掩碼的經(jīng)編碼碼字由多個基底函數(shù)與所述多個基底函數(shù)的旋轉(zhuǎn)版本的組合形成,例如,如上文參考圖11所論述。
在一些方面中,有效碼字可稀疏地填入碼字的總可能值。例如,在一些方面中,碼字可編碼32位信息,但具有遠少于231個有效值。因此,在一些方面中,具有無效值的碼字可經(jīng)確定為包含一或多個誤差。在一些方面中,小于1%的可能的二進制碼字在代碼掩碼中經(jīng)編碼為有效碼字。
在框1520中,方法1500檢測無效碼字。在一些方面中,框1520可使用如上文參考圖11所描述的誤差檢測過程1150來檢測無效碼字。在一些方面中,框1520確定接收到的碼字是否包含于多個經(jīng)編碼碼字中(例如在碼簿中),且如果不包含于其中,那么確定接收到的碼字是無效的。在一些方面中,檢測無效碼字包括將接收到的碼字與多個基底函數(shù)和所述多個基底函數(shù)的經(jīng)旋轉(zhuǎn)版本中的每一者進行比較,如上文參考圖9所描述。在一些方面中,比較包括將接收到的碼字匹配濾波到多個基底函數(shù)和所述多個基底函數(shù)的經(jīng)旋轉(zhuǎn)版本中的每一者。在一些方面中,比較包括將碼字與碼簿中的條目進行比較。在一些方面中,框1520由處理器606或由處理電路504執(zhí)行。
框1530基于無效碼字產(chǎn)生多個候選碼字???530可至少針對經(jīng)由如圖9中所描述的基底函數(shù)產(chǎn)生的碼字而使用上文參考圖11所描述的候選產(chǎn)生步驟1160和/或有效性步驟1170產(chǎn)生碼字。在一些方面中,其可包含產(chǎn)生包含于代碼掩碼中的一或多個候選碼字。在一些情況下,產(chǎn)生包含于代碼掩碼的部分中的多個碼字中的每一者的多個候選碼字。如上文參考圖11及12的所論述,在一些方面中,候選碼字可通過擾動碼字中的個別位產(chǎn)生,以使得碼字的檢查指示候選部分中不存在誤差。舉例來說,如果碼字列包含八個位,那么可產(chǎn)生八個候選掩碼,每一候選碼字在與來自在框1505中接收的代碼掩碼的部分的對應(yīng)碼字相比時擾動一個位。在一些方面中,框1530由處理器606或由處理電路504執(zhí)行。
在框1540中,選擇候選碼字中的一個。在一些方面中,框1540可執(zhí)行上文參考檢查有效性步驟1170和/或上文所論述的產(chǎn)生深度步驟1180所論述的功能中的一或多個。
在一些方面中,候選碼字的選擇也可包含上文參考圖12所論述的功能中的一或多個。例如,在一些方面中,可產(chǎn)生與每一候選碼字相關(guān)聯(lián)的深度與在無效碼字周圍的局部鄰域的深度值之間的相似性度量。可在框1540中選擇最類似于局部鄰域的候選碼字。
在一些方面中,相似性對應(yīng)于與候選碼字的經(jīng)選擇子集中的每一個相關(guān)聯(lián)的深度和與無效碼字周圍的碼字的局部鄰域相關(guān)聯(lián)的深度的差異。
在一些方面中,與局部鄰域相關(guān)聯(lián)的深度是中值深度。在一些方面中,其是平均深度。
在一些方面中,無效碼字周圍的碼字的局部鄰域由在無效碼字的位置的1、2、3、4、5、6、7、8、9、10或11個碼字位置內(nèi)的碼字構(gòu)成。在一些方面中,局部鄰域的范圍包含定位在距無效碼字的對角線距離內(nèi)的碼字。例如,在1、2、3、4、5、6、7、8、9、10、11個對角線碼字位置中的任一個內(nèi)的碼字可包含于局部鄰域中。在一些方面中,框1540由選擇候選碼字的處理器606執(zhí)行。在一些方面中,框1540由選擇候選碼字的處理電路504執(zhí)行。
在框1550中,確定基于所選候選碼字的深度圖。在一些方面中,所選候選碼字可包含于在含有誤差的碼字的位置處的深度圖中。在一些方面中,基于上文參考圖3所描述的主動深度感測方法來確定在所選碼字的位置處的深度。深度圖可由一個或多個處理例程使用以處理和改進場景的圖像。在一些方面中,框1550由產(chǎn)生深度圖的處理器606執(zhí)行。在一些方面中,框1550由產(chǎn)生深度圖的處理電路504執(zhí)行。
在框1560中,基于深度圖產(chǎn)生場景的數(shù)字表示。在一些方面中,場景的數(shù)字表示是場景的三維表面表示,其基于深度圖中的深度表示場景中的對象的深度。在一些方面中,場景的數(shù)字表示是使用透視圖和/或陰影來表示三維對象、使用深度圖的深度信息的場景的二維表示。在一些方面中,數(shù)字表示用于產(chǎn)生場景的計算機圖形圖像。在一些方面中,數(shù)字表示用于產(chǎn)生場景的增強現(xiàn)實圖像。在一些方面中,數(shù)字表示用于產(chǎn)生場景的立體表示,例如以用于計算機輔助設(shè)計、立體建模或用于三維打印。在一些方面中,框1560由處理器606或由處理電路504執(zhí)行。
在框1570中,場景的數(shù)字表示輸出到輸出裝置。在一些方面中,輸出裝置是顯示器、監(jiān)視器或投影儀。顯示器、監(jiān)視器或投影儀可為獨立的(如在電視中),或可為臺式計算機、膝上型計算機、便攜式計算機裝置、可佩戴式計算機、平板計算機或電話的組件。在一些方面中,輸出裝置產(chǎn)生三維圖像,所述輸出裝置例如是三維顯示器或全息投影儀。在一些方面中,輸出裝置可為二維圖片或三維對象的打印機,例如3d打印機。在一些方面中,輸出裝置可為立體或三維建模系統(tǒng),例如計算機輔助工程設(shè)計系統(tǒng)。在一些方面中,框1570由處理器606或由處理電路504執(zhí)行。在一些方面中,可能不執(zhí)行框1560和1570。
應(yīng)理解,本文中使用例如“第一”、“第二”等名稱的元件的任何參考通常不限制那些元件的數(shù)量或次序。相反地,這些名稱可在本文中用作區(qū)別兩個或多于兩個元件或元件的例項的方便方法。因此,對第一和第二元件的參考不意味著此處可采用僅兩個元件或第一元件必須以某一方式在第二元件之前。并且,除非另外說明,否則一組元件可包括一或多個元件。另外,用于說明書或權(quán)利要求書的形成“以下中的至少一個:a、b或c”的術(shù)語意味著“a或b或c或這些元件的任一組合”。
如本文所使用,術(shù)語“確定”涵蓋各種各樣的動作。舉例來說,“確定”可包含推算、計算、處理、導(dǎo)出、研究、查找(例如,在表、數(shù)據(jù)庫或另一數(shù)據(jù)結(jié)構(gòu)中查找)、確認等。而且,“確定”可包含接收(例如,接收信息)、存取(例如,在存儲器中存取數(shù)據(jù))等。此外,“確定”可包含解析、選擇、挑選、建立等。
如本文所使用,提到一列項目“中的至少一個”的短語是指那些項目的任何組合,包含單個成員。作為實例,“a、b或c中的至少一個”意在涵蓋:a、b、c、a-b、a-c、b-c和a-b-c。
上文所描述的方法的各種操作可由能夠執(zhí)行所述操作的任何適合的裝置來執(zhí)行,例如各種硬件和/或軟件組件、電路和/或模塊。一般來說,各圖中所說明的任何操作可以由能夠執(zhí)行所述操作的對應(yīng)功能裝置執(zhí)行。
可使用通用處理器、數(shù)字信號處理器(dsp)、專用集成電路(asic)、現(xiàn)場可編程門陣列信號(fpga)或其它可編程邏輯裝置(pld)、離散門或晶體管邏輯、離散硬件組件或其經(jīng)設(shè)計以執(zhí)行本文所描述的功能的任何組合來實施或執(zhí)行結(jié)合本發(fā)明而描述的各種說明性邏輯塊、模塊和電路。通用處理器可為微處理器,但在替代方案中,處理器可為任何市售處理器、控制器、微控制器或狀態(tài)機。處理器還可實施為計算裝置的組合,例如,dsp與微處理器的組合、多個微處理器、一或多個微處理器結(jié)合dsp核心,或任何其它此類配置。
在一或多個方面中,所描述功能可在硬件、軟件、固件或其任何組合中實施。如果實施于軟件中,那么可將功能作為一或多個指令或代碼存儲在計算機可讀媒體上或經(jīng)由計算機可讀媒體發(fā)射。計算機可讀媒體包含計算機存儲媒體及通信媒體兩者,通信媒體包含促進將計算機程序從一處傳送到另一處的任何媒體。存儲媒體可以是可由計算機存取的任何可用媒體。舉例來說且非限制,此類計算機可讀媒體可包括ram、rom、eeprom、cd-rom或其它光盤存儲裝置、磁盤存儲裝置或其它磁性存儲裝置,或可用于攜載或存儲呈指令或數(shù)據(jù)結(jié)構(gòu)的形式的所要程序代碼且可由計算機存取的任何其它媒體。并且,任何連接被恰當(dāng)?shù)胤Q作計算機可讀媒體。舉例來說,如果使用同軸電纜、光纖電纜、雙絞線、數(shù)字訂戶線(dsl)或例如紅外線、無線電及微波等無線技術(shù)從網(wǎng)站、服務(wù)器或其它遠程源發(fā)射軟件,則同軸電纜、光纖電纜、雙絞線、dsl或例如紅外線、無線電及微波等無線技術(shù)包含于媒體的定義中。如本文中所使用,磁盤和光盤包含壓縮光盤(cd)、激光光盤、光學(xué)光盤、數(shù)字多功能光盤(dvd)、軟性磁盤和藍光光盤,其中磁盤通常以磁性方式再現(xiàn)數(shù)據(jù),而光盤利用激光以光學(xué)方式再現(xiàn)數(shù)據(jù)。因此,在一些方面中,計算機可讀媒體可包括非暫時性計算機可讀媒體(例如,有形媒體)。
本文中所揭示的方法包括用于實現(xiàn)所描述方法的一或多個步驟或動作。在不偏離權(quán)利要求書的范圍的情況下,方法步驟和/或動作可彼此互換。換句話說,除非規(guī)定了步驟或動作的特定次序,否則在不偏離權(quán)利要求書的范圍的情況下可對特定步驟和/或動作的次序及/或用途加以修改。
另外,應(yīng)了解,用于執(zhí)行本文所描述的方法和技術(shù)的模塊和/或其它適當(dāng)裝置可在適用時由用戶終端和/或基站下載和/或以其它方式獲得。舉例來說,可將此裝置耦合到服務(wù)器以促進傳送用于執(zhí)行本文所描述方法的裝置。替代地,本文中所描述的各種方法可經(jīng)由存儲裝置(例如,ram、rom、例如壓縮光盤(cd)或軟性磁盤的物理存儲媒體等)提供,以使得用戶終端和/或基站一旦將存儲裝置耦合或提供至所述裝置后可獲得各種方法。此外,可利用用于將本文中所描述的方法及技術(shù)提供到裝置的任何其它合適的技術(shù)。
應(yīng)理解,權(quán)利要求書不限于上文所說明的精確配置和組件。在不偏離權(quán)利要求書的范圍的情況下,可在上文所描述的方法和設(shè)備的布置、操作和細節(jié)中作出各種修改、改變和變化。