黃妍妍, 蓋紹彥,*, 達飛鵬
(1. 東南大學自動化學院, 江蘇 南京 210096;2. 東南大學復雜工程系統測量與控制教育部重點實驗室, 江蘇 南京 210096)
圖像匹配是數字圖像處理領域的重要研究方向之一,是圖像拼接、三維重建、無人機航拍等技術的基礎。圖像匹配是指在兩張或兩張以上圖片中使用某些特定的算法對相同或相似物體在空間上進行對準,或用已知模式到待匹配的圖像上尋找相應模式的過程[1]。圖像匹配的實際上就是對圖像的特征進行處理,其主要包含圖像特征提取、圖像特征描述、圖像特征匹配這3個步驟。
對于傳統的圖像特征提取與描述算法,根據特征點的類型不同,可以分為基于斑點的特征提取與描述算法和基于角點的特征提取與描述算法[2]。基于斑點的特征提取與描述的算法中,最具有代表性的算法是Lowe提出的尺度不變特征變換(scale-invariant feature transform, SIFT)算法[3],該算法在構建尺度空間時候采取高斯核函數進行濾波,使原始圖像保存最多的細節特征,經過高斯濾波后細節特征逐漸減少來模擬大尺度情況下的特征表示,算法在應對多種情況下的數據時比較穩定,但是運行時間比較長,針對SIFT的這個缺點,Bay等人提出了基于SIFT算法的改進算法加速穩健特征(speeded up robust feature, SURF)算法[4],SURF算法通過Hessian矩陣檢測特征點,在犧牲了一定的旋轉、尺度不變性等性能的條件下,將算法的速度提升到了原SIFT算法的3倍。Mikolajczyk等人在SIFT中引入主成分分析(principal components analysis, PCA)技術和梯度位置方向直方圖(gradient location and orientation histogram, GLOH)算法[5],算法增強了特征描述子的獨立性和描述性。基于角點的方法有Rosten等人提出了加速分段測試特征(features from accelerated segment test, FAST)算法[6-7],該算法根據中心點與其鄰域點的像素差來確定是否將該中心點作為圖像的特征點。Rublee等人結合FAST算法和使用二進制進行描述子編碼的二進制魯棒特征(binary robust independent elementary features, BRIEF)算法[8],提出了定向FAST和旋轉BRIEF(orienfed FAST and rofated BRIEF, ORB)算法[9],一定程度上解決了FAST不具有尺度不變性和BRIEF不具有旋轉不變性的問題。陳世偉等人基于風格遷移不變特征合成人工光學圖像從而進行特征提取[10]。劉自金等人基于信息熵的思路將原圖像劃分為高熵域和低熵域,直接在高熵域上提取特征點,從而極大地提高了特征點提取的效率[11]。
隨著計算機硬件性能的提高和深度學習的發展,基于卷積神經網絡的特征提取、描述的方法也相繼被提出。Tian等人提出了L2-Net網絡[12],該網絡通過深度學習的方法獲取到了圖像塊的特征描述子,并采用遞進采樣策略使網絡可以經過較少的訓練輪次訪問到較多的數據,使用了3個損失函數,減少匹配圖像對的距離同時增大不匹配圖像對的距離以此加大特征的緊湊程度。Mishchuk等人在L2-Net的基礎上,提出了HardNet網絡[13],在設計新的損失函數時,使用三元組匹配策略,最大化不匹配樣本之間的距離,得到了比L2-Net更好的結果。Miles等人在HardNet網絡的基礎上,提出深度卷積逐點層(convolution depthwise pointwise, CDP)[14],在保證一定的匹配精度的同時,通過有效地張量分解來減少網絡的參數,從而減少計算量,提高性能。Garg等人結合了二維主成分分析和遺傳算法對特征描述子進行降維,并使用卷積神經網絡(convolutional neural network, CNN)進行對虹膜的分類識別,取得了96.49%的高分類準確率[15]。許多算法是針對不同任務類型的圖像而被提出,如Liu等人針對合成孔徑雷達(synthetic aperture radar, SAR)圖像和光學圖像匹配對輻射失真敏感的問題,提出了一種基于相位同余的圖像頻域小波分解的非均勻圖像匹配算法[16],該算法比SIFT方法具有更好的匹配效果,是一種有效的異構圖像匹配算。Shahid等人使用航拍圖構建跨平臺圖像數據集,并使用該數據集訓練兩階段輕量級卷積神經網絡,接著利用光譜、時間和流特征以及聚類分析來微調整個圖像匹配算法,在跨平臺圖像匹配場景下取得較好的效果[17]。Yu等人針對高光照,低分辨率的無人機圖像和衛星遙感圖像提出了一種基于圖像邊緣特征的二次匹配方法[18],該算法與傳統的SURF相比,具有具有更快的匹配速度和更好的匹配精度。
傳統的特征處理方法具有通用性強,對硬件、數據的需求較低等優點,而深度學習神經網絡的大區域特征描述能力、鑒別能力更強,兩者結合的方法也是一個研究熱點。Liu等人首先使用SIFT特征來簡單地檢測圖像的重復區域,再將匹配的區域輸入CNN計算相似度從而判斷圖像是否匹配[19]。Zhou等人先使用SIFT提取底層特征進行初步匹配,將匹配部分的圖像塊取出,輸入CNN得到深層特征來度量特征的相似性以此進行二次匹配[20]。
當待測圖像與模板圖像具有較大的旋轉、縮放、平移等空間變換差距時,深度學習的傳統做法是增加具有這些空間變換的樣本來提高整個網絡的泛化能力和魯棒性,這會導致網絡學習而來的參數量變多,在實際應用的場景下測試時間增加,導致算法實時性方面的性能下降。
本文提出了一種對大幅度空間變換待測圖像具有較強魯棒性和匹配速度較快的傳統手工特征點提取和卷積神經網絡特征描述相結合的圖像特征匹配算法,首先使用ORB算法對待測圖像進行特征點的提取,并以特征點為中心,截取一定尺寸的圖像塊輸入后續神經網絡,神經網絡部分以HardNet為基礎,在淺層部分加入通道注意力分支和空間變換注意力分支,這兩個分支與原輸入合并最后輸入簡化的HardNet網絡得出每個圖像塊的特征描述,最后,使用K最近臨(K-neanest neighbor,KNN)算法將待測圖像的特征描述與模板的特征描述進行匹配。由于特征描述部分加入了側重學習空間變換參數的注意力模塊,但是該模塊網絡層較淺屬于輕量級網絡模塊,插入模塊前后并沒有使整個算法參數量劇增,反而使得匹配的準確率有所提升,匹配時間卻沒有因此變慢。
對于具有較大空間變換的圖像特征匹配問題,比如以圖1的圖像匹配任務為例,圖1(a)為待測圖像,該圖像帶有一定的旋轉和尺度變換,圖1(b)為模板圖像,該圖像特征匹配任務需要對兩張圖提取特征并描述,基于特征描述子進行匹配,最后根據匹配相似度來度量整個算法的性能。

