?

基于輕型自限制注意力的結構光相位及深度估計混合網絡

2024-02-05 09:06朱新軍趙浩淼王紅一宋麗梅孫瑞群
中國光學 2024年1期
關鍵詞:條紋注意力深度

朱新軍,趙浩淼,王紅一,宋麗梅,孫瑞群

(天津工業大學 人工智能學院,天津 300387)

1 引言

光學三維測量是光學計量和信息光學中最重要的研究領域和研究方向之一[1]。結構光三維測量技術是光學三維測量的重要方式[2],具有速度快和精度高等優點,在機器人引導、虛擬現實、人機交互、文物保護、機器人視覺、生物醫學等領域有相當廣闊的應用前景[3]。在過去的研究中,可以把傳統的結構光相位提取技術主要分為兩類:以傅立葉變換法為代表的單幅圖相位提取方法[4]和相移方法[5]。傅立葉算法只需要單個條紋圖案并可直接獲得包裹相位圖。該方法受物體運動影響的程度較低但存在相位提取精度較低和計算時間長等問題。相移算法至少需要3 幅條紋圖像[6],通過相移計算獲得相對相位圖。該方法對于投影光柵的標準性和相移量準確度的要求較高。其精度高但受運動環境影響較大。以上方法獲得的相位通常為包裹相位,需要通過一些展開方法將相對相位圖變換為絕對相位[7]。此外,在結構光深度估計方面,傳統方法需要進行系統標定、相位深度映射完成深度測量與三維測量。

綜上所述,準確的條紋相位估計與深度估計是結構光測量的主要挑戰。近年來,在結構光三維重建領域中出現了許多基于深度學習的方法。Feng 等人通過實驗證明深度神經網絡可以顯著提高單個條紋圖案的相位估計精度[8],具體來說,通過卷積網絡預測中間結果,最終得到高精度相位圖。Nguyen 等人提出了一種端到端的方法,使用全卷積網絡由條紋圖得到深度圖[9]。Jeught 等人提出了一種完全基于深度學習的從單個變形條紋圖案中提取深度信息的方法[10]。張釗等人提出了一種多階段深度學習單幀條紋投影的三維測量方法,通過分階段學習方式依次獲得物體的深度信息[11]。其中,大部分結構光相位估計方法都基于卷積網絡,不利于上下文信息的特征捕獲,而Transformer 的優勢是利用注意力的方式捕獲全局的上下文信息,以對目標建立遠距離依賴,提取有力的特征。文獻[12-14]對這兩種網絡進行優勢互補[12-14]。Zhu 等人開發了一種混合CNN-Transformer 模型,該模型通過條紋級次預測進行相位展開[15],在條紋級次預測方面取得了較好的效果。

本質上,基于深度學習的相位估計和深度估計都屬于回歸預測問題。目前上述的模型雖然取得了較好的效果,但存在較大的誤差,仍有可提升的空間。為此,本文提出了一種CNN-Transformer 相結合的模塊,分4 個階段應用在U 型總體架構中,將局部特征與全局特征相融合,并更新了注意力機制的算法,在網絡中使用輕型自限制注意力(Light Self-Limited-Attention,LSLA)機制以節省計算成本和參數數量。最后,將所提出的網絡在結構光深度估計和相位估計兩個任務中都進行了實驗。

2 條紋投影輪廓術原理

典型的條紋投影輪廓術(Fringe Projection Profilometry,FPP)系統由投影儀和相機組成[16],圖1 為FPP 系統原理圖,投影儀將條紋圖案投影到目標物體上,變形的條紋包含了物體的特征信息,然后由相機捕獲并輸出數字圖像。在多頻率的FPP 中,投影儀會投射多個不同頻率的條紋圖案,相機捕獲多張圖片,然后通過相位解算得到物體表面的三維形狀信息。

圖1 FPP 系統原理圖Fig.1 Schematic diagram of the FPP system

通過分析捕獲的變形條紋,解出相位跳變的包裹相位。圖像中的條紋可以表示為:

其中,In(x,y) 為某一像素點 (x,y) 的光強,A(x,y)為該像素點的背景光強,B(x,y)為該點的調制光強,φ(x,y) 為該點的相位值,n=0,1,···,N-1,為相移的步數。根據公式(1)計算出包裹相位:

包裹相位存在 2π的相位跳變。為得到連續的相位信息,需要將相位跳變的包裹相位展開,相位展開公式如下:

其中,?(x,y) 是展開相位,k(x,y)是條紋級數。

根據標定相位與三角坐標的關系,可以得到絕對相位,根據絕對相位可以直接獲取三維高度信息。

3 基于輕型自限制注意力的混合網絡

3.1 總體結構

網絡的總體結構是U 型結構,網絡結構圖如圖2 所示。其由一個編碼器-解碼器組成。該模型的輸入是結構光圖像,在編碼器網絡中,通過下采樣方式將輸入圖像的分辨率降低,提取低分辨率特征,經過4 次下采樣后,進入解碼器網絡,再進行相同次數的上采樣操作,將編碼器學習的低分辨率特征映射到高分辨率像素空間中。該模型還使用了跳連接,在解碼器網絡中將淺層特征和深層特征相融合,從而提高邊緣信息的精細度。

圖2 網絡結構圖Fig.2 Network structure diagram

太窄的網絡每一層能捕獲的模式有限,此時即使網絡再深也不可能提取到足夠信息往下層傳遞。加寬網絡可以讓每一層學習到更豐富的特征,比如不同方向,不同頻率的特征。但寬度增加會導致計算量成平方數增長??紤]到效率問題,要適當調整網絡寬度。經實驗發現,把網絡加寬到1 024 時效果最優。

3.2 CNN-Transformer 相結合模塊

CNN 是一種前饋神經網絡,它的特點是卷積層和池化層交替使用,其可以直接處理高維數據,自動提取圖像的特征信息,提高模型的計算效率,但不利于上下文信息的特征捕獲;Transformer 是一種基于自注意力機制的神經網絡模型,可以學習全局信息,提高模型的表達能力。在結構光圖像處理過程中,由于圖像數據的維度較高,使用傳統的Transformer 模型會導致計算量過大,將CNN 和Transformer 結合可以提高模型的計算效率,同時將CNN-Transformer 的優勢相結合,使用CNN 提取圖像的局部特征,Transformer 學習圖像的全局信息,局部特征與全局特征相融合,提升模型的表達能力?;诖?,本文在CMT[17]的基礎上進行了改進,模塊可分為3 個部分,模塊的結構圖如圖3 所示。

圖3 CNN-Transformer 模塊結構圖Fig.3 Structure of the CNN-Transformer module

3.2.1 局部特征提取單元

由于Transformer 的特性可能會忽略圖像的部分局部信息,為了更有效地提取圖像的局部特征,使用深度卷積提高網絡的非線性能力和網絡的表達能力,如公式(4)所示:

其中,LFE代表局部特征提取單元,x∈RH×W×d,H×W是當前階段輸入的分辨率,d表示特征的維度,DWConv表示深度卷積。深度卷積完全是在二維平面內進行。這種運算對輸入層的每個通道獨立進行卷積運算,可以減少卷積的計算量,高效獲取圖像的局部信息,但存在不能有效利用不同通道在相同空間位置上的特征信息的問題,由于輸入的結構光圖像是單通道,故可以避免深度卷積存在的這個問題。

3.2.2 輕量級自限制注意力

Transformer 可以有效地學習圖像的全局特征,然而在結構光圖像處理中,數據的維度通常很高,使用全局自注意力的計算成本非常高。本文通過LSLA 機制[18]進行全局特征的提取,將全局自注意力分解為局部和全局兩個部分,并使用位置信息模塊以及限制注意力模塊來增強位置信息以及控制注意力權重大小。在減少計算量的同時還可以利用圖像的空間結構信息,從而對位置信息進行更好的建模。

在傳統的自注意力機制中,鍵值對通常表示不同的語義信息。例如,在自然語言處理中,鍵可能表示輸入句子中的不同單詞,而值則表示與這些單詞相關聯的特征向量。在圖像領域,鍵和值通常表示不同的位置特征和圖像特征。然而,在LSLA 機制中,由于涉及圖像信息的處理,因此,將鍵值對替換為輸入X,這樣可以有效減少計算成本和模型參數量。此外,在圖像處理時,相鄰像素通常具有相似的特征,這也使得使用相同的輸入 X 作為鍵和值是可行的。這可以顯著減少 LSLA機制的計算成本,并使其適用于需要高效處理的應用場景。

