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