圖1 帶有一定旋轉變換和尺度變換的圖像匹配任務
整個算法的流程圖如圖2所示,輸入圖像先是經過ORB算法檢測特征點,以特征點為中心在原圖像上劃分出一些尺寸為64×64的圖像塊,將每一個圖像塊降維到32×32尺寸并輸入到帶有空間變換注意力模塊的簡化版HardNet網絡得到每個圖像塊的128維特征描述子,最后將模板圖像和待測圖像的特征描述子通過KNN算法度量相似度從而得出待測圖像與模板圖像的差距。

圖2 匹配算法流程圖
整個圖像匹配算法的流程一般是先使用一些算法檢測出圖像的特征點并根據特征點劃分出圖像塊,并將這些圖像塊輸入到特征描述網絡得到特征描述子,最后對比模板圖像的特征描述子得到匹配結果。其中特征描述網絡是算法中極為重要的一步,HardNet是主流的提取特征描述子的網絡,網絡使用UBC Phototour數據集[21]進行訓練,包括Liberty、NotreDame和Yosemite這3個子集,使用三維點重建的方式來獲取圖像塊的匹配關系并制作正負樣本集,通常是兩個數據集用于訓練,剩下的一個用于測試,其架構與L2-Net相同,但HardNet在L2-Net算是函數的基礎上提出三元組匹配損失函數,其目的是最大化樣本集中最近正樣本和最近負樣本的L2距離,即減小匹配描述子之間的距離的同時增大不匹配描述子之間的距離。
為了避免網絡退化和過擬合問題,本文對原來的HardNet網絡進行簡化,如圖3所示,減少中間的3層卷積層,在簡化網絡深度的情況下,極大地保留網絡學習核心語義的能力。對于有較大空間變換的圖像(旋轉、平移、尺度變換等),卷積神經網絡也有一定的學習能力,如果要增強這樣的空間不變性,需要增加相應的圖像數據,但是在實際應用時,相關數據不易準備,且數據量增多時,網絡規模增大,運行速度有可能減慢,也為實際部署增加困難。因此,本文在該特征描述子網絡前部加入空間變換不變性注意力模塊,該模塊包括通道注意力和空間注意力兩個分支。圖3中BN和ReLU分別為激活函數和組歸一化操作,Conv為卷積操作。

