王 鑫,田 歡
(蘭州職業技術學院 a.信息工程學院; b.現代服務學院, 甘肅 蘭州 730070)
炳靈寺石窟位于中國甘肅省臨夏回族自治州永靖縣境內,是中國著名的佛教石窟遺址之一,具有重要的文物研究價值。炳靈寺石窟開鑿年代久遠,由于很多文物部分或完全暴露在野外環境中,經過千年的風雨侵蝕,文物色彩甚至結構均不同程度存在缺失,尤其是鑿刻于石壁中的浮雕和標志性的大佛,其色彩幾乎已經完全褪去,因而對其進行數字化保護顯得尤為重要。
對文物進行三維重建是文物數字化保護重要的組成部分,而文物數字化三維形態復原的質量在很大程度上取決于對于文物多視圖間的特征點匹配。盡管已經有許多經典算法,如SIFT等能夠取得良好的匹配結果,但對于在空間區域中出現大面積的純色等弱紋理且視覺模式比較重復的石窟文物圖像而言,其匹配效果欠佳[1-2]。隨著深度學習技術在計算機視覺領域的廣泛應用,許多算法利用深度學習模型來學習圖像表示信息,并通過比較特征向量或分析特征信息來實現圖像匹配,取得了比傳統算法更加明顯的效果,尤其針對弱紋理區域的情況。如SuperPoint是一種基于學習的局部特征匹配算法,利用的是神經網絡學習圖像中的關鍵點和描述子[3],對特征圖中的關鍵點,在特征圖上取一個固定大小的區域,并將其扁平化成一個向量,作為該關鍵點的描述子。然而,這些算法都強調在匹配之前明確檢測關鍵點和計算描述子,因此在大規模訓練數據時往往會受到計算資源的限制,其性能仍有較大的提升余地。DeepMatching是一種基于學習的端到端特征匹配算法[4],它利用神經網絡學習圖像之間的匹配關系,通過多層卷積疊加的方式來獲取全局特征信息,因此將會付出較多的計算成本。結合上述方法所存在的問題,本文針對炳靈寺文物圖像匹配任務,搭建了一個無法檢測的局部特征匹配網絡模型,在融合Transformer特征提取模塊的前提下,充分利用其對于全局特征的感知能力,獲取每個像素間的相關性得分[5],Linear Transformer能使計算復雜度有較大幅度的下降,且該模型采用由粗略到精細化的方法,輸出的像素級匹配效果良好。經具體實驗證明,本方法無論在單應性估計評價方面,還是在輸出匹配數量方面,較其他方法均有明顯的提升;且本方法不僅在炳靈寺石窟文物圖像匹配應用中表現良好,對于普通室內外各類場景,也表現出良好的性能,具有很好的泛化能力。
圖像匹配是諸如三維重建等三維計算機視覺任務的基礎環節。給定要匹配的兩幅圖像,常見匹配方法包括三個階段:特征檢測、特征描述以及特征匹配。首先把各幅圖像中檢測類似角點作為興趣點,然后在此類興趣點的鄰域提取局部描述符,產生具有描述符的興趣點,最后根據最近鄰搜索或其他匹配算法找到圖像間的點對點對應關系。大多數情況下,特征檢測算法能夠滿足任務要求。然而特征檢測會減少可選的匹配空間,所得到的對應關系也比較稀疏。在特征檢測環節還可能由于圖像紋理信息匱乏導致圖像模式單一等情況,從而很難獲取足夠的興趣點,這個問題在石窟文物圖像中尤為突出。
局部特征匹配算法SuperPoint利用了深度網絡學習特征圖中的關鍵點及描述算子,由一個類似于VGG網絡的編碼器和兩個并行的解碼器構成,編碼器主要用于對輸入圖像進行下采樣,而兩個解碼器分別用來提取特征點和特征描述子。每當圖像樣本被輸入后,首先,通過卷積層提取圖像的特征圖;其次,在特征檢測層中,使用非極大值抑制(Non-Maximum Suppression)選擇具有最高響應的特征點作為關鍵點;再次,對每個關鍵點,在特征圖上取一個固定大小的區域,并將其扁平化成一個向量,作為該關鍵點的描述子;最后,通過損失函數和訓練數據來優化網絡參數,提取的關鍵點和描述子能夠更好地適應圖像匹配任務。
SuperGlue是一種圖像匹配算法,旨在解決圖像間幾何關系的估計問題。作為對局部特征匹配算法的一種擴展,特別是對SuperPoint算法的進一步發展,SuperGlue采用了更綜合的方法,不僅是匹配局部特征點,還考慮了這些點之間的全局幾何關系。其創新之處在于將局部特征匹配與全局幾何關系建模結合起來,提供了更全面的圖像匹配解決方案。它在各種計算機視覺任務中具有廣泛的應用,如三維重建、SLAM[6]等。其綜合性能在許多情況下比傳統的特征匹配算法更出色,特別是在存在較大視角變化和復雜場景的情況下。
Transformer可以作為一種編碼器,由相互連接的注意力層構成,輸入向量分別為Query(Q)、Key(K)和Value(V),其注意力層的運算機制如圖1所示:

圖1 注意力機制
并可以表示為:
Attention(Q,K,V)=softmax(QKT)V
(1)
注意力機制通過度量Query和Key之間的相似程度來獲得關聯度信息,最后的輸出向量則由相似度得分矩陣與Value的加權獲得。根據相似度的高低,將從Value向量中根據權重提取特征信息。
筆者在認真研究SuperGlue后深受啟發,使用含有Self-Attention和Cross-Attention的Transformer將backbone輸出的密集局部特征進行轉換[7]。首先以1/8的圖像空間維度提取兩組變換特征間的密集匹配,選擇其中高置信度的匹配,然后利用相關性將所得匹配結果進行亞像素級細化。其次,利用Transformer的全局特征感知并引入位置編碼使所得變換后的特征表達具備上下文和位置信息。通過重復的Self-Attention和Cross-Attention,筆者所搭建的網絡模型通過Ground-Truth匹配中所顯示的密度學習到具有全局一致性的匹配先驗。最后,采用線性Transformer進一步將計算復雜度減少至可控水平,且其提供的全局特征提取能力使得在弱紋理區域產生比較密集的匹配效果。該網絡模型由一個局部特征提取器串聯一個粗粒度匹配模塊及細粒度優化模塊組成,下面將分別介紹各個組成部分。

圖2 局部特征提取器結構

圖3 局部特征轉換模塊結構
從圖3可以看出,粗粒度特征經過flatten操作處理后,結合位置編碼信息交由Nc個重復的LoFTR模塊處理,所有相同結構的模塊中均包含自注意力層和交叉注意力層。
1.Linear Transformer
相比普通注意力計算復雜度較高的情況,當Q、K均具有N個輸入特征,而每個特征的長度都為D,則兩矩陣相乘的復雜度為O(N2)。筆者采用計算復雜度相對簡單的Linear Transformer作為相似度量的函數,其可以表示為:
sim(Q,K)=φ(Q)·φ(K)T
(2)
如此一來,便將計算復雜度降低為O(N),其中,
φ(·)=elu(·)+1
(3)
其結構如圖4所示。

圖4 Linear Attention計算機制
2.Position Encoding
筆者采用與DETR一致的Transformer位置編碼,針對LoFTR的輸入特征圖進行位置編碼[9],所不同的是,僅在輸入LoFTR模塊前一次性將編碼信息添加到Backbone,而位置編碼是以正弦表達形式為各個輸入Token提供了唯一的位置信息,如此,LoFTR便會輸出與特征位置相關的特征信息。
3.Self-Attention與Cross-Attention層
筆者采用與Transformer中相同的自注意力和交叉注意力層。
將LoFTR模塊的輸出結果導入可微匹配層[10],此處既可以使用SuperGlue的最優傳輸層OT,又能夠采用Dual-Softmax操作計算LoFTR輸出的特征相關性得分矩陣S[11],該過程可以表示為:
(4)
如果使用OT進行匹配操作,S則可作為局部分配成本矩陣,得到置信矩陣Pc。如果針對S的兩個維度使用Softmax,則匹配概率矩陣Pc可以表示為:
Pc(i,j)=softmax(S(i,·))j·softmax(S(·,j))i
(5)
接下來便可以對匹配空間進行篩選了。根據置信度矩陣Pc,選擇置信度高于閾值θc的匹配,進一步進行最近鄰(MNN)[12]操作便會得到粗粒度級匹配。該粗粒度級匹配可以表示為:

(6)

筆者采用的損失由粗粒度損失和細粒度損失構成,可以表示為:
L=Lc+Lf
(7)
1.粗粒度損失

(8)
2.細粒度損失
本文使用2范數作為細粒度損失:對于每個點計算由其生成的熱圖方差,以測量其確定性,使得細粒度化后的匹配結果的確定性較高,其加權損失函數可以表示為:
(9)

通過現場拍攝,筆者構建了一個自定義炳靈寺石窟文物圖像數據集,該數據集圖片內容包括石窟內的佛教建筑構件、佛教故事雕像、壁畫及鑿刻在石壁上的佛像和大佛雕像等文物圖像等,這些圖像內容在空間維度中均存在大面積的弱紋理區域和結構缺損的情況。該數據集共包含23個場景內容,且每個場景的視圖數量介于4至20個之間,其部分樣本如圖5與圖6。

圖5 佛龕圖像示例

圖6 佛塔浮雕圖像示例
筆者在對該圖像數據集樣本進行相關實驗后,為了進一步驗證筆者采用方法的先進性,又在HPatches公共數據集上進行實驗以證實該方法的良好表現,最后使用相應的三維重建方法,在該方法的基礎上對炳靈寺石窟文物進行三維形態恢復。實驗機器所搭載的系統為Windows11,其具體硬件配置為CPU:12th Gen Intel(R) Core(TM) i7-12700F。內存16g,顯卡為12g的顯存Nvidia RTX3060型號。軟件實驗平臺情況:并行計算環境為Cuda11.6,Python為3.7版本,Pytorch版本為1.9.1+cu111,Torchvision版本為0.10.1+cu111,OpenCV-Python 版本為3.4 .2 .17。
為了快速獲得單應性評估結果,以初步驗證該方法的性能,筆者先在炳靈寺石窟圖像數據采集上開展實驗。由于受到現場地形影響,手工拍攝采集的石窟圖像無法保證其拍攝角度的規律性旋轉,所以同一物體多視圖圖像的視角變化幅度較大。在這個實驗環節,對于每一個場景,用一張隨機選定的參考圖像與其他剩余圖像進行匹配運算,使用OpenCV中集成的RANSAC算法來量化單應性估計。相比于其他方法,該方法所產生的特征點匹配數量具有明顯數量優勢(圖7、圖8)。

圖7 其他有檢測匹配算法匹配結果示例

圖8 本文無特征點檢測匹配算法匹配結果示例
為了進一步證明方法的普適性,筆者在含有各類室內外普通場景圖像的HPatches公共數據集上進行了更加具體的量化單應性估計結果。在使用RANSAC算法進行估計的基礎之上,利用HPatches訓練樣本中的真值對匹配點進行拐點誤差計算,將計算結果作為正確匹配的標準。詳細的實驗結果如表1。

表1 在HPatches公共數據集上的實驗結果
在表1中,AUC表示拐點誤差曲線所構成的定積分面積,將誤差閾值分別設置為3、5和10個像素。根據表1,可以看出,誤差閾值在所設定的所有情況下,由于無特征點檢測所提供的更多匹配選擇和Transformer范式所輸出的富含全局上下文的特征信息,以及Coarse-To-Fine模塊進一步將匹配結果進行亞像素級細化以提高估計精度等措施,該方法比其他方法表現出明顯的優勢,匹配數量有很大幅度的提升。
炳靈寺石窟作為重要歷史遺跡,具有極高的研究價值。為了永久保存其客觀空間形態并把它作為修復的原始參考,數字化保護和逆向三維形態復原顯得尤為重要。在此過程中,圖像匹配在三維形態復原中扮演著關鍵角色,匹配質量的好壞直接決定了三維重建的精度。筆者基于學習架構,引入了Transformer特征范式進行圖像匹配,剔除繁瑣的特征檢測環節,提高了匹配效率和質量。實驗結果證明,相比其他方法,該方法在處理弱紋理和圖像模式重復等情況下具有顯著優勢,并在評價指標上表現出色。基于該方法恢復的石窟文物的三維立體形態不僅具有更高的保真度,還呈現出更出色的視覺效果,這對于炳靈寺石窟文物的保護和研究具有重要意義。