吳 昊, 沈建新, 戴家隆,2, 殷 飛, 劉文良,2
(1.南京航空航天大學(xué) 機(jī)電學(xué)院,江蘇 南京 210016; 2.江蘇航鼎智能裝備有限公司,江蘇 南京 211100;3.中航飛機(jī)股份有限公司漢中飛機(jī)分公司,陜西 漢中 723213)
基于相移輪廓術(shù)的三維重建系統(tǒng)由于其非接觸性、高精度、高速度等特點(diǎn),已經(jīng)被廣泛應(yīng)用于點(diǎn)云獲取、逆向工程等多個(gè)領(lǐng)域[1~4]。該系統(tǒng)主要通過(guò)多頻外差求解相位主值,根據(jù)相位信息進(jìn)行立體匹配和三維重建[5]。在相位立體匹配前,有效地分割出待測(cè)物體,可以避免背景噪聲、物體陰影區(qū)等無(wú)效區(qū)域相位的誤匹配,從而提高單視角三維重建的精度和效率。
目前,針對(duì)多頻外差法的三維重建系統(tǒng)有效測(cè)量區(qū)域的分割方法,主要分為條紋調(diào)制度研究和相位校正研究?jī)深?。從相位校正出發(fā),通過(guò)對(duì)異常相位的校正,可以避免陰影區(qū)等無(wú)效區(qū)域的匹配和重建。文獻(xiàn)[6,7]中,利用相鄰相位對(duì)絕對(duì)誤差進(jìn)行分析和校正,陶四杰等人[8~10]通過(guò)改進(jìn)單調(diào)法對(duì)陰影區(qū)的相位噪聲進(jìn)行了校正,但此類方法只能校正少量的隨機(jī)噪聲,并且還需對(duì)所有條紋圖的陰影區(qū)等無(wú)效區(qū)域進(jìn)行多頻外差解相。從條紋調(diào)制度方向研究,通過(guò)條紋的調(diào)制度初步分割有效區(qū)域,可以避免背景區(qū)和陰影區(qū)等無(wú)效區(qū)域的相位計(jì)算及展開(kāi)和誤匹配等問(wèn)題。李小晗等人[11]通過(guò)條紋調(diào)制度閾值分析法去除了陰影區(qū)域的噪聲,但在調(diào)制度閾值選取上是憑借人工經(jīng)驗(yàn),無(wú)法實(shí)現(xiàn)自動(dòng)化分割;何海濤等人[12]提出了一種基于迭代法的調(diào)制度閾值計(jì)算方法,可以簡(jiǎn)單分割測(cè)量區(qū)域,但計(jì)算出的閾值過(guò)大,導(dǎo)致部分有效區(qū)域被誤分割,使單視角重建模型出現(xiàn)點(diǎn)云局部空洞的問(wèn)題。
針對(duì)上述問(wèn)題,與現(xiàn)有的方式不同,本文利用調(diào)制度直方圖代替灰度直方圖,同時(shí),將Otsu算法和Sauvola自適應(yīng)算法引入調(diào)制度進(jìn)行分析,并結(jié)合分析結(jié)果提出了一種結(jié)合頻率矩陣的最大熵分割算法,實(shí)現(xiàn)了待測(cè)物體的自動(dòng)精確分割,避免了因調(diào)制度產(chǎn)生的局部點(diǎn)云空洞、點(diǎn)云邊界受損等情況,提高了單視角三維重建的質(zhì)量和效率。此外,針對(duì)反光背景下,單一調(diào)制度閾值無(wú)法進(jìn)行分割的情況,本文綜合利用Canny算法和形態(tài)學(xué)算法,成功分割出了待測(cè)區(qū)域的掩模。
在基于相移輪廓術(shù)的三維測(cè)量系統(tǒng)中,需要對(duì)投影儀投射多頻標(biāo)準(zhǔn)N步正弦條紋圖進(jìn)行相位包裹的求解;接著,利用連續(xù)的相位值來(lái)匹配左右圖像的對(duì)應(yīng)點(diǎn),從而進(jìn)行坐標(biāo)計(jì)算和三維重建[13]。
設(shè)定投射的條紋圖像光強(qiáng)為標(biāo)準(zhǔn)正弦分布,則分布函數(shù)如下
Ii(x,y)=I′(x,y)+I″(x,y)cos[φ(x,y)+δi]
(1)
式中I′(x,y)為條紋圖像的平均灰度值,I″(x,y)為調(diào)制灰度值,δi為設(shè)定的相移值。
由式(1)可知,計(jì)算出φ(x,y)相對(duì)相位值至少需要三張條紋圖像。標(biāo)準(zhǔn)N步相移法能夠有效抑制隨機(jī)噪聲,因此,本文使用標(biāo)準(zhǔn)四步相移法計(jì)算。即δi分別為0,π/2,π,3π/2。在灰度值為0~255區(qū)間內(nèi),I′(x,y)取128,I″(x,y)取127。根據(jù)式(2),計(jì)算相位主值,記為φ(x,y)
(2)
式中 相位主值φ(x,y)的值域?yàn)閇-π,π],稱為包裹相位,但其只在周期內(nèi)唯一。因此,需要進(jìn)行包裹相位展開(kāi),得到全局范圍內(nèi)無(wú)歧義的相位值?,F(xiàn)階段主流的解包裹方法包括有格雷碼和多頻外差算法。本文采用多頻外差算法。多頻外差法原理是將兩個(gè)高頻率的包裹相位值疊加得到低頻率的函數(shù),如下所示
(3)
式中f1,f2為兩種高頻率,f12為合成后的低頻率。合理選擇不同的頻率條紋,能夠得到全局頻率為1的連續(xù)相位值。根據(jù)式(4),計(jì)算出全局范圍類無(wú)歧義的連續(xù)相位值
Φ1(x,y)=φ(x,y)+2πk
(4)
(5)
式中Φ1(x,y)為展開(kāi)相位函數(shù),φ1(x,y)為1頻率包裹相位,Round為四舍五入函數(shù),φ12(x,y)為外差后的相位函數(shù),tanα和tanγ為兩個(gè)頻率相位函數(shù)的斜率。由于單次外差要求精度太高,因此,選擇三種頻率進(jìn)行三次外差計(jì)算出高頻連續(xù)相位。本文選擇光柵頻率為f1=1/70,f2=1/64,f3=1/59進(jìn)行外差計(jì)算。
在多頻外差解包裹前對(duì)采集的條紋圖進(jìn)行調(diào)制度分析,可以較好地去除背景等噪聲區(qū)域,從而分割出待測(cè)物體有效測(cè)量區(qū)域。尤其是對(duì)于大視場(chǎng)的面結(jié)構(gòu)光雙目測(cè)量系統(tǒng),可以避免無(wú)效像素的相位計(jì)算和匹配。因此,對(duì)條紋的調(diào)制度進(jìn)行分析是相移輪廓術(shù)三維測(cè)量系統(tǒng)中的重要環(huán)節(jié)。
條紋的調(diào)制度由投射光柵實(shí)部和虛部所決定,對(duì)于同種頻率的N步相移正弦條紋,其調(diào)制度函數(shù)B(i,j),如式(6)所示
(6)
式中B(i,j)為對(duì)應(yīng)圖像像素坐標(biāo)為(i,j)的調(diào)制度,In(i,j)為對(duì)應(yīng)圖像像素坐標(biāo)為(i,j)的灰度值。利用式(6)計(jì)算完圖像的調(diào)制度后,根據(jù)式(7)篩選出有效的像素點(diǎn),生成有效待測(cè)區(qū)域的調(diào)制度掩模Q(i,j)
(7)
由上述公式可知,調(diào)制度閾值T的選擇是分割圖像的關(guān)鍵。合理的閾值可以篩出背景、雜點(diǎn)以及由光照產(chǎn)生的遮擋陰影等無(wú)效區(qū)域,將待測(cè)物體有效的分割。
一般情況下,條紋調(diào)制度的閾值由人工經(jīng)驗(yàn)選擇或者極小值搜索的方式來(lái)確定,此類方法無(wú)法保證閾值選擇的合理性。尤其是對(duì)于高分辨率的圖像,過(guò)大的閾值會(huì)導(dǎo)致較多相位信息的缺失,影響三維重建的精度。為了實(shí)現(xiàn)調(diào)制度閾值的自動(dòng)化選擇,與現(xiàn)有的自動(dòng)分割方法不同,本文采用圖像的調(diào)制級(jí)直方圖代替灰度直方圖進(jìn)行處理,將Otsu算法、Sauvola(自適應(yīng)閾值處理)算法等分割算法引入圖像的調(diào)制度進(jìn)行分析,并提出了一種結(jié)合頻率矩陣優(yōu)化的最大熵閾值分割算法以實(shí)現(xiàn)待測(cè)區(qū)域的有效分割。
根據(jù)式(6),計(jì)算得到整幅圖的調(diào)制度。采用圖像的調(diào)制級(jí)直方圖代替灰度直方圖對(duì)調(diào)制度進(jìn)行預(yù)處理。為了減少閾值分割算法的迭代次數(shù),利用線性歸一化函數(shù)式(8)將調(diào)制度進(jìn)行處理,將調(diào)制度分成255個(gè)等級(jí)。即
(8)
式中L(i,j)∈[0,255],INT()為取整函數(shù)。
2.2.1 Otsu算法
Otsu算法又稱最大類間法,其采用聚類的思想將圖片中所有的像素值分為C0和C1兩類,通過(guò)不同閾值的迭代,求出類間方差最大時(shí)的閾值T,即為最佳閾值。本文將Otsu算法應(yīng)用到調(diào)制度的分析,具體步驟如下:
1)取調(diào)制度等級(jí)L(i,j)的最小值作為初始閾值T0,即T0=1,將條紋的調(diào)制度分為C0和C1兩類。
2)分別計(jì)算C0和C1兩類像素個(gè)數(shù)的所占整個(gè)圖片比例,記為w0和w1;C0和C1兩類的調(diào)制度均值,記為μ0和μ1。
3)根據(jù)式(9),計(jì)算當(dāng)前閾值T下的調(diào)制度的類間方差,記作σ2(T)。式中,μ為整幅圖的調(diào)制度均值
σ2(T)=w0(μ0-μ)2+w1(μ1-μ)2
(9)
4)更新迭代閾值T,取σ2(T)為最大值下的閾值Tn,作為最佳閾值。
2.2.2 Sauvola算法
Sauvola算法是一種自適應(yīng)閾值算法,與Otsu等全局閾值算法不同,它是通過(guò)移動(dòng)窗口的方式求解窗口內(nèi)所有像素點(diǎn)的灰度均值與灰度標(biāo)準(zhǔn)差作為閾值T的計(jì)算依據(jù)。該算法可以彌補(bǔ)光照不均的缺陷,具有很好的魯棒性。同樣,本文將Otsu算法應(yīng)用到調(diào)制度的分析中,步驟如下:
(10)
(11)
2)利用式(12),計(jì)算當(dāng)前像素點(diǎn)的動(dòng)態(tài)閾值T(i,j);根據(jù)式(7)進(jìn)行判斷并生成分割掩模
(12)
式中R為標(biāo)準(zhǔn)差的動(dòng)態(tài)范圍,條紋的調(diào)制度采用的8位圖像,本文R=128;k為自定義修正系數(shù),對(duì)動(dòng)態(tài)閾值影響不大,本文取k=0.5。
根據(jù)上述步驟,利用Otsu算法和Sauvola自適應(yīng)算法進(jìn)行條紋圖像的調(diào)制度進(jìn)行分割,如圖1所示。
圖1 Otsu算法和Sauvola算法分割結(jié)果
由圖1(a)可知,當(dāng)隨機(jī)選取閾值T=10時(shí),由于調(diào)制度閾值偏小,導(dǎo)致背景部分出現(xiàn)較多雜點(diǎn);由圖1(c)可知,Otsu閾值算法可以將有效區(qū)域進(jìn)行初步分割,但其計(jì)算出的調(diào)制度閾值不夠精確,較大的調(diào)制度閾值導(dǎo)致部分有效區(qū)域(如區(qū)域A等)被誤刪除,此類情況將會(huì)導(dǎo)致重建后的模型出現(xiàn)局部空洞的問(wèn)題;由圖1(d)可知,由于結(jié)構(gòu)光三維重建系統(tǒng)對(duì)光照環(huán)境比較敏感,通常情況下不會(huì)出現(xiàn)亮度不均的情況,所以,Sauvola等動(dòng)態(tài)閾值算法不適用于結(jié)構(gòu)光測(cè)量系統(tǒng),無(wú)法將其有效測(cè)量區(qū)域進(jìn)行分割。
針對(duì)上述分析結(jié)果,為了保證分割出的有效測(cè)量區(qū)域的完整性,本文提出了一種結(jié)合頻率矩陣優(yōu)化的最大熵調(diào)制度分割算法。首先,利用式(6)計(jì)算得到條紋的調(diào)制度后,利用最大熵算法對(duì)調(diào)制度進(jìn)行初步分割;由于最大熵閾值得到的最佳閾值T往往偏小,會(huì)存在如圖1(b)的離散噪聲,為了去除此類噪聲又保留掩模的邊緣信息,本文利用頻率矩陣對(duì)調(diào)制度掩模進(jìn)行進(jìn)一步的優(yōu)化處理。
2.3.1 最大熵閾值求解
最大熵閾值分割算法通過(guò)搜索聚類后的最大信息熵來(lái)確定最佳閾值,算法可以使分割出的背景以及前景保留最大的信息量,彌補(bǔ)Otsu算法的缺陷,本文利用最大熵算法求解條紋調(diào)制度的最佳閾值,具體步驟如下:
1)取調(diào)制度等級(jí)L(i,j)的最小值作為初始閾值,即T0=1,將條紋的調(diào)制度分為前景C0和C1背景兩類。
2)逐個(gè)分別計(jì)算C0和C1兩類包含的調(diào)制度Bi在該類出現(xiàn)的概率,記為Pi,對(duì)于C0類,i=0,1,…T;對(duì)于C0類,i=T,1,…,255。
3)根據(jù)式(13)和式(14),分別計(jì)算前景類和背景類對(duì)應(yīng)的信息熵,記為HC0和HC1
(13)
(14)
4)根據(jù)式(15)計(jì)算條紋調(diào)制度的信息熵,記為HB。更新迭代閾值T,取為HB最大值下的閾值Tn,作為最佳閾值
HB=HC0+HC1
(15)
2.3.2 結(jié)合頻率矩陣的調(diào)制度優(yōu)化
利用最大熵分割算法初步分割了有效測(cè)量區(qū)域的掩模后,需要對(duì)調(diào)制度掩模進(jìn)行進(jìn)一步的去噪處理,從而完整分割出有效的測(cè)量區(qū)域。傳統(tǒng)的去噪算法,如高斯濾波、均值濾波等算法,會(huì)使有效區(qū)域輪廓邊緣發(fā)生改變。這種情況會(huì)引起解相位后物體輪廓邊界的相位信息丟失或錯(cuò)亂,影響匹配及重建精度。為了保留物體邊緣的同時(shí)又去除離散噪聲,本文提出了一種結(jié)合調(diào)制度頻率矩陣的去噪方法。
首先,根據(jù)式(16),計(jì)算出調(diào)制度的頻率矩陣QB如下所示
(16)
式中Bij為坐標(biāo)為(i,j)的像素點(diǎn)所對(duì)應(yīng)的調(diào)制度;T為最大熵分割算法求解出的最佳閾值。
接著,通過(guò)移動(dòng)窗口的方式,計(jì)算以aij為中心(3,3)鄰域內(nèi)的調(diào)制度頻率的均值,記為S。通過(guò)式(17),優(yōu)化更新調(diào)制度頻率矩陣,并以此作為掩模分割條紋圖像
(17)
針對(duì)某些反光背景下的三維重建,對(duì)相移條紋進(jìn)行解調(diào)后,待測(cè)物體有效測(cè)量區(qū)域的制度和部分反光背景的調(diào)制度為同一個(gè)等級(jí),這種情況下無(wú)法通過(guò)單一閾值或多個(gè)閾值進(jìn)行條紋調(diào)制度分割。針對(duì)上述反光背景,本文提出了一種基于改進(jìn)的Canny算法的有效區(qū)域自動(dòng)分割技術(shù),算法流程如圖2所示。
圖2 反光背景下的自動(dòng)分割方法的流程框圖
首先,利用式(6)對(duì)所采集的光柵條紋進(jìn)行解調(diào),利用式(8)將計(jì)算出調(diào)制度進(jìn)行歸一化處理。接著,為了保持平滑圖像濾除噪音的同時(shí),保持圖像輪廓不變,本文采用雙邊濾波算法對(duì)解調(diào)后的圖像進(jìn)行平滑處理;然后,對(duì)解調(diào)后的條紋圖進(jìn)行Canny檢測(cè):用Sobel算子計(jì)算每一個(gè)像素點(diǎn)梯度和方向,用非極大值抑制來(lái)消除雜散效應(yīng),用雙閾值來(lái)檢測(cè)真正的邊緣。
由于雙閾值的Canny檢測(cè)會(huì)使物體輪廓出現(xiàn)小的缺失,本文采取形態(tài)學(xué)閉運(yùn)算即先膨脹后腐蝕能夠很好地填補(bǔ)上物體輪廓處細(xì)小缺失;最后,為了避免出現(xiàn)物體處于投影邊緣處的情況導(dǎo)致檢測(cè)出的輪廓非封閉,本文對(duì)閉運(yùn)算后的圖形進(jìn)行線性插補(bǔ)將邊緣處輪廓補(bǔ)全成完整封閉輪廓,通過(guò)得出的完整物體輪廓建立掩模矩陣,分離出有效的測(cè)量區(qū)域。
本文搭建了雙目結(jié)構(gòu)光三維重建系統(tǒng)來(lái)驗(yàn)證算法的正確性,如圖3所示。系統(tǒng)所用的投影儀為DLP4500,其分辨率為1 140像素×912像素。左右相機(jī)采用的是大華工業(yè)相機(jī),其分別率為4 096像素×3 000像素。投影儀投射圖案為三頻四步的正弦光柵條紋(頻率分別為1/59,1/64,1/70,步長(zhǎng)間隔為1/2π;實(shí)驗(yàn)采用的計(jì)算機(jī)控制條紋的投射以及整個(gè)三維重建工作,計(jì)算機(jī)的配置為Intel?CoreTMi5—9400F CPU,2.90 GHz,8 G內(nèi)存。本文采用C++作為算法的編程語(yǔ)言,編譯環(huán)境為VS2017,并配置了OpenCV4.5.1開(kāi)源庫(kù)。
圖3 雙目結(jié)構(gòu)光測(cè)量系統(tǒng)
利用本文的算法對(duì)所采集的航空零件、動(dòng)物面具等條紋圖進(jìn)行解調(diào)和自動(dòng)分割,實(shí)驗(yàn)結(jié)果如圖4所示。
圖4 吸光背景下的調(diào)制度自動(dòng)分割結(jié)果
由實(shí)驗(yàn)結(jié)果可知,改進(jìn)后的最大熵調(diào)制度自動(dòng)分割算法能夠確定更準(zhǔn)確的調(diào)制度閾值,有效地分割出待測(cè)區(qū)域。對(duì)比Otsu算法以及閾值迭代算法,該算法可以彌補(bǔ)上述算法計(jì)算出的閾值過(guò)大導(dǎo)致如區(qū)域A和區(qū)域B等區(qū)域被誤剔除的問(wèn)題,最大程度地保留了有效測(cè)量區(qū)域的完整性。如表1所示,改進(jìn)后的最大熵法得到的優(yōu)化閾值更加準(zhǔn)確,其生成的掩模能更完整地保留像素相位信息,重建后的三維模型避免了局部區(qū)域的點(diǎn)云缺失和空洞等情況。以獅子面具為例,改進(jìn)的最大熵法生成的調(diào)制度掩模能夠保留811 808個(gè)像素點(diǎn),比迭代閾值法多保留了100 462個(gè)像素的有效相位信息,在其原有的分割基礎(chǔ)上保證了14.12 %像素面積的相位值不被誤刪除,順利進(jìn)行相位匹配。
表1 三種算法的數(shù)據(jù)對(duì)比結(jié)果
以待測(cè)物體獅子面具為例,用上述算法得到的掩模對(duì)有效區(qū)域進(jìn)行分割,并進(jìn)行相位立體匹配與三維重建。利用GeomagicWrap2017對(duì)重建的點(diǎn)云進(jìn)行可視化與分析,如圖5和圖6所示。
圖5 立體匹配后的獅子面具視差
圖6 重建后獅子面具的點(diǎn)云圖
對(duì)比迭代閾值法,通過(guò)本文的算法分割出的掩模進(jìn)行相位匹配與重建,如表2所示,最終得到模型的有效點(diǎn)云為429 265個(gè),比閾值迭代法多出33 083個(gè)有效點(diǎn)云,在原有算法基礎(chǔ)上彌補(bǔ)了8.35 %面積的點(diǎn)云缺失;模型三角片數(shù)為915 462,比閾值迭代法多出58 041片,在原有算法基礎(chǔ)上彌補(bǔ)6.77 %面積的三角片缺失。本文對(duì)重建后點(diǎn)云圖進(jìn)行三角化重構(gòu),如圖7所示。實(shí)驗(yàn)證明,本文的分割算法不僅可以去除雜點(diǎn)和背景,避免無(wú)效區(qū)域的相位計(jì)算,而且有效地解決了點(diǎn)云局部空洞等問(wèn)題,提高了單視角三維重建模型的質(zhì)量。
表2 三維重建后點(diǎn)云的數(shù)據(jù)對(duì)比
圖7 三角化重構(gòu)后的模型
為了驗(yàn)證反光背景下的分割算法的正確性,對(duì)反光背景下的航空零件的條紋圖進(jìn)行了實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如圖8所示。實(shí)驗(yàn)結(jié)果表明:針對(duì)反光背景下,本文的基于改進(jìn)的Canny算法的有效區(qū)域自動(dòng)分割技術(shù),彌補(bǔ)了反光背景下無(wú)法利用調(diào)制度閾值進(jìn)行分割的不足,實(shí)現(xiàn)了有效區(qū)域的初步分割。
圖8 反光背景下的分割結(jié)果
本文提出了一種基于條紋調(diào)制度的分割算法,實(shí)現(xiàn)了待測(cè)區(qū)域的自動(dòng)分割,有效地剔除了背景雜點(diǎn)等噪聲,同時(shí)避免了無(wú)效區(qū)域的解相位以及匹配等流程,提高了三維重建的效率。與現(xiàn)有的方法相比,本文提出的結(jié)合頻率矩陣優(yōu)化的最大熵分割算法保留了更多的有效相位信息,避免了重建后的點(diǎn)云出現(xiàn)局部空洞等問(wèn)題,提高了單視角下重建點(diǎn)云的質(zhì)量。另外,針對(duì)高反光背景下無(wú)法利用調(diào)制度閾值進(jìn)行分割的情況,本文利用改進(jìn)的Canny算法實(shí)現(xiàn)了測(cè)量區(qū)域的初步分割。在利用調(diào)制度分割出有效測(cè)量區(qū)域后,如何利用已有相位信息填補(bǔ)相位缺失以及提高匹配精度將是下一步研究的重點(diǎn)工作。