圖3 簡化HardNet網絡架構
該分支主要是參考傳統的通道注意力模塊和triplet attention[22]的通道注意力部分,由于輸入的圖像為bmp格式的灰度圖,通道上的信息不是很多,因此僅分出一個分支作為通道信息注意力權重信息的提取,該分支的框架如圖4所示。輸入的特征首先經過一個Z-Pool層,該層的計算如下所示:

圖4 通道注意力分支
(1)

Z-Pool的操作使得該層能夠保留實際張量的豐富表示,同時縮小其深度以使進一步的計算量更輕,接著輸入卷積層進行進一步核心語義學習,最后通過Sigmoid激活函數將特征映射到[0,1]得到特征圖的權重值,最后與原輸入點乘生成空間注意力權重。由于通道信息量并不多,所以不需要深層和復雜的卷積操作,且Z-Pool的操作只將通道信息的平均值和最大值保留下來,已經盡可能地把通道信息保留下來,又減少了參數量。該分支的計算如下所示:
(2)

空間注意力分支又分為兩個支路,分別對應圖5中的上半部分和下半部分,這里分別簡稱為上支路和下支路,上支路參考了全局信息學習網絡non-local[23]網絡的簡化版網絡GCNet[24],原來的non-local網絡所針對的每一個查詢位置,有重要聯系的區域基本是同一塊區域,也就是每個位置的關注位置幾乎都是相同的,所以把這些重要區域的特征加在每個位置之后,網絡的準確率幾乎沒有下降,但是計算量卻減少了很多。特征圖進入上支路之后經過一個卷積層和softmax得到學習空間變換后每個像素點的權重,最后與沒有學習到權重的特征圖做矩陣點乘,這一部分的操作稱為context modeling,通過該模塊可得到結合上下文信息重要性的特征圖。接著,參考壓縮和激勵網絡(squeeze and excitation network,SENet)[25]的思路并加以簡化,將特征圖輸入卷積層后再輸入BatchNorm和ReLU歸一化和增加網絡的非線性性,最后再經過卷積層。

圖5 空間注意力分支
上分支的計算操作如下所示:

(3)

