前文介紹了結(jié)構(gòu)光三維重建系統(tǒng),順序投影技術(shù)(結(jié)構(gòu)光三維表面成像:一個(gè)教程1)
本文將介紹第三節(jié)全框架空間變化顏色圖案。
3.全框架空間變化顏色圖案(Full-Frame Spatially Varying Color Pattern)
順序投影技術(shù)的主要缺點(diǎn)包括:無法獲取動(dòng)態(tài)運(yùn)動(dòng)中的3D對(duì)象或諸如人體部位等實(shí)時(shí)對(duì)象。我們現(xiàn)在介紹一些單次拍攝3D表面成像技術(shù),這些技術(shù)利用顏色信息或獨(dú)特編碼方案,并且在顏色圖案照明下僅需要一個(gè)獲取的對(duì)象圖像來導(dǎo)出具有場(chǎng)景中每個(gè)可見點(diǎn)的(x,y,z)坐標(biāo)。
3.1 彩虹3D相機(jī)(Rainbow 3D Camera)
圖11展示了Rainbow 3D相機(jī)的基本概念[17-25]。 與必須從一對(duì)圖像中提取相應(yīng)特征以計(jì)算深度值的傳統(tǒng)立體視覺不同,Rainbow 3D相機(jī)將空間變化的波長照明投影到物體表面。 彩虹光投影儀的固定幾何形狀確定光平面的投影角θ與特定光譜波長λ之間的一一對(duì)應(yīng)關(guān)系,從而在每個(gè)表面點(diǎn)上提供易于識(shí)別的標(biāo)志。 已知基線B和已知視角α的情況下,可以通過使用直接三角測(cè)量原理來計(jì)算與每個(gè)單獨(dú)像素對(duì)應(yīng)的3D范圍值,并且可以在相機(jī)的幀速率的單個(gè)快照中獲得3D范圍圖像的全幀 (30幀/秒或更快)。(full frame 不知道如何翻譯)
3.2 連續(xù)變化顏色編碼(Continuously Varying Color Coding)
夠構(gòu)成不同的連續(xù)變化的彩色圖案來編碼空間位置信息[24]是有可能的。 例如,我們可以為投影機(jī)的每個(gè)顏色通道構(gòu)建一個(gè)強(qiáng)度變化圖案,這樣當(dāng)將它們加在一起時(shí),這些圖案在各個(gè)顏色通道中形成連續(xù)變化的顏色圖案。 圖12顯示了三個(gè)加性原色通道的強(qiáng)度變化圖案的例子。 當(dāng)它們加在一起時(shí),形成彩虹狀的彩色投影圖案。 請(qǐng)注意,這種類型的顏色圖案不一定遵循色譜(波長)中的線性變化關(guān)系。 然而,由于每個(gè)顏色通道的貢獻(xiàn)之間的比率是已知的,所以解碼方案易于推導(dǎo)和實(shí)施。

4 條紋索引(Stripe Indexing Single Shot)
條紋索引對(duì)于實(shí)現(xiàn)魯棒(robust)的3D表面重構(gòu)是必要的,因?yàn)樗^察到的條紋的順序并不一定與條紋的排列順序相同。這是由于三維表面成像系統(tǒng)中固有的視差,由于物體三維表面特征的遮擋,使得所獲得的圖像中缺少條紋。我們現(xiàn)在提供一些代表性的條紋索引技術(shù)。
4.1 彩色條紋索引(Stripe Indexing Using Colors)
彩色圖像傳感器通常有三個(gè)獨(dú)立的采集通道,每個(gè)通道對(duì)應(yīng)一個(gè)頻譜帶。這些顏色值的線性組合可以產(chǎn)生無限數(shù)量的顏色。三個(gè)8位通道可以表示224種不同的顏色。這種豐富的色彩信息可用于增強(qiáng)3D成像精度,減少采集時(shí)間。例如,在投影圖案中使用顏色來表示條紋索引(圖13)可以幫助緩解使用單色模式[26,27]的相移或多條帶技術(shù)所面臨的歧義問題。這種顏色編碼系統(tǒng)可以實(shí)現(xiàn)實(shí)時(shí)三維表面成像。也可以將多個(gè)圖案編碼成一個(gè)單一的顏色投影圖像,每個(gè)模式在顏色空間中都具有唯一的顏色值。

