<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          結(jié)構(gòu)光綜述

          共 5442字,需瀏覽 11分鐘

           ·

          2024-05-05 13:31

          點(diǎn)擊上方小白學(xué)視覺(jué)”,選擇加"星標(biāo)"或“置頂

          重磅干貨,第一時(shí)間送達(dá)

          編者薦語(yǔ)

           

          結(jié)構(gòu)光是輔助進(jìn)行三維稠密重建的一種技術(shù),通過(guò)向被測(cè)空間投射特定紋理來(lái)簡(jiǎn)化匹配像素(correspondences)搜索的問(wèn)題。

          作者丨David LEE@知乎

          鏈接丨h(huán)ttps://zhuanlan.zhihu.com/p/54761392


          題圖來(lái)源:https://mymodernmet.com/audrey-penven-dancing-with-invisible-light
          寫(xiě)這篇文章的原因在于很多關(guān)于結(jié)構(gòu)光的博客或資料關(guān)于結(jié)構(gòu)光的介紹只有前面的一句話,而大量的篇幅都是在討論立體幾何相關(guān)的問(wèn)題,如極線、基礎(chǔ)矩陣等。
          網(wǎng)上也有許多資料,這里就不再贅述。
          關(guān)于結(jié)構(gòu)光(Structured Light),如果認(rèn)為其僅僅只是前面那一句話就可以概括的話,未免有點(diǎn)管中窺豹。本文的目的就是對(duì)結(jié)構(gòu)光技術(shù)做一個(gè)比較全面的簡(jiǎn)介。
          總體而言,所說(shuō)的結(jié)構(gòu)光主要可以分為兩類(lèi)
          1)線掃描結(jié)構(gòu)光;
          2)面陣結(jié)構(gòu)光。
          一般說(shuō)結(jié)構(gòu)光的時(shí)候都指代第二類(lèi),這里也主要關(guān)注面陣結(jié)構(gòu)光。

          1. 線掃描結(jié)構(gòu)光

          線掃描結(jié)構(gòu)光較之面陣結(jié)構(gòu)光較為簡(jiǎn)單,精度也比較高,在工業(yè)中廣泛用于物體體積測(cè)量、三維成像等領(lǐng)域。

          1.1 數(shù)學(xué)基礎(chǔ)

          先來(lái)看一個(gè)簡(jiǎn)單的二維下的情況:
          通過(guò)上圖可以看到線掃描結(jié)構(gòu)光裝置的一個(gè)基本結(jié)構(gòu)。主動(dòng)光源L緩慢掃過(guò)待測(cè)物體,在此過(guò)程中,相機(jī)記錄對(duì)應(yīng)的掃描過(guò)程,最后,依據(jù)相機(jī)和光源在該過(guò)程中的相對(duì)位姿和相機(jī)內(nèi)參等參數(shù),就可以重建出待測(cè)物體的三維結(jié)構(gòu)。
          由上圖可知:

          將之推廣至三維空間中:
          由小孔成像模型有

          1.2 應(yīng)用

          如上圖,相機(jī)與投影器等相對(duì)位姿都經(jīng)過(guò)了精確的校正,并且選取了測(cè)量臺(tái)上的一角作為原點(diǎn)建立物方坐標(biāo)系。因此,激光投影器所投射的線激光在物方坐標(biāo)系中可以通過(guò)一個(gè)平面方程來(lái)描述:
          A X + B Y + C Z + D = 0
          而相機(jī)光心的位姿通過(guò)幾何校正也已知,可以通過(guò)找到線激光在圖像中的對(duì)應(yīng)像素重建出光心與像素的射線,射線和激光平面的交點(diǎn)即為待求的三維空間點(diǎn)。
          由小孔成像模型有

          2. 面陣結(jié)構(gòu)光

          面陣結(jié)構(gòu)光大致可以分為兩類(lèi):隨機(jī)結(jié)構(gòu)光編碼結(jié)構(gòu)光。隨機(jī)結(jié)構(gòu)光較為簡(jiǎn)單,也更加常用。通過(guò)投影器向被測(cè)空間中投射亮度不均隨機(jī)分布的點(diǎn)狀結(jié)構(gòu)光,通過(guò)雙目相機(jī)成像,所得的雙目影像經(jīng)過(guò)極線校正后再進(jìn)行雙目稠密匹配,即可重建出對(duì)應(yīng)的深度圖。如下圖為某種面陣的紅外結(jié)構(gòu)光。
          隨機(jī)結(jié)構(gòu)光這里就不再說(shuō)了,因?yàn)楹推胀p目算法是很相似的。一些額外的考慮就是是否給相機(jī)加裝濾光片、光斑的密度要到什么程度等硬件和光學(xué)的問(wèn)題了。
          這里主要討論編碼結(jié)構(gòu)光。編碼結(jié)構(gòu)光可以分為兩類(lèi):
          1)時(shí)序編碼;
          2)空間編碼。

          2.1 時(shí)序編碼

          如上圖,時(shí)序編碼結(jié)構(gòu)光即為在一定時(shí)間范圍內(nèi),通過(guò)投影器向被測(cè)空間投射一系列明暗不同的結(jié)構(gòu)光,每次投影都通過(guò)相機(jī)進(jìn)行成像。假設(shè)共有n張影像,并設(shè)被陰影覆蓋的部分編碼值為1,未被覆蓋的部分編碼值為0。此時(shí),每個(gè)像素都對(duì)應(yīng)唯一一個(gè)長(zhǎng)度為n的二進(jìn)制編碼,雙目影像搜索匹配像素的問(wèn)題就變成了查找具有相同編碼值的像素。如果雙目圖像已經(jīng)進(jìn)行了極線校正,那么所投影的結(jié)構(gòu)光只需要在x方向上不具有重復(fù)性即可。
          如上圖中,紅框內(nèi)的像素的編碼為0110,轉(zhuǎn)化為十進(jìn)制則為5。此時(shí),只需要在右圖相同行上檢索編碼值為5的像素即可。
          上圖編碼方式稱(chēng)為二進(jìn)制碼(binary code),每段區(qū)域不斷的進(jìn)行二分下去直至投影的編碼寬度等于相機(jī)的像素寬度即可。對(duì)于寬度為1024的圖像,最少需要10張影像來(lái)進(jìn)行編碼。
          Binary Code 的一種改進(jìn)為Gray Code. Gray Code比Binary Code具有更好的魯棒性,它使得相鄰兩個(gè)像素相差1bit。Gray Code的詳細(xì)介紹和其與Binary Code之間的轉(zhuǎn)換可以參考wikipedia(https://link.zhihu.com/?target=https%3A//en.wikipedia.org/wiki/Gray_code)。

          注意觀察即可看到gray code和binary code在前幾行像素上的不同
          轉(zhuǎn)換算法:
          自然,除了使用二進(jìn)制的0-1編碼之外,還可以使用更多顏色層級(jí)的編碼。假設(shè)使用了M種不同的灰度層級(jí)進(jìn)行編碼,則拍攝N張影像可以得到包含  M N  個(gè)條帶的影響。如下圖中M = 3, N = 3時(shí)圖中有27條條帶。
          由以上的介紹也可以得出時(shí)序編碼結(jié)構(gòu)光的優(yōu)缺點(diǎn):
          優(yōu)點(diǎn)高精度;
          缺點(diǎn)
          1)只適用于靜態(tài)場(chǎng)景;
          2)需要拍攝大量影像。

          2.2 空間編碼

          為滿足動(dòng)態(tài)場(chǎng)景的需要,可以采用空間編碼結(jié)構(gòu)光。前面談到了隨機(jī)結(jié)構(gòu)光,就是不帶編碼信息,投影隨機(jī)紋理,而這里討論的空間編碼結(jié)構(gòu)光特指向被測(cè)空間中投影經(jīng)過(guò)數(shù)學(xué)編碼的、一定范圍內(nèi)的光斑不具備重復(fù)性的結(jié)構(gòu)光。由此,某個(gè)點(diǎn)的編碼值可以通過(guò)其臨域獲得。其中,包含一個(gè)完整的空間編碼的像素?cái)?shù)量(窗口大?。┚蜎Q定了重建的精度。

          2.2.1 德布魯因序列 (De Bruijn) 序列

          德布魯因序列B(k, n) 表示用k個(gè)符號(hào)(如二進(jìn)制,k = 2)來(lái)表示長(zhǎng)度為 k n  的循環(huán)編碼,n為一個(gè)編碼值的長(zhǎng)度。
          舉例:最簡(jiǎn)單的,k = 2時(shí),采用二進(jìn)制符號(hào)(0, 1),編碼值的長(zhǎng)度n = 2,可以得到一個(gè)長(zhǎng)度為4 的循環(huán)序列:[0, 0, 1, 1]。此時(shí),我們得到4個(gè)長(zhǎng)度為2的不同的編碼:[0, 0], [0, 1], [1, 1], [1, 0].
          因此,某種結(jié)構(gòu)光就可以按照該德布魯因序列進(jìn)行編碼。而獲得的結(jié)構(gòu)光影像中,以上4個(gè)像素的編碼為[0, 0, 1, 1],通過(guò)一個(gè)大小為2的滑動(dòng)窗口(假定一個(gè)結(jié)構(gòu)光光斑或光束的寬度是一個(gè)像素)即可獲取每個(gè)像素的編碼值。同樣地,如果是經(jīng)過(guò)極線校正的雙目圖像,只需要搜索對(duì)應(yīng)的行即可,此時(shí)只要求編碼在x軸上不具備重復(fù)性。此時(shí)的結(jié)構(gòu)光就是豎直條帶狀的。
          當(dāng)然,為了提高編碼效率,也可以使用灰度圖、彩色圖像等比0-1編碼具有更多可能編碼值的投影方式。例如,對(duì)于RGB影像,采用二進(jìn)制編碼(即某種顏色只有 有、無(wú) 兩種狀態(tài)),則共有8種顏色組合,去除(0, 0, 0),還剩下7種顏色。因此k = 7, n = 3,這樣就可以獲得一個(gè)長(zhǎng)度為343的條帶序列。對(duì)于這個(gè)序列,唯一的約束為:相鄰的條帶不能為同樣的顏色。否則對(duì)于解碼算法來(lái)說(shuō)很容易造成誤差。下圖展示了只使用5種顏色(k = 5, n = 3)的結(jié)構(gòu)光序列:

          2.2.2 二維空間編碼

          德布魯因序列是一種一維編碼,可以將之?dāng)U展到二維空間中,使得對(duì)于一個(gè)x * y大小的二維空間,其中一個(gè)w * h大小的子窗口所包含的編碼值在這整個(gè)二維編碼序列中只出現(xiàn)一次。

          如上面中的4 * 6的M-arrays序列中,每個(gè)2 * 2大小的窗口所包含的編碼值都是唯一的。
          同樣也可以利用RGB信息來(lái)進(jìn)行二維編碼,有相關(guān)算法來(lái)產(chǎn)生一些偽隨機(jī)二維編碼。如在下圖中,左邊展示了一個(gè)6 * 6大小的二維矩陣,子窗口的大小為3 * 3。算法首先在左上角的3 * 3子窗口中隨機(jī)填入各種顏色;然后一個(gè)3 * 1大小的滑動(dòng)窗口移動(dòng)到右端第一個(gè)空白處,并隨機(jī)填入3中顏色;在填入生成的隨機(jī)顏色前,算法會(huì)先驗(yàn)證子窗口的編碼的唯一性能不能得到保證,若不能,則會(huì)重新生成3中隨機(jī)顏色;如此循環(huán),只是在豎直方向上滑動(dòng)窗口的大小變?yōu)? * 3,直至將整個(gè)6 * 6矩陣填滿。右圖則是該算法產(chǎn)生的某種偽隨機(jī)二維編碼的示例。
          通過(guò)以上對(duì)空間編碼的討論,也可以看出空間編碼結(jié)構(gòu)光的一些優(yōu)缺點(diǎn):
          優(yōu)點(diǎn)
          無(wú)需多張照片,只需要一對(duì)影像即可進(jìn)行三維重建??梢詽M足實(shí)時(shí)處理,用在動(dòng)態(tài)環(huán)境中。
          缺點(diǎn)
          1)易受噪聲干擾:由于反光、照明等原因可能導(dǎo)致成像時(shí)部分區(qū)域等編碼信息缺失;
          2)對(duì)于空間中的遮擋比較敏感;
          3)相較于時(shí)序編碼結(jié)構(gòu)光精度較低。
          以上是對(duì)各種常用的結(jié)構(gòu)光技術(shù)的一些介紹。其實(shí),三維重建中最常用的還是隨機(jī)陣結(jié)構(gòu)光。通過(guò)向空間中投影這樣的隨機(jī)結(jié)構(gòu)光,再結(jié)合雙目稠密重建,可以獲得比單純使用RGB影像進(jìn)行三維重建更加可靠和精確的結(jié)果。
          最后,向?qū)Y(jié)構(gòu)光和三維重建感興趣的同學(xué)推薦一個(gè)項(xiàng)目:build your own 3D scanner(http://mesh.brown.edu/byo3d/)。和名字一樣,網(wǎng)站上提供了自己使用觸手可及和低成本的設(shè)備來(lái)DIY一個(gè)3D掃描儀所需的一切,包括教程、ppt、代碼、數(shù)據(jù)和其他人的作品展示,感興趣的同學(xué)歡迎動(dòng)手嘗試。
          參考文獻(xiàn):
          1、http://www.sci.utah.edu/~gerig/CS6320-S2015/CS6320_3D_Computer_Vision.html
          2、http://mesh.brown.edu/byo3d/
          3、http://www.rtbasics.com/Downloads/IEEE_structured_light.pdf

          本文僅做學(xué)術(shù)分享,如有侵權(quán),請(qǐng)聯(lián)系刪文。


              
          下載1:OpenCV-Contrib擴(kuò)展模塊中文版教程
          在「小白學(xué)視覺(jué)」公眾號(hào)后臺(tái)回復(fù):擴(kuò)展模塊中文教程即可下載全網(wǎng)第一份OpenCV擴(kuò)展模塊教程中文版,涵蓋擴(kuò)展模塊安裝、SFM算法、立體視覺(jué)、目標(biāo)跟蹤、生物視覺(jué)、超分辨率處理等二十多章內(nèi)容。

          下載2:Python視覺(jué)實(shí)戰(zhàn)項(xiàng)目52講
          小白學(xué)視覺(jué)公眾號(hào)后臺(tái)回復(fù):Python視覺(jué)實(shí)戰(zhàn)項(xiàng)目,即可下載包括圖像分割、口罩檢測(cè)、車(chē)道線檢測(cè)、車(chē)輛計(jì)數(shù)、添加眼線、車(chē)牌識(shí)別、字符識(shí)別、情緒檢測(cè)、文本內(nèi)容提取、面部識(shí)別等31個(gè)視覺(jué)實(shí)戰(zhàn)項(xiàng)目,助力快速學(xué)校計(jì)算機(jī)視覺(jué)。

          下載3:OpenCV實(shí)戰(zhàn)項(xiàng)目20講
          小白學(xué)視覺(jué)公眾號(hào)后臺(tái)回復(fù):OpenCV實(shí)戰(zhàn)項(xiàng)目20講,即可下載含有20個(gè)基于OpenCV實(shí)現(xiàn)20個(gè)實(shí)戰(zhàn)項(xiàng)目,實(shí)現(xiàn)OpenCV學(xué)習(xí)進(jìn)階。

          交流群


          歡迎加入公眾號(hào)讀者群一起和同行交流,目前有SLAM、三維視覺(jué)、傳感器自動(dòng)駕駛、計(jì)算攝影、檢測(cè)、分割、識(shí)別、醫(yī)學(xué)影像、GAN算法競(jìng)賽等微信群(以后會(huì)逐漸細(xì)分),請(qǐng)掃描下面微信號(hào)加群,備注:”昵稱(chēng)+學(xué)校/公司+研究方向“,例如:”張三 + 上海交大 + 視覺(jué)SLAM“。請(qǐng)按照格式備注,否則不予通過(guò)。添加成功后會(huì)根據(jù)研究方向邀請(qǐng)進(jìn)入相關(guān)微信群。請(qǐng)勿在群內(nèi)發(fā)送廣告,否則會(huì)請(qǐng)出群,謝謝理解~



          瀏覽 145
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  成人黄色在线免费 | 在线无码视频播放 | 浪货跪趴开荤肉欲H文视频 | 三级无码在线 | 搞搞香蕉影 |