馮卓明+彭夢琳



摘 要:隨著計算機技術的飛速發展,計算機視覺得到了廣泛應用,并且已經越來越接近人眼的認知水平。提出了一種全景視頻監控系統模型,使用同步鏡頭實時采集圖像幀,將相應圖像拼接出全景圖像。研究了基于特征點檢測的圖像拼接算法——surf算法,在實際應用中對特征點描述符方式進行改進,實驗結果表明,在使用改進surf算法后,拼接效率明顯改善,提高了實時播放應用的實用價值。
關鍵詞:全景視頻;視頻拼接技術;surf算法
DOIDOI:10.11907/rjdk.171263
中圖分類號:TP317.4
文獻標識碼:A 文章編號文章編號:1672-7800(2017)008-0193-03
0 引言
傳統的視頻監控系統使用多個相機拍攝,然后每個監控屏幕依次排列,對應監控場景的各個角落,在觀測時很不直觀[1-2]。本文旨在選取一種全景圖像拼接算法,并將其應用于基于多投影儀的全景視頻監控系統。全景視頻智能拼接系統模型如圖1所示,系統由監控中心和各分布式攝像頭組成,分布式攝像頭拍攝各角度的視頻,并將其發送到監控中心,在監控中心進行智能拼接,然后在多媒體設備上連續顯示出來,供控制人員觀看。
1 全景視頻拼接算法分析
隨著計算機技術的快速發展,視頻拼接算法已經有了一定的研究成果[3-6],本文對surf算法進行了研究,并在實際應用中修改了surf算法描述符生成方法,提高了拼接效率,實現了實時播放功能。
1.1 surf算法
surf (Speeded Up Features)是Herbert Bay提出的一種特征點檢測算法,分為4步進行:
(1)尺度空間極值點的檢測。surf算法是基于Hessian矩陣找到極值點作為特征點,同時在找極值點的過程中采用了許多加速運算量的方法,因此surf在一定程度上提高了運算速度。定義圖像中某個點的Hessian矩陣為:
H(x,y,z)=Lxx(x,y,σ) Lxy(x,y,σ)Lxy(x,y,σ) Lyy(x,y,σ)(1)
其中,Lxx(x,y,σ)是高斯二階偏導在該像素點處與圖像的卷積。
SURF方法將此高斯二階梯度模板用盒模型近似表示,即圖像進行離散化且進一步剪裁為9*9的方格, Hessian矩陣在檢測圖像的特征點時是通過計算圖像中所有像素的Hessian矩陣的行列式得到的。因此,通過Hessian矩陣所得到的極值點就是特征點。
(2)特征點的精確定位。在每個候選特征點上,使用泰勒級數插值擬合方法用于確定特性點的位置和尺度。而特征點的最后選取依賴其穩定程度。
(3)選取特征點的主方向。surf算法通過統計特征點區域內的哈爾小波特征選取特征點的主方向。
(4)特征點的描述算子。首先,以特征點為中心,建立以20s(s為特征點所在的尺度)為邊長的正方形鄰域,但建立的這個正方形鄰域的方向要求與該特征點的主方向相同。然后將這個鄰域劃分為4*4的子區域,并且在每個子區域內等間隔采樣出25個采樣像素。
接下來需要對每個子區域內的每個像素點的水平和垂直與主方向的哈爾小波特征值進行求解,每個區域內的哈爾小波特征為水平方向之和、水平方向模值之和、垂直方向之和以及垂直方向模值之和,如圖2所示。這里同樣需要對每個像素點的哈爾響應值進行加權處理,取方差為3.3s。這樣,每個子區域就可以用一個四維矢量表示。
因此,每個特征點就可以用一個16*4 = 64維向量表示,此64維特征向量即為該特征點的描述子。
1.2 surf算法的不足
由于計算機是用二值化的形式對數據進行存儲和傳輸,對定點數的計算性能要遠遠優于浮點數據。并且在大量浮點運算時還需要增加FPU單元以提升速度,這樣還會增加硬件成本。在實際生產應用中,需要針對這一特性對算法進行優化。
surf方法性能優異,但它在實時應用中仍存在待改進之處,一個主要的原因就是特征點的描述符結構較復雜。目前,改進描述符的方法有降低維數和浮點型用整型替代,而更徹底的方法就是直接把描述符縮短為二值化的位字符串形式。
2 surf算法改進及實現
本文基于brief算法二值化描述的思想,在surf算法進行圖像拼接時,對特征點描述算子的生成方法進行改進。
2.1 BRIEF算法簡介
BRIEF算法是將特征點用二值化的位字符串形式描述,這樣用漢明距離(Hamming)就可以更快地測量兩個描述符的相似程度,方法是按位進行異或位操作,結果中“1”的數量越多,兩個描述符的相似性越差。
簡化描述符方法是:在獲取到特征點序列后,以每個特征點為中心定義一個大小為S×S的補丁(patch)區域;然后在該區域內,在固定的位置選擇nd個像素點對;再比較像素點對的灰度值,并按式(2)取得二值化比較結果:
bi=1 I(pi)
I(pi)和I(qi)分別表示第i個像素點對的兩個像素pi和qi的灰度值。取到若干字節數的二值化比較值后,把補丁區域內所有點對的比較結果串成一個二值位字符串的形式,就形成了該特征點的描述符B,如式(3)所示。
B=b0b1…bi…bnd(3)
依序取得所有特征點的描述符,排列成描述符序列,用于后續的圖像匹配。
2.2 surf描述方法的二值化改進
surf算法流程如圖3所示。
根據surf算法流程可以看到,在計算描述符的過程中,經過兩次遍歷后進行了高維度的哈爾小波響應計算。surf算法的特征點檢測和特征點描述是可以自定義使用的。因此,可以將surf算法中特征點描述算子映射成二值化的形式,保留原始信息。改進后的算法流程如圖4所示。
根據改進surf算法流程圖可以看出,經過一次遍歷。與原來的算法相比,循環次數是相同的。但是高維度哈爾小波計算涉及浮點數據的乘方開方運算和三角函數計算,其計算開銷遠遠大于二值比較計算的開銷。因此,改進surf算法能夠提高拼接速度。
3 仿真結果及分析
為了驗證改進SURF算法的優化效果,拍攝了多組圖片進行實時仿真,在拼接圖像的同時記錄程序運行時間,試驗仿真環境是基于Windows10操作系統的Visual Studio2010 以及openCV2.4.7環境,硬件配置是Intel i7四核處理器,內存為4G RAM。
圖4為原始輸入圖像,圖5為使用surf算法拼接得到的輸出圖像,圖6為使用改進surf算法得到的輸出圖像。 從實驗拼接結果來看,兩種方法所拼接的效果圖相差不大。本文進行了六組實驗,結果如表1所示。
根據實驗結果可以看出,描述符生成時間與特征點的個數趨近于線性關系,而對于相同數量的特征點,使用改進surf算法,能夠將描述符生成時間縮短到原來的20%左右,并且不會增加其它環節的時間開銷,從而穩定提升了整體拼接速度。因此,在實時播放場景中,使用改進surf算法,能夠更快速地獲取全景視頻,提升監控人員的視覺體驗。
4 結語
本文研究的全景視頻拼接技術,利用多個鏡頭拍攝取代全景攝像頭,節約了硬件成本,并且能夠實時地將拼接后的視頻播放出來,可作為全景實時監控的一種有效方法。
但實時場景中,改進SURF算法仍然有其局限性,因為它是斑點類檢測算法,適合于紋理鮮明的圖像,對于紋理不明顯的物體,例如光滑的桌面等這些沒有明顯斑點的圖像拼接就沒有明顯優勢,這時就要考慮使用角點檢測算法檢測桌面邊界。因此,設計實時全景視頻系統,除了對算法進行優化處理,還要考慮實際場景下的算法選取,場景的特征判斷主要在于是斑點還是角點,如何智能地對其進行識別,則有待進一步研究。
參考文獻:
[1] 譚秀峰.基于全景視頻的監控系統[J].現代計算機,2016(1):33-36.
[2] 盧斌.基于多視全景視頻技術的研究[D].杭州:中國計量大學,2012.
[3] 吳冬艷.基于視頻內容的全景拼接技術研究[D].杭州:浙江工業大學,2013.
[4] 劉奇,何明一.基于SURF特征匹配的圖像拼接算法[J].測控技術,2010,29(10):27-31.
[5] 漆馳,劉強,孫家廣.攝像機圖像序列的全景圖像拼接[J].計算機輔助設計與圖形學報,2001,13(17):605-609.
[6] 楊磊.全景圖像自動拼接算法的優化設計[J].紅外與激光工程,2014(3):985-990.endprint