許繼陽
(大慶油田信息技術(shù)公司規(guī)劃設(shè)計中心,黑龍江 大慶 163000)
利用視頻技術(shù)對大空間建筑展開消防監(jiān)控,需要將雙目攝像機獲取到的圖像數(shù)據(jù)進行分析處理,從而確定火災(zāi)發(fā)生點。雙目攝像機的優(yōu)勢在于能夠從不同的視角對目標物體進行數(shù)據(jù)獲取,而普通攝像機只能產(chǎn)生平面數(shù)據(jù),只能提供方向數(shù)據(jù),無法提供距離數(shù)據(jù)。雙目攝像機能夠?qū)崿F(xiàn)從二維圖像到三維空間的映射。在這個數(shù)據(jù)處理和映射的過程中,特征點的提取是重要根基之一。當(dāng)火災(zāi)發(fā)生時,系統(tǒng)會首先對火源圖像進行預(yù)處理,提升匹配精度,而后展開特征點的提取和匹配。該領(lǐng)域存在多種算法,應(yīng)用比較廣泛的是尺度不變特征變換(Scale Invariant Feature Transform,SIFT)特征點算法以及其他在此基礎(chǔ)上改進的算法,都是相關(guān)研究人員關(guān)注的重點[1]。
SIFT算法于2004年由M.Brown和D.Lowe等人提出。嚴格來說,這也是一種改進算法,其核心思想是利用高斯差分在圖像中計算出極值點,進一步將對比度偏低以及不穩(wěn)定的極值點剔除,其以極值點的鄰域梯度作為主方向[2]。SIFT算法首先假設(shè)數(shù)字圖像I(x,y)的尺度空間函數(shù)為:
式中:等式右側(cè)第一個部分G函數(shù)為二維高斯函數(shù);σ為尺度因子。則高斯函數(shù)的表達式為:
對于極值點的計算,首先將原始圖像以s倍變化距離進行采樣,建立圖像分層結(jié)構(gòu)。而后依據(jù)式(1)對圖像的每一層用不同尺度因子的高斯函數(shù)計算卷積,得到數(shù)字圖像的高斯金字塔,每一層高斯函數(shù)的尺度因子變化保持k倍。對于一個卷積目標來說,可以用不同尺度的高斯函數(shù)的差和輸入的圖像對其進行卷積,則會進一步形成數(shù)字圖像的高斯差分方程:
高斯函數(shù)的卷積差能夠加速局部極值點的獲取速度。但是獲取到極值點之后,還必須確保其能夠保持穩(wěn)定。為此,需要將樣本像素點放在立體鄰域中進行非最大值的抑制。具體來說,要將中心點與其周圍的18個相鄰像素點展開比較計算,確定出新的極值點并進行標記[3]。
之后,SIFT算法需要剔除不穩(wěn)定的特征點,也就是對于上述獲取到的極值點進行判斷和剔除,主要是將對比度比較低的點和處于邊緣的特征點剔除。
對于對比度比較低的點的剔除,首先在已經(jīng)獲取到的極值點處對尺度空間的生成函數(shù)進行泰勒展開。在精度允許的情況下忽略高次項,可以獲取到:
式中:X=(x,y,σ)T為樣本點偏移標記。可以進一步從式(4)獲取到極值點位置:
如果由式(5)獲取到的值大于0.5,則可以認為偏移量極值與其他樣本點接近,可以用插值代替這個樣本點,獲取到插值估計值:
在剔除邊緣特征點時,通常以極值點作為中心對其鄰域展開采樣,進一步通過式(7)和式(8)來計算樣本點的梯度和方向:
進一步將特征點作為中心,對周圍方向上的像素梯度進行計算。每間隔10°選取一個方向,共計36個方向。獲取到的像素梯度值最大的方向,定為該極值點的主方向。如果存在多個相近值,則該極值點具有多個方向。
在SIFT框架下,特征點描述需要首先將描述子坐標調(diào)整到同特征點一致的位置上,并且以特征點作為中心,對其16×16個像素展開高斯加權(quán),并且將其劃分到4×4像素大小進行采樣。每個樣本包括8個方向信息,對應(yīng)地可以獲取到特征點的128維向量描述。
SURF算法是在SIFT算法基礎(chǔ)上提出的,在速度和魯棒性方面表現(xiàn)更優(yōu),尤其可以改善SIFT算法在面對大量數(shù)據(jù)時耗時過長的問題。SURF算法于2006年由Bay等人提出,能夠保持對數(shù)字圖像的平移、旋轉(zhuǎn)具有不變性,而且環(huán)境中的噪聲也能表現(xiàn)出很好的魯棒性??傮w來說,SURF算法的實現(xiàn)可以分為特征點檢測和特征描述兩步。具體來說,首先對圖像積分,而后與方框濾波進行卷積,獲取到Hessian矩陣,并且將每個點都與其相鄰位置和相鄰尺度上的Hessian值展開比較,最終獲取到極值點[5]。
在圖像積分環(huán)節(jié),SURF算法通過積分在原始圖像的基礎(chǔ)上獲取到新的圖像。新的圖像上的像素點,其值為原圖上對應(yīng)點與原點組成的矩陣區(qū)域的像素值之和。這個環(huán)節(jié)是SURF能夠?qū)崿F(xiàn)快速運算的根本所在。
對于原始圖像上的某一點p(x,y)而言,p的積分圖像可以用式(9)進行表達:
式中:I(i,j)即為對應(yīng)點的像素值。通過對原始圖像進行積分,原始圖像中的任何一個矩形區(qū)域的像素都可以通過加工之后圖像上的像素加減獲取到。在此基礎(chǔ)之上,SURF進一步用方框濾波器的方法展開特征點檢測,來實現(xiàn)對于高斯函數(shù)的近似代替。
在SURF計算體系下,圖像尺寸保持一定,通過對圖像進行分層,建立起圖像尺度空間,在不同的空間上展開特征點的檢測[6]。具體來說,維持原始圖像不變,用方框濾波器的大小對積分圖像展開濾波,并且獲得圖像的尺度空間。之后仍然用Hessian矩陣進行特征點的計算,對圖像進行積分,并且建立起圖像的尺度空間,針對空間上每一層圖像用Hessian矩陣計算極值點。對于圖像中的任一點(x,y),有對應(yīng)的尺度空間,其尺度標記為σ,則Hessian矩陣為:
式中:Lxx、Lyy以及Lxy分別為對應(yīng)像素點和高斯濾波二階偏導(dǎo)卷積的計算結(jié)果。如果用方框濾波模板和原始圖像的卷積對其進行近似代替,即將初始方框濾波器與σ=1.2的高斯二階偏導(dǎo)近似,則Hessian矩陣行列式變換為:
式中:Dxx、Dyy以及Dxy分別表示上述用來近似代替Lxx、Lyy以及Lxy的卷積;并且將權(quán)重系數(shù)記為,通常取值0.9。而后對Hessian矩陣行列式進行計算,當(dāng)其超過限定閾值時,則可以確定該點是否為極值點,方法同樣是將該點與鄰域8個點以及空間環(huán)境中的18個點進行非極大值抑制,如果該點比其鄰域中的點響應(yīng)值都大,則可以確定該點為特征點。而后進一步進行空間插值,獲取特征點的具體位置和尺度值。
完成上述工作之后,即可展開特征點描述,具體包括兩個環(huán)節(jié)的主要任務(wù)。
第一,需要計算特征點主方向。這主要是為了落實特征點匹配具有旋轉(zhuǎn)不變性的特征,即要求以上面已經(jīng)獲取到的特征點作為中心,以6 s這一尺度值作為半徑的區(qū)域中,計算像素點在x和y兩個方向的哈爾小波響應(yīng)值,并且依據(jù)歐氏距離給出對應(yīng)的權(quán)值系數(shù),對響應(yīng)值進行加權(quán)計算且進一步采用直方圖統(tǒng)計。以特征點作為中心,從x軸方向開始,對區(qū)域內(nèi)60°范圍內(nèi)的哈爾小波響應(yīng)值求和,獲取到一個新的矢量,而后每5°重復(fù)該操作,獲取到一個包含有72個矢量的群落,該群落中最長矢量方向即標記為該特征點的主方向。
第二,展開特征向量的確定。與SIFT算法類似,通過上述操作能夠獲取到兩幅圖像的特征點及其位置和尺度值。要正確匹配特征點,還需要進一步對其展開描述,這是有效提升特征點匹配率的重要環(huán)節(jié)。然而,SURF和SIFT兩種算法仍然存在很大差異。SURF算法以特征點作為原點并且選擇其周邊鄰域,將該區(qū)域內(nèi)圖像主方向旋轉(zhuǎn)到與特征點一致的角度,進一步將該鄰域劃分成為16個子區(qū),每個區(qū)大小約為5 s×5 s,計算圖中每個像素點在x和y軸兩個方向上的哈爾小波響應(yīng)值,分別記為dx以及dy,對該結(jié)果進行高斯加權(quán)來增加特征點魯棒性。之后對區(qū)域內(nèi)所有點的響應(yīng)值求和,分別記為Σdx和Σdy,進一步對其絕對值進行求和,分別標記為Σ|dx|和Σ|dy|,即可以與前述兩個值形成4維描述向量,即(Σdx,Σdy,Σ|dx|,Σ|dy|)。則 16 個子區(qū)會產(chǎn)生一個16*4的特征描述向量。
從這一計算過程可以看到,SURF算法利用積分特征來實現(xiàn)運算速度的有效提升,既保持了尺度不變,也實現(xiàn)了平移、旋轉(zhuǎn)等不變形,在魯棒性方面有良好保持。
在消防體系中,要實現(xiàn)自動化系統(tǒng)的構(gòu)建,特征點的提取是基本工作之一??傮w來說,特征點的有效、快速確定,是攝像機自標定準確程度和工作效率的直接影響因素,因此必須給予充分關(guān)注,才能發(fā)現(xiàn)問題,不斷改進。