張慶鵬,李永清,李廣恒,汪雨晴
(沈陽儀表科學(xué)研究院有限公司,遼寧沈陽 110043)
三維重建技術(shù)經(jīng)過近年的不斷發(fā)展,已在無人駕駛、測繪和工業(yè)自動化等領(lǐng)域得到了廣泛應(yīng)用[1]。三維重建算法有基于機(jī)器視覺的重建算法、基于RGB-D深度相機(jī)的重建算法和激光掃描重建算法等[2]?;跈C(jī)器視覺的三維重建具有速度快、實(shí)時性好和低成本的優(yōu)點(diǎn),被廣泛應(yīng)用于各工業(yè)生產(chǎn)環(huán)節(jié)。而當(dāng)前儀器儀表行業(yè)生產(chǎn)中信息化程度不高,壓力傳感器制造領(lǐng)域更是大多采用手工定制化小批量生產(chǎn),生產(chǎn)檢驗(yàn)仍采用小批量手工檢測方式,效率低,同時由于檢驗(yàn)人員多,會有漏檢和錯檢發(fā)生。壓力傳感器模塊對外殼清潔度和表面缺陷要求也較高,需要保證無明顯的機(jī)械損傷和較深的劃痕,因此實(shí)現(xiàn)壓力傳感器模塊三維重建十分重要。
國內(nèi)許多學(xué)者也針對工業(yè)檢測領(lǐng)域三維重建領(lǐng)域進(jìn)行了一定的研究。張洪鑫等針對鑄件的毛刺問題提出了一種基于單目圖像序列的鑄件三維重建方法,該方法能有效地恢復(fù)鑄件三維表面的細(xì)節(jié)特征[3]。張博文等利用單目多視圖三維重建對料堆體積進(jìn)行測算,其測量誤差為5%左右,仍需要進(jìn)一步提升重建精度[4]。徐高鵬等提出了一種對疲勞滾子表面三維重建方法[5]。何文韜等用智能手機(jī)對小型金屬件三維重建并測量[6]。王中任等利用兩組雙目視覺系統(tǒng)獲取目標(biāo)工件的三維表面點(diǎn)云,精度較高但成本較高[7]。雷禧生等利用TOF相機(jī)實(shí)現(xiàn)點(diǎn)云視頻流的三維重建算法,用于噴涂生產(chǎn)線[8]。史維程等利用雙目相機(jī)對工件三維重建,獲得了預(yù)期的結(jié)果[9]。
當(dāng)前工業(yè)生產(chǎn)中已廣泛應(yīng)用三維重建技術(shù),但針對傳感器領(lǐng)域的三維重建研究仍較少。傳感器外形一般結(jié)構(gòu)復(fù)雜,且作為敏感元件急需一種無接觸式低成本測量方法。本文提出一種應(yīng)用于壓力傳感器的單目三維重建算法替代人工查驗(yàn)方式,檢驗(yàn)員只需在電腦上查看遠(yuǎn)程傳送來的三維模型標(biāo)注缺陷。該方法有助于傳感器工廠數(shù)字化轉(zhuǎn)型,提高生產(chǎn)效率,從而達(dá)到提質(zhì)增效的目的。
基于單目視覺的三維重建算法第一步就是需要將圖像對進(jìn)行匹配,獲得足夠的特征點(diǎn)匹配集合,進(jìn)而提供給SFM算法獲得稀疏的三維點(diǎn)云。匹配算法中,SIFT算法使用廣泛,其具有尺度不變性,本文提出一種改進(jìn)SIFT匹配算法能夠提升原算法匹配準(zhǔn)確率。
使用SIFT算法對特征提取時首先需要建立高斯金字塔及差分金字塔,之后尋找空間上的極值點(diǎn),確定極值點(diǎn)后對其進(jìn)行定位,通過Hessian矩陣剔除表征不好的極值點(diǎn),然后計算關(guān)鍵點(diǎn)鄰近區(qū)域的像素點(diǎn)梯度幅值和梯度方向并使用直方圖統(tǒng)計指定的關(guān)鍵點(diǎn)方向,最后生成關(guān)鍵點(diǎn)的描述符。
原SIFT算法采用歐氏距離作為圖像特征相似度的衡量準(zhǔn)則,本文采用馬氏距離代替歐氏距離提高匹配準(zhǔn)確率,馬氏距離是一種數(shù)據(jù)的協(xié)方差距離,能夠有效計算2個未知樣本集的相似度方法,與歐氏距離相比,能夠考慮到各種特性之間的聯(lián)系,具有尺度無關(guān)性,不受量綱影響。
歐氏距離的計算公式如下:
(1)
馬氏距離的計算公式如下:
(2)
式中:X、Y為兩組向量;S為兩組向量的協(xié)方差矩陣。
對比歐氏距離和馬氏距離計算公式可以看出,馬氏距離相比歐氏距離多了一個協(xié)方差矩陣,能夠更準(zhǔn)確衡量距離關(guān)系,馬氏距離雖然增加了運(yùn)算量,但是排除了量綱的影響,具有尺度無關(guān)性,同時也排除了特征向量之間相關(guān)性的干擾,匹配的精度更高。
為進(jìn)一步提高匹配準(zhǔn)確率,匹配過后要對錯誤的匹配進(jìn)行剔除,本文采用隨機(jī)抽取一致性算法(RANSAC),該算法的最大優(yōu)點(diǎn)就是估算的模型參數(shù)非常穩(wěn)定,能在含有很多外部點(diǎn)的數(shù)據(jù)中精確地對模型參數(shù)進(jìn)行估計。
特征匹配實(shí)驗(yàn)結(jié)果如圖1和表1所示。
(a)原SIFT算法
(b)改進(jìn)SIFT算法圖1 特征匹配實(shí)驗(yàn)
表1 實(shí)驗(yàn)結(jié)果
由表1可以看出,本文的改進(jìn)算法相比原算法在基本不影響實(shí)時性的情況下提升了0.74%的匹配準(zhǔn)確率,能夠?yàn)楹罄m(xù)的三維重建環(huán)節(jié)提供更準(zhǔn)確的匹配對,進(jìn)而提升三維重建精度。
運(yùn)動恢復(fù)結(jié)構(gòu)(structure from motion,SFM)方法是一種廣泛使用的三維稀疏點(diǎn)云重建算法,該方法使用本文提出的特征匹配算法選取匹配點(diǎn)最多的圖像作為初始匹配對,計算初始的相機(jī)運(yùn)動信息以及壓力傳感器結(jié)構(gòu)信息,通過三角測量法獲得壓力傳感器的初始空間稀疏點(diǎn)云,之后通過逐漸增加不同角度拍攝的圖像進(jìn)行迭代,獲得新增圖像對應(yīng)的相機(jī)運(yùn)動信息以及壓力傳感器的結(jié)構(gòu)信息,最后使用集束調(diào)整(bundle adjusting,BA)方法對參數(shù)優(yōu)化。
由于SFM生成的三維稀疏點(diǎn)云不包含壓力傳感器的更多細(xì)節(jié),同時僅包含特征點(diǎn)的三維坐標(biāo),因此需要將三維點(diǎn)云稠密化。
多視角密集匹配(CMVS/PMVS)算法能夠利用SFM算法的稀疏點(diǎn)云和相機(jī)參數(shù),使三維點(diǎn)云稠密化。點(diǎn)云多視角立體匹配(CMVS)主要將SFM算法獲得的稀疏點(diǎn)云數(shù)據(jù)對圖像序列進(jìn)行聚簇分類,減少重建環(huán)節(jié)的數(shù)據(jù)量?;诿嫫P偷亩嘁暯橇Ⅲw匹配(PMVS)根據(jù)CMVS聚簇分類后的圖像序列和SFM算法提供的投影矩陣,將稀疏點(diǎn)云向四周漫射獲得定向點(diǎn)云,經(jīng)過一系列運(yùn)算操作完成三維點(diǎn)云稠密化,最終能夠得到稠密的三維點(diǎn)云模型[10]。
泊松表面重建算法是一種隱函數(shù)表面重建方法,能夠?qū)⒊砻艿娜S點(diǎn)云轉(zhuǎn)化為三維表面模型,泊松表面重建算法通過解算反映等值面的指示函數(shù),實(shí)現(xiàn)點(diǎn)云模型的表面重建[11]。
泊松方程一般采用Gauss-Seidel矩陣迭代方式求解,通過迭代求得矩陣的極限值近似代替為泊松方程的精確值,之后通過等值面的提取,把提取出來的三角面片拼接獲得重建結(jié)果。算法步驟如圖2所示。
圖2 算法流程圖
實(shí)驗(yàn)所用設(shè)備為iPhone11手機(jī),在室內(nèi)場景下拍攝獲得88張不同角度下的壓力傳感器圖像,每張圖像的像素大小為1 080×1 440。使用Python語言編程,在Meshlab軟件中處理三維重建模型。圖3為實(shí)驗(yàn)圖像。
圖3 三維重建實(shí)驗(yàn)圖像
通過SFM算法獲得的稀疏點(diǎn)云及計算獲得的相機(jī)拍攝位置圖,實(shí)驗(yàn)結(jié)果如圖4所示。
圖4 SFM稀疏點(diǎn)云及相機(jī)位置圖像
使用PMVS算法將SFM算法獲得的稀疏點(diǎn)云稠密化,獲得稠密點(diǎn)云,實(shí)驗(yàn)結(jié)果如圖5所示。
圖5 PMVS算法稠密點(diǎn)云
將獲得的稠密三維空間點(diǎn)云使用泊松表面重建算法重建傳感器的三維表面,實(shí)驗(yàn)結(jié)果如圖6所示。
圖6 泊松表面算法的重建模型
從實(shí)驗(yàn)結(jié)果能夠看出重建的壓力傳感器三維模型表面光滑,細(xì)節(jié)處清晰,還原效果較好,標(biāo)注的產(chǎn)品序號也能夠直觀展現(xiàn)。
本文提出并實(shí)現(xiàn)了基于智能手機(jī)的單目無標(biāo)定拍攝圖像序列的壓力傳感器低成本三維重建方法,在特征檢測與匹配環(huán)境中,提出一種改進(jìn)SIFT算法提升匹配準(zhǔn)確率。在三維點(diǎn)云生成環(huán)節(jié)中,通過SFM算法計算獲得相機(jī)的位置信息和稀疏的三維點(diǎn)云,通過PMVS算法將點(diǎn)云稠密化。最后使用泊松表面重建算法獲得了壓力傳感器的三維表面細(xì)節(jié)特征。實(shí)驗(yàn)結(jié)果表明,基于智能手機(jī)拍攝的單目無標(biāo)定圖像序列三維重建算法能夠?yàn)閴毫鞲衅髂K表面缺陷標(biāo)注提供一種可靠的解決方案,為下一步工廠實(shí)現(xiàn)遠(yuǎn)程檢測提供了重要技術(shù)支撐。