王天也,王紹舉
(1. 中國科學院長春光學精密機械與物理研究所,吉林 長春 130033;2. 中國科學院大學,北京 100049)
圖像拼接技術在計算機視覺、遙感觀測、航天探索、軍事偵查、醫學圖像處理等領域都有廣泛的應用并且具有良好的研究前景[1]。在安防監控領域,圖像拼接技術同樣扮演著重要角色[2]。圖像拼接主要分為圖像配準和圖像融合兩個主要部分[3],在圖像配準中目前應用較為廣泛的是基于點特征的配準方法[4],其中應用最為廣泛的包括Lowe D.G.提出的SIFT[5]算法,Bay H 等提出了SURF[6]算法,Rublee等人提出的ORB算法,其中ORB算法的計算速度較前兩者有明顯的速度優勢,為了提高圖像拼接的實時性,本文選取了ORB算法進行圖像配準,并使用漸入漸出的位置加權算法進行圖像融合。
目前ORB算法應用圖像拼接的文獻比較多,但針對夜晚局部對比度高圖像拼接的研究很少。文獻[7]提出了基于物理模型與改進邊界約束的低照度增強算法,實現了夜晚圖像的拼接,雖然拼接圖像的視覺效果良好,但復雜度較高,很難保證拼接的流暢性。
使用ORB特征對夜晚圖像進行特征提取時,由于存在燈光的因素會導致局部區域的亮度和對比度較高,這部分區域的Harris響應值相對較高,容易計算出大量的特征點,而其它對比度相對較差的區域難以提取出足夠數量的特征點,根據局部區域進行匹配計算出的透視變換矩陣很難反映出兩幅圖像整體的變換關系,使得后續的圖像拼接效果不好,雖然可以使用更為復雜的圖像融合算法改進這一缺陷,但明顯提高了算法的復雜度,增加了圖像融合算法時間消耗,不利于視頻圖像的拼接。
本文采用直方圖均衡化的方法對圖像進行預處理,使得采集到原始夜間圖像中對比度較差的部分對比度提高,而原始圖像中對比度較高的燈光區域對比度降低。根據預處理前后的圖像分別做圖像配準,共同計算透視變換矩陣,可得到更準確的透視變換關系,從而獲得更好的圖像拼接效果。
ORB算法是由Rublee等人于2011年提出的特征點檢測算法[8]。該算法由o-FAST特征點和rBRIEF描述子組成。
2.1.1 o-FAST特征點
FAST(Features from Accelerated Segment Test)算法是由Rosten和Drummond于2006年提出,并于2010年修改發表的一種特征點檢測算法。其中對于FAST特征點的定義為:像素的灰度值和相鄰連續若干像素灰度值的差大于給定閾值的點,稱為FAST角點[9]。
FAST通過計算角點Harris響應值的方法可也為特征點提供特征性度量方法,采用建立3層高斯圖像金字塔的方法增加尺度不變性,使用灰度質心法,通過計算像素點與鄰域像素點的像素矩得到這一區域的質心,定義特征的方向為該像素點與質心連線構成的向量的方向,為特征點的主方向,使特征點具有旋轉不變性。
2.1.2 rBRIEF描述子
BRIEF(Binary Robust Independent Eleme-ntary Features)描述子是由Michael Calonder[10]于2010年提出的二進制碼串描述子。
首先,在以特征點P為圓心,d為半徑的鄰域內做圓O,在圓O內隨機選取256個像素對P1(A,B)、P2(A,B)…PN(A,B),定義二值τ