LSLA 機制包含位置信息模塊和限制注意力模塊。位置信息模塊使用了一個自適應的位置編碼向量,增強了位置信息的表達,可以更好地處理輸入數據中位置信息的變化。限制注意力模塊可以控制注意力權重的大小,避免出現過于集中的注意力分布,從而提高了模型的魯棒性和泛化能力。具體來說,在LSLA 機制中,對于每個輸入位置,首先使用一個局部自注意力模塊計算局部上下文信息。然后,使用一個全局自注意力模塊計算全局上下文信息,再進行融合,得到最終的特征表示。另外,限制注意力模塊在softmax 函數之后使用外部位置偏差來限制一些較大的注意力權重值。內外部位置偏差和動態尺度相互配合,LSLA機制的公式定義為:

其中,X為原始輸入數據,Q是查詢矩陣,DS表示查詢塊附近的塊具有較大的動態尺度和內部位置偏差值,Bi和B0分別是內部位置偏差和外部位置偏差。

3.2.3 前饋神經網絡

模塊的最后一部分使用比較簡單的前饋神經網絡(Feedforward Neural Network,FFN)。FFN 的信號從輸入層到輸出層單向傳遞,網絡的目標是通過調整權值使預測輸出與實際輸出之間的誤差最小。使用的FNN 包含兩個線性層和一個GELU激活函數。第一個線性層將輸入的尺寸擴大4倍,第二個線性層以相同的比例進行尺寸縮小。這種縮放操作有助于保留有用的信息并去除不必要的信息,中間使用GELU 激活分離,因為GELU在負數輸入下更具有平滑性。

4 實驗與結果

為了證明所提出的網絡對于結構光圖像處理的有效性,本文進行了兩種實驗:結構光相位估計(利用條紋圖像預測包裹相位)和深度估計(利用條紋圖預測深度圖),并且在真實數據集和仿真數據集上分別做了實驗。所提出模型的深度學習框架為Pytorch,實驗GPU 為24 GB 內存的NVIDIA GeForce RTX3090。

4.1 結構光相位估計實驗

4.1.1 數據準備

在結構光圖像到包裹相位的預測實驗中,本文使用的真實數據集和仿真數據集都由1 000 個樣本組成。本論文使用的是由Blender 生成的仿真數據集和Feng 等人制作的真實數據集[8],部分數據示例圖如圖4 所示。每個樣本的大小均為640 × 480,按照8∶1∶1 的比例劃分訓練集、驗證集和測試集。實驗以輸入結構光圖像,計算高精度的包裹相位為最終目標。

圖4 部分數據示例圖。第一行為仿真數據,第二行為真實數據。(a)仿真條紋圖;(b)仿真條紋圖D;(c)仿真條紋圖M;(d)仿真條紋圖包裹相位;(e)真實條紋圖;(f)真實條紋圖D;(g)真實條紋圖M;(h)真實條紋圖包裹相位Fig.4 Sample maps in some datasets.The first lines are simulation data,the second lines are real data.(a) Simulation fringe map;(b) simulation fringe map D;(c) simulation fringe map M;(d) simulation fringe wrapped phase;(e) real fringe map;(f) real fringe map D;(g) real fringe map M;(h) real fringe wrapped phase

在大多數相位解調技術中,背景強度A(x,y)被視為干擾項,要從總強度中去除。根據公式(2)可以將包裹相位公式簡化為:

其中,c是取決于相位解調算法的常數(傅立葉方法中c=1/2,N步相移法中c=N/2),M(x,y)和D(x,y) 分別表示分子項cB(x,y)sinφ(x,y)和分母項cB(x,y)cosφ(x,y)的簡寫。

從結構光圖像預測包裹相位有直接預測包裹相位及先預測出分子項D 和分母項M,再通過公式(6)對包裹相位進行計算兩種方式。由于相位信息通過反正切運算被約束在-π 到π 之間,因此,包裹相位會存在2π 的跳變。直接使用深度學習方法難以精確預測跳變位置,而通過預測中間變量D 和M 的方法不存在跳變,因此,利用D 和M 可以獲得更高質量的包裹相位。實驗中,使用UNet 網絡對這兩種方式進行訓練,比起直接預測包裹相位,通過訓練得到D 和M 再計算包裹相位的預測精度提升了約60%。對于單輸入雙輸出任務,需要預測的D 和M 有強關聯性,在原本網絡的基礎上添加一個分支對結果準確率略有提升,而且雙輸出模型只需要訓練一次,減少了訓練時間,結果見表1。因此,本文把實驗的重點放在同時預測D 和M 上。

