PMP相位测量轮廓术基本原理介绍
背景介紹
結(jié)構(gòu)光測量技術(shù)包括線結(jié)構(gòu)光和面結(jié)構(gòu)光測量,其中,面結(jié)構(gòu)光又包括相位測量輪廓術(shù)PMP(phase measurement profilometry),又稱為相移測量輪廓術(shù)PSP(phase shifting profilometry),傅里葉變換輪廓術(shù)(FTP)等。還有很多其他面結(jié)構(gòu)光測量技術(shù),此處不做過多介紹,感興趣的可查閱相關(guān)綜述。線結(jié)構(gòu)光測量技術(shù)因其有強烈的噪聲不敏感特性,具有較高的測量精度,一般用于測量具有高反的金屬工件,PCB板等,但其空間分辨率不足。面結(jié)構(gòu)光具有高的空間分辨率,且測量速度快,具有良好的測量精度,研究的比較多,以下結(jié)構(gòu)光測量技術(shù)特指相移條紋結(jié)構(gòu)光測量技術(shù)。
基本原理
相移條紋測量技術(shù)一言以蔽之就是向待測物體投射編碼正弦條紋,相機拍攝經(jīng)物體高度調(diào)制后變形條紋,解析變形條紋相位從而恢復(fù)出物體三維形貌。基本原理和變形條紋圖如下所示。
相位測量輪廓術(shù)是基于三角測量原理,如上圖所示的發(fā)散測量系統(tǒng),P1P_1P1?,P2P_2P2?分別位投影儀的入瞳和出瞳,I1I_1I1?,I2I_2I2?分別為相機的入瞳和出瞳。相機和投影儀出瞳處于同高度,兩者之間的距離位ddd,距離參考面的高度位LLL,三角形P1I2DP_1I_2DP1?I2?D與ACDACDACD相似,則
dL?h(x,y)=h(x,y)AC?h(x,y)=LdAC+d(1)\fracze8trgl8bvbq{L-h(x,y)}=\frac{h(x,y)}{AC}\Rightarrow h(x,y)=\frac{Ld}{AC+d} \tag{1} L?h(x,y)d?=ACh(x,y)??h(x,y)=AC+dLd?(1)
我們從相機視角看待公式(1),LLL,ddd是系統(tǒng)參數(shù),已知量,AC是未知量。假設(shè)沒有物體時,C點成像在相機P點,有一個物體時,D點同樣成像在相機P點(因為CD在同一條光線上),因為AD處于同一條光線上,所以AD兩點對應(yīng)于投影儀上同一點,即D點相位與A點的相位相同,AC=f(?(D)??(C))=f(δ?p)AC=f(\phi(D)-\phi(C))=f(\delta\phi_p)AC=f(?(D)??(C))=f(δ?p?),其中,δ?p\delta\phi_pδ?p?指的是相機上P點位置的相位差,相位差指的是參考面和待測物體之間的相位差值。實際測量時,先拍攝參考面,獲得參考面的相位,然后在拍攝物體,獲得物體的相位,然后兩組相位作差得到每個像素點的相位差。至此,相位測量輪廓術(shù)的公式(1)可完整表達成下述形式:
h(x,y)=Ldf(δΦ(x,y))+d(2)h(x,y)=\frac{Ld}{f(\delta \Phi(x,y))+d} \tag{2} h(x,y)=f(δΦ(x,y))+dLd?(2)
公式(2)表明條紋相位受物體高度調(diào)制,但是調(diào)制的具體表達式我們并不清楚(對于具體的系統(tǒng)結(jié)構(gòu),這個高度對相位的調(diào)制方式可以近似推導(dǎo)出來的,比如遠心系統(tǒng))。如果在整個平面上條紋周期不變,則AC之間的距離完全可表達為dac=δ?/2πfd_{ac}=\delta \phi/{2\pi f}dac?=δ?/2πf,其中,fff為參考面上的條紋頻率。實際上,我們不能精確測量出參考面上的條紋頻率。
公式(1)是相位測量輪廓術(shù)的幾何表達式,公式(2)是相位測量輪廓術(shù)的相位表達式,式中的相位映射關(guān)系fff我們無法精確得到。在實際的測量系統(tǒng)中,我們很難滿足相機和投影儀的出瞳位于同一高度,并且相機和投影儀之間的距離也很難精準(zhǔn)測量,所以,一般都是通過標(biāo)定的方式間接得到相位和高度之間的映射關(guān)系:
h(x,y)=a0+a1δΦ(x,y)+a2δΦ2(x,y)(3)h(x,y)=a_0+a_1\delta \Phi(x,y)+a_2\delta \Phi^2(x,y) \tag{3} h(x,y)=a0?+a1?δΦ(x,y)+a2?δΦ2(x,y)(3)
公式(3)就是相位測量輪廓術(shù)的相位和高度之間的多項式表達式,其中,多項式系數(shù)aia_iai?通過標(biāo)定的手段得到。
相移
到目前為止,我們明白了相位測量輪廓術(shù)的原理是待測物體的高度對正弦條紋相位調(diào)制引起相位變化,我們通過求解變形條紋相位間接得到物體高度,但問題的關(guān)鍵是我們?nèi)绾尾拍艿玫较辔荒?#xff1f;這時候就需要通過相移技術(shù)來計算得到相位了,說白了相移就是為了構(gòu)造方程來求解方程系數(shù)。
一般計算機生成正弦條紋圖I(x,y)=A(x,y)+B(x,y)cos(?(x,y))I(x,y)=A(x,y)+B(x,y)cos(\phi(x,y))I(x,y)=A(x,y)+B(x,y)cos(?(x,y)),其中,AAA表示背景光,BBB表示條制度,?\phi?表示相位,一般表示為?(x,y)=2πfx\phi(x,y)=2\pi fx?(x,y)=2πfx。這樣的條紋投射到物體表面,然后經(jīng)相機拍攝后的條紋圖變?yōu)?br /> Ic(x,y)=R(x,y)[A(x,y)+B(x,y)cos(ψ(x,y))]+b(x,y)?Ic(x,y)=A(x,y)+B(x,y)cos(ψ(x,y))I^c(x,y)=R(x,y)[A(x,y)+B(x,y)cos(\psi(x,y))]+b(x,y)\Rightarrow I^c(x,y)=A(x,y)+B(x,y)cos(\psi(x,y)) Ic(x,y)=R(x,y)[A(x,y)+B(x,y)cos(ψ(x,y))]+b(x,y)?Ic(x,y)=A(x,y)+B(x,y)cos(ψ(x,y))
其中,RRR表示物體反射率,bbb是背景光強。這樣我們分別向參考面和待測物體投射上述條紋,然后相機分別拍攝反射回來的條紋:
Irefc=Aref(x,y)+Brefcos(ψ(x,y))Ic=A(x,y)+B(x,y)cos(Ψ(x,y))I^c_{ref}=A_{ref}(x,y)+B_{ref}cos(\psi(x,y))\\ I_c=A(x,y)+B(x,y)cos(\Psi(x,y)) Irefc?=Aref?(x,y)+Bref?cos(ψ(x,y))Ic?=A(x,y)+B(x,y)cos(Ψ(x,y))
如果分別求解出經(jīng)參考面和待測物體表面反射后的條紋相位,則得到δΦ(x,y)=Ψ(x,y)?ψ(x,y)\delta \Phi(x,y)=\Psi(x,y)-\psi(x,y)δΦ(x,y)=Ψ(x,y)?ψ(x,y)。問題是,條紋圖中有3個未知數(shù),分別為AAA,BBB和ψ\psiψ,我們至少需要3個方程才可以求出三個未知數(shù)。此時,相移法終于排上用場了。
假設(shè)使用N步相移(N >= 3),計算機生成相移條紋:In(x,y)=A+Bcos(2πfx+2π(n?1)/N)I_n(x,y)=A+Bcos(2\pi fx+2\pi (n-1)/N)In?(x,y)=A+Bcos(2πfx+2π(n?1)/N)則相機拍攝回來的相移條紋可表示為:
Inc(x,y)=A+Bcos(ψ(x,y)+2π(n?1)/N),n=1,2,...NI^c_n(x,y)=A+Bcos(\psi(x,y)+2\pi (n-1)/N), n=1,2,...N Inc?(x,y)=A+Bcos(ψ(x,y)+2π(n?1)/N),n=1,2,...N
下面除非特別說明,否則條紋圖都指的是相機拍攝的,N步相移,我們有:
{I1=A+Bcos(ψ+δ1)=A+Bcos(ψ)cos(δ1)?Bsin(ψ)sin(δ1)I2=A+Bcos(ψ+δ2)=A+Bcos(ψ)cos(δ2)?Bsin(ψ)sin(δ2)...In=A+Bcos(ψ+δn)=A+Bcos(ψ)cos(δn)?Bsin(ψ)sin(δn)\begin{cases} I_1 = A+Bcos(\psi+\delta_1)=A+Bcos(\psi)cos(\delta_1)-Bsin(\psi)sin(\delta_1)\\ I_2=A+Bcos(\psi+\delta_2)=A+Bcos(\psi)cos(\delta_2)-Bsin(\psi)sin(\delta_2)\\ ...\\ I_n=A+Bcos(\psi+\delta_n)=A+Bcos(\psi)cos(\delta_n)-Bsin(\psi)sin(\delta_n) \end{cases} ??????????I1?=A+Bcos(ψ+δ1?)=A+Bcos(ψ)cos(δ1?)?Bsin(ψ)sin(δ1?)I2?=A+Bcos(ψ+δ2?)=A+Bcos(ψ)cos(δ2?)?Bsin(ψ)sin(δ2?)...In?=A+Bcos(ψ+δn?)=A+Bcos(ψ)cos(δn?)?Bsin(ψ)sin(δn?)?
式中,A,B,ψA,B,\psiA,B,ψ是未知量,更一般表達
Ii=a+b?cos(δi)+c?sin(δi)I_i=a+b*cos(\delta_i)+c*sin(\delta_i) Ii?=a+b?cos(δi?)+c?sin(δi?)
其中,a=Aa=Aa=A,b=Bcos(ψ)b=Bcos(\psi)b=Bcos(ψ),c=?Bsin(ψ)c=-Bsin(\psi)c=?Bsin(ψ)使用最小二乘法對上式求解,定義:
θ(a,b,c)=∑i=1N(yi?y)2=∑i=1N(Ii?a?b?cos(δi)?c?sin(δi))2\theta(a,b,c)=\sum_{i=1}^N(y_i-y)^2=\sum_{i=1}^N(I_i-a-b*cos(\delta_i)-c*sin(\delta_i))^2 θ(a,b,c)=i=1∑N?(yi??y)2=i=1∑N?(Ii??a?b?cos(δi?)?c?sin(δi?))2
分別對aaa,bbb,ccc求偏導(dǎo)有:
{?θ?a=?2∑(Ii?a?b?cos(δi)?c?sin(δi))=0?θ?b=?2∑(Ii?a?b?cos(δi)?c?sin(δi)?cos(δi))=0?θ?c=?2∑(Ii?a?b?cos(δi)?c?sin(δi)?sin(δi))=0\begin{cases} \frac {\partial \theta}{\partial a} = -2\sum (I_i-a-b*cos(\delta_i)-c*sin(\delta_i)) = 0\\ \frac {\partial \theta}{\partial b} = -2\sum (I_i-a-b*cos(\delta_i)-c*sin(\delta_i)*cos(\delta_i)) = 0\\ \frac {\partial \theta}{\partial c} = -2\sum (I_i-a-b*cos(\delta_i)-c*sin(\delta_i)*sin(\delta_i)) = 0 \end{cases} ???????a?θ?=?2∑(Ii??a?b?cos(δi?)?c?sin(δi?))=0?b?θ?=?2∑(Ii??a?b?cos(δi?)?c?sin(δi?)?cos(δi?))=0?c?θ?=?2∑(Ii??a?b?cos(δi?)?c?sin(δi?)?sin(δi?))=0?
寫成矩陣形式有:
所以有:
tan(ψ(x,y))=?cb=?∑Ii(x,y)?sin(δi)∑Ii(x,y)?cos(δi)?ψ(x,y)=?atan(∑Ii(x,y)?sin(δi)∑Ii(x,y)?cos(δi))tan(\psi(x,y)) = -\frac{c}=-\frac{\sum I_i(x,y) * sin(\delta_i)}{\sum I_i(x,y) * cos(\delta_i)}\Rightarrow\\ \psi(x,y)=-atan(\frac{\sum I_i(x,y) * sin(\delta_i)}{\sum I_i(x,y)*cos(\delta_i)}) tan(ψ(x,y))=?bc?=?∑Ii?(x,y)?cos(δi?)∑Ii?(x,y)?sin(δi?)??ψ(x,y)=?atan(∑Ii?(x,y)?cos(δi?)∑Ii?(x,y)?sin(δi?)?)
上面的推導(dǎo)過程是基于最小二乘法思想,所以,理論上相移步數(shù)越多越好,有利于抑制系統(tǒng)隨機白噪聲。但是對于系統(tǒng)噪聲,比如條紋非正線性,條紋存在高階諧波,上面公式推導(dǎo)過程中的系數(shù)矩陣將不再是對角陣,則會引入系統(tǒng)周期性噪聲。
這里的條紋非正線性指的是相移條紋在時間軸上的非正線性,而不是空間上的非正線性,因為從公式可知,像素之間的相位是相互獨立的,互不影響。所以,空間上的非正線性,比如因光照不均勻?qū)е聴l紋圖案部分對比度下降,不影響相位精度(如果系統(tǒng)非常理想,低對比度條紋不會降低信噪比的話)。
相位誤差分析
上面的從條紋光強提取相位的推導(dǎo)過程中可得出相位誤差主要有以下幾個:
- 系統(tǒng)隨機噪聲
系統(tǒng)隨機噪聲總是存在的,投影儀和CCD在不同的灰度級下響應(yīng)不同,實際投射條紋時,避免條紋過亮或過暗,盡量讓灰度級分布在中間區(qū)域(對比度高,黑白分明),避免灰度集中在一個較小的范圍內(nèi)(對比度低)。為了達到上述的拍攝條件,需要仔細設(shè)計條紋周期。還可以使用更好的硬件設(shè)備,從根源上降低系統(tǒng)隨機噪聲。
- 條紋非正線性,即非標(biāo)準(zhǔn)正弦條紋
條紋非正線性主要由于投影儀和CCD相機的非線性響應(yīng)引起的,如下圖所示。
-
量化誤差
上面所有的公式推導(dǎo)在數(shù)學(xué)意義上是連續(xù)的,但是實際投影儀和相機都會把條紋灰度值量化為0~255的灰度整數(shù)值,比如某個像素的實際灰度值為125.6,然后就被相機量化為125,從而引入誤差。一般而言,量化誤差可以忽略不計。 -
其他誤差
我看很多文獻都提到相移誤差,其實現(xiàn)在都是數(shù)字化生成正弦條紋了,相移誤差不存在。
總結(jié)
以上是生活随笔為你收集整理的PMP相位测量轮廓术基本原理介绍的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 智能存储 | 视频 DNA ,独一无二的
- 下一篇: AMD芯片支持oracle数据库,ORA