鐘岷哲,唐澤恬,王昱皓,楊 晨
(貴州大學大數據與信息工程學院,貴州 貴陽550025)
圖像拼接是將同一場景的數張有重疊部分的圖像拼接成一張無縫的全景圖或較大的高分辨率圖像。在醫學成像、計算機視覺、衛星數據、軍事目標自動識別等領域具有重要意義,因此圖像拼接技術在實際應用中受到廣泛關注[1-2]。
SIFT[3-4]算法由David Lowe在1999年提出并在2004進行完善,因其具有對旋轉、尺度縮放、亮度變化等有良好的魯棒性,且能獲得豐富的特征點信息等優點[5-6],成為了圖像拼接技術中的研究熱點。針對無人機航拍圖像快速匹配問題,韓宇等[7]通過降低特征描述向量的維度,借助準歐氏距離和余弦相似度對關鍵點描述子進行雙重匹配,在匹配過程中降低了計算量從而提升了拼接的速度。盧鵬等[8]通過擴大極值點取值范圍,減少極值點數量,提高了SIFT算法的拼接質量,但沒有就特征點分布均勻性問題進行研究。為了減少紅外圖像拼接誤匹配點和提高速度,陸園園等[9]針對基于SIFT算法的紅外圖像拼接方法進行改進,雖然通過減少誤匹配提升了拼接質量,但沒有對特征點是否均勻分布問題展開討論。陳月等[10]根據方差大小將待拼接圖片進行紋理分區,并采用不同的簡化方法提取各局部塊的特征點,以提高SIFT算法的運算速度,但拼接質量方面未有明顯提高。
可見,目前針對SIFT算法的特征點分布均勻性問題進行的改進工作尚不多見。因此,本文提出了一種基于紋理分類的多閾值SIFT圖像拼接算法,算法首先對圖像進行了紋理分區,將圖像分為平坦區、弱紋理區、一般紋理區和強紋理區。然后通過改變極值點的檢測方式提升了弱紋理區和一般紋理區的候選特征點的數量,降低了強紋理區候選特征點的數量,并根據信息熵與閾值的關系進行閾值設置,進一步提升弱紋理區和一般紋理區的特征點數量,使得這兩個區域所提取的特征點信息更加豐富。最后對所提取的特征點進行匹配和圖像融合,以完成圖像拼接。實驗證明,本文提出的算法能夠均衡特征點的分布從而提升圖像拼接的質量。
傳統的SIFT算法通過構建尺度空間并利用高斯差分金字塔檢測空間極值從而提取特征點。通常當圖像的紋理越復雜時產生的空間極值點越多,因此在圖像拼接過程中紋理復雜的區域往往是特征點的主要提供者[11]。
如圖1所示為傳統SIFT算法單一閾值的方法進行特征點檢測的結果,圖中特征點聚集在紋理復雜的區域,紋理簡單的區域卻沒有特征點。特征點在空間上分布不均勻,圖像信息的利用率較低,不利于圖像的拼接。因此,本文利用基于紋理分區的多閾值方法,有利于均衡特征點的分布,以提高拼接質量。

圖1 特征點分布不均勻
基于以上問題,本文提出基于紋理分類的多閾值SIFT圖像拼接算法,其具體流程如圖2所示。首先,對圖像的紋理進行分析和歸類,將其劃分為四個區域:平坦區、弱紋理區、一般紋理區和強紋理區。并對其中紋理較簡單的弱紋理區和一般紋理區增加其候選特征點,對強紋理區減少其候選特征點。然后,分別設置弱紋理區、一般紋理區和強紋理的閾值,進一步均衡特征點分布,并完成匹配和融合。

圖2 本文方法流程圖
如前所述,復雜的紋理區是特征點的主要提供者,但僅僅只有復雜紋理區提供特征點時,不利于圖像的拼接。因此本文首先對圖像的紋理進行分區,并在紋理分區的基礎上相應的增加和減少紋理區的特征點候選點,以便更好的均衡特征點數量。
2.2.1 紋理分區
首先需對圖像紋理進行分塊分析以獲取紋理復雜度,本文使用灰度的種類數進行紋理分區。其具體方法如下:首先圖像劃分為55子塊,然后以子塊為單位計算每個子塊的灰度值的種類數V,當V=1時,將其劃為平坦區,該區域紋理平坦,無法產生特征點,故可不進行SIFT計算。當1
圖3為圖1的紋理分區情況,從圖可以看出,弱紋理區與一般紋理區在整個圖像中的占比較大,且分布均勻,通過增加候選特征點和多閾值特征提取能夠有效的增加特征點信息。根據強紋理區在圖像中呈聚集的情況,通過減少候選特征點,可減少該區域的特征點數量。以此做到均衡特征點的數量。