表1 不同包裹相位計算方法比較Tab.1 Comparison of the different wrapped phase calculation methods

4.1.2 實驗結果分析

在計算預測結果的損失時,背景誤差也會算入其中并且對結果有較大影響,而研究的重點應該在有條紋部分的物體上。所以,本文提前批量制作了測試集的背景模板,以便獲得更準確的實驗結果。使用由同一頻率的四步相移獲得的條紋圖制作背景模板。

相移法的實現一般需要使用投影儀向被測對象投射多張固定位置的光柵條紋圖像,同時使用相機采集。利用N 步相移法經被測對象調制后的變形條紋公式如式(7)所示,數據均由四步相移所得,I0(x,y)、I1(x,y)、I2(x,y)、I3(x,y)分別為相移0、π/2、π、3π/2 后的光柵圖像,可得到背景模板A(x,y),公式如下:

得到背景部分后,將背景部分設置為一個恒定值(實驗中背景部分為1),將模板和預測的包裹相位進行比較,然后去掉包裹相位圖的背景部分,可使得到的包裹相位部分的損失更準確。

本文使用Unet[19]、DPH[20]、R2Unet[21]、SUNet[22]等網絡在相同數據集上進行訓練。得到D 和M 后,根據公式(7)得到包裹相位后計算損失值,結果見表2。從表2 可以看出,本文模型提高了包裹相位預測的精度,預測時間較UNet 和SUNet 長,較其他網絡短。圖5(彩圖見期刊電子版)顯示了所提出網絡與其他網絡的比較結果及局部放大圖。從局部放大圖可以看出,在相位邊緣及物體不連續處,本文方法比其他方法預測結果更接近標簽數據。為了更直觀地比較5 種網絡的預測結果,繪制了預測得到的包裹相位圖的第200行曲線圖,如圖6(彩圖見期刊電子版)所示??梢钥闯鏊岢瞿P偷玫降慕Y果細節信息比其他網絡更加接近標簽。

表2 包裹相位預測方法比較Tab.2 Comparison of the wrapped phase prediction methods

圖5 不同網絡仿真和真實數據包裹相位對比。藍色框為仿真數據,橙色框為真實數據。(a)UNet;(b)DPH;(c)R2UNet;(d)SUNet;(e)Ours;(f)標簽Fig.5 Comparison of different network simulation and real data wrapped phases.The blue boxes are the simulation data,and the orange boxes are the real data.(a) UNet;(b) DPH;(c) R2UNet;(d) SUNet;(e) Ours;(f) Label

圖6 包裹相位結果曲線圖。(a)仿真數據結果比較;(b)真實數據結果比較Fig.6 Wrapped phase curves.(a) Comparison of simulation data;(b) comparison of real data

4.2 結構光深度估計實驗

4.2.1 數據準備

由于公開的結構光深度數據集比較少,本文使用Blender 制作部分仿真數據集[23],生成數據集的流程如圖7(彩圖見期刊電子版)。Blender 可以通過調整對象模型、相機和投影儀來模擬真實世界的場景,使用相機捕捉和渲染物體圖像并輸出深度圖。

圖7 生成數據集流程圖。(a) 模型導入;(b) 調整大??;(c) 投影條紋Fig.7 Flowchart of dataset generation.(a) Model import;(b) adjust of the model size;(c) projection fringe

生成數據集的具體步驟如下:將stl 格式的模型導入到Blender 中。選中導入的模型,使用變換工具調整它的大小和位置,以適應深度數據集的尺寸和視角。在Blender 中添加一個平面,將條紋圖像貼在平面上,然后將相機對準模型和平面。確定相機的位置、方向、焦距等參數,以保證生成深度數據集的質量。在Blender 中安裝“Structured Light Scanning”插件,設置條紋圖像的參數和輸出路徑,然后點擊“掃描”按鈕開始生成深度數據集。在插件設置界面可以調整結構光的編碼方式、條紋圖像的數量和周期、相機參數等。點擊“生成數據集”按鈕,Blender 會根據這些參數生成深度圖像數據集。

