趙愛罡
摘 要:圖像應用發展迅速,圖像配準、識別、檢測、跟蹤等應用豐富,其核心離不開相似性匹配,即在實時場景中找到感興趣的區域或物體,深度學習算法目前研究較多,其框架仍是提取特征進行識別。模板匹配算法發展最早,對后續智能算法研究有一定的促進作用,本文主要介紹一種對光照、角度、尺度魯棒的匹配算法。
主要思路是把模板圖像處理成多角度,多尺度的一系列圖像模板,用這些模板分步驟地與待匹配圖像做對比,找出匹配點。
一、處理模板圖像
把360°按照間隔10°劃分為36分,把尺度空間劃分為10個等級(尺度變化參數為s=0.5,0.6,...,1.4,可根據實際需求調整),這樣就生成了360個不同尺度和角度的模板,當然還要對所有的模板進行高斯平滑處理,減少誤差帶來的影響。如果用窮舉法把所有的模板都和參考圖像進行搜索匹配,那么時間消耗將是災難性的。
二、確定變換尺度
把模板圖像按照半徑由小到大的順序生成圓環區域,半徑大小為r=2,4,...,30,在每一個圓環區域內,計算所有像素點灰度的平均值:
對于模板圖像的任意角度旋轉都是不變的,這樣按照半徑大小排列就形成了一個旋轉不變的15維的向量(模板半徑不足30可以補零,匹配時不計算在內),對第一步中所有尺度的模板圖像都做相同處理,得到10個15維的旋轉不變向量。接下來把參考圖像中的每一個像素點,按照式(1)處理,生成一個三維數據矩陣:
這樣參考圖像中每個像素點都代表一個如式(2)所示的15維旋轉不變向量,把每個向量都和從模板圖像系列中得到的10個向量做互相關性計算:
把式(3)中互相關值大于閾值的點記為尺度檢測點;同時記錄下取最大值時的值,就是匹配圖像的最佳尺度變換參數。
三、徑向采樣,確定旋轉角度
把原始的模板圖像按照角度劃分為36個徑向直線(每10度一個間隔),直線長度取模板圖像長寬數據中的小者的一半,記為。這樣,在每個角度為(相對于水平x方向)的徑向直線上,計算其平均灰度值:
其中為徑向直線上像素點的個數,式(4)表明,這個平均值在尺度變換中保持不變。把所有角度的徑向直線平均灰度值按順序排列,形成一個36維的尺度不變向量,改變起始直線角度,可以得到全部36個向量(只是改變向量的起始位置,不用再在旋轉模板中計算)。
按照第二步求出的變換尺度,參考圖像的徑向直線長度為,按照式(4),參考圖像中的尺度檢測點求其尺度向量:
這樣每個尺度檢測點都形成一個36維的尺度不變向量,把這些向量和模板圖像的向量做互相關計算:
把式(6)中的互相關值大于閾值的尺度檢測點記為尺度旋轉檢測點;同時記錄下取最大值時的值,就是旋轉匹配圖像的最佳旋轉角度。
最后,利用變換參數為和的模板圖像(第一步中所描述的只用生成旋轉角度為的這一組模板圖像),對所有在第三步求出的尺度旋轉檢測點進行互相關值計算,找出互相關值最大的點,即為兩幅圖像的最佳匹配點。
上述算法通過圓投影和徑向直線抽樣的方式,生成旋轉不變和尺度不變這兩種向量用來確定圖像之間的尺度變換參數和旋轉變換參數,并在這個過程中篩選出較少的待檢測點,最后通過互相關計算確定準確的匹配位置。它比第一步中提到的窮舉法要快。
通過上面的介紹,可以看出來,基于灰度的模板匹配方法比較“呆板”,圖像的變換(旋轉和尺度)、噪聲和遮擋等對匹配效果影響較大;而基于原投影的匹配算法在一定程度上解決了圖像變換的問題。
我們往往關注圖像中比較特別的地方,兩幅圖像中這樣的地方如果相似,就認為圖像匹配上了。對應到圖像數據上,這些“特別”的地方,就是圖像中像素點灰度值變化劇烈的地方,我們稱之為圖像特征。圖像特征有很多種,如顏色、紋理、邊緣和角點等等。基于特征點的圖像匹配方法,首先要解決的問題就是提取特征點,當圖像中存在旋轉變換、尺度變換、光照變換和噪聲影響等時,特征點提取算法應該能保持其穩定性(在圖像中的位置不變),如Harris角點提取算法對旋轉變換和光照變換具有較好的不變性,而SIFT特征點在尺度空間中提取,具有較好的尺度不變性;其次,要對提取出的特征點進行描述(也可以直接利用同一幅圖像中特征點之間的幾何關系進行匹配,但這種方法難度大,準確率也較低),利用特征點鄰域內的圖像信息,生成一個對該特征點描述的向量,這個向量稱為描述子向量,特征點描述子向量對于圖像的各種變換和噪聲也應該具有一定的不變性;最后就是特征點度量了,利用描述子向量,通過一定的對應方法,找出一對一的圖像特征點對,從而確定兩幅圖像之間準確的變換關系。