白艷玲
(鄭州鐵路職業(yè)技術(shù)學(xué)院軟件學(xué)院,河南鄭州451460)
現(xiàn)階段主要依靠人工方式檢測和排除礦山井筒設(shè)施故障[1]。隨著計(jì)算機(jī)圖像處理技術(shù)的飛速發(fā)展,基于礦山井筒視頻場景實(shí)時拼接的故障點(diǎn)智能檢測技術(shù)日漸得到研究和應(yīng)用[2]。為對礦山井筒故障進(jìn)行有效檢測,有必要首先對井筒視頻圖像進(jìn)行精確配準(zhǔn)[3-4]。目前,主要有基于灰度信息、基于優(yōu)化策略、基于特征的圖像配準(zhǔn)算法,其中基于灰度信息的配準(zhǔn)算法實(shí)現(xiàn)簡單,但計(jì)算量巨大,對于非線性形變的井筒視頻圖像配準(zhǔn)效果不理想;基于優(yōu)化策略的配準(zhǔn)算法可以對待搜尋區(qū)域的所有點(diǎn)進(jìn)行搜尋,但計(jì)算量大;基于特征的配準(zhǔn)算法盡管效果較好,但不具備旋轉(zhuǎn)縮放不變特性[5-7]。Sift算法和Harris角點(diǎn)檢測算法為2種典型的基于特征的配準(zhǔn)算法。其中,Sift算法運(yùn)算復(fù)雜、處理速度極慢,對于寬幅影像,難以進(jìn)行處理或進(jìn)行實(shí)時應(yīng)用[8-9]。Harris角點(diǎn)檢測算法由于計(jì)算簡單,不易遭受光照、旋轉(zhuǎn)、噪聲影響,可以有效彌補(bǔ)Sift算法的不足[10]。因此,本研究對Sift算法進(jìn)行適當(dāng)改進(jìn),并用于井筒視頻圖像實(shí)時配準(zhǔn)。
Sift算法作為一種以特征為基礎(chǔ)的配準(zhǔn)方法,包括特征點(diǎn)提取及精確定位、描述子生成及相似性度量匹配等步驟,具體實(shí)現(xiàn)流程如圖1所示。
(1)特征點(diǎn)提取及精準(zhǔn)定位。Sift算法采用高斯核函數(shù)實(shí)現(xiàn)圖像尺度變化,計(jì)算圖像與不同尺度空間的高斯差分圖像形成DoG形式的金字塔結(jié)構(gòu)[11-12]。對金字塔結(jié)構(gòu)的尺度空間進(jìn)行局部極值檢測時,可將每個像素點(diǎn)與同一層相鄰的8個像素點(diǎn)以及上下層18個相鄰像素點(diǎn)進(jìn)行比較,從而確定極值像素點(diǎn)。在尺度空間上,進(jìn)行DoG算子的泰勒級數(shù)展開,進(jìn)而對關(guān)鍵點(diǎn)的位置和尺度進(jìn)行精確定位。
(2)構(gòu)造描述子并進(jìn)行特征匹配。為保證特征點(diǎn)滿足旋轉(zhuǎn)和縮放不變要求,采用每個關(guān)鍵點(diǎn)周圍鄰域的梯度模值及方向進(jìn)行特征描述。即:首先對坐標(biāo)軸進(jìn)行旋轉(zhuǎn),依據(jù)關(guān)鍵點(diǎn)的方向、尺度以及位置,以特征點(diǎn)為中心,選取周圍1個大小為16×16區(qū)域,將該區(qū)域劃分為4個大小均等的小區(qū)域,并對每個小區(qū)域進(jìn)行計(jì)算,形成梯度直方圖。Sift算法一般采用最鄰近距離法進(jìn)行特征匹配,該方法根據(jù)最近鄰特征點(diǎn)與次鄰近特征點(diǎn)的歐氏距離比值實(shí)現(xiàn)特征點(diǎn)匹配,而后基于RANSAC算法提取匹配點(diǎn),消除誤匹配點(diǎn),提高匹配精度。
為有效克服Sift算法的缺陷,本研究利用Harris角點(diǎn)檢測方法對Sift算法進(jìn)行改進(jìn),結(jié)合Forstner算子進(jìn)行角點(diǎn)精確定位,并利用Ransac法和隨機(jī)K-D樹完成特征點(diǎn)匹配。
1.2.1 基于Harris角點(diǎn)檢測的Sift算法改進(jìn)
本研究采用多尺度Harris角點(diǎn)檢測方法改進(jìn)Sift算法,根據(jù)尺度信息的Harris角點(diǎn)并結(jié)合8鄰域相似像素?cái)?shù)目,在運(yùn)算前剔除非角點(diǎn);而后計(jì)算目標(biāo)像素點(diǎn)與相鄰8鄰域內(nèi)像素點(diǎn)灰度差絕對值,通過設(shè)定閾值,并與計(jì)算獲得的灰度差絕對值進(jìn)行比較,確定Harris角點(diǎn)。
1.2.2 基于Forstner算子的角點(diǎn)定位
Forstner算子具有精度高、運(yùn)算速度快的特點(diǎn),基本思想為獲得候選點(diǎn),以此為中心,構(gòu)建最佳窗口,并對最佳窗口內(nèi)通過每個像素的邊緣直線進(jìn)行加權(quán)中心化處理,從而進(jìn)行精確定位。若基于Sift算法獲得的角點(diǎn)滿足Forstner算子的最佳窗口中心點(diǎn)要求,可將其作為最佳窗口中心點(diǎn),并對其進(jìn)行加權(quán)中心化處理和精確定位。最佳窗口內(nèi)任一像素點(diǎn)(x,y)所在的邊緣直線可表示為
式中,ρ為坐標(biāo)原點(diǎn)(最佳窗口左上角的像素)與直線的垂直距離;θ為梯度角,θ=arctan(gxgy),gx、gy為像素點(diǎn)(x,y)的Robert梯度。
設(shè)角點(diǎn)坐標(biāo)為(x0,y0),v為像素點(diǎn)(x,y)到直線的垂直距離,則像素點(diǎn)(x,y)處的誤差方程為
將坐標(biāo)原點(diǎn)到邊緣直線的距離ρ視為觀測值,邊緣直線保持方向不改變,對上式法化,可得:
求解式(3),即可獲得角點(diǎn)坐標(biāo)(x0,y0)。
1.2.3 基于KD樹算法的特征點(diǎn)搜索
對于Sift算法,特征描述完畢后,需要進(jìn)行特征點(diǎn)匹配,即尋找到2幅影像中特征點(diǎn)之間的對應(yīng)關(guān)系。由于Sift描述子具有高維特點(diǎn),本研究采用隨機(jī)KD樹算法進(jìn)行搜索,即首先生成m個具有不同結(jié)構(gòu)的KD樹,并在搜索階段,基于統(tǒng)一優(yōu)先隊(duì)列,對多個隨機(jī)KD樹進(jìn)行搜索,完成后獲得初始最近鄰候選點(diǎn),并對所有候選點(diǎn)通過1個隊(duì)列統(tǒng)一進(jìn)行節(jié)點(diǎn)排序[11-12]。
1.2.4 參數(shù)求解
為滿足圖像旋轉(zhuǎn)、平移、縮放變換等要求,本研究采用基于8參數(shù)的投影變換模型進(jìn)行處理。圖像投影變換含有8個未知參數(shù),需要至少4對特征點(diǎn)構(gòu)建方程組方可求解相關(guān)參數(shù)。為此,本研究首先采用RANSAC算法進(jìn)行特征點(diǎn)提取,消除錯誤的匹配點(diǎn);然后構(gòu)建誤差方程,基于最小二乘法進(jìn)行參數(shù)求解。
本研究井筒圖像來源于山西潞安某煤礦視頻監(jiān)控系統(tǒng),采用3組采樣頻率為150幀的圖像進(jìn)行算法測試。為確保圖像旋轉(zhuǎn)單一性以及穩(wěn)定性,在礦山井筒視頻圖像采集過程中,相鄰幀不具有旋轉(zhuǎn)變化特征,僅在水平以及垂直位移方面產(chǎn)生微小尺度變化。為詳細(xì)測試本研究改進(jìn)Sift算法的性能,分別從匹配精度、功耗、耗時等方面與Sift算法進(jìn)行對比分析。2種算法在CPU為2.4 G雙核、內(nèi)存為4 G的PC機(jī)程序上運(yùn)行。相比于攝像機(jī),礦山井筒內(nèi)纜繩固定不動,故而本研究中纜繩匹配可忽略,試驗(yàn)結(jié)果見圖2~圖4以及表1~表3所示。
分析表1可知:試驗(yàn)次數(shù)一定時,Sift算法在匹配對數(shù)為125時,匹配準(zhǔn)確率高達(dá)89%以上;匹配對數(shù)為70時,精確度最低,低于80%,不利于大范圍應(yīng)用;改進(jìn)的Sift算法在匹配對數(shù)為70時,匹配精度最高,大于98%;匹配對數(shù)為125時,準(zhǔn)確率最低,大于96%。
由表2可知:在相同試驗(yàn)次數(shù)條件下,Sift算法的匹配能耗最高為108 J,最低為74 J,整體均值約為87.8 J;改進(jìn)Sift算法的匹配能耗最高為66 J,最低為60 J,整體均值約63.1 J。
由表3分析可知:5次試驗(yàn)中,采用Sift算法對3組圖像進(jìn)行匹配的平均耗時為5.6 s,采用改進(jìn)Sift算法對3組圖像進(jìn)行匹配時,平均耗時僅為3.5 s。
為實(shí)現(xiàn)礦山井筒圖像實(shí)時精確配準(zhǔn),提出了一種改進(jìn)型Sift配準(zhǔn)算法,該算法以Harris角點(diǎn)檢測代替Sift算法的極值檢測部分,采用Forsnter算子對提取點(diǎn)進(jìn)行精確定位,利用Sift算法的特征描述方式對提取點(diǎn)進(jìn)行描述,并利用Ransac法和隨機(jī)K-D樹完成特征點(diǎn)匹配。試驗(yàn)表明,相對于Sift算法,改進(jìn)Sift算法在匹配精度、匹配功耗、匹配耗時等方面均有一定的優(yōu)勢。