唐昀超,黃礦裕,陳明猷
(1.仲愷農(nóng)業(yè)工程學(xué)院,廣州 510225;2.華南農(nóng)業(yè)大學(xué),廣州 510642)
傳統(tǒng)的產(chǎn)品開發(fā)過程無法用統(tǒng)一且嚴(yán)密的數(shù)學(xué)模型來描述復(fù)雜的曲面,設(shè)計(jì)者很難構(gòu)造出既能滿足產(chǎn)品的功能要求又能吸引消費(fèi)者注意的具有復(fù)雜曲面的產(chǎn)品外觀[1]。因此,傳統(tǒng)的產(chǎn)品開發(fā)方式已逐漸滿足不了新的市場需求。曲面重構(gòu)技術(shù)作為一種產(chǎn)品設(shè)計(jì)技術(shù)再現(xiàn)過程,能夠獲取已有產(chǎn)品的復(fù)雜外形,便于設(shè)計(jì)者在此基礎(chǔ)上制作出功能相近,但又不完全一樣的產(chǎn)品。通過激光掃描儀、結(jié)構(gòu)光源轉(zhuǎn)換儀或者立體視覺等3D掃描技術(shù)獲取物體的表面數(shù)據(jù),再進(jìn)一步生成具有拓?fù)浣Y(jié)構(gòu)信息的網(wǎng)格或CAD模型。
目前,國內(nèi)外學(xué)者對三維重構(gòu)技術(shù)做了大量研究。Hugues等提出了一種用于無序點(diǎn)云曲面重構(gòu)的算法[2],首先確定每個(gè)點(diǎn)的切平面并保證切平面的全局方向一致,然后通過估計(jì)符號(hào)距離函數(shù)確定零等值面,該等值面即為重構(gòu)的曲面,該方法能夠平滑地?cái)M合出目標(biāo)大致的曲面模型。Jules等提出一種基于先驗(yàn)?zāi)P偷那嬷貥?gòu)算法[3],通過事先建立目標(biāo)的先驗(yàn)?zāi)P?,然后與未遮擋的點(diǎn)云進(jìn)行泊松曲面重構(gòu)而成的曲面模型進(jìn)行融合,解決了在遮擋情況下封閉點(diǎn)云的曲面重構(gòu)問題,因?yàn)樵摲椒ㄊ腔谙闰?yàn)?zāi)P蛯η娴目锥磪^(qū)域進(jìn)行填補(bǔ),所以不適用于具有復(fù)雜曲面的模型。曹詩卉等人提出一種利用凸最小化泊松曲面改進(jìn)的重建算法[4],能夠處理通過非均勻采樣或者有噪聲的有序點(diǎn)云,得到光順的曲面。賴喜德等提出了水輪機(jī)葉片曲面重構(gòu)的技術(shù)[5],采用基于NURBS的曲面重構(gòu)方法,為具有自由曲面特征的葉片類部件提供了曲面重構(gòu)流程。孫智慧等提出基于點(diǎn)云數(shù)據(jù)的植物葉片曲面重構(gòu)方法[6],該方法首先對點(diǎn)云數(shù)據(jù)進(jìn)行精簡,然后采用Delaunay三角剖分方法生成初始網(wǎng)格曲面,再對網(wǎng)格曲面進(jìn)行優(yōu)化處理?;谏鲜鲅芯浚疚膶⒁札X輪作目標(biāo),利用雙目視覺從多個(gè)視角獲取圖像,生成目標(biāo)的三維點(diǎn)云數(shù)據(jù),并對點(diǎn)云進(jìn)行去噪、配準(zhǔn)和平滑處理,最終反求齒輪的三維曲面模型。
本文以齒輪作為研究對象,搭建了如圖1所示的工作臺(tái),以獲取齒輪各個(gè)方位的表面輪廓。該工作臺(tái)由雙目相機(jī)、支架、旋轉(zhuǎn)臺(tái)和工件組成。其中雙目相機(jī)為維視工業(yè)相機(jī),型號(hào)為MV-EM200C,分辨率為1 600×1 200。支架由導(dǎo)軌搭建而成,高度可調(diào)。旋轉(zhuǎn)臺(tái)臺(tái)面為白色,方便圖像處理階段分割出齒輪區(qū)域,旋轉(zhuǎn)臺(tái)轉(zhuǎn)速由PC端控制。雙目相機(jī)之間平行排布,基線距離為60 mm,2臺(tái)相機(jī)均通過網(wǎng)口線與計(jì)算機(jī)進(jìn)行通訊。相機(jī)位于旋轉(zhuǎn)臺(tái)中心左上方,以便獲取齒輪圓周部分的表面數(shù)據(jù),相機(jī)與旋轉(zhuǎn)臺(tái)之間的距離約為400 mm。每獲取完一個(gè)視角下的圖像數(shù)據(jù),控制旋轉(zhuǎn)臺(tái)就旋轉(zhuǎn)一定角度(約為60 )繼續(xù)獲取圖像,直至旋轉(zhuǎn)一周,然后翻轉(zhuǎn)齒輪再獲取一次圖像,以便獲取齒輪背面的表面數(shù)據(jù)。
圖1 試驗(yàn)裝置圖
因相機(jī)鏡頭存在畸變,致使采集圖像失真,影響到測量精度,需通過單目標(biāo)定來矯正失真的圖像。雙目相機(jī)存在著極線對齊的問題,需要利用立體標(biāo)定解決,通過約束極線對齊,可降低立體匹配復(fù)雜度。本文通過張正友標(biāo)定法完成相機(jī)標(biāo)定并獲得矯正參數(shù)[7]。圖2顯示的是矯正后的齒輪圖像。
圖2 矯正圖像
圖像預(yù)處理階段包括了灰度化、截取ROI(感興趣區(qū)域)、高斯濾波與閾值分割四個(gè)部分。為了減少計(jì)算量,截取齒輪所在的部位作為ROI進(jìn)行后續(xù)圖像處理。為了進(jìn)一步減少計(jì)算量,使用加權(quán)灰度化方法將所得的三通道ROI轉(zhuǎn)化成灰度圖像,如式(1):
式中 (i,j)表示像素點(diǎn)的位置,R、G和B表示紅、綠和藍(lán)三種顏色分量的值。
采集圖像的過程中存在著噪聲,因此利用高斯濾波對圖像進(jìn)行平滑。高斯濾波使用高斯卷積核遍歷圖像,并在卷積核所在的窗口對像素值進(jìn)行卷積操作,最后把卷積結(jié)果賦給錨點(diǎn),從而完成濾波操作。若采用的卷積核大小為(2k+1)×(2k+1),則該核上第i行,第j列的值為:
由于目標(biāo)周圍的背景大致為白色,為了在立體匹配過程中減少匹配計(jì)算量,將左圖像的背景變?yōu)楹谏@樣左右圖像的背景部分由于差異太大將無法匹配。首先采用最大類間方差法進(jìn)行閾值分割[8],再根據(jù)式(3)將左圖的白色背景部分變?yōu)楹谏?。最終處理效果如圖3所示。
圖3 圖像處理效果圖
該階段包括立體匹配和獲取三維點(diǎn)云兩個(gè)部分,首先通過立體匹配得到左右圖像中匹配點(diǎn)的視差,再利用三角測量原理計(jì)算得到三維點(diǎn)的坐標(biāo),從而獲取三維點(diǎn)云。立體匹配采用SGBM算法,該算法包含了匹配代價(jià)計(jì)算、匹配代價(jià)聚合、視差的優(yōu)化計(jì)算和視差精化四個(gè)步驟[9]。通過立體匹配,得到如圖4所示的視差圖,再由式(4)獲取三維點(diǎn)云。
圖4 視差圖
圖5 初始三維點(diǎn)云
得到的初始三維點(diǎn)云,不可避免地會(huì)出現(xiàn)噪點(diǎn),如圖5所示。若處理不當(dāng),會(huì)直接影響最終曲面重構(gòu)的效果。為了獲取較好的去噪效果,本文采用直通濾波、半徑濾波、體素柵格濾波和統(tǒng)計(jì)濾波五種濾波方法進(jìn)行組合去噪。直通濾波算法是通過設(shè)定坐標(biāo)范圍來過濾點(diǎn)云,能夠快速粗略地去除離群點(diǎn),達(dá)到粗處理的目的[10]。半徑濾波算法以搜索點(diǎn)為中心拓展出半徑為R的球體,統(tǒng)計(jì)落在球體內(nèi)的點(diǎn)云個(gè)數(shù),當(dāng)個(gè)數(shù)小于給定的閾值K時(shí),則判斷該搜索點(diǎn)為離群點(diǎn)并刪除。體素柵格濾波算法是根據(jù)點(diǎn)云形成三維體素柵格,然后利用每個(gè)體素柵格中所有三維點(diǎn)的重心來近似代替體素柵格內(nèi)所有的三維點(diǎn),通過這樣的采樣方式來得到濾波的效果。統(tǒng)計(jì)濾波算法是利用對搜索點(diǎn)與鄰域點(diǎn)集之間的距離統(tǒng)計(jì)來判斷該點(diǎn)是否為噪點(diǎn)。濾波后的點(diǎn)云如圖6所示。
圖6 濾波效果圖
上述所獲取的點(diǎn)云只是在一個(gè)相機(jī)視角下得到的,無法描述完整物體表面,因此,需要在多個(gè)視角下獲取物體不同位置的表面,然后進(jìn)行配準(zhǔn),拼接出完整的目標(biāo)。本文將使用ICP(迭代最近點(diǎn))算法對點(diǎn)云進(jìn)行配準(zhǔn)。ICP是基于自由形態(tài)曲面的配準(zhǔn)算法[11],由于具有較高的準(zhǔn)確度和效率,是點(diǎn)云配準(zhǔn)的主流算法。配準(zhǔn)的效果如圖7所示。
圖7 配準(zhǔn)效果圖
配準(zhǔn)而成的點(diǎn)云不可避免的存在大量的不規(guī)則重疊,若直接進(jìn)行曲面重建,得到的曲面將會(huì)不光滑,呈鋸齒狀。為了得到光順的表面,采用移動(dòng)最小二乘法對點(diǎn)云進(jìn)行平滑化處理[12,13]。最終平滑后的效果如圖8所示。
圖8 平滑效果圖
經(jīng)上述步驟處理后的數(shù)據(jù)仍是離散點(diǎn)云,缺乏拓?fù)潢P(guān)系,因此本文采用貪婪投影三角化算法對點(diǎn)云數(shù)據(jù)進(jìn)行曲面重構(gòu)。該方法將三維數(shù)據(jù)點(diǎn)按法線方向投影到平面,然后對平面上的點(diǎn)作平面三角化,得到各點(diǎn)之間的連接關(guān)系。三角化過程采用的是基于Delaunay的三角化算法[14],先在平面上進(jìn)行區(qū)域生長,通過選擇一個(gè)三角片作為初始曲面,不斷地拓展邊界,最后形成一張完整的曲面。
具體過程為:①找出任意P點(diǎn)的k鄰域,當(dāng)鄰域足夠小的時(shí)候,曲面具有局平性,鄰域內(nèi)的所有三維數(shù)據(jù)點(diǎn)和P點(diǎn)在過P點(diǎn)的切平面上必定存在與它們一一對應(yīng)的唯一投影點(diǎn);②求出過P點(diǎn)的切平面以及鄰域內(nèi)所有點(diǎn)和P點(diǎn)在該切平面上的投影點(diǎn)。③對投影點(diǎn)進(jìn)行平面三角剖分。最終曲面重構(gòu)的結(jié)果如圖9所示。
圖9 曲面重構(gòu)效果圖
本文提出一種基于雙目視覺的齒輪曲面重構(gòu)算法。首先分別對不同視角下的齒輪雙目圖像進(jìn)行處理,包括矯正圖像、閾值分割和立體匹配等步驟,完成圖像重構(gòu)獲得初始三維點(diǎn)云。然后對三維點(diǎn)云進(jìn)行組合濾波去噪,達(dá)到去除噪點(diǎn)和精簡點(diǎn)云數(shù)據(jù)量的目的。之后將多片點(diǎn)云進(jìn)行配準(zhǔn),拼接成完整的齒輪點(diǎn)云模型,然后利用移動(dòng)最小二乘法進(jìn)行平滑,去除重疊的點(diǎn)云數(shù)據(jù),最終采用貪婪三角化算法將點(diǎn)云轉(zhuǎn)換成帶有拓?fù)潢P(guān)系的曲面模型。上述算法能夠較好地重構(gòu)出目標(biāo)的曲面模型,但仍存在著不足。重構(gòu)得到的曲面模型不具備水密性,對于點(diǎn)云數(shù)據(jù)缺失部分,對應(yīng)的曲面模型也存在孔洞。針對這一問題,在后續(xù)研究中將結(jié)合泊松曲面算法進(jìn)行完善,得到封閉光滑的曲面模型。