而下分支不是簡單地使用原輸入與學習了全局信息的特征圖相加,而是使用多個STN[26]和CNN串聯,STN模塊的整體架構如圖6所示,其由定位網絡、坐標變換和像素采樣3部分組成,輸入特征圖經過空間變換模塊得到輸出特征圖像素采樣。定位網絡將輸入的特征圖送到卷積層和全連接層中提取特征,得到空間變換參數θ;坐標變換根據θ確定一個空間變換,并創建采樣網絡以確定輸入圖中哪些點會被用于變換;像素采樣根據采樣網絡對輸入特征圖進行采樣,從而得到最終的輸出。下分支由STN網絡串聯3×3卷積網絡組合而成,經過實驗發現,兩個這樣的組合方式串聯起來的網絡在精度和時間上是最佳的,先由STN學習到空間變換并采樣,之后輸入CNN學習深層特征最后再輸出,STN結合CNN的方法,允許網絡自動地學習如何進行特征圖的轉變,從而有助于降低網絡訓練中整體的代價。定位網絡中輸出的值,指明了如何對每個訓練數據進行轉化。

圖6 STN架構
整個空間注意力分支表示如下:
(4)

整個空間變換不變性注意力模塊如圖7所示,特征圖輸入該模塊后分為兩個支路,通道注意力支路學習通道信息的平均值和最大值,空間注意力支路學習圖像空間全局信息的權重,最后將兩個支路的輸出相加取平均值。最后模塊輸出計算方式即將式(2)與式(4)相加,也就是y1與y2相加再取平均值,(對應圖7的1/2處操作)如下所示:

圖7 空間變換不變性注意力模塊

(5)
對于改進的特征描述子神經網絡的訓練和測試,本文選擇使用UBC Phototour數據集進行訓練,使用三維點重建的方式來獲取圖像塊的匹配關系并制作正負樣本集,樣本集里的每一個樣本都是64×64大小的圖像塊,通常是兩個數據集用來訓練,剩下的一個用來測試[27-28]。UBC Phototour數據集是圖像匹配和描述研究領域常使用的公共數據集,數據集的圖像包含特征清楚或模糊、特征選擇或縮放等多種情況,數據量豐富,且該數據集被HardNet、DBLD等多個圖像匹配算法所使用,并使用相同的指標來評價算法性能,這有利于本文算法與其他主流匹配算法進行對比,使得實驗結果更客觀。本文會分別測試3個子數據集作為測試集的情況。
對于整個算法的測試,則使用40張正在生產線上生產的1 563×1 563的電路板圖像,所有圖像都是待測圖像經過不同程度的旋轉變換、尺度變換的結果。另外,針對兩種型號的電路板,特別準備了兩張1 563×1 563的模板圖像。實驗的運行環境如表1所示。