4.2 分段圖案條紋索引(Stripe Indexing Using Segment Pattern)
為了區(qū)分一根條紋和其他條紋,你可以為每條條紋添加一些獨(dú)特的片段圖案(圖14),這樣,當(dāng)執(zhí)行3D重建時(shí),算法可以使用每條條紋的獨(dú)特的片段圖案來區(qū)分它們。該方法在[28],是一種有趣而又聰明的方法,但它只適用于具有光滑連續(xù)表面的三維物體(因?yàn)楸砻嫘螤钤斐傻膱D案失真并不嚴(yán)重)否則,由于模式的變形或物體表面的不連續(xù),可能很難恢復(fù)獨(dú)特的片段圖案。

4.3 使用重復(fù)灰度圖案的條紋索引(Stripe Indexing Using Repeated Gray-Scale Pattern)
如果使用兩個(gè)以上的強(qiáng)度等級(jí),則可以通過排列條紋的強(qiáng)度等級(jí),使得任何一組條紋(N個(gè)條紋的滑動(dòng)窗口)在一段長度內(nèi)具有獨(dú)特的強(qiáng)度圖案[29]。 例如,如果使用三個(gè)灰度級(jí)(黑色,灰色和白色),則可以將圖案設(shè)計(jì)為(圖15)。
BWGWBGWGBGWBGBWBGW
圖案匹配過程開始于與投影強(qiáng)度圖案獲取的圖像強(qiáng)度的相關(guān)性。 一旦找到匹配,就會(huì)對(duì)子灰度級(jí)序列匹配執(zhí)行進(jìn)一步的搜索,例如WGB,GWB等三個(gè)字母的序列。

4.4 基于De Bruijn序列的條紋索引(Stripe Indexing Based on De Bruijn Sequence)
在大小為k的字母表上,秩為n的De Bruijn序列[30]是一個(gè)循環(huán)詞,其中長度為n的每個(gè)k ^ n^詞在我們循環(huán)行進(jìn)時(shí)恰好出現(xiàn)一次。 一個(gè)簡(jiǎn)單的n = 3和k = 2(字母表為{0,1})的De Bruijn循環(huán)的例子如圖16所示。當(dāng)我們?cè)谥芷谥校槙r(shí)針或逆時(shí)針)行進(jìn)時(shí),我們將會(huì)遇到23=8個(gè)三位數(shù)的圖案,000,001,010,011,100,101,110,111恰好一次。 序列中沒有重復(fù)的三位數(shù)字圖案。 換句話說,De Bruijn序列中沒有任何子序列與任何其他子序列相關(guān)。 De Bruijn序列的這一獨(dú)特特征可用于構(gòu)建具有獨(dú)特局部變異模式的條紋圖案序列,這些圖案序列不會(huì)重復(fù)出現(xiàn)[31-33]。(這一段沒看懂)這種獨(dú)特性使圖案解碼變得更容易。 與De Bruijn序列相關(guān)的圖形稱為De Bruijn圖形[34]。
現(xiàn)在我們展示一個(gè)使用(R,G,B)顏色的二進(jìn)制組合來生成基于De Bruijn序列的顏色索引條帶的示例。 三種顏色的組合的最大數(shù)目是8(= 23)。由于我們不打算使用(0,0,0),因此我們只有七種可能的顏色。這個(gè)問題可以通過構(gòu)造一個(gè)k = 7,n = 3的De Bruijn序列來解決。這導(dǎo)致了一個(gè)帶有343個(gè)條紋的序列。如果條紋數(shù)量太多,可以通過設(shè)置k = 5,n = 3來使用De Bruijn序列的縮減集合[35]。在這種情況下條紋的數(shù)量減少到125.使用De Bruijn技術(shù)構(gòu)建顏色索引的條紋序列有一個(gè)重要限制:所有相鄰的條紋必須具有不同的顏色。否則,會(huì)出現(xiàn)一些雙倍或三倍寬度的條紋,這會(huì)混淆3D重建算法。通過使用XOR操作可以輕松應(yīng)用此約束。圖17顯示了一組具有實(shí)際顏色索引條紋圖案的結(jié)果。在這個(gè)條紋序列中,所有相鄰的條紋都有不同的顏色??梢允褂肈e Bruijn技術(shù)的各種變化來生成用于3D表面成像應(yīng)用的獨(dú)特的顏色索引,灰度索引或其他類型的投影圖案。