(1)
為了解決特征的旋轉不變性,ORB算法采用o-FAST特征點的主方向作為BRIEF描述子的主方向,將旋轉后的描述子記為steerd BRIEF。
由于steerd BRIEF的PCA分解具有特征分布方差小,各成分相關性大,均值靠左,內外點有重疊區域的特點[11], ORB算法采用貪婪搜索的方法搜索所有的二值測試,從中篩選出類內方差大,相關性低的采樣點對,最終提取出的BRIEF特征稱為rBRIEF特征。
本文使用了Knn算法進行特征匹配,并使用RANSAC算法計算透視變換矩陣。
2.2.1 Knn匹配算法
K最近鄰算法[12](K-Nearest Neighbors Algorithm,KNN)的核心思想是針對某一特征點,分別在另一特征空間中搜索相似程度最高的前K個特征點作為候選特征。
本文采取K=2的Knn算法,針對每個特征點分別得到最優特征匹配和次優特征匹配,兩者的距離分別記為d1和d2,根據兩者的比率t篩選每個特征點匹配對,比率過大的匹配被認為是誤匹配。
2.2.2 RANSAC算法
RANSAC算法的輸入是一些測試數據,其中包括一些噪聲和誤差太大的點,通過反復從數據中選擇隨機的離散子集,以不斷迭代的方式篩選內點[11]。
本文使用RANSAC算法的目的主要是通過不斷迭代的過程篩選掉對計算透視變換矩陣影響過大的點。
計算方法如下公式

(2)
其中(x’,y’)和(x,y)表示一組特征點對。
透視變換矩陣為

(3)
本文采用了位置加權融合算法。位置加權融合算法是一種漸入漸出的融合算法,該算法對融合的過渡區域像素值進行計算時,對兩幅圖像的像素值進行加權平均確定每一幅圖像貢獻的像素比例。加權函數如下所示

(4)
其中,I1(x,y)表示源圖像R1的像素值,I2(x,y)表示源圖像R2的像素值w1,w2分別表示各自所占的權重,具體的權值選擇與圖像的距離成比例,由1逐漸過渡到0。具體的權值如下

(5)
其中,D表示當前像素點與重疊區域左邊緣的距離,W為重疊區域的總寬度。
采用這種漸入漸出的拼接融合方法,計算速度快,可以使過渡區域更加平滑,但是在配準不是很精確的情況下會出現重影的現象[12]。
首先使用了基于ROI(感興趣區域)的匹配方法,對兩幅圖像百分之五十的部分進行特征匹配,有效的減少了誤匹配的數量,提高算法的速度。
其次,由于ORB算法的特征點提取方法由FAST特征點改進而來,在使用進行FAST-9特征點求其特征時,其邊緣響應較為嚴重,而且沒有特征點的度量方法。所以ORB算法在實際提取特征點過程中首先計算每個特征點的Harris響應值,通過響應值的大小對候選特征點進行排序,作為候選特征點,再通過搜索局部最大極值和抑制非極大值的方法,進一步篩選特征點。通過這一流程提取出的特征點具有相對集中的特點。
使用原始圖像進行匹配后的特征都集中在包含燈光的對比度較高的區域,而從其它區域提取的特征相對較少,由此得到的透視變換矩陣不能反映整幅圖像的映射關系。
本文使用了直方圖均衡化進行預處理,直方圖均衡化是廣泛使用的圖像增強算法,基本思想是把原始圖像的直方圖根據其概率分布函數改變為均勻的直方圖[13]。其優點是處理速度快,可以對圖像低對比度的區域進行對比度增強。
經過直方圖均衡后,原圖像較暗部分的細節變得更清晰,在進行特征點檢測時Harris響應值較高的候選點區域發生變化,因此可以獲得同一圖像的其它區域高質量匹配點對。
最后,把直方圖均衡化前后分別得到的匹配對放在一起,使用RANSAC算法計算透視變換矩陣。這樣得到的結果更能準確的反映兩幅圖像的透視變換關系,具體流程如下圖所示。

圖1 傳統拼接和改進的拼接流程圖
本文使用VS2010開發環境結合OpenCV 2.3.1進行實驗,拼接圖為兩幅大小為1080*1440的夜景圖像,分別對比使用SIFT算法、SURF算法、ORB算法和改進后的ORB拼接算法實驗效果。
本實驗使用的拼接原圖如下所示:

圖2 原圖
改進的ORB算法首先對原始圖像進行直方圖均衡,對圖像低對比度的區域進行對比度拉伸,結果如下圖所示:

圖3 直方圖均衡化后的結果
接下來對原圖和直方圖均衡化后的圖像分別進行特征匹配。由于直接使用ORB等特征進行匹配存在較高的誤匹配率,因此還需要使用knn算法進行圖像的精匹配。下圖是使用ORB算法和knn算法的匹配結果:

圖4 使用knn算法進行篩選后的匹配圖
同樣使用ORB算法以及knn算法對直方圖均衡后的圖像進行匹配,由于均衡化后的圖像高對比度的區域發生變換,由ORB算法的原理,可以得到其它區域的匹配對。得到的結果如下所示:

圖5 直方圖均衡化后的配準圖
分別對比四種匹配算法的匹配總對數、精匹配對數、正確匹配對數和正確率。其中精匹配中knn算法閾值的選取為0.7。通過匹配對兩點連線的斜率不超過正負0.1為正確性的評判標準計算正確率,得到的數據如下表所示:

表1 配準效果對比表
由表中數據對比可知,各種算法經過精匹配后得到的特征點正確率較高,說明了knn算法進行篩選的必要性。SIFT算法和SURF算法能比ORB算法提取出更多的特征點對數,改進的ORB算法可以彌補ORB算法在提取特征對數量上的不足。
為了研究特征點在圖中的分布情況,分別把圖像分成10*10和100*100為單位的像素塊,由于僅對圖像50%區域匹配,所以分別分成80塊和7776塊,通過統計各類算法可以覆蓋像素塊的個數,體現匹配的特征點對的覆蓋率。

表2 配準特征的覆蓋率比較
由上表數據可以反映特征點在圖像中的分布情況,覆蓋律越高的特征點分布越廣泛,越能準確的計算圖像間整體的透視變換關系。
接下來對各種算法各流程消耗的時間進行統計:

表3 各算法消耗時間比較
由表可見,SIFT算法在提取特征上消耗大量的時間,SURF算法有很大的進步,而ORB算法更快。
下面分別對比單位時間每種算法能提取的精匹配對數和單位時間匹配對數對圖像的覆蓋率來對比各算法的效率:

表4 各算法效率比較
SIFT算法雖然能提取出大量的特征點,但是消耗的時間最多,效率最低;SURF算法同樣可以提取出較多特征點,并且效率較高;ORB算法雖然提取的特征較少,但是因為耗時極少,所以效率最高,但缺點是提取的特征太過集中;改進的ORB算法同樣具有較高的效率,同時可以使提取的特征分布較廣,使得整體的特征點更具有質量。
改進的拼接算法整合直方圖均衡前后分別得到的匹配對,使用RANSAC算法計算透視變換矩陣,然后進行拼接,最后得到的結果如圖6所示。

圖6 改進的拼接圖
下面根據細節放大圖對比分析改進前后拼接算法的結果。

圖7 細節放大圖
由圖可以發現,原算法得到的拼接圖由于透視變換矩陣計算不準確,會發生重影的現象,而改進的算法對透視變換矩陣計算更加準確,可以很好的消除這一現象。
實現圖像拼接的目的主要是完成圖像的無縫融合,而目前的客觀評價指標大多是針對圖像本身的質量進行評價,對于無縫的定義只用從人眼主觀來判斷分析,所以本文拼接實驗的主觀分析來作為拼接結果好壞的指標。
實現圖像拼接,其核心是計算出準確的透視變換矩陣,準確的透視變換矩陣可以為為后續的圖像融合減少不必要的計算,使得算法具有更高的實時性。本文使用基于直方圖均衡的改進匹配算法,通過增加在增強圖像對比度條件下匹配對的方式,解決了夜晚圖像易受到燈光因素干擾,特征點匹配集中,透視變換矩陣計算不準的問題,從而優化了圖像拼接的質量。