表1 實驗運行環境
2.2.1 誤差比例
由于本文主要是對于特征描述網絡HardNet進行修改,而原本HardNet網絡的測試數據集為UBC Phototour數據集,且該數據集也是許多特征描述網絡所使用的數據集,故本文也會在該數據集上進行實驗并和多個特征描述網絡進行對比。UBC Phototour數據集的評價指標是UBC Phototour測試集匹配正確率為95%時的誤差比例(false positive rate at true positive rate equal to 95%, FPR95),即在UBC Phototour的測試集上,95%的匹配關系都正確的情況下,非匹配關系錯誤的比例。測試集樣本可以組合成三元組集合,三元組設為(ptest,ptemp,label)。其中,ptest和ptemp分別為待測圖像塊和模板圖像塊,label表示這兩個圖像塊的匹配關系且只有0或1兩個值,1表示匹配,0表示不匹配。FPR95的具體實現是將求出來的每組圖像塊對之間的距離從小到大排序,選取95%的匹配關系都包含在內的值作為匹配與非匹配的閾值,閾值內的數據中會有錯誤的匹配對(false positive, FP),閾值外會有正確的匹配對(true nagetive, TN),最終的FPR95值越小越好,其計算如下所示:
(6)
FPR95是基于UBC Phototour數據集的性能指標,而針對實際應用時所涉及的印制電路板圖像數據集,則使用匹配精度、匹配分數和匹配時間這3個性能指標。
2.2.2 匹配精度
對于整個圖像匹配算法,可以使用匹配精度反饋算法的可靠性。由特征匹配得到的匹配點對有可能存在著錯誤匹配的情況,需要對匹配點對進行篩選,剔除誤匹配。精度p的計算方法如下所示:
(7)
式中:m為正確匹配的點對數;n為所有匹配點對數。
2.2.3 匹配分數
計算方法如下所示:
(8)
式中:m表示正確匹配點數;q1和q2分別表示待測圖像和模板圖像所檢測到的特征點數量,匹配分數就可以表示為正確的匹配點數量與兩張圖像的特征點數最小值的比值。匹配分數越大,說明整個算法的匹配鑒別能力越強。
2.2.4 匹配時間
匹配時間指從特征點檢測開始,經過特征描述、特征匹配得到圖像匹配結果的過程所花費的時間。實際生產現場對算法的實時性要求很高,所以匹配時間也是一個重要的評價指標。
對于特征描述的網絡訓練所使用的數據集是UBC Phototour數據集,在訓練時,使用數據增強的在線增強模式,基于深度學習框架對原本的批量數據進行增強,如旋轉、平移、翻折等相應的變化,有利于提升網絡的泛化能力并且讓網絡在訓練的過程中預先學習并適應這些變化。本文分別使用了3個子集進行訓練,同時使用其他兩個子集測試,并且將本文提出的網絡與傳統的ORB匹配算法、現常用的特征描述網絡進行對比,結果如表2所示。在UBC Phototour數據集上以FPR95作為評判標準,本文提出的網絡在大部分情況下比其他網絡的測試效果要好,其FPR95較低。

表2 電路板數據測試結果
將訓練得到的權重文件在電路圖數據集上進行測試,選取其中某一型號電路板為例,分別使用了ORB、HardNet和本文提出的算法進行可視化測試,效果如圖8所示,自上而下分別為ORB、HardNet、簡化版HardNet、小器官分割網絡(small organ segmentation network, SOSNet)、多量化深度二進制描述符(deep binary descriptor with multi-quantization, DBD-MQ)[29]、緊湊判別二進制描述符(compact discriminative binary descriptor,CDBin)[30]、深度二進制局部描述符(deep binary local descriptor,DBLD)[31]和本文所提算法在該型號的電路板圖像上的匹配效果,每個算法的效果由4個子圖顯示,4個子圖從上至下從左至右分別是待測圖像相對模板圖像旋轉45°、90°、135°以及135°與待測圖像縮小0.7的組合變換,每個子圖中,左邊為待測圖像,右邊為模板圖像,可以看到本文所提出的算法對比其他算法,匹配點對更多,圖上整齊的線段更密集,特別是旋轉135°外加縮小0.7的組合變換,其他算法在解決該組合變換的匹配問題時都失敗了,出現了較大的匹配失誤,本文算法表現較好。而3種算法在40張測試圖像集上的平均匹配精度、平均匹配分數和平均匹配時間對比如表2所示,總體上,在時間較好的情況下,匹配精度、匹配分數和匹配時間都有提升,尤其時匹配分數,本文提出的算法匹配分數為0.348,與改進前的HardNet算法相比提升了0.122,與同為特征描述子算法的SOSNet算法相比提升了0.15,其中模板圖像和待測圖像分別檢測出401和356個特征點,并且在這些特征點中匹配到了124對特征點。在匹配精度上,匹配精度是0.99,與未改進前的HardNet算法相比,匹配精度提升了0.06,使用KNN算法對網絡提出的特征描述子進行匹配,并使用隨機采樣一致性(random sample consensus,RANSAC)算法剔除錯誤匹配后,在124對匹配點對中,僅有一對匹配錯誤匹配對。在匹配時間上,本文算法僅次于ORB算法,但是匹配精度和匹配分數效果卻遠優于ORB算法。

