冀福全,韋良芬,汪先超
(巢湖學院計算機與人工智能學院,安徽 合肥 238024)
圖像拼接是將同一場景中具有重疊視場的兩幅或者多幅圖像組合,以產生一幅無縫全景圖或高分辨率圖像的過程,經過拼接所獲得的圖像有較大的視場[1]。隨著科學技術和計算機視覺的快速發(fā)展,圖像拼接技術已成為研究熱點,該技術廣泛應用于安防監(jiān)控、醫(yī)學圖像處理、圖像識別與探測等領域,具有非常重要的研究意義和應用價值。
圖像配準是圖像拼接過程中的關鍵技術,國內外研究學者對基于特征點匹配的圖像拼接算法進行了大量研究。常見特征匹配算法中,較為成熟的包括尺度不變的特征變換(Scale Invariant Feature Transform, SIFT算法)[2]、加速分割檢測特征(Speeded Up Robust Features,SURF算法)[3]。陸柳杰等[4]針對SURF算法中特征點匹配精準度較低和拼接速度慢的問題,提出了一種優(yōu)化的圖像拼接方法。AHN CHANG-WOOK等在SURF算法基礎上,使用具有方向性的BRIEF特征算子,提出了一種新的角點檢測與特征描述算法,即ORB算法(Oriented FAST and Rotated BRIEF)[5]。EDWARD等提出了一種快速角點檢測算法FAST(Features from Accelerated Segment Test)[6]算法,其最大的特點是具有高速性能,更適合應用于快速拼接[7]。
傳統(tǒng)圖像拼接過程中,待拼接圖像經過單應性矩陣投影變換后,相對于基準圖像有較大程度變形[8],在圖像融合后,圖像中會出現大面積無像素值的空洞區(qū)域,不僅導致大量數據冗余,同時也與常規(guī)矩陣式存儲像素點的矩形圖像顯示格式相抵觸,影響用戶圖像視覺體驗效果。本文對傳統(tǒng)圖像拼接算法進行改進,將柱面映射引入圖像拼接過程中,同時對融合后的圖像進行邊緣去噪,并結合雙向線性插值算法對去噪圖像可見區(qū)域進行雙軸線性拉伸,消除圖像中無效空洞像素點。相較于傳統(tǒng)圖像拼接效果,本文中拼接方法較大程度地降低了圖像投影變換帶來的變形程度,去除了冗余空洞區(qū)域,保留了圖像可見區(qū)域完整信息,規(guī)范了圖像展示格式。
圖1展示了傳統(tǒng)的基于SURF算法的圖像拼接流程,首先對輸入的原始圖像借助SURF算法進行特征點檢測,在對圖像進行高斯濾波處理后構建Hessian矩陣,通過改變高斯濾波窗口的大小來獲得不同尺度的圖像,并構造高斯金字塔尺寸空間,利用非極大值抑制初步確定特征點,設定Hessian行列式的閾值作為篩選依據,對特征點進行精確定位,計算特征點主方向,進一步構建特征描述子。在構建特征描述子時選取特征點周圍一個方形框區(qū)域,劃分為4×4個矩形區(qū)域,每個矩形區(qū)域有25個采樣點,對每個區(qū)域求解水平方向和垂直方向的Haar小波特性,最終得到一個64維向量。然后對得到的特征點進行匹配,常用方法有K最近鄰算法以及Brute-Force暴力匹配算法。上述方法得到的匹配點可能存在誤匹配點,使用隨機樣本一致性方法RANSAC進行提純,過濾掉誤匹配點對,并計算出單應性矩陣。通過單應性矩陣,對待拼接圖像進行投影變換,使得左右圖像變換到同一坐標系,結合變換后圖像像素點坐標進行圖像融合,最終得到拼接圖像,其中重疊區(qū)域像素點取值需結合像素點坐標綜合考慮左右圖像像素值所占權重。
圖1 傳統(tǒng)基于SURF算法的拼接流程
圖2為本文圖像拼接方法的主要流程,與傳統(tǒng)基于SURF算法的圖像拼接方法相比,本文方法在對原始圖像特征點檢測前引入柱面映射變換,并且在圖像融合后增加圖像邊緣去噪以及融合圖像可見區(qū)域雙軸線性拉伸處理,同時采用ORB算法進行特征點檢測和描述,ORB算法采用FAST算法進行特征點檢測,采用改進BRIEF算法生成特征向量描述子[9],其相對于SURF算法特征點提取速率更快。
圖2 基于柱面映射圖像拼接方法
檢測得到特征點后通過KNN算法或者Brute-Force算法進行特征點匹配,使用RANSAC算法對匹配點對進行精匹配,進一步得到單應性變換矩陣,傳統(tǒng)SURF圖像拼接方法中待拼接圖像經過投影變換后,其相對于原始圖像具有較大程度變形,橫縱尺寸拉長,與基準圖像融合后會存在大片無效空洞區(qū)域,導致數據冗余和視覺體驗降低,本文方法通過柱面映射變換預處理降低待拼接圖像和基準圖像間的坐標系空間差值,從而降低投影變換圖像變形程度。在圖像融合后,增加邊緣去噪處理,消除上下邊緣無效像素值,并對可見區(qū)域進行雙軸線性拉伸,填充四周空洞區(qū)域。
對待拼接圖像進行柱面映射處理,將原始圖像通過中心投影映射到圓柱體側面上,圖3為柱面映射模型,其中映射中心為圓柱體幾何中心O。原始圖像的寬和高分別為w和h,以圖像左上角為坐標原點,沿上邊緣作為x軸,沿下邊緣作為y軸,其上任意一像素點A′(x′,y′)在柱面上的映射點為A(x,y),x′和y′分別為原始圖像A′點的橫縱坐標,x和y為柱面映射圖展開圖A點的橫縱坐標。θ為點A(x,y)到原圖像左邊緣在圓柱面映射位置的角度,θ′為原圖像左右邊緣在圓柱面映射位置對應角度的一半,f為映射圓柱體底面半徑。
(a)立體幾何圖
(b)俯視圖
(c)原始圖像
(d)柱面映射展開圖圖3 柱面映射模型
根據以上幾何關系有如下數學公式:
(1)
(2)
(3)
(4)
通過映射關系可計算映射圖中某一點在原始圖像中的坐標,由于映射圖像素點坐標為整數,而計算得到原始圖像對應的坐標為浮點數,本實驗借助雙線插值算法利用原圖映射點周邊4個整數坐標點對應像素點加權平均值作為映射點對應像素值,圖4為雙線插值模型。
圖4中P為原圖中映射點坐標,P1~P4為其鄰近周邊4個整數坐標點,其中,x1與x3相等,x2與x4相等,y1與y2相等,y3與y4相等,每個點對應的像素值為W,則雙線插值算法P點對應像素值如下:
圖4 雙線插值模型圖
W(x,y)=(1-r1)(1-u1)W1(x1,y1)+r1(1-u1)w2(x2,y2)+(1-r1)u1w3(x3,y3)+r1u1w4(x4,y4),
(5)
(6)
(7)
圖5為原始圖像經過柱面映射后得到的柱面映射圖。
圖5 原始圖像經柱面映射后的效果
2.2.1 特征點檢測和描述
特征點提取使用ORB算法,該算法具有尺度不變性和旋轉不變性,并且具有較快的提取速度。圖6為ORB算法過程,為了滿足尺寸不變性,通過設置縮放比例因子和金字塔的層數n,將原始圖像按比例因子縮小成n副圖,從而構建不同分辨率的圖像金字塔。對圖像金字塔不同層圖像,計算以關鍵點為中心的方框中的像素點灰度強度形心。
圖6 ORB算法過程
強度形心為給定patch中平均像素的位置,特征點坐標與強度形心形成的向量為該特征點的方向。對圖像中任意特征點P,強度形心計算公式為(8)~(9),其中,mpq為特征點P的patch鄰域像素距,I(x,y)為像素灰度值,R為patch鄰域半徑,C為強度形心。C和特征點P的夾角即為FAST特征點的主方向。
(8)
(9)
BRIEF算法采用二進制碼串作為特征點的特征描述子,在每一個特征點鄰域內通過高斯分布選擇n對像素點,比較每個點對的灰度值的大小,并根據其大小關系生成長度為n的二進制碼串。為增加特征點描述旋轉不變性,對BRIEF算法進行改進,將特征點方向引入特征點BRIEF特征描述子計算中,對特征點鄰域n個點對組成的特征矩陣用旋轉矩陣進行旋轉變換,進一步計算得到特征點描述子。
2.2.2 特征點匹配
采用近似最近鄰快速搜索庫(Fast Library for Approximate Nearest Neighbors,FLANN)[10]及K最近鄰算法(K-Nearest Neighbor,KNN)算法進行特征匹配[11],具體過程如下:
步驟1 以第一幅圖像的特征點為訓練集,以第二幅圖像的特征點為查詢集,計算訓練集所有特征點與查詢集中特征點的漢明指標[12]作為兩特征點之間的標準歐幾里得距離相似性,結合閾值τ判定是否匹配。
步驟2 通過K最近鄰算法篩選匹配點,保留每個訓練集中特征點與查詢集中歐式距離最近和次近的匹配點對,計算最近和次近歐式距離比值,并根據設定閾值過濾匹配點對。
步驟3 通過隨機抽樣一致算法(Random Sample Consensus,RANSAC)對匹配點對進行精匹配[13],并根據匹配點對狀態(tài)篩選,去除其中的誤匹配點對,獲取內點匹配對。
步驟4 計算內點匹配對的單應性矩陣,即最優(yōu)透射變換矩陣。
2.2.3 圖像單應性變換
單應性矩陣保存圖形變換的相關數據,能夠對圖形間的幾何變換關系進行描述,根據單應性變換(Homography)算法[14-15],利用單應性矩陣H對待拼接圖像進行變換,即將兩幅圖變換到同一坐標系。
(10)
其中,x和y為原始的橫縱坐標,x′和y′對應變換后點的橫縱坐標,單應性矩陣H中α1和α2為旋轉變換參數,α4和α5為尺寸變換參數,α3和α6為平移參數,α7和α8為透視變換參數,α9為1。
2.2.4 圖像融合
圖像融合將基準圖像和待拼接圖像拼接為一張圖像,需要綜合考慮左右圖像各自像素點對融合圖像像素值的影響,降低圖像融合后可能出現的重影、拼接裂縫、亮度色調跳躍等現象[16]。本文實驗采用線性加權平滑融合算法生成融合圖像中像素點的像素值,圖7為左右圖像線性加權融合模型,其中,S1和S3分別為左右圖中非重疊區(qū)域,S2為重疊區(qū)域,D為重疊區(qū)域的寬度,xl和xr分別為重疊區(qū)域最左側和最右側像素點橫坐標。
圖7 左右圖像融合模型
融合圖像中像素點像素值計算公式如(11)~(13),其中,V1(x,y)和V2(x,y)為P點在左右圖中的像素值,R1和R2分別為左右圖中該像素點在融合中所占權重。
(11)
(12)
(13)
2.3.1 邊緣去噪
圖像單應性變換會使待拼接圖像發(fā)生旋轉、尺寸放縮、平移等變形,在與基準圖像融合后,融合圖像上下邊緣會出現一定區(qū)域的無效噪聲區(qū),檢測并獲取可見區(qū)域上邊界臨界點高度h1和下邊界臨界點高度h2,保留圖像縱向h1~h2間圖像,并去除0~h1以及h2~h間無效噪聲區(qū)域,其中,h為融合圖像高度。在檢測臨界點過程中,為保證檢測點準確性,防止個別特殊點的干擾,通過比對以檢測點為中心、鄰近方形區(qū)域3×3個點的像素灰度值,僅當區(qū)域內所有像素點均有效時,才可斷定該檢測點為可見像素點。
2.3.2 可見區(qū)雙軸線性拉伸
去噪后的融合圖像四周仍存在一定比例無效空洞區(qū)域,其中左側邊緣會出現不同程度的傾斜,上下弧線邊緣和圖像邊界間無像素點。無效區(qū)域的存儲占據大量數據,導致圖像數據冗余,同時也影響視覺體驗,本文采用雙軸線性拉伸算法對圖像可見區(qū)域進行變換,填充空洞區(qū)域。圖8為x軸線性拉伸變換模型,通過x軸線性拉伸校正左邊緣傾斜。
(a)x軸方向校正前圖像 (b)x軸方向校正后圖像圖8 x軸線性拉伸變換模型
S區(qū)域和S′區(qū)域分別為圖像變換前后的可見區(qū)域,對原圖中任意一點P(x,y)在變換后圖像中映射位置為P′(x′,y′),變換公式為(14)~(15),其中,w為圖像寬度,h為圖像高度,θ為融合圖像可見區(qū)域左側邊界與y軸方向的夾角,其正切值可以通過單應性矩陣求得,Il和Ir分別表示θ位于y方向左側和右側的角度集合。
(14)
y=y′.
(15)
x軸方向校正后,對圖像進行y軸方向線性拉伸,將S′區(qū)域像素點填充整個圖像區(qū)域,圖8(b)中A(x′,y1)和B(x′,y2)分別為點P′所在y方向上可見區(qū)域邊界點,對于其上任意一點P′(x′,y′),若其映射到最終結果圖像中點P0(x0,y0),則存在如下變換公式:
x′=x0,
(16)
(17)
為了驗證本文拼接方法的有效性,對本文圖像拼接方法和傳統(tǒng)基于SURF算法的圖像拼接方法進行比對實驗,為了保證比較結果的公平性和準確性,兩種方法采用相同的圖像樣本,在相同的測試環(huán)境下進行實驗。實驗環(huán)境為CPU 11th Gen Intel?CoreTMi7-11370H@3.30GHz,8G內存,操作系統(tǒng)Windows10,64位,編譯環(huán)境為Visual Studio 2013。本文選取多組圖像進行實驗,圖像分辨率為1080×1440像素,不同組圖像在亮度、視野開闊度、場景內容多樣性等方面存在差異,相鄰圖像視角差為30°~60°,重疊區(qū)域約50%。表1為從實驗中選取的6組實驗的實驗數據,其中,a方法表示傳統(tǒng)基于SURF算法的拼接方法,b方法表示本文方法。
表1 兩種拼接方法實驗數據比較
從表1可以看出,相對于傳統(tǒng)基于SURF算法的圖像拼接方法,本文方法的特征點提取時間大大降低,提取速率提升了10倍左右,拼接圖像寬度和高度都有較大程度的縮減,整體圖像尺寸縮減約60%,拼接圖像存儲大小降低了一半左右。同時,采用傳統(tǒng)基于SURF算法的圖像拼接方法拼接得到的圖像具有一定比例的無效區(qū)域,無效像素點占比為20%~30%,本文方法得到的拼接圖像消除了無效區(qū)域,無效像素點數變?yōu)?。以下選取兩組實驗結果進行展示,圖9和圖10分別為表1中第1組和第2組圖像拼接結果,其中(a)圖和(b)圖分別為待拼接的左右相鄰圖像,可以看出,采用傳統(tǒng)基于SURF算法的拼接方法得到的圖像變形程度較大,左右側圖像尺寸不一致,圖像具有較大比例的無效區(qū)域,本文方法拼接得到的圖像整體效果良好,圖像各部分尺寸相對均衡,變形程度低,重疊區(qū)域過渡自然,同時保留了原始圖像全部信息。
(a)原始圖(左) (b)原始圖(右) (c)傳統(tǒng)拼接方法 (d)本文方法圖9 第1組圖像拼接實驗結果
(a)原始圖(左) (b)原始圖(右) (c)傳統(tǒng)拼接方法 (d)本文方法圖10 第2組圖像拼接實驗結果
針對傳統(tǒng)圖像拼接中變形程度大、冗余度高的問題,本文提出了一種基于柱面映射的無損式均勻融合拼接方法,該方法對原始圖像進行柱面映射處理,采用ORB算法進行特征點提取,并對融合后圖像進行雙軸線性拉伸填補空洞區(qū)域。實驗數據表明,本文基于柱面映射的圖像拼接方法能夠得到視野無損失的融合圖像,降低圖像變形程度的同時保留了原圖像全部信息,消除了傳統(tǒng)基于SURF算法的拼接方法的無效區(qū)域,較大程度上降低了圖像數據冗余度。相對于傳統(tǒng)SURF算法,本文算法特征點提取速率更快,同時圖像拼接質量良好,有效提升了融合圖像的視覺效果。
本文提出的基于柱面映射的均勻融合圖像拼接方法能夠有效解決傳統(tǒng)圖像拼接變形程度大以及空洞區(qū)域多的問題,圖像拼接效率較高,拼接得到圖像整體效果較好。與此同時,本文方法也存在著一些不足,對原始左右圖像視角重疊度有一定要求,在拼接圖像融合區(qū)域的邊界處會出現一定程度的裂痕現象,針對較為復雜的內容場景,由拼接方法得到的圖像效果欠佳,這些還需在后續(xù)工作中進一步研究、改進。