5 網(wǎng)格索引:2D空間網(wǎng)格圖案(Grid Indexing: 2D Spatial Grid Patterns)
二維網(wǎng)格圖案技術(shù)的基本概念是在投影的二維圖案中唯一標(biāo)記每個(gè)子窗口,使得任何子窗口中的圖案相對(duì)于其在圖案中的二維位置是唯一的且完全可識(shí)別的。
5.1 偽隨機(jī)二進(jìn)制陣列(Pseudo-random Binary Array, PRBA)
一個(gè)網(wǎng)格索引策略是使用偽隨機(jī)二進(jìn)制陣列(PRBA),以產(chǎn)生可以由點(diǎn)或其他圖案標(biāo)記網(wǎng)格位置,使得任何子窗口的編碼圖案是唯一的。 PRBA由一個(gè)使用偽隨機(jī)序列編碼的n1×n2數(shù)組定義,使得在整個(gè)陣列上滑動(dòng)的任何k1×k2子窗口都是唯一的,并且完全定義數(shù)組列內(nèi)的子窗口的絕對(duì)坐標(biāo)(i,j)。
二進(jìn)制數(shù)組的編碼圖案是基于一個(gè)偽隨機(jī)二進(jìn)制序列,使用原始多項(xiàng)式模塊2n方法[36-40],其中2n -1 = 2k1k2-1, n1 = 2k1 -1, n2 = 2n-1/n1。圖18顯示了生成的PRBA的一個(gè)例子,其中k1=5,k2=2,n1=31,n2=33。

5.2 作為碼字的迷你圖案(Mini-patterns Used as Code Words)
不使用偽隨機(jī)二進(jìn)制數(shù)組,可以使用多值偽隨機(jī)數(shù)組。 人們可以用迷你圖案將每個(gè)值表示為特殊的代碼字,從而形成網(wǎng)格索引投影圖案[41]。 圖19顯示了一個(gè)三值偽隨機(jī)數(shù)組和一組迷你圖案碼字的示例(圖中右下方顯示)。 使用專門定義的碼字,可以將多值偽隨機(jī)數(shù)組轉(zhuǎn)換為具有唯一子窗口的投影圖案。
5.3 彩色網(wǎng)格(Color-Coded Grids)
另一種網(wǎng)格索引策略是對(duì)垂直和水平條紋進(jìn)行顏色編碼,以便實(shí)現(xiàn)二維網(wǎng)格索引[42-44]。 垂直和水平條紋編碼方案可以相同或完全不同,具體取決于應(yīng)用(圖20)。 不能保證子窗口的唯一性,但是在建立對(duì)應(yīng)關(guān)系時(shí),在大多數(shù)情況下雙向彩色條紋可以幫助解碼。 細(xì)網(wǎng)格線可能不如其他圖案(點(diǎn),正方形等)可靠。

5.4 2D數(shù)組的彩色編碼點(diǎn)(2D Array of Color-Coded Dots)
有一些生成偽隨機(jī)數(shù)組的替代方法。在[45,46]中提出了一種強(qiáng)制算法來生成一個(gè)保存子窗口唯一性的數(shù)組,但它可能不會(huì)耗盡所有可能的子窗口圖案。該方法在計(jì)算機(jī)算法中相對(duì)直觀。例如,圖21(左)使用三個(gè)碼字(R,G,B)示出子窗口大小為3×3的6×6陣列。計(jì)算過程如下:首先用隨機(jī)選擇的圖案填充6×6陣列的左上角。然后,用隨機(jī)碼字在右側(cè)添加一個(gè)三元素列。子窗口的唯一性在添加這樣的列之前被驗(yàn)證。繼續(xù)添加列,直到所有列都填充了隨機(jī)代碼字,并驗(yàn)證子窗口唯一性。同樣,從初始子窗口位置向下添加隨機(jī)行。之后,沿對(duì)角線方向添加新的隨機(jī)碼字。重復(fù)這些步驟,直到所有的點(diǎn)都被填充顏色。同樣,這個(gè)計(jì)算過程可能不能保證為所有陣列大小和代碼字生成一個(gè)偽隨機(jī)陣列,但在許多情況下已經(jīng)取得了很好的結(jié)果。圖21(右)展示了一個(gè)具有20×18維的偽隨機(jī)數(shù)組的示例。
5.5 混合方法(Hybrid Methods)
通過結(jié)合上面討論的多種編碼方案,有許多機(jī)會(huì)來改進(jìn)3D表面成像系統(tǒng)性能的特定方面。 圖22顯示了一個(gè)例子。
關(guān)于投影圖案的設(shè)計(jì)暫時(shí)結(jié)束了,在接下來的教程里(第六節(jié)),我們將討論一下衡量算法的方法。