任永強, 呂華鑫, 晏文彬, 李 潤
(合肥工業大學 機械工程學院,安徽 合肥 230009)
圖像配準作為圖像處理中的一項基本問題,主要被用于求解不同傳感器、不同視角、不同時間獲取的圖像的最佳幾何變換,因此,在目標識別、圖像診斷、圖像拼接、缺陷檢測等領域有著廣泛應用[1]。其中圖像特征點的提取與匹配是圖像配準的關鍵步驟。文獻[2-3]提出的SIFT特征檢測算法,因對光線、尺度、平移、旋轉等具有較強的適應性,從而在圖像配準領域得到廣泛使用;但在特征點匹配過程中,很容易產生大量的誤匹配點,導致圖像配準時精度較低。
目前眾多學者提出了很多優化的方法。文獻[4]直接使用隨機抽樣一致性(random sample consensus,RANSAC)算法去除外點,但在內點概率較低的情況下估計出的變換矩陣精度較低;文獻[5]采用相似三角形的方法去除誤匹配點對,但在外點較多時算法容易找出錯誤的相似三角形,因此魯棒性較差;文獻[6]使用Canny邊緣算子與Harris角點結合的方法解決尺度不變特征變換(scale invariant feature transform,SIFT)特征點檢測中包含大量無用點的過程,并引入均方根誤差來預先刪除RANSAC算法迭代過程中產生的錯誤匹配點,這種方式雖可靠性較高,但過程太復雜,效率較低。
為了改善PCB板缺陷檢測時的圖像配準精度問題,本文提出一種基于SIFT特征提取的圖像配準優化方法。在SIFT算法提取特征后,先利用特征點之間的距離粗過濾去除誤匹配點對;再利用改進的RANSAC算法來細過濾,得到精確的匹配點對,并求得對應的變換矩陣;最后設計誤差損失函數,使用梯度下降的方法來擬合更加精確的圖像變換矩陣。
實驗結果表明,該方法能夠有效提升PCB圖像配準的精度,在PCB板缺陷檢測中有著重要的實際意義。
由于相機在進行圖像采集時,容易受到振動、光照等多種外部環境因素的干擾,導致圖像中帶有一定的噪聲,為了減少噪聲對后續圖像處理的影響,在進行SIFT特征提取前,需要對PCB圖像進行預處理。通過分析噪聲的分布規律,綜合比較了常用的幾種濾波方法,選擇中值濾波來去除PCB板常見的椒鹽噪聲,且該方法能夠較好地保護圖像的邊緣特征。
為了更好地突出PCB圖像經過濾波后被模糊的細節,本文通過拉普拉斯算子對圖像進行銳化處理[7]。用f(x,y)表示二維圖像,圖像的拉普拉斯算子的公式為:
(1)
將圖像進行拉普拉斯微分算子操作后,會得到該圖像的突出邊緣,再將原圖與拉普拉斯圖像進行像素值疊加。使用的計算公式為:
g(x,y)=f(x,y)+c[2f(x,y)]
(2)
其中,c為常數。
預處理后的PCB圖像如圖1所示。
在實際的圖像檢測過程中,因為待測圖像與標準圖像的獲取條件很難保持一致,所以對圖像進行精確的定位與配準是保證后續檢測算法正確執行的關鍵。常用的圖像配準算法主要有基于圖像特征、基于灰度信息、基于空間變換域的方法[8]。
考慮到本文研究的PCB板具有較為豐富的特征信息,本文使用基于SIFT特征點匹配的方法來進行圖像配準。
SIFT特征點是目前最穩定的特征點,可以對光線、尺度、平移、旋轉等具有較強的適應性和穩定性[9-10]。SIFT特征點的尺度不變性特征主要來源于構建圖像的多尺度特征,通過對輸入圖像進行降采樣,獲得圖像金字塔,并在每層圖像中使用不同的高斯算子模糊,從而獲取新的尺度空間序列,之后在這些序列中進行極值點判定,找出圖像的特征點,這樣計算機即可在不同尺度下識別該特征。
SIFT通過求取每個特征點領域內像素的梯度作為每個特征點的方向信息,其梯度方向θ(x,y)的計算公式為:
(3)
特征點梯度的模m(x,y)信息計算公式為:
m(x,y)={[L(x+1,y)-L(x-1,y)]2-
[L(x,y+1)-L(x,y-1)]2}1/2
(4)
SIFT特征描述子是通過將關鍵點周圍16×16的采樣點劃分為4×4區域,再計算每個區域的梯度幅值和方向,形成一個4×4×8=128維的描述子。特征描述子如圖2所示。
通過對PCB板進行SIFT特征點提取,結果如圖3所示;再根據這些特征點周圍信息即可得到相應的特征點描述子。
變換矩陣是圖像配準中的關鍵因素,它表示2幅圖像之間的對應關系,一般用H來表示。H是一個3×3的矩陣,表示圖像旋轉、平移、縮放等變換。歸一化后的H有8個參數,可以通過圖像的特征匹配點來進行計算,每對特征點可提供2個方程來求解2個參數,因此H至少需要4對特征點對,獲得精確的特征匹配點對于變換矩陣的求解至關重要[11-12]。本文提出一種改進的RANSAC算法和梯度下降相結合的方法來計算并優化圖像變換矩陣。
在第2節得到PCB圖像的SIFT特征點后,通過特征匹配獲得標準PCB圖像和待檢測PCB圖像的匹配點對,如圖4所示。
從圖4可以看出,匹配中存在大量的誤匹配點,這些誤匹配點會對后續圖像配準中的變換矩陣計算產生很大的影響。
RANSAC算法是目前廣泛采用的一種去除錯誤匹配點的算法,其主要是從含有異常數據的樣本集中計算出該樣本集的數學模型參數,并獲得有效的樣本數據[13]。
PANSA算法的基本流程如下:
(1) 從初始匹配點集中隨機抽取4對匹配特征點對計算初始的單應性矩陣H。
(2) 用H計算初始匹配點集中所有剩余的匹配點對。若某個特征點的投影誤差小于預先設定的閾值,則將其劃分為內點;否則標記為外點。
(3) 記下內點集合中匹配點對的數量。
(4) 重復以上步驟,直到迭代次數大于k。
(5) 將所有計算中內點數量最多的那次模型作為所要求解的單應性矩陣。
最小迭代次數k的計算公式如下:
(5)
其中:p為置信度,經驗值為0.995;w為內點的概率;m為最少計算點對數目。
但是RANSAC算法在計算誤匹配較多的模型參數時迭代次數變多、效率變低,且計算出的結果并非一定為最佳參數,其可信度與迭代次數成正比。
鑒于此,本文提出一種改進的RANSAC算法來提升運算效率和結果的準確性。改進算法的具體實現過程如下:
(1) 使用SIFT特征檢測算法提取特征點并匹配,得到匹配點對集合S。
(2) 將步驟(1)中得到的集合S通過設置匹配點對之間的距離閾值進行初步篩選,得到篩選點集S2。
(3) 通過設置低置信度的RANSAC算法來對點集S1進行快速篩選,粗選出內點數目最多的一組點集S2。
(4) 在粗選點集S2中使用高置信度的RANSAC算法再次進行篩選,精選出內點數目最多的一組點集S3,并得出S3對應的圖像變換矩陣H。
(5) 利用精選點集S3中的匹配點對,使用梯度下降的方法對變換矩陣H進行優化求解。
本文所改進的RANSAC算法的具體流程如圖5所示。
改進的RANSAC算法中,第1次的低置信度的計算可以大幅降低RANSAC的迭代次數,并進一步去除誤匹配點,得到準確率較高的內點集,為第2次高置信度的RANSAC算法提供更高內點概率的樣本點集。相較于一開始在內點概率較低的樣本集中,通過使用1次高置信度的RANSAC算法求出圖像變換矩陣的方法,本文方法可以顯著減少RANSAC算法的總迭代次數,減少程序運行時間,并提高結果的精確度。
在深度學習領域里面,許多神經網絡參數的學習都是通過設置一個誤差損失函數并使用梯度下降的方法來進行反向傳播,從而能夠不斷地訓練模型,最終得到一個較為精確的模型參數。
本文通過上述計算,得到了強匹配特征點集S3和對應的變換矩陣H。由于H是通過S3中隨機4個匹配點對求解得到的,對于S3中剩余的匹配點對可能還有些許誤差。因此,本文將模仿深度學習里訓練模型參數的方法,使用梯度下降來進一步獲取更加精確的變換矩陣H。
首先將S3強匹配點集中待測PCB圖像的特征點pi作為訓練變換矩陣H的輸入數據,標準PCB圖像中的對應特征點qi作為標簽數據,構造損失函數J(H),即
(6)
其中:m為S3中點集的個數;d為歐氏距離。
將損失函數對H求偏導,最后使變換矩陣H沿著其梯度方向進行迭代更新,即
(7)
其中,α為超參數,用來控制H每次沿著其梯度方向迭代變化的幅值。
實驗經驗表明,α取0.01時可以使損失函數較快收斂,且并不會產生局部震蕩的現象。
上述結果說明,本文改進方法在進行梯度下降時,可以使損失函數達到最小值并得到精度更高的圖像變換矩陣H。
本文實驗環境為:Ubuntu 16.04系統,Intel Core i7處理器,16 GiB內存(RAM),CLion 2012實驗平臺。使用C++編程語言,調用了OpenCV開源庫和Ceres開源框架。其中:OpenCV庫主要是進行圖像處理方面的計算;Ceres框架集成Eigen矩陣計算庫,廣泛應用于求解最小二乘問題,具有很強大的算力,因此本文主要用它來進行梯度下降方面的矩陣運算。
實驗圖片是來自某公司實際生產線采集到的PCB板圖片。通過采用多組圖片在不同條件的圖像配準實驗來對比本文方法的效果。
在不同光照和尺度下分別使用本文方法、文獻[6]算法和主流的SIFT+RANSAC算法進行圖像配準實驗,不同條件下的實驗結果如圖6~圖8所示。
在標準環境下使用本文方法得到的圖像變換矩陣如下:
(8)
使用文獻[6]算法得到的圖像變換矩陣如下:
(9)
使用SIFT+RANSAC算法得到的圖像變換矩陣如下:
(10)
為驗證本文方法求出的變換矩陣的準確性,本文采用均方根誤差(ERMS)作為幾何誤差,并將其作為評價變換矩陣的精確度指標。
ERMS計算公式如下:
(11)
其中:N為所有強匹配點點數;H為變換矩陣;pi、qi分別為待測圖像與標準圖像中相對應的匹配特征點矢量;d為歐式距離。實驗數據對比見表1所列。

表1 實驗數據對比
從表1可以看出,雖然文獻[6]算法比主流SIFT+RANSAC算法得到的變換矩陣精度有了提升,但是該算法整體較為復雜,運行效率較低;本文方法在提高變換矩陣精度的同時,降低了算法運行時間,提高了執行效率,可以使PCB板圖像配準更加精準迅速。
本文提出一種基于改進RANSAC算法和梯度下降相結合的優化方法來解決PCB板缺陷檢測中的圖像配準精度問題。首先使用圖像預處理去除圖像噪聲并增強圖像相關細節信息,通過SIFT特征檢測提取出PCB標準版和待測板的圖像特征點,利用匹配點之間的距離閾值可以初步去除誤匹配點對,再通過本文改進的RANSAC算法快速獲得強匹配點對以及對應的圖像變換矩陣,最后使用梯度下降法進一步擬合出精確的變換矩陣。實驗結果表明,本文方法能夠有效提升圖像變換矩陣的精度并減少運算時間。
本文方法不僅在PCB圖像配準中可以應用,在一定程度上也適用于其他的圖像變換場景,具有較強的實用性。