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