林旭華,陳新度,吳 磊
(廣東工業(yè)大學(xué)機(jī)電工程學(xué)院,廣州 510006)
從真實(shí)世界的圖像中重建物體一直是計(jì)算機(jī)視覺的核心問題之一[1],而基于結(jié)構(gòu)光的雙目視覺三維重建技術(shù)能夠充分的提高待測物體的重建精度。該方法通過對待測物體投射特定的結(jié)構(gòu)光,利用雙目視覺立體匹配的原理,對拍攝的二維圖像進(jìn)行立體匹配,獲取待測物體的三維空間信息。因?yàn)樵摲椒ㄊ且环N具有非接觸性、速度快、可靠性高、精度高的主動測量方法,目前被廣泛應(yīng)用于無人駕駛、無人機(jī)避障、醫(yī)學(xué)診斷和逆向工程等熱門領(lǐng)域[2-4]。
目前常用的結(jié)構(gòu)光三維重建方法中,常用面結(jié)構(gòu)光方法,也叫編碼結(jié)構(gòu)光方法,該方法不像點(diǎn)結(jié)構(gòu)光與線結(jié)構(gòu)光一樣需要一個復(fù)雜的掃描機(jī)構(gòu)掃描覆蓋整個待測物體表面,而是通過直接投射特定的編碼圖像覆蓋待測物體表面,從而獲取高精度的三維信息?;诿娼Y(jié)構(gòu)光的三維重建方法中,常用的方法有條紋投影重建方法以及散斑投影重建方法。條紋投影重建方法具有立體重建處理精度與處理效率上的綜合優(yōu)勢,但是需要對待測物體投影多幅圖像進(jìn)行編碼,多用于靜態(tài)物體的三維重建[5]。散斑投影重建方法只需要對待測物體投影單幅散斑圖像,利用數(shù)字散斑相關(guān)方法獲取同名點(diǎn)進(jìn)行三維重建,該方法在快速動態(tài)成像的測量過程中更具有優(yōu)勢。
最初的數(shù)字散斑相關(guān)方法(DSCM)是由Yamaguchi和Peters W H等在二十世紀(jì)八十年代初分別獨(dú)立提出的[6-7]。主要通過攝像機(jī)獲取散斑調(diào)制過的待測物體圖像,利用散斑相關(guān)算法確定圖像上每個像素點(diǎn)上的視差值,再根據(jù)視差使用三角測量法獲得待測物體的三維空間信息[8]。還有通過改進(jìn)數(shù)字相關(guān)的搜索方式、改進(jìn)相關(guān)系數(shù)計(jì)算模型、減小同名點(diǎn)搜索范圍以及采用GPU并行加速計(jì)算流程等方法提高了計(jì)算精度和提高計(jì)算速度。唐家福等將布谷鳥算法引入數(shù)字散斑相關(guān)方法中,有效測量了剛體的位移量[9]。Cheng J等利用哈希方法在保證精度的情況下大幅度提高三維重建的圖像匹配的速度[10]。
本文主要通過散斑質(zhì)量理論分析以及三維重建實(shí)驗(yàn),研究不同直徑、灰度和分布特性的單幅投影散斑圖像對雙目三維重建精度的影響。
雙目立體視覺重建的原理來源于人類的雙目視覺系統(tǒng)[8],通過采用兩個相同的相機(jī)模擬人的雙眼,在不同視角采集同一位置下的待測物體兩側(cè)圖像,利用立體匹配方法在圖像對中搜索同名點(diǎn)求取待測物體的視差,獲取待測物體的三維信息,從而完成物體的三維重建。
圖1所示的是一個理想的雙目相機(jī)模型。基于雙目視覺的三維重建要獲得物點(diǎn)P的深度信息Z。因此先通過相機(jī)標(biāo)定以及先驗(yàn)信息,獲取相機(jī)焦距f,確定左右相機(jī)基線距離B以及雙目相機(jī)分別采集到的左右成像點(diǎn)視差d=xl-xr。其中cleft,cright為左右側(cè)視圖的坐標(biāo)軸的主點(diǎn)。
圖1 雙目視差原理
如式(1)所示,利用三角幾何關(guān)系可得物點(diǎn)P的深度信息。
(1)
通過雙目相機(jī)標(biāo)定獲得的重投影矩陣Q進(jìn)一步計(jì)算物點(diǎn)P的三維坐標(biāo)。
(2)
式中,(cx,cy)為左相機(jī)圖像的主點(diǎn),f為相機(jī)焦距,cx′ 為右相機(jī)圖像x坐標(biāo)軸主點(diǎn),Tx為兩幅立體圖像平移向量在x方向上的分量。利用重新投影矩陣Q可以將給定屏幕坐標(biāo)和攝像機(jī)內(nèi)參矩陣的二維點(diǎn)重新投影至三維。
(3)
近年來,越來越多地將散斑的特點(diǎn)應(yīng)用于三維重建領(lǐng)域,取得了良好的效果。散斑圖有多種生成方法,其中通過計(jì)算機(jī)模擬生成的散斑圖案可以人為的設(shè)置散斑直徑、散斑數(shù)量、散斑分布隨機(jī)度以及灰度等關(guān)鍵參數(shù),適用于不同的實(shí)驗(yàn)環(huán)境。
計(jì)算機(jī)模擬散斑是在Matlab上根據(jù)高斯分布的規(guī)律模擬散斑生成[11],函數(shù)可表示為:
(4)
式中,(u,v)為圖像坐標(biāo)軸主點(diǎn),S表示散斑點(diǎn)的數(shù)量,I0表示圖像背景的光強(qiáng),a表示散斑點(diǎn)的直徑大小,(uk,vk)點(diǎn)表示第k個散斑點(diǎn)的中心位置??梢阅M出以下兩種類型的散斑圖像。如圖2、圖3所示。圖4為二值灰度局部散斑。
圖2 隨機(jī)灰度全局散斑 圖3 二值灰度全局散斑
圖4 二值灰度局部散斑
圖2散斑點(diǎn)灰度值范圍為0~255,圖3斑點(diǎn)灰度值二值化,兩幅圖像散斑點(diǎn)均隨機(jī)分布,且有部分散斑的重疊。
針對散斑點(diǎn)重疊這個問題,對散斑圖像的中心點(diǎn)分布進(jìn)一步優(yōu)化,將整幅散斑圖像劃分為固定大小的p×q個區(qū)域,在每個小區(qū)域隨機(jī)分布1個數(shù)字散斑,生成一種二值灰度局部散斑,這樣的散斑中心點(diǎn)位置將被固定在一個范圍區(qū)域內(nèi),大幅度避免了斑點(diǎn)重疊,而各區(qū)域隨機(jī)選取中心點(diǎn)也保證了散斑分布的均勻性與隨機(jī)性。
本文介紹與采用的則是半全局立體匹配算法SGBM算法[12-13]。該算法的核心思路為:通過固定左相機(jī)圖像的一個像素點(diǎn),在右圖像上搜索同名點(diǎn),得到像素點(diǎn)的視差,生成視差圖。設(shè)置一個和視差圖相關(guān)的全局能量函數(shù),使能量函數(shù)最小化,以達(dá)到求解每個像素點(diǎn)最優(yōu)視差的目的。能量函數(shù)式(5)如下所示:
E(D)=∑p(D(p,Dp)+∑q∈NpP1I[|Dp-DQ|-1]+
∑q∈NpP2I[|Dp-DQ|>1])
(5)
式中,E(D)為視差圖像對應(yīng)的能量函數(shù),D為視差圖像;p,q為圖像的某個像素點(diǎn);Dp與Dq表示像素點(diǎn)p,q的深度值。Np指像素點(diǎn)p周圍連通的八個像素;D(p,Dp) 指像素點(diǎn)p的深度值為Dp時的匹配代價;平滑懲罰系數(shù)P1作用于與像素點(diǎn)p連通的八個像素中與點(diǎn)p生深度值相差為1的像素,而平滑懲罰系數(shù)P2作用于深度值相差大于1的連通像素。I[…]為布爾型變量。
SGBM算法通過在多個方向上的一維路徑的約束來近似二維約束,在每個方向上按照動態(tài)規(guī)劃的思想進(jìn)行能量累積,然后將各個方向上的匹配代價相加得到總的匹配代價,當(dāng)前路徑代價累計(jì)式如下所示:
Lr(p,d)=C(p,d)+
min(Lr(p-r,d),Lr(p-r,d±r)+P1,
(6)
式中,r表示指向當(dāng)前像素p的方向,Lr(p,d)表示沿著當(dāng)前方向,當(dāng)像素為p,深度值為d時的最小代價值。k,i均為視差值。
將所有搜索方向的匹配代價相加得到代價即為總的匹配代價,如下式:
s(p,d)=∑rLr(p,d)
(7)
再通過亞像素插值提高匹配精度。唯一性檢測、左右一致性檢測與連通區(qū)域檢測,灰度約束,排除誤差點(diǎn)。選取代價最小的視差值作為該像素點(diǎn)的最終視差值。圓柱體掃描圖見圖5。利用SGBM算法即可生成視差圖,如圖6所示。
圖5 圓柱體掃描圖 圖6 圓柱體視差圖
散斑的質(zhì)量是提高重建精度的關(guān)鍵,通過合適的散斑質(zhì)量分析方法篩選高質(zhì)量的散斑圖對提高重建精度有著極大的意義。
散斑圖的質(zhì)量分析方法有很多,湯其劍等圍繞散斑相關(guān)系數(shù)計(jì)算和亞像素同名點(diǎn)插值精度重點(diǎn)分析散斑圖的三維重建效果,得出了二值灰度散斑優(yōu)于隨機(jī)灰度散斑的結(jié)論[14]。潘兵等提出了一種平均灰度梯度來描述散斑圖質(zhì)量的方法[15]。
散斑的直方圖分布也帶有圖像的特征信息,通過觀察圖像的直方圖以及不同灰度區(qū)間的像素分布也可判斷圖像的質(zhì)量。散斑灰度直方圖中灰度分布越均勻,則代表模擬的散斑隨機(jī)性越好。上文模擬的散斑圖像的灰度直方圖,如圖7所示。
(a) 隨機(jī)灰度散斑灰度直方圖
圖7a為隨機(jī)灰度散斑圖案,直方圖中像素分布明顯不均勻。圖7b、圖7c分別為二值灰度全局散斑與二值灰度局部散斑,像素分布較為均勻。
根據(jù)散斑圖不同的灰度分布特征,從子區(qū)灰度平方和出發(fā),提出一個新的全局參數(shù):平均灰度梯度d,用于平均整個散斑圖的質(zhì)量,定義如下:
(8)
通過計(jì)算可以得到整幅散斑圖像的平均灰度梯度,推出x方向的灰度梯度平方和近似表達(dá)式:
(9)
N為圖像子區(qū)大小,由上式可知圖像子區(qū)越大,式(9)的近似結(jié)果就越準(zhǔn)確。并且由式(9)可得到模擬散斑圖案的位移測量精度及精度都和散斑圖案的平均灰度梯度和子區(qū)大小N的乘積成反比。而平均灰度梯度是散斑圖的統(tǒng)計(jì)參數(shù),當(dāng)圖像的噪聲方差、圖像子區(qū)的大小和插值方法確定后,該參數(shù)與測量結(jié)果唯一相關(guān),由此可作為評價散斑質(zhì)量的有效參數(shù)。
針對上述模擬散斑圖進(jìn)一步計(jì)算它們的平均灰度梯度,如表1所示。
表1 模擬散斑圖平均灰度梯度
當(dāng)平均灰度梯度較大時,散斑數(shù)字相關(guān)方法測量結(jié)果的均值誤差和標(biāo)準(zhǔn)差將會有更好的表現(xiàn)。隨機(jī)灰度的平均灰度梯度結(jié)果較大,而直方圖分布卻不均勻,因此進(jìn)一步設(shè)計(jì)三維重建實(shí)驗(yàn),分析散斑圖灰度特性對重建效果的影響。
通過上述分析,設(shè)計(jì)實(shí)驗(yàn)判斷投影散斑圖像類型對三維重建質(zhì)量的影響。實(shí)驗(yàn)型號為UI325xcp-C,200萬像素。投影儀型號為DPL-600W,分辨率為1280×800,如圖8所示。檢測物體為標(biāo)準(zhǔn)量塊。
圖8 實(shí)驗(yàn)裝置圖
設(shè)計(jì)實(shí)驗(yàn),對標(biāo)準(zhǔn)量塊的中心位置進(jìn)行重建。使用不同類型的散斑投影圖像,并散斑直徑進(jìn)行調(diào)整,分析不同散斑大小對重建效果的影響。設(shè)置散斑直徑大小為1 pixel×1 pixel、2 pixel×2 pixel直到9 pixel×9 pixel共9組。如圖9所示。
(a) 直徑為1pixel (b) 直徑為2pixel
分別選擇3 pixel ×3 pixel、5 pixel ×5 pixel直至11 pixel ×11 pixel大小的SAD代價窗口,得到45個重建表面。
分別對45個重建表面計(jì)算擬合的殘差標(biāo)準(zhǔn)差。結(jié)果如圖10、圖11所示。
圖10 量塊擬合殘差標(biāo)準(zhǔn)差分布
圖11 量塊擬合殘差標(biāo)準(zhǔn)差由小到大排列
通過圖10和圖11對標(biāo)準(zhǔn)量塊的重建結(jié)果可以得知。當(dāng)散斑直徑較大而窗口較小時,擬合誤差較大。用以匹配的窗口內(nèi)獲取的散斑特征單一,將導(dǎo)致較多的誤匹配點(diǎn),使誤差增大。
通過灰度約束判斷誤差點(diǎn)的過程中,由于隨機(jī)灰度散斑的散斑灰度值為0~255,而二值灰度散斑只有0與255兩個灰度。在SAD窗口較小,而散斑直徑較大時,隨機(jī)灰度散斑因?yàn)榛叶炔町惒环匣叶乳撝当慌挪榈舻恼`差點(diǎn)將會比二值灰度散斑多。此時隨機(jī)灰度散斑的匹配效果會比二值灰度散斑的好。但是隨著窗口的增大以及散斑直徑的減小,量塊平面的擬合精度將會越來越高。
由圖11可知在散斑直徑小且SAD窗口大時,二值局部散斑的匹配效果比隨機(jī)灰度散斑與二值全局散斑的效果好,標(biāo)準(zhǔn)差最小達(dá)到了0.013 4 mm。
在實(shí)際應(yīng)用中,采用實(shí)驗(yàn)驗(yàn)證效果最佳的二值灰度局部散斑輔助照明,設(shè)置散斑直徑大小為1 pixel,SAD窗口大小為11 pixel的最優(yōu)參數(shù),對粗糙的陶瓷罐進(jìn)行表面重建。雖然在遮擋、邊緣區(qū)域有少部分?jǐn)?shù)據(jù)缺失,但是可以成功還原復(fù)雜物體表面的三維信息,實(shí)現(xiàn)了19萬個點(diǎn)的稠密重建,系統(tǒng)重建效果如圖12所示。
圖12 陶瓷罐三維重建點(diǎn)云效果
通過量塊平面的重建對比實(shí)驗(yàn)可知,二值局部散斑具有更好的隨機(jī)性,更低的斑點(diǎn)重疊率。在尋找同名點(diǎn)的過程中能夠較為準(zhǔn)確的尋找同名點(diǎn)以及排除誤差點(diǎn)。在散斑直徑較小,SAD窗口較大時,二值局部散斑的輔助效果最好,精度最高。
本文重點(diǎn)研究了基于計(jì)算機(jī)散斑的三維重建方法,包括雙目視覺系統(tǒng)模型,同名點(diǎn)的搜索匹配方法,不同類型的模擬散斑圖生成方法。通過直方圖與平均灰度梯度重點(diǎn)分析比較了隨機(jī)灰度散斑、二值全局散斑與二值局部散斑的重建效果。并設(shè)計(jì)在不同的散斑直徑與SAD窗口的實(shí)驗(yàn)條件下,對標(biāo)準(zhǔn)量塊進(jìn)行了三維重建實(shí)驗(yàn)比較,針對本文系統(tǒng),得出了在散斑直徑為1~2 pixel大小,窗口大小為11 pixel時,重建效果最好且二值局部散斑的重建精度優(yōu)于隨機(jī)灰度散斑與二值全局散斑,為基于計(jì)算機(jī)模擬散斑的三維重建系統(tǒng)設(shè)計(jì)提供了參考。