本文使用的真實結構光數據集是Nguyen 等人使用由相機和投影儀組成的FPP 系統重建的深度圖[9]。將具有不同空間頻率的一組條紋圖案投影到目標物體表面上,捕獲變形的結構光圖案,計算相移條紋和深度圖的相位分布。仿真數據集和真實數據集包含540 張灰度圖像,圖像大小是640 × 480,按照8∶1∶1 的比例劃分訓練集、驗證集和測試集,部分數據示例圖像如圖8 所示。

圖8 部分數據示例圖。(a)仿真條紋圖;(b)真實條紋圖;(c)仿真深度圖;(d)真實深度圖Fig.8 Sample maps in the dataset.(a) Simulated fringe map;(b) real fringe map;(c) simulation depth map;(d) real depth map

4.2.2 消融實驗

為了證明所提出的網絡結構確實有效,本文在真實數據集上進行了消融研究,逐步修改模塊結構并評估結果。首先,在CMT 模塊進行實驗并把它作為基線模型,將CMT 模塊中的注意力機制改為LSLA 機制;然后,將CMT 模塊中最后的部分換為較為簡單的FFN;將CMT 模塊放到U 型結構中,分為4 個階段的上采樣和下采樣,每個階段的CMT 模塊重疊兩次。

實驗結果如表3 所示,通過替換注意力機制和改善網絡的總體結構,網絡性能得以逐漸提高。具體地,將注意力機制替換為LSLA 后,MSE下降了18.9%,模型預測時間也略有減少;將CMT 原本的反向殘差前饋網絡替換為更為簡單的FFN 后,MSE 幾乎沒有下降,但是預測時間減少了19.5%;最后把CMT 模塊應用在U 型結構中,分為編碼器和解碼器逐步提取圖像特征,結果表明放入U 型結構后精度提升了21%。

表3 消融實驗結果比較Tab.3 Comparison of ablation experiment results

4.2.3 實驗結果分析

對于結構光圖像的深度估計性能評價,本文選用了幾個有代表性的卷積網絡和混合網絡與本文提出的網絡進行比較,在仿真數據集和真實數據集上進行實驗,比較結果如表4 所示。從表4可以看出,所提模型的精度較其他幾種網絡高,模型預測的時間較DPH 和R2Unet 少,總體預測效率較高。圖9(彩圖見期刊電子版)顯示了本文方法與其他網絡在仿真數據集與真實數據上的視覺比較效果。前兩行是仿真數據及結果,后兩行是真實數據及結果。由圖9 可以看出:相較其他網絡,本文所提出的網絡在邊緣處理和細節處理方面更優,預測結果更接近真實標簽數據。

表4 不同方法深度估計結果比較Tab.4 Comparison of the depth estimation results by different methods

圖9 不同方法深度估計視覺結果比較。藍色框為仿真數據,橙色框為真實數據。(a) 輸入數據;(b) UNet;(c) DPH;(d) R2UNet;(e) Ours;(f)標簽Fig.9 Comparison of the visual results of depth estimation by different methods.The blue boxes are the simulation data,and the orange boxes are the real data.(a) Input data;(b) UNet;(c) DPH;(d) R2UNet;(e) Ours;(f) Label

5 結論

本文提出一種基于LSLA 的結構光估計混合網絡,用于處理結構光圖像的相關任務,如由結構光圖像預測包裹相位、對結構光圖像進行深度估計。所提出的網絡使用U 型結構架構,分4 個階段對結構光圖像進行上采樣和下采樣,每個階段都使用了兩個重復的CNN-Transformer 模塊。實驗證明將LSLA 機制應用在結構光預測時可以減少預測時間,提高預測精度。為了評估所提出網絡的性能,挑選了幾個有代表性的網絡分別在真實數據集和仿真數據集上做對比實驗。結果表明:本文提出的網絡可以提高結構光圖像深度估 中,精度最高提升26%,在結構光相位預測實驗計和相位估計的性能。在結構光深度估計實驗 中,精度最高提升31%。

猜你喜歡
條紋注意力深度
讓注意力“飛”回來
深度理解一元一次方程
誰是窮橫條紋衣服的人
別急!丟了條紋的斑馬(上)
別急!丟了條紋的斑馬(下)
深度觀察
深度觀察
深度觀察
“揚眼”APP:讓注意力“變現”
A Beautiful Way Of Looking At Things
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合