圖3 紋理分區
2.2.2 特征點檢測
紋理分區之后,對于弱紋理區和一般紋理區,其所能提供的特征信息并不多,為了增加這部分的特征信息,改變極值點檢測的方法增加候選特征點的數量,即該區域極值點檢測時,對應位置的像素值只需大于或小于局部26個像素值中的23個,以提升候選點的數量。對于強紋理區,其所能提供的特征信息過多,為了減少該部分的特征點,并防止特征點過于密集,將極值點所需檢測的區域由3×3×3變為5×5×3。以圖1為例,表1為傳統極值點檢測方法和本文的極值點檢測方法提取到的候選特征點和最終保留特征點的數量。由表可知,所提出的方法有效地增加了弱紋理區和一般紋理區的極值點和特征點數量,強紋理區則有效地減少了特征點數。

表1 傳統SIFT方法與本文方法特征點數
雖然所提出的特征點檢測方法在一定程度上均衡了不同紋理區的特征點數量,但弱紋理區和一般紋理區提取到的特征點數量過少,因此為了進一步增加這兩個區域的特征點數量,基于信息熵對這兩個區域進行閾值設置。而強紋理區則使用傳統SIFT算法的閾值。
由于信息熵可以有效地反映圖像的紋理變化,因此本文基于紋理區的信息熵進行相應區域的閾值設置。信息熵的公式如下

(1)
式中,Pi為每個灰度值出現的概率,a通常取2。為得到圖像的紋理區域的信息熵與閾值的關系,本文對100張圖像進行分析,結果如下圖所示。

圖4 局部區域的信息熵與閾值的關系
由圖可知,弱紋理區和一般紋理區的信息熵與局部的閾值呈現正相關的關系,對其進行擬合后,二者之間的關系為
T=a×H+b
(2)
式中:T為閾值,a為比例系數,b為常數項。對于弱紋理區其數值為0.00637和0.00774,對于一般紋理區其數值為0.00098和0.0181。通過式(2)即可對相應的區域進行閾值的設置,以提升弱紋理區和一般紋理區的特征點數量。
圖5為3組拼接使用的原始圖像,其中(a)和(b)大小為576 pixel×462 pixel;(d)和(e)大小為633 pixel×543 pixel;(g)和(h)大小為720 pixel×668 pixel;(c)、(f)、(i)分別為三組圖像的拼接結果。
為測試本文算法檢測得到的特征點在圖像空間中的分布效果,以圖5中的(a),(d),(g)為例進行特征點提取,并與傳統算法進行比較,結果如圖6所示。表2為本文方法、傳統SIFT、文獻[7]中方法及文獻[8]中方法檢測得到特征點在不同的紋理區域的分布情況。由圖6和表2可知,在特征點空間分布上,本文改進的方法檢測得到的特征點分布更加均勻;在特征點的總數上,兩種方法的差距并不大,但本文改進的算法有效地降低了強紋理區的特征點數量,從而避免了強紋理區的特征點過于密集。對于一般紋理區和弱紋理區,改進的算法有效地提升了特征點的數量,能夠更為有效地利用這兩個區域的特征信息。綜上,本文改進的方法使特征點的空間分布更加均勻,能夠更為有效地利用弱紋理區的特征信息。

表2 參考方法與本文改進方法檢測特征點數

圖5 原始圖像及拼接結果注:(a),(b),(d),(e),(g),(h)為原始圖像;(c),(f),(i)為拼接結果

圖6 特征點檢測結果注:(a),(c),(e)為傳統算法;(b),(d),(f)為本文算法
圖7為傳統方法和本文方法的匹配特征點分布情況。可以看到,相比傳統方法,本文方法匹配的特征點在空間分布上更加均勻。為分析特征點的空間分布對拼接質量的影響,本文使用SSIM[12]和PSNR[13]進行評估,并與傳統SIFT方法、文獻[7]及文獻[8]中方法進行比較,結果如表3所示。從表3中可以看出,相比于經典SIFT方法,本文改進方法在SSIM和PSNR的評估標準下分別提升了7.26%~11.62%和14.13%~24.05%。相較文獻[7]中的方法,本文方法在SSIM和PSNR的評估標準下分別提升了5.07%~12.07%和10.23%~23.61%。相較文獻[8] 中的方法,本文方法在SSIM和PSNR的評估標準下分別提升了5.22%~5.78%和10.52%~14.12%,可見更為均勻的空間分布可有效地提升圖像的拼接質量。

圖7 特征點匹配圖

表3 參考方法與本文改進方法圖像質量指標
圖7中,(a),(c),(e)為傳統算法;(b),(d),(f)為本文算法。
針對傳統SIFT算法的單一閾值導致的特征點空間分布不均勻的問題,本文提出了一種基于紋理分類的多閾值SIFT圖像拼接算法。算法對圖像的紋理復雜度進行了分析,以此將圖像劃分為平坦區、弱紋理區、一般紋理區和強紋理區。通過增加弱紋理區和一般紋理區的候選特征點,減少強紋理區的候選特征點,以初步均衡不同紋理區的特征點數量。其次,探索局部區域信息熵與閾值的關系并以此對弱紋理區和一般紋理區進行閾值設置,從而進一步提升該區域的特征點數量。最后進行特征點匹配和圖像融合完成圖像拼接。實驗結果表明,本文的算法通過紋理分類并根據信息熵設置閾值以此均衡了特征點的空間分布,并提高了圖像的拼接質量。因此,本文算法在對圖像拼接質量有較高要求的場景中有潛在的運用價值。