張寶祥,玉振明,楊秋慧
(1. 廣西大學(xué) 計(jì)算機(jī)與電子信息學(xué)院,廣西 南寧 530004;2. 梧州學(xué)院 機(jī)器視覺與智能控制廣西重點(diǎn)實(shí)驗(yàn)室,廣西 梧州 543002;3. 梧州學(xué)院 大數(shù)據(jù)與軟件工程學(xué)院,廣西 梧州 543002)
近年來,隨著人工智能和機(jī)器視覺技術(shù)的快速發(fā)展,基于圖像的三維重建方法越來越受到關(guān)注,但在面向顯微鏡應(yīng)用領(lǐng)域,其主要應(yīng)用于平面標(biāo)本的觀測,鮮有針對(duì)立體標(biāo)本成像以及建模的顯微設(shè)備。研發(fā)新一代智能顯微設(shè)備的同時(shí),開發(fā)出面向立體標(biāo)本的三維模型重建和立體標(biāo)本幾何參數(shù)測量的技術(shù)具有重要意義。
作為機(jī)器視覺的熱門方向,已有諸多方法和理論用于基于圖像的三維重建,其中,運(yùn)動(dòng)恢復(fù)結(jié)構(gòu)法(Structure from Motion,SfM)[1]是應(yīng)用最廣泛的經(jīng)典方法之一?;赟fM 設(shè)計(jì)出了多種三維建模系統(tǒng),如Wu 開發(fā)的開源軟件Visual SfM[2],Moulon 等 人 開 發(fā) 的 開 源 軟 件Open-MVG[3],Sch?nberger 等 人 開 發(fā) 的 開 源 三 維 建 模系 統(tǒng)COLMAP[4,5]。蔣 華 強(qiáng) 等[6]針 對(duì) 現(xiàn) 有SfM算法重建模型存在的點(diǎn)云稀疏等問題,提出一種利用不同匹配數(shù)據(jù)進(jìn)行模型重建的算法。但由于SfM 僅計(jì)算圖像之間成功匹配的特征點(diǎn)的三維信息并將其恢復(fù)為三維坐標(biāo)形成三維點(diǎn)云,而圖像中含有的特征點(diǎn)信息相對(duì)較少[7],因此SfM 計(jì)算得到的點(diǎn)云模型比較稀疏,重建后的模型精度較低。多視圖立體方法(Multi-View Stereo,MVS)[8]可以從物體多個(gè)視角圖像計(jì)算得到場景的密集三維點(diǎn)云。PMVS(Patchbased MVS)[5]以SfM 重建的稀疏點(diǎn)云為輸入,利用圖像面鄰域信息迭代,使用點(diǎn)云擴(kuò)張策略進(jìn)行點(diǎn)云擴(kuò)張和過濾,最后重建出稠密點(diǎn)云。Sch?nberger 等人[9]以SfM 得到的稀疏重建模型和相機(jī)姿態(tài)為輸入,采用深度圖融合的方法來恢復(fù)出稠密點(diǎn)云?;趯W(xué)習(xí)的MVS 方法如Point-MVSNet[10],R-MVSNet[11],Cascade-MVSNet[12]等采用深度圖融合的方法恢復(fù)較高精度的場景稠密點(diǎn)云也取得不錯(cuò)的結(jié)果。
以上三維重建算法對(duì)拍攝設(shè)備要求較高,適用于對(duì)大場景成像的紋理等細(xì)節(jié)豐富的場景,而在實(shí)體顯微鏡應(yīng)用場景中,由于顯微鏡工作環(huán)境、珠寶等立體標(biāo)本在顯微鏡局部放大觀測時(shí)存在弱紋理、細(xì)節(jié)不豐富和反光等問題,運(yùn)用上述算法得到的三維重建效果并不理想。本文提出了一種適用于顯微鏡應(yīng)用場景下基于特征提取的多視圖立體三維重建算法。以基恩士VHX-6000 高級(jí)體視顯微鏡作為實(shí)驗(yàn)平臺(tái),以集成電路板元器件或珠寶首飾作為實(shí)驗(yàn)對(duì)象,通過顯微鏡采集物體不同角度的圖像序列(大于10 張),對(duì)立體標(biāo)本顯微鏡圖像進(jìn)行三維重建,取得較好效果。
顯微鏡具有高放大率和窄場的特點(diǎn),對(duì)立體標(biāo)本的圖像采集往往只能獲得物體較小的局部放大圖像,所采集的顯微圖像包含的紋理信息較少屬于弱紋理圖像。因此,為了增強(qiáng)圖像的細(xì)節(jié)信息和紋理信息以便后續(xù)過程可以提取到圖像更多的特征信息,使用直方圖均衡化方法增強(qiáng)圖像的細(xì)節(jié)信息以使圖像灰度分布更均勻[13],使用一種融合光照和彩色信息的灰度圖像補(bǔ)償算法增強(qiáng)圖像的紋理信息對(duì)圖像進(jìn)行灰度化[14]。本文的實(shí)驗(yàn)設(shè)備為基恩士VHX-6000 高端數(shù)碼顯微系統(tǒng),如圖1 所示。
圖1 基恩士VHX-6000Fig.1 KEYENCE VHX-6000
特征點(diǎn)提取與匹配是基于圖像三維重建算法的關(guān)鍵一步,特征提取與匹配的精度直接影響重建效果。Harris[15]角點(diǎn)檢測算法提取的特征角點(diǎn)比較全面,具有平移和旋轉(zhuǎn)不變性,對(duì)參數(shù)變化、噪聲、圖像對(duì)比度和光照變化等有很好的魯棒性,但對(duì)圖像尺度變化敏感,不具有尺度不變特性。尺度不變特征變換(Scale-invariant Feature Transform,SIFT)[16]算法對(duì)旋轉(zhuǎn)、尺度、亮度等變化具有不變性,對(duì)視角轉(zhuǎn)換、噪聲、仿射變換有很高的容忍度,但由于算法實(shí)現(xiàn)過程中需要通過高斯模糊、降采樣等方式構(gòu)建高斯金字塔,得到的特征點(diǎn)精度不是很高,對(duì)邊緣光滑的目標(biāo)無法準(zhǔn)確提取特征點(diǎn),且計(jì)算量大,效率低。本文采用一種將Harris 與SIFT 算法相結(jié)合的方法[17],首先,用Harris 進(jìn)行圖像中的特征角點(diǎn)提取,使用特征角點(diǎn)包含的信息熵值對(duì)特征角點(diǎn)進(jìn)一步篩選;其次,使用馬氏距離度量特征點(diǎn)之間的相似性;再次,用隨機(jī)抽樣一致性(RANSAC)方法對(duì)匹配模型進(jìn)行優(yōu)化,篩選匹配點(diǎn)對(duì),提高匹配的正確率;最后使用顯微鏡采集的顯微圖像進(jìn)行對(duì)比實(shí)驗(yàn),驗(yàn)證本算法的匹配準(zhǔn)確率。
2.2.1 Harris 角點(diǎn)檢測
Harrs 角點(diǎn)檢測算法是利用移動(dòng)的局部窗口在圖像中計(jì)算灰度變化值,若在任意方向上移動(dòng)都存在較大的灰度變化就認(rèn)為該窗口中存在角點(diǎn)。通過設(shè)置合理的閾值來決定檢測到的角點(diǎn)數(shù)。Harris 角點(diǎn)檢測變化如圖2 所示。
圖2 Harris 角點(diǎn)檢測變化Fig.2 Change of Harris corner detection
窗口由像素點(diǎn)(x,y)移動(dòng)(u,v)產(chǎn)生的灰度變化E可以表示為:
其中:I是圖像灰度函數(shù),W是窗口函數(shù),將式(1)用泰勒級(jí)數(shù)化簡可得:
為了在顯微圖像中可能存在的弱紋理區(qū)域檢測到盡可能多的特征點(diǎn),對(duì)圖像逐像素點(diǎn)計(jì)算灰度變化。 使自相關(guān)矩陣M的權(quán)重, 則 有H(x,y),表示圖像每個(gè)像素點(diǎn)在x,y方向的二階偏導(dǎo)數(shù)和x、y方向的導(dǎo)數(shù)的Hessian 矩陣。從圖像中提取到的角點(diǎn)可表示為:
其中:R(x,y)為角點(diǎn)響應(yīng)函數(shù);det(H)為矩陣H的行列式;tr(H)為矩陣H的跡;λ為常數(shù)(取值范圍0.04~0.06),在本文實(shí)驗(yàn)中函數(shù)R的局部極大值點(diǎn)即為特征角點(diǎn),此時(shí)取λ=0.04。
通過式(3)初步檢測出圖像特征點(diǎn)。但由于采用逐一計(jì)算每一個(gè)像素點(diǎn)的局部窗口內(nèi)灰度變化,因此檢測結(jié)果僅反映圖像局部變化情況,并會(huì)將背景中噪聲點(diǎn)或紋理不清晰的像素點(diǎn)判斷為特征點(diǎn)。熵值[18]的大小與局部區(qū)域包含的信息量成正比,背景中噪聲點(diǎn)或紋理不清晰的像素點(diǎn)包含信息量較少導(dǎo)致計(jì)算出的熵值低,熵值大的特征點(diǎn)比熵值小的特征點(diǎn)匹配的準(zhǔn)確率高。用以下兩式進(jìn)行熵計(jì)算:
其中:pij為圖像某像素處的灰度值與周圍像素的灰度分布的綜合特征,N為圖像尺度,Hf為圖像二維熵,n,i,j為像素灰度值。分別對(duì)圖像中初步檢測出的特征角點(diǎn)利用式(5)在以特征角點(diǎn)為中心的n×n鄰域內(nèi)計(jì)算圖像塊的局部熵,統(tǒng)計(jì)每幅圖像中特征點(diǎn)熵的均值,取熵均值的80%作為閾值,刪除低于閾值的特征點(diǎn),對(duì)特征點(diǎn)進(jìn)行提純。對(duì)于圖像弱紋理區(qū)域統(tǒng)計(jì)的熵均值較低,可以刪除較少的點(diǎn)進(jìn)而在弱紋理區(qū)域保留較多的特征點(diǎn),從而提高算法在弱紋理區(qū)域匹配的正確率,同時(shí)提高算法的效率。
2.2.2 生成SIFT 特征描述子
Harris 算法提取到特征角點(diǎn),還需要采用SIFT 算法來描述并建立特征向量。SIFT 通過利用特征角點(diǎn)鄰域像素的梯度方向分布特性為每個(gè)關(guān)鍵點(diǎn)指定方向參數(shù),使算子具備旋轉(zhuǎn)不變性。
其中:m(x,y)為(x,y)處梯度的幅度,θ(x,y)為(x,y)處的梯度方向,L(x,y)為所有關(guān)鍵點(diǎn)的尺度。在特征點(diǎn)周圍n×n鄰域內(nèi)以尺度大小建立一個(gè)大采樣區(qū)域,用式(6)、(7)計(jì)算窗口內(nèi)像素點(diǎn)的梯度方向和大小,然后在該鄰域內(nèi)構(gòu)建一個(gè)小采樣區(qū)域,并用梯度直方圖統(tǒng)計(jì)該小采樣區(qū)域中每個(gè)“格子”內(nèi)像素的梯度方向和大小,形成種子點(diǎn),從而構(gòu)建出特征描述子。
在本文實(shí)驗(yàn)中,SIFT 首先將采樣區(qū)域旋轉(zhuǎn)至特征點(diǎn)方向上,然后在其周圍16×16 的鄰域內(nèi)計(jì)算梯度方向和大小。然后在每個(gè)4×4 的采樣窗口中計(jì)算8 個(gè)方向的梯度直方圖,繪制每個(gè)方向的累加值,即可形成一個(gè)種子點(diǎn)。如圖3 所示,每個(gè)特征角點(diǎn)有4×4 個(gè)種子點(diǎn),每個(gè)種子點(diǎn)有8 個(gè)方向,即每個(gè)特征角點(diǎn)由4×4×8=128維的描述子組成。
圖3 SIFT 描述特征點(diǎn)Fig.3 SIFT description of feature points
2.2.3 特征匹配
為了提高對(duì)顯微弱紋理圖像的匹配精度,用馬氏距離[19]替代原始SIFT 算法中的歐氏距離作為兩幅圖像中特征角點(diǎn)之間的的相似性判定度量。歐式距離將特征點(diǎn)的不同屬性之間的差別等同看待,有時(shí)不能滿足實(shí)際要求。馬氏距離與歐式距離的不同之處在于:它考慮到特征點(diǎn)各種特性之間的聯(lián)系;并且能對(duì)兩個(gè)樣本集的相似性進(jìn)行有效度量,不受尺度變化及變量之間相關(guān)性的影響;它還可以排除變量之間的相關(guān)性的干擾。馬氏距離可以表示為:
其中:X,Y為兩個(gè)特征向量,S為兩組特征向量的協(xié)方差矩陣,E為均值。從式(9)中可以發(fā)現(xiàn),馬氏距離計(jì)算是建立在總體樣本的基礎(chǔ)上,即計(jì)算的是兩個(gè)向量間的整體距離。相比歐式距離,馬氏距離多了一個(gè)協(xié)方差矩陣的逆矩陣,能更準(zhǔn)確的度量特征點(diǎn)之間的相似性。雖然增加了計(jì)算量,但馬氏距離把方差歸一化,使得特征之間的相似關(guān)系更加合理,匹配精度更高。為進(jìn)一步提高算法在弱紋理顯微圖像上的匹配準(zhǔn)確率,需要剔除掉誤匹配點(diǎn),因此采用隨機(jī)抽樣一致性(RANSAC)[20]算 法 替 代 原SIFT 算 法 中 的 比 例閾值法,選擇一組局域熵值高的特征點(diǎn)作為初始模型,用初始模型去測試所有的其它數(shù)據(jù),如果某個(gè)點(diǎn)適用于估計(jì)的模型則認(rèn)為它也是局內(nèi)點(diǎn),否則是局外點(diǎn);然后,用所有假設(shè)的局內(nèi)點(diǎn)去重新估計(jì)模型。算法通過K次迭代,可精確估計(jì)匹配模型參數(shù)。
2.3.1 稀疏點(diǎn)云重建
利用基恩士VHX-6000 可變倍鏡頭可將智能顯微鏡鏡頭調(diào)整到一個(gè)固定的角度,然后上下、前后、左右等多方向移動(dòng)載物臺(tái),從不同視角拍攝立體樣本獲得圖像序列。本文采用如文獻(xiàn)[4]中的增量SfM 方法重建物體的三維結(jié)構(gòu)。增量SfM 是具有迭代重建組件的順序處理方法。首先,用本文算法對(duì)圖像進(jìn)行特征點(diǎn)提取與匹配,采用包含正確匹配特征點(diǎn)對(duì)最多的兩視圖作為重建種子,通過它們之間的匹配點(diǎn)對(duì)估計(jì)出本征矩陣,由本征矩陣采用SVD 分解法計(jì)算出相機(jī)位姿。然后,依次將下一最佳匹配圖像Inext(匹配點(diǎn)對(duì)數(shù)量最多)添加進(jìn)模型迭代,重復(fù)估計(jì)相機(jī)位姿并對(duì)相機(jī)進(jìn)行標(biāo)定;同時(shí)將場景中匹配的點(diǎn)通過三角化來生成三維點(diǎn),并計(jì)算出相機(jī)的運(yùn)動(dòng)軌跡和場景中物體的三維信息。最后,對(duì)所有已生成的三維點(diǎn)和已估計(jì)出的相機(jī)位姿使用光束平差法(Bundle Adjustment,BA)進(jìn)行優(yōu)化。BA 結(jié)束,得到相機(jī)估計(jì)參數(shù)和場景幾何信息,即稀疏的3D 點(diǎn)云。
2.3.1.1 有序圖像輸入
由于增量SfM 需要對(duì)所有圖像依次進(jìn)行匹配,用無序圖像進(jìn)行模型重建時(shí)由于圖像的無序?qū)е聢D像位姿的先驗(yàn)條件未知,在匹配環(huán)節(jié)存在多張圖片之間的交叉匹配和多次交叉驗(yàn)證匹配點(diǎn),所以計(jì)算量大,實(shí)時(shí)性差。為提高圖像的匹配效率,采用有序圖像序列作為輸入。通常相鄰拍攝的兩張圖像所包含的共同特征信息最多,也更加容易正確匹配。在采集圖像時(shí)根據(jù)顯微鏡載物臺(tái)移動(dòng)的軌跡以及圖像拍攝時(shí)間對(duì)所采集的物體不同視角圖像添加標(biāo)簽,將圖像根據(jù)載物臺(tái)運(yùn)行軌跡和時(shí)間的先后排列成一組順序固定的圖像序列(類似視頻中的幀)。顯微鏡載物臺(tái)工作距離較小,拍攝的相鄰圖片中兩兩之間物體信息的重合很多,包含的特征點(diǎn)信息最多;在特征匹配時(shí)使相鄰的圖片先進(jìn)行特征匹配。在SfM 算法選好初始的兩張匹配圖象時(shí)默認(rèn)把與這兩張圖像相鄰的圖像作為下一最佳匹配圖像Inext進(jìn)行重建,依次將與上一張圖像鄰近的圖像作為下一最佳輸入進(jìn)行迭代,這樣所有圖像只需添加匹配一次即可完成所有圖像的重建。
2.3.1.2 三角化
SfM 在圖像正確匹配和估計(jì)得到相機(jī)參數(shù)之后,就可以將圖像場景之間正確匹配的特征點(diǎn)通過三角化方法恢復(fù)為空間三維點(diǎn),進(jìn)而得到三維點(diǎn)云。三角化的方法如圖4 所示。
圖4 三角化Fig.4 Triangulation
在圖4 中,I1,I2為兩幅圖像,P1,P2分別為兩幅圖像上匹配的特征點(diǎn);O1,O2分別為兩幅圖像拍攝視角時(shí)的相機(jī)中心,將每幅圖像的相機(jī)中心與其特征點(diǎn)的連線延長在空間中交于點(diǎn)P,則P點(diǎn)為圖像上的點(diǎn)所恢復(fù)的世界坐標(biāo)系下的三維點(diǎn)。得到三維點(diǎn)之后通過BA 調(diào)整,過濾離群值,估計(jì)得到物體的三維點(diǎn)云。
2.3.2 稠密點(diǎn)云重建
SfM 重建得到的點(diǎn)云模型為稀疏點(diǎn)云,只有大致的模型結(jié)構(gòu),缺少了很多細(xì)節(jié)部分,所以還需要將稀疏點(diǎn)云進(jìn)行稠密化。多視圖立體(MVS)是一種將SfM 輸出的稀疏點(diǎn)云稠密化的方法,MVS 重建利用SfM 算法輸出的稀疏點(diǎn)云、相機(jī)參數(shù)及相機(jī)位姿,然后融合圖像的深度圖獲得物體的稠密三維點(diǎn)云。但對(duì)于顯微鏡工作場景下拍攝的物體局部存在弱紋理的圖像,由于表面灰度信息有限,傳統(tǒng)MVS 方法圖像深度信息估計(jì)誤差較大。因此,針對(duì)上述在顯微鏡應(yīng)用場景中的物體稠密重建問題,利用CNN 網(wǎng)絡(luò)與MVS 結(jié)合的方法來估計(jì)和預(yù)測采集的顯微圖像的深度圖,進(jìn)而使用深度圖進(jìn)行稠密重建。
為保證模型收斂,本文采用文獻(xiàn)[21]提出的基于深度殘差網(wǎng)絡(luò)(ResNet-50)[22-23]的全卷積神經(jīng)網(wǎng)絡(luò)對(duì)采集的顯微圖像序列進(jìn)行深度估計(jì)和預(yù)測。在ResNet-50 的基礎(chǔ)上設(shè)置了反卷積層和上采樣層逐步增加每層的輸出大小,并在反卷積層輸出后增加了激活函數(shù)(ReLu)[24],對(duì)輸入圖像進(jìn)行同樣比例大小的深度預(yù)測。通過比較全卷積神經(jīng)網(wǎng)絡(luò)預(yù)測的深度與MVS 所得深度的絕對(duì)差值并設(shè)置閾值,將大于閾值的預(yù)測深度融合到MVS 估計(jì)的深度圖中得到改善的深度圖,然后利用SfM 得到的稀疏點(diǎn)云和相機(jī)的位姿信息與改善后的深度圖恢復(fù)出物體的稠密點(diǎn)云。
用于預(yù)測圖像深度的全卷積網(wǎng)絡(luò)結(jié)構(gòu)如圖5所示。為了增加系統(tǒng)的實(shí)時(shí)性并減少計(jì)算時(shí)內(nèi)存的占用量,去掉了原ResNet-50 中的平均池化層和全連接層部分,僅保留ResNet-50 的卷積層結(jié)構(gòu)來提取圖像中的特征信息,從而可以輸出尺寸為7×7,2 048 通道的特征圖,減少了計(jì)算參數(shù),加速模型的訓(xùn)練,提高預(yù)測效率。
圖5 深度預(yù)測網(wǎng)絡(luò)結(jié)構(gòu)Fig.5 Depth prediction network structure
本文的研究旨在恢復(fù)顯微鏡應(yīng)用場景中所拍攝物體的近似真實(shí)的三維結(jié)構(gòu)。重建物體近似真實(shí)的三維結(jié)構(gòu)是以正確估計(jì)圖像深度為前提的。所以,為了盡可能正確地預(yù)測圖像的深度信息,約束預(yù)測的圖像深度值和真實(shí)值之間的誤差。結(jié)合文獻(xiàn)[21]采用平均平方誤差作為損失函數(shù),損失函數(shù)L定義為:
其中:在圖像(i,j)處預(yù)測的深度值為yij,在圖像(i,j)處真實(shí)深度值為tij,圖像包含的像素點(diǎn)數(shù)為m×n,ε為常數(shù)。L將預(yù)測深度圖像素點(diǎn)的預(yù)測值和真實(shí)值之間的平均誤差定義為損失,該損失函數(shù)對(duì)預(yù)測的深度值y懲罰較嚴(yán)格,可以很好地減少顯微鏡載物臺(tái)背景區(qū)域帶來的深度誤差影響,進(jìn)一步約束了前景物體的深度誤差。
本文的實(shí)驗(yàn)平臺(tái)為基恩士VHX-6000 高性能實(shí)體顯微鏡系統(tǒng),以電子電路板上元件為實(shí)體標(biāo)本采集的立體標(biāo)本圖像序列來驗(yàn)證本算法的可行性。實(shí)驗(yàn)PC 平臺(tái)配置為:系統(tǒng)為Ubuntu20.04.3LTS,CPU 為 英 特 爾Xeon E5-1630 V3,主頻為3.70 GHz,內(nèi)存為16 G,顯卡為英偉達(dá)Quadro K2200,顯存為4 G,硬盤為2 T 固態(tài)硬盤。如圖1 所示的基恩士VHX-6000 智能顯微鏡可以通過人為轉(zhuǎn)動(dòng)手柄靈活調(diào)整顯微鏡物鏡的觀測角度,以物鏡垂直載物臺(tái)為原點(diǎn)可以任意左右傾斜0°~90°,并通過上下、旋轉(zhuǎn)以及水平任意角度移動(dòng)載物臺(tái)實(shí)現(xiàn)對(duì)立體標(biāo)本的多視角觀測。在本文實(shí)驗(yàn)中將顯微鏡物鏡向左調(diào)整傾斜60°,放大倍數(shù)設(shè)置為20 倍,然后移動(dòng)載物臺(tái)采集了36 張電路板上的電容的多視角圖像序列。對(duì)圖像根據(jù)載物臺(tái)移動(dòng)軌跡和采集時(shí)間進(jìn)行排序,使其成為有序圖像序列。采集的圖像如圖6 所示。
圖6 電容的多視角圖像Fig.6 Multi-view image of capacitance
隨機(jī)從拍攝的36 張圖像中選取2 張圖像進(jìn)行圖像匹配實(shí)驗(yàn),選取的圖片如圖7 所示。將選取的2 張圖像經(jīng)過本文的圖像灰度化補(bǔ)償算法進(jìn)行預(yù)處理,然后與Harris 和SIFT 匹配算法經(jīng)行實(shí)驗(yàn)比較,實(shí)驗(yàn)數(shù)據(jù)如表1 所示,三種匹配算法的實(shí)驗(yàn)結(jié)果圖如圖8 所示。
圖7 選取的待匹配圖像Fig.7 Selected image to be matched
表1 不同匹配算法實(shí)驗(yàn)數(shù)據(jù)Tab.1 Experimental data of different matching algorithms
可以發(fā)現(xiàn),盡管其他算法能提取出較多的特征點(diǎn),但本文算法在針對(duì)顯微圖像中弱紋理區(qū)域的匹配上具有明顯優(yōu)勢(shì)。如圖8 所示,本文算法 在對(duì)電容壁和電容頂部弱紋理區(qū)域的特征點(diǎn)匹配中的誤匹配較少,而其他算法存在明顯的誤匹配現(xiàn)象。如表1,本算法也具有更好的性能指標(biāo),原因是本文算法在用Harris 提取出特征角點(diǎn)之后又利用熵值法對(duì)特征點(diǎn)進(jìn)一步篩選,減少了后續(xù)特征點(diǎn)匹配過程的計(jì)算量,減少了運(yùn)算時(shí)間;篩選出的包含豐富圖像特征信息的點(diǎn),以及在匹配環(huán)節(jié)采用馬氏距離代替歐氏距離,可更好地計(jì)算弱紋理區(qū)域特征點(diǎn)之間的相似性,提高了匹配的準(zhǔn)確率。匹配準(zhǔn)確率相比SIFT 算法提高了3.29%,時(shí)間比Harris 算法減少了23.42%。
圖8 三種匹配算法實(shí)驗(yàn)結(jié)果Fig.8 Experimental results of three matching algorithms
本文在稀疏重建環(huán)節(jié)改進(jìn)了特征提取與匹配,將使用無序圖像進(jìn)行增量SfM 重建改為使用有序圖像重建。對(duì)圖6 所示的36 張圖像進(jìn)行稀疏重建并與SfM 算法和OpenMVG 算法進(jìn)行實(shí)驗(yàn)比較,實(shí)驗(yàn)結(jié)果如圖9 所示,實(shí)驗(yàn)數(shù)據(jù)如表2所示。
表2 SfM 稀疏重建實(shí)驗(yàn)數(shù)據(jù)Tab.2 Experimental data of SfM sparse reconstruction
圖9 稀疏點(diǎn)云重建Fig.9 Sparse point cloud reconstruction
可以看到改進(jìn)后的SfM 重建結(jié)果具有更好的結(jié)構(gòu)完整性,本文算法在電容壁處的弱紋理區(qū)域重建后的點(diǎn)云比較密集,本文算法相比SfM 算法整體點(diǎn)云數(shù)量增加16.69%,相比OpenMVG算法重建時(shí)間節(jié)省了10.29%。
在使用本文深度預(yù)測網(wǎng)絡(luò)模型進(jìn)行深度預(yù)測前先對(duì)模型進(jìn)行訓(xùn)練。本文使用基恩士-VHX6000 超景深顯微鏡拍攝的寶石、電子元器件等不同顏色、形狀、材質(zhì)的立體標(biāo)本的多視角顯微圖像構(gòu)建的本地圖像數(shù)據(jù)集,隨機(jī)從中取出部分圖像構(gòu)成訓(xùn)練集和驗(yàn)證集,對(duì)深度預(yù)測網(wǎng)絡(luò)進(jìn)行監(jiān)督訓(xùn)練?;魇?VHX6000 超景深顯微鏡具有3D 測量功能可以同步掃描立體標(biāo)本的深度信息生成深度圖,即在拍攝立體標(biāo)本多視角圖像時(shí)可以同步掃描同一視角的深度圖作為模型訓(xùn)練的輸入圖像,圖像對(duì)應(yīng)的深度圖作為訓(xùn)練標(biāo)簽。 模型的前$ 部分即卷積層部分使用ResNet50 在 公 開 數(shù) 據(jù) 集ImageNet[25]上 預(yù) 訓(xùn) 練 好的權(quán)重參數(shù)作為初始化參數(shù),模型訓(xùn)練時(shí)用AdaDelta 優(yōu)化訓(xùn)練效率[26],通過批處理的隨機(jī)梯度下降法優(yōu)化網(wǎng)絡(luò)參數(shù),本文訓(xùn)練中batch size 設(shè)置為4,迭代過程中采用了“早停”機(jī)制,即在迭代過程中觀察每次迭代輸出預(yù)測值與真實(shí)值的誤差,當(dāng)在驗(yàn)證集上預(yù)測值與真實(shí)值的誤差不再明顯變化時(shí)停止訓(xùn)練,此時(shí)損失函數(shù)L在0.217 附近小幅波動(dòng)、沒有明顯變化,說明模型收斂,完成本文模型的訓(xùn)練。
圖10 展示了部分預(yù)測結(jié)果,從預(yù)測的深度圖可以看出立體標(biāo)本“電容器”的具體形狀,深度變化均勻,很好地預(yù)測了立體標(biāo)本的深度。但不足之處在于,在場景背景處與“電容器”壁身弱紋理處存在噪聲以及部分缺失,這在之后用MVS 深度圖進(jìn)行修正并利用修正后的深度圖恢復(fù)三維結(jié)構(gòu)時(shí)進(jìn)行了彌補(bǔ)。
圖10 深度預(yù)測結(jié)果Fig.10 Depth prediction result
通過以SfM 稀疏重建階段獲得的物體稀疏點(diǎn)云和估計(jì)的場景幾何參數(shù)為基礎(chǔ),用本文全卷積神經(jīng)網(wǎng)絡(luò)方法預(yù)測的圖像深度和MVS 估計(jì)的深度圖相融合,以增強(qiáng)顯微鏡場景下對(duì)弱紋理區(qū)域的表征效果,重建出物體的稠密點(diǎn)云。將本文的稠密重建方法的重建效果與開源的三維建模系統(tǒng)COLMAP 中的MVS 方法相比較,估計(jì)的深度圖如圖11 所示,重建后的密集點(diǎn)云如圖12所示。
圖11 深度圖Fig.11 Depth map
圖12 稠密重建后的點(diǎn)云Fig.12 Densely reconstructed point cloud
在深度圖估計(jì)方面,COLMAP 中MVS 方法估計(jì)出的深度圖會(huì)受顯微鏡聚焦位置的影響,與場景中物體真實(shí)結(jié)構(gòu)深度信息不一致。本文方法用全卷積神經(jīng)網(wǎng)絡(luò)預(yù)測的圖像深度對(duì)MVS 方法估計(jì)的深度圖進(jìn)行矯正,得到的深度圖更加精確。在稠密點(diǎn)云方面,可以明顯看到本文方法比COLMAP 得到的稠密點(diǎn)云具有更好的結(jié)構(gòu)完整性,在圖12 中電容周身弱紋理區(qū)域的重建結(jié)構(gòu)更加完整,重建得到的點(diǎn)云數(shù)量明顯多于COLMAP。稠密重建實(shí)驗(yàn)數(shù)據(jù)如表3 所示。
表3 稠密重建實(shí)驗(yàn)數(shù)據(jù)Tab.3 Dense reconstruction experimental data
用均方根誤差(VRMSE)、平均相對(duì)誤差(VREL)和平均log10 誤差(VLOG10)這3 種常見的預(yù)測評(píng)價(jià)指標(biāo)驗(yàn)證本文使用的全卷積神經(jīng)網(wǎng)絡(luò)模型預(yù)測深度的精確性,表示為:
其 中:yi為 第i個(gè) 像 素 點(diǎn) 的 真 實(shí) 深 度,di為i個(gè) 像素點(diǎn)的深度預(yù)測值,N為圖像像素點(diǎn)總數(shù)??梢园l(fā)現(xiàn)與COLMAP 的MVS 算法相比,本算法在對(duì)包含了弱紋理區(qū)域的顯微圖像深度預(yù)測誤差評(píng)價(jià)指標(biāo)均更小。點(diǎn)云數(shù)目增加31.25%,整體重建時(shí)間節(jié)省了21.16%。
對(duì)重建得到的稠密點(diǎn)云進(jìn)行模型化,使用泊松表面重建方法將點(diǎn)云網(wǎng)格化,用MeshLab 軟件對(duì)重建后的模型進(jìn)行顯示,實(shí)驗(yàn)結(jié)果如圖13 所示。由于本文算法重建得到點(diǎn)云數(shù)量更多、點(diǎn)云更加稠密,最終得到的物體模型結(jié)構(gòu)更加完整,細(xì)節(jié)效果更優(yōu)。使用結(jié)構(gòu)相似度(VSSIM)[27]評(píng)價(jià)指標(biāo)驗(yàn)證重建模型的結(jié)構(gòu)完整性,表示為:
圖13 泊松表面重建結(jié)果Fig.13 Poisson surface reconstruction results
由表3 所示,本文算法重建后模型的SSIM提升了39.06%。
為了對(duì)本文算法的魯棒性[28]經(jīng)行驗(yàn)證,將顯微鏡物鏡以垂直載物臺(tái)為原點(diǎn)分別傾斜0°、30°、60°,并選取不同材質(zhì)和形狀的物體進(jìn)行稠密點(diǎn)云重建實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如圖14 所示。
從圖14 中可以看出,在調(diào)整顯微鏡物鏡不同的觀測角度,以及采用不同材質(zhì)的物體進(jìn)行三維重建實(shí)驗(yàn),本文算法都能夠重建出結(jié)構(gòu)完整性較好的稠密點(diǎn)云,具有很好的魯棒性。
圖14 魯棒性測試Fig.14 Robustness test
本文針對(duì)實(shí)體顯微鏡應(yīng)用場景提出了一種對(duì)立體標(biāo)本顯微圖像進(jìn)行三維重建的算法。首先,將顯微鏡鏡頭固定角度,移動(dòng)載物臺(tái)拍攝立體標(biāo)本的多視角圖像,根據(jù)拍攝時(shí)間以及載物臺(tái)移動(dòng)坐標(biāo)使得采集的圖像為有序圖像序列。然后,通過使用改進(jìn)的Harris 與SIFT 相結(jié)合的特征提取與匹配算法,提升了算法對(duì)于立體標(biāo)本顯微圖像在弱紋理區(qū)域特征信息的提取,提升了增量SfM 算法性能,得到結(jié)構(gòu)完整性更好的稀疏點(diǎn)云。最后,通過使用與深度殘差網(wǎng)絡(luò)相結(jié)合的全卷積神經(jīng)網(wǎng)絡(luò)對(duì)輸入的圖像進(jìn)行深度估計(jì)和預(yù)測,將預(yù)測得到的深度信息通過閾值法與MVS深度圖相融合,對(duì)MVS 深度圖進(jìn)行修正,重建出物體的稠密點(diǎn)云,提升了重建結(jié)構(gòu)完整性和點(diǎn)云數(shù)量。實(shí)驗(yàn)結(jié)果表明,本算法在顯微鏡應(yīng)用場景下無需事先對(duì)顯微鏡鏡頭進(jìn)行標(biāo)定,只需固定顯微鏡鏡頭移動(dòng)載物臺(tái)采集立體標(biāo)本的多視角圖像進(jìn)行重建。有效地解決了在顯微鏡觀測場景下對(duì)立體標(biāo)本局部放大觀測時(shí),存在的弱紋理區(qū)域三維重建效果不佳的問題。相比一些文獻(xiàn)的方法,本文方法可以在實(shí)體顯微鏡應(yīng)用場景下重建出物體結(jié)構(gòu)完整性更好、更加稠密的三維點(diǎn)云,且具有很好的魯棒性。