■ 背景知識
針孔相機模型:射線方程
我們把數碼相機簡化成針孔相機模型,光心為?點,傳感器面為紅色實線,?
?點到傳感器面距離?
?。那么我們可以這樣描述成像的過程:三維空間中的?
?點經過光心?
?點在傳感器面上成像為?
?點,且?
?、?
?、?
?三點在一條直線上。針孔相機模型是一個三維空間(?
?點所在空間)到二維面(?
?點所在面)的變換,?
?線上的任意一點(如?
?、
?、
?)所成的像都是?
?點,因此如果只知道?
?點,我們是無法反推出具體哪一個?
?點點亮了?
?點,我們只能說點亮?
?點的點一定在射線?
?上。所以針孔相機模型本質上是射線方程,也就是說知道了CCD上的點,就可以得到一條射線。 為了方便描述,我們之后將把針孔模型對稱翻轉過來,如上圖虛線所示,從數學的角度,它們是等價的。 ?針孔相機雙目確定物點模型:射線相交得到點
為了確定到底是哪一個?點點亮了相機0上的?
?點,我們引入了另一個相機,通過相機1,我們可以得到?
?點在相機1中的像點?
?,聯立?
?和?
?我們就可以唯一的得到空間中
?點,上圖表達了這個關系。
■被動測距
雙目測距:匹配特征
圖中上部左右兩幅照片是兩個標定好的相機對同一個場景拍攝并對準后的,圖中下部是上圖場景中的高度分布,顏色越深離相機越遠。
我們把上面的場景抽象成草圖,舉例而言,顯示器在相機0和相機1中不同的像位置是確定顯示器空間所在位置的關鍵,那么為什么高度分布是塊狀的? 這是因為由于拍攝的場景缺少特征點,以下圖為例,如果說左圖中白色盒子頂上的四個點我們還可以在右圖中找的到,那么圖中紅色點在右圖我們就根本找不到對應的點。由于特征點的稀缺,雙目測距中是不可能實現像素級點對點的匹配的。
■主動結構光
結構光:匹配拓撲網格如果說特征點的缺失是雙目測距的一大痛點,有學者就提出,既然缺少特征點不如我就造一些特征點出來,這就是結構光。iPhone X的人臉識別用的就是這一項技術。
iPhone X中有兩個與此相關的傳感器,分別是Infrared camera和Dot projector,前者是相機,而后者是一個點陣投影儀。從數學上說,一部分投影儀是可以用逆向針孔相機模型描述的,也就是說如果我知道投影面上的某一個點,我就可以知道由這個點投影出的一條射線,這條射線遇到一個面,線面相交的點就會被投影儀點亮。這里我們為什么說「一部分」投影儀可以等價于針孔相機,這個問題在后面會談到。
為了確定這個線面相交的點的位置,我們用一個相機觀察,如上圖所示,我們可以在點陣投影儀的投影面上找到點亮?點的投影點,也可以在相機CCD面上找到被?
?點亮的成像點。上面的草圖中,一共有五個投影點,而相機拍到的五個投影點,會因為面形的存在改變相鄰兩點之間的距離卻不會因為面形的存在導致五個投影點相對順序的改變,因此我們說相機是通過拓撲網格的標號來確定CCD面上點和投影儀投影面上點的一一對應關系。
在實際的應用當中,會根據待測面形的特點確定拓撲網格的結構。舉例而言,對于iPhone X的結構光主要測量的人臉,因此它的結構光在設計過程中,加密了人臉中眼、鼻、口的光點數量,使得在人臉識別中更具有特征的眼、鼻、口的采樣率更高,深度數據真實性更強。主動結構光拓撲網格匹配已經遠遠強于被動雙目測距的特征匹配,但是即便如此依然無法實現像素級點對點的匹配,無法實現的原因我們會在下一節講到。 主動投射結構光和被動雙目測距相比既有好處也有壞處,好處是大大提高了測量準確度和分辨率,壞處則是需要有主動式投影光源。舉個很顯而易見的例子,由于投影光源在遠距離的情況下就失效了,遠距離的測距主要還是用被動雙目測距的方法。當然遠距離的測距還有很多別的更可行的方案,比如激光雷達,但是本文只討論結構光體系內的技術。 結構光:匹配相位分布我們為了測量的面形保真,必須盡可能的提高采樣點的數量。上一節拓撲網格匹配結構光里采樣點的提高有一個上限,那就是CCD必須可以區分采樣點,否則在CCD中采樣點糊成一團,也就失去了拓撲網格標號。因此這里有一對矛盾,一方面要盡可能的提高采樣率,一方面又不能超過CCD的分辨能力。
上圖中,測量面上最左邊的點,相機卻無法分辨最左邊的點與和它相鄰的點。為了解決這個問題,學者就提出采用相位的方法實現像素級點對點匹配。在前面的介紹中,被動雙目測距用「特征點」作為「相機0——物——相機1」這個過程的傳遞不變量,主動拓撲網格結構光中,以「拓撲網格標號」作為「投影儀——物——相機」的傳遞不變量。在這里我們以相位分布?作為傳遞不變量。之所以用相位分布作為傳遞不變量,是因為相位分布是由面形的高度分布直接決定的。
以四步相移為例,上圖右圖是投影儀投出的X方向相移正弦條紋,左圖是CCD拍攝到的由于面形引起的X方向變形條紋。對這兩組圖求包裹相位,并解包裹得到X方向相位分布情況。
舉例而言,投影面和CCD的像素數都是512*512,對于投影面上的一個像素(下圖右圖紅點),我能找到它的X方向相位值,根據這個相位值,能夠找到CCD面上具有這個相位值的所有像素(下圖左圖紅線),通過這個X方向相位值,能夠把投影面上的點和CCD面上的線關聯起來。
同樣的道理,投影儀投影Y方向正弦條紋,我們就能夠在CCD面上唯一確定與投影面上紅點對應的像素,通過X方向相位和Y方向相位,我們找到了「投影面像素標號?CCD面像素標號」的對應關系,實現了像素級點對點匹配。 ?結構光:匹配編碼肯定有讀者會問上面都已經實現了像素級點對點匹配,分辨率的提高都已經到頭了,那么這項技術還可以怎么演進呢?這里我們就要談一談相移法的優缺點了,相移法是屬于一種優點和缺點都極為顯著的方法,優點是,通過相移解相位的方法,犧牲了時間(多幅條紋投影),以粗的條紋獲得了細的分辨率,缺點是正弦條紋極易被干擾,這就導致了相位圖失真,CCD像素和投影面像素的一一對應性被破壞。
因此,學者就提出,能不能把步子邁得小一點,我們不要求像相移法那樣高的分辨率,但是CCD像素和投影面像素的一一對應性必須要保證。由此就提出了以編碼作為傳遞不變量,確定像素的對應性。 以下圖為例,我們對藍色點進行編碼,通過XY兩個方向一共6幅由疏到密的二值條紋,我們能夠得到一串表明藍色點位置的6位編碼「100101」,其中1代表在這一位上是白色,0代表黑色。編碼位數越高越能準確的描述藍色點的位置,當然位數越高同樣意味著條紋越密,位數的上限取決與CCD能夠分辨的最小二值條紋粗細。二值條紋的抗干擾能力顯著高于正弦條紋。
下圖是慕尼黑光博會上某個展商的裝置,用一個投影儀一個相機以及編碼圖樣實現了三維測量,實際上它所用的圖樣(編碼位數)最后遠遠高于我截的這6幅圖。
雙目結構光:不能或者不想標定投影儀還記得我們前面有一節講到只有一部分投影儀可以用逆向針孔相機模型來描述,受限于投影儀的凸透鏡成像法則,大多數情況下很難用一個通用的模型來描述投影儀整個群體,比如說,投影面放在投影儀透鏡焦面上的準直投影就不能用逆向針孔相機模型來描述。 這意味這投影儀不能用射線方程來描述,也就意味著又要解決一個相機解欠定的問題,自然我們想到了再引入一個相機。
請注意,因為這里的投影儀不是射線模型,因此我也就不畫成前文投影儀的樣子了。 和前面的結構光匹配編碼類似,只是我們現在匹配的是兩臺相機當中的編碼而不是匹配投影儀和相機的編碼。 交叉偏振結構光:解決反光問題反光是所有結構光的大敵,包括被動雙目測距,主動結構光掃描。因為反光會造成采集信號丟失,相當于雙目測距失去一目,方程欠定有無窮多解。
所以結構光只能用在粗糙表面測量上,下圖表明了兩種表面反射光的形態。左圖是粗糙表面反射光形態,粗糙表面會講投影光線均勻的散開,只要有一支被CCD接受我們就可以確定投影像素和CCD像素的對應關系。右圖是類鏡面反射光形態,反射光中,光強最強的主瓣沿著反射定律確定的反射光方向,而旁瓣則在主瓣周圍散開,越遠離主瓣光強越弱。結構光無法處理反光就是因為CCD接收不到光線。類鏡面反射光形態和粗糙表面反射光形態并不是一成不變的。一些材質的粗糙表面在某些角度的光線或者光強大于一定的值之后也會表現出類鏡面反射光的特點。
為了解決這個問題,學者就提出投影交叉偏振結構光的方法。其原理是反射光是s占優的部分偏振光,只有當入射角是布魯斯特角時,反射光是s線偏振光。根據這個原理,大量的含水面的風光攝影都用到了與s光正交的偏振鏡來抵消s光以達到減弱反光的效果。
通過給投影儀加裝偏振鏡的方法,我們可以得到一對具有正交偏振方向的投影光,下圖兩個藍色圈中的即是兩個不同偏振方向的投影儀。
通過交叉偏振投影結構光的方法,總有一個方向能夠極大的降低反光,再通過拍攝到無反光的結構光的相機的位置,可以按照前文所述得到三維信息。 Phase Measuring Profilometry:既不標定投影儀也不用雙目Phase Measuring Profilometry,中文名為:相位測量輪廓術。 前文的所有測量包括被動雙目和主動結構光都屬于絕對測量,這里的Phase Measuring Profilometry(PMP)是一種相對測量的手段。既不標定投影儀也不用雙目,這勢必意味著我們方程又回到了欠定無窮多解的問題上。好在相移干涉法給了一個思路,我們可以通過給一個絕對高度的參考面,測量的是與參考面的相對高度,由此得到待測面的絕對高度。
相機拍攝參考面的四步相移正弦圖樣,解包裹相位得到相位分布,如下下圖右圖。
相機拍攝待測面的四步相移正弦圖樣,解包裹相位得到相位分布,如下圖左圖。
PMP的核心在于標定「相位——高度」的映射:
其中,?是在?
?處待測面與參考面的高度差,?
?是對應的待測面相位分布和參考面相位分布的差,?
?,?
?和?
?是標定系數。
?、
?、
?需要采用別的手段進行標定。由于標定好「相位——高度」的映射,因此PMP不需要在另一個方向測量相位分布。為了解決PMP中方程欠定的問題,需要引入參考面和其他的標定手段,肯定有讀者會問這相對于之前的結構光好在哪里呢?其實方法沒有好壞之分只有適合用在哪里的區別。雖然PMP增加了標定和設備的復雜性,但是好在這些工作只要做一次就可以,非常適用于有基準面的測量,比如電路板的三維測量等等。 ?
后PMP時代后PMP主要朝著這么幾個方向,動態測量,在線測量,提高算法性能和精度以及一些難測量面形的測量方案設計。
審核編輯 :李倩
-
傳感器
+關注
關注
2560文章
52148瀏覽量
761401 -
射線
+關注
關注
0文章
47瀏覽量
13764 -
結構光
+關注
關注
0文章
74瀏覽量
13398
原文標題:結構光發展簡史
文章出處:【微信號:機器視覺沙龍,微信公眾號:機器視覺沙龍】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
原文分享-光伏行業的發展
汽車三大部件之一汽車變速箱的發展簡史
什么是光模塊?光模塊的結構和參數介紹
Arduino簡史
蘋果筆記本大全(發展簡史)
筆記本多媒體發展簡史
LED發展簡史,LED的發展經歷了哪些階段

評論