圖8 電路板圖像匹配效果
HardNet和SOSNet輸出的特征描述子均為浮點型描述子,其訓練的網絡均為卷積層、池化層和全連接層單純疊加的前向神經網絡,這樣的神經網絡雖然對于旋轉、尺度等空間變換具有一定的魯棒性,但是這樣的特性是通過數據增強獲取的,不是主動地進行學習。而本文算法加入的專注空間變換學習的注意力模塊,首先是STN部分對于圖像的空間變換進行顯式地學習,而且整個注意力模塊偏重于對圖像的核心語義部分進行學習,而不是像原來的卷積神經網絡單純地對整張圖片的全局信息進行學習,解決核心語義的空間變換問題才能解決圖像的空間變換問題且能排除掉一些非核心語義的干擾。而DBD-MQ、CDBin和DBLD這3個算法輸出的是二進制描述子,算法的前半段也都是通過單個的卷積神經網絡堆疊學習得到特征描述子,后半段是通過編碼器或損失函數對前面卷積網絡的浮點型描述子進行二值化,故也存在著前面所說的圖像空間變換學習能力不夠的情況,且二進制描述子只有0和1兩個值,進行描述子匹配的時候比較漢明距離,即兩個描述子中不相同的位數,這樣的匹配方式相對于浮點型描述子匹配時比較歐式距離精度較低,因此這3個算法在匹配精度匹配分數上表現并不好。另外,從表2和表3中簡化HardNet比原HardNet在各項評價指標中表現得更優異,這是因為原HardNet存在著網絡退化的問題,即網絡層數到達一定數量后,再一味地只增加網絡深度,訓練和測試效果反而下降,而原HardNet相比于簡化的HardNet多出來地網絡層為恒等映射,神經網絡是非線性的,很難將多出來的恒等映射參數學習正確,那么就不如稍微簡化網絡結構的性能,并且網絡結構簡單也能避免過擬合的問題,使得網絡模型不僅僅在訓練集上取得較好效果,在訓練時從未學習過的測試集上仍能取得優良結果。表4從算法參數量、參數大小以及模型大小3個方面對原來的HardNet算法、簡化的HardNet算法以及加入空間變換不變性注意力模塊并簡化HardNet算法的本文算法進行網絡復雜度比較。其中模型大小包含參數大小和網絡結構大小,故比參數大小指標稍大。對比表3的數據可發現,簡化的HardNet算法網絡結構比其他兩個算法簡單,所以其參數量、參數大小和模型大小明顯小于其他兩個算法。而本文算法是簡化了HardNet的同時,又加入了空間變換不變性注意力模塊,故本文算法的網絡復雜度肯定是高于簡化HardNet算法的,這在表3數據中也有所體現,但是本文算法的網絡復雜度又低于原HardNet算法,說明本文算法對HardNet算法的改進操作并沒有增加原算法的網絡復雜度甚至是將網絡結構精簡了,由于網絡結構精簡了,參數減少了,將網絡模型應用于測試集時,處理時間也會有所減少。

表4 改進前后的網絡復雜度
表2所列的5種算法中,ORB算法匹配時間最優,但是匹配精度、匹配分數缺遠低于本文算法,且本文算法的匹配時間為3.55 s,僅比ORB算法的匹配時間高0.03 s,本文算法在時間與ORB算法相當的基礎上,其他指標都優于實驗中用到的各種方法。
針對電路板圖像匹配任務中待測目標具有較大空間變換的情況,本文在簡化HardNet特征描述網絡的基礎上,設計并加入了具有通道注意力和空間變換注意力分支的注意力模塊,本文提出了使用ORB算法提取待測圖像特征點并根據特征點截取一定大小的圖像塊,后將圖像塊輸入具有空間變換注意力模塊的特征描述子網絡,最后通過KNN算法對待測圖像與模板圖像進行相似性度量的圖像匹配算法。通過多次實驗,證明本文算法相比于其他算法具有較高的匹配精度、匹配分數,匹配時間滿足實際生產的需求,具有很高的使用價值。