龔云, 楊龐彬, 頡昕宇
(西安科技大學(xué) 測(cè)繪科學(xué)與技術(shù)學(xué)院, 陜西 西安 710054)
隨著計(jì)算機(jī)、通信等技術(shù)的發(fā)展,煤礦的自動(dòng)化、智能化水平得到了極大提升[1]。目前,我國(guó)大多數(shù)煤礦都安裝了視頻監(jiān)控系統(tǒng),但由于井下巷道狹長(zhǎng)及光照、粉塵等影響,攝像機(jī)視野范圍有限,存在監(jiān)控盲區(qū)[2-3]。通過(guò)圖像拼接技術(shù)可將多個(gè)攝像機(jī)拍攝的圖像拼接成全景圖,從而改善監(jiān)控效果,為后續(xù)數(shù)據(jù)分析和處理打下基礎(chǔ)[4]。圖像拼接的核心問(wèn)題是準(zhǔn)確找到待拼接圖像的重疊區(qū)域,即圖像匹配。
現(xiàn)有的圖像匹配方法可分為基于灰度的匹配方法和基于特征的匹配方法[5]?;诨叶鹊钠ヅ浞椒ù嬖趯?duì)圖像尺度敏感、時(shí)間復(fù)雜度高等缺點(diǎn),匹配精度往往較低?;谔卣鞯钠ヅ浞椒▽?duì)圖像幾何信息和光照變化的魯棒性較強(qiáng)且速度更快,因此得到了廣泛應(yīng)用[6]。基于特征的匹配方法主要采用尺度不變的特征變換(Scale Invariant Feature Transform,SIFT)[7]、加速穩(wěn)健特征(Speeded Up Robust Features,SURF)[8]、KAZE[9]及加速KAZE(Accelerated-KAZE,AKAZE)[10]等算法進(jìn)行特征提取。其中SIFT算法和SURF算法通過(guò)高斯差分函數(shù)構(gòu)造尺度空間,易造成邊界模糊和細(xì)節(jié)丟失。AKAZE算法通過(guò)非線性擴(kuò)散濾波構(gòu)造尺度空間,相較于SIFT算法和SURF算法,能夠局部自適應(yīng)濾除邊緣細(xì)節(jié),同時(shí)保留目標(biāo)邊界。本文采用AKAZE算法進(jìn)行特征提取。
由于井下光照不均勻,從井下圖像中提取的特征信息較少,且圖像中過(guò)暗區(qū)域和過(guò)亮區(qū)域的邊緣細(xì)節(jié)和局部紋理特征會(huì)在構(gòu)造相同尺度空間時(shí)被平滑掉,造成匹配錯(cuò)誤的現(xiàn)象。因此,本文在采用AKAZE算法構(gòu)造尺度空間之前,通過(guò)同態(tài)濾波對(duì)圖像進(jìn)行銳化,以突出圖像的邊緣細(xì)節(jié)信息;為進(jìn)一步提高圖像的對(duì)比度,采用一種限制對(duì)比度的自適應(yīng)直方圖均衡化(Contrast Limited Adaptive Histgram Equalization, CLAHE )算法[11]對(duì)圖像進(jìn)行處理。
傳統(tǒng)的AKAZE算法采用漢明距離作為相似性測(cè)度,并結(jié)合最近鄰距離比率(Nearest Neighbor Distance Ratio, NNDR)約束剔除錯(cuò)誤匹配點(diǎn),但人為設(shè)定的距離比率約束會(huì)使部分正確匹配點(diǎn)被丟棄,從而影響匹配效果[12]。針對(duì)該問(wèn)題,本文采用漢明距離作為相似度測(cè)度進(jìn)行粗匹配,并采用基于單應(yīng)性矩陣的隨機(jī)采樣一致性(Random Sample Consensus, RANSAC)算法剔除錯(cuò)誤匹配點(diǎn)對(duì),以提高匹配準(zhǔn)確率。
同態(tài)濾波器作為一種非線性濾波器,通過(guò)傅里葉變換、對(duì)數(shù)變換等數(shù)學(xué)運(yùn)算,采用線性濾波方法處理AKAZE算法構(gòu)造尺度空間時(shí)的非線性問(wèn)題。
同態(tài)濾波是根據(jù)圖像的照射-反射模型提出的。設(shè)圖像坐標(biāo)為(x,y),圖像密度函數(shù)f(x,y)可表示為照度分量i(x,y)與反射分量r(x,y)的乘積,即
f(x,y)=i(x,y)r(x,y)
(1)
對(duì)式(1)進(jìn)行對(duì)數(shù)變換,得
lnf(x,y)=lni(x,y)+lnr(x,y)
(2)
對(duì)式(2)進(jìn)行傅里葉變換,得
F(u,v)=I(u,v)+R(u,v)
(3)
式中F(u,v),I(u,v),R(u,v)為經(jīng)過(guò)傅里葉變換后的圖像密度函數(shù)、照射分量和反射分量。
采用同態(tài)濾波傳遞函數(shù)H(u,v)對(duì)式(3)中的照射分量與反射分量進(jìn)行增強(qiáng),并通過(guò)傅里葉逆變換將圖像密度函數(shù)、照射分量和反射分量變換到空間域:
hf(x,y)=hi(x,y)+hr(x,y)
(4)
式中hf(x,y),hi(x,y),hr(x,y)分別為空間域的圖像密度函數(shù)、照射分量和反射分量。
對(duì)式(4)進(jìn)行對(duì)數(shù)變換,得到濾波后的圖像g(x,y):
g(x,y)=exp|hi(x,y)|·exp|hr(x,y)|
(5)
圖像的照射分量屬于低頻分量,而反射分量屬于高頻分量。因此,設(shè)計(jì)同態(tài)濾波傳遞函數(shù)時(shí),需兼顧低頻分量和高頻分量。同態(tài)濾波傳遞函數(shù)波形如圖1所示。其中,D(u,v)表示傳遞函數(shù)頻率到濾波器中心D0的距離,Zh為高頻增益,Zl為低頻增益。
圖1 同態(tài)濾波傳遞函數(shù)波形Fig.1 Waveform of homomorphic filter transfer function
由于同態(tài)濾波傳遞函數(shù)波形與高斯型高通濾波函數(shù)波形類似,所以常用高斯型高通濾波函數(shù)作為同態(tài)濾波傳遞函數(shù)。但傳統(tǒng)的高斯型同態(tài)濾波傳遞函數(shù)存在多個(gè)參數(shù),且參數(shù)的選擇較為經(jīng)驗(yàn)化[13],因此,本文采用單參數(shù)同態(tài)濾波傳遞函數(shù)[14]:
(6)
式中α為調(diào)節(jié)參數(shù)。
在新的傳遞函數(shù)中,只存在一個(gè)調(diào)節(jié)參數(shù)α,可提高參數(shù)的可調(diào)性。
經(jīng)同態(tài)濾波處理后的圖像清晰度得到了提高,但圖像的整體對(duì)比度不夠理想。傳統(tǒng)的直方圖均衡化是一種全局算法,沒(méi)有充分考慮圖像細(xì)節(jié)信息。由于井下光照不均,對(duì)圖像整體進(jìn)行直方圖均衡化會(huì)導(dǎo)致過(guò)亮區(qū)域或過(guò)暗區(qū)域的細(xì)節(jié)丟失。因此,本文采用CLAHE算法,使得圖像像素灰度間距拉開(kāi),以改善視覺(jué)效果,達(dá)到圖像增強(qiáng)的目的。
CLAHE算法是在直方圖均衡化的基礎(chǔ)上,通過(guò)抑制部分灰度級(jí)被過(guò)多合并所引起的噪聲放大和局部對(duì)比度增強(qiáng)的現(xiàn)象,以提高圖像的對(duì)比度,使圖像更加生動(dòng)、清晰。CLAHE算法的具體步驟如下:
(1) 將圖像分為多個(gè)子區(qū)域,每個(gè)子區(qū)域內(nèi)像素點(diǎn)的個(gè)數(shù)為NsubI(0≤NsubI≤85),直方圖為l(k)(k為灰度級(jí),0≤k≤L-1,L為最大灰度級(jí))。
(2) 對(duì)每個(gè)子區(qū)域內(nèi)的直方圖進(jìn)行剪切,剪切閾值為
(7)
式中C為決定圖像對(duì)比度的常量。
(3) 采用閾值δ對(duì)每個(gè)子區(qū)域內(nèi)圖像的直方圖l(k)進(jìn)行剪切,將超出閾值的像素點(diǎn)重新均勻分布到其他子區(qū)域的直方圖中(圖2)。超出閾值的像素點(diǎn)個(gè)數(shù)Ntotal為
(8)
圖2 直方圖剪切Fig.2 Histogram clipping
(4) 通過(guò)對(duì)比度受限函數(shù)對(duì)圖像對(duì)比度增強(qiáng)的程度進(jìn)行限制,得到最終的圖像直方圖l′(k):
(9)
μ=δ-Nsub
(10)
Nsub=Ntotal/L
(11)
式中:μ為分配閾值;Nsub為每個(gè)子區(qū)域增加的平均像素點(diǎn)數(shù)。
針對(duì)傳統(tǒng)AKAZE算法存在誤匹配的問(wèn)題,在采用暴力匹配算法進(jìn)行粗匹配的基礎(chǔ)上,采用基于單應(yīng)性矩陣的RANSAC算法剔除錯(cuò)誤匹配點(diǎn)對(duì),以提高匹配準(zhǔn)確率。
采用非線性擴(kuò)散濾波構(gòu)造金字塔形狀的尺度空間,通過(guò)非極大值抑制方法確定特征點(diǎn)位置,再通過(guò)以下步驟實(shí)現(xiàn)特征點(diǎn)匹配:
(1) 采用K近鄰算法檢測(cè)出目標(biāo)特征點(diǎn)的最近鄰點(diǎn)和次近鄰點(diǎn),并計(jì)算目標(biāo)特征點(diǎn)與最近鄰點(diǎn)和次近鄰點(diǎn)的漢明距離d(a,b):
(12)
式中:a,b為特征點(diǎn)描述符,a=p1p2…p512,b=q1q2…q512;pj,qj為二進(jìn)制編碼;⊕表示異或運(yùn)算。
(2) 利用漢明距離作為相似度測(cè)度,采用暴力匹配算法對(duì)所有特征點(diǎn)進(jìn)行粗匹配,獲取高質(zhì)量的粗匹配點(diǎn)對(duì)。暴力匹配算法可通過(guò)直接調(diào)用openCV庫(kù)中的函數(shù)實(shí)現(xiàn)。
(3) 采用基于單應(yīng)性矩陣的RANSAC算法剔除錯(cuò)誤匹配點(diǎn)對(duì)。RANSAC算法原理是在一組存在外點(diǎn)的數(shù)據(jù)集中,利用連續(xù)循環(huán)迭代的方法尋求最優(yōu)參數(shù)模型(即最佳單應(yīng)性矩陣),剔除不符合最優(yōu)模型的點(diǎn)對(duì)(即外點(diǎn)),得到提純后的精準(zhǔn)匹配點(diǎn)對(duì)(即內(nèi)點(diǎn))。
基于單應(yīng)性矩陣的RANSAC算法步驟如下:
(1) 假設(shè)在目標(biāo)圖像與待匹配圖像中存在對(duì)應(yīng)點(diǎn)對(duì)(x,y,1)和(x′,y′,1),則有
(13)
式中M為單應(yīng)性矩陣。
將式(13)展開(kāi)后可得到3個(gè)等式,通過(guò)代換可得
(14)
在矩陣M中,m33一般設(shè)為1,剩余8個(gè)未知參數(shù),至少需要4組匹配點(diǎn)對(duì)才能求解,矩陣M計(jì)算公式為
(15)
(2) 利用矩陣M計(jì)算所有特征點(diǎn)對(duì)的投影誤差,若投影誤差小于閾值ε(本文設(shè)為5),則保留該單應(yīng)性矩陣M。
(16)
(3) 隨機(jī)獲取4組匹配點(diǎn)對(duì),反復(fù)進(jìn)行上述2步。若發(fā)現(xiàn)投影誤差更小的矩陣,則保留該矩陣。
(4) 當(dāng)將所有匹配點(diǎn)對(duì)隨機(jī)選取完后,確定出投影誤差最小的矩陣,即最佳單應(yīng)性矩陣。將所有匹配點(diǎn)對(duì)代入式(13)中,若滿足該等式,則將匹配點(diǎn)加入內(nèi)點(diǎn)集合,反之視為外點(diǎn)進(jìn)行剔除。
以基于Microsoft Visual Studio 2019的OpenCV 4.5.1計(jì)算機(jī)視覺(jué)庫(kù)和Matlab R2016a為實(shí)驗(yàn)平臺(tái),采用SONY A6000相機(jī)所拍攝的3組井下照片進(jìn)行實(shí)驗(yàn)分析。對(duì)原圖像進(jìn)行單參數(shù)同態(tài)濾波并采用CLAHE算法處理,將處理后的圖像與原圖像進(jìn)行對(duì)比分析,如圖3所示??梢?jiàn),經(jīng)本文算法處理后,圖像的細(xì)節(jié)更加突出,且整體對(duì)比度得到提高,圖像更為生動(dòng)。
為進(jìn)一步說(shuō)明圖像增強(qiáng)效果,以第1幅圖像為例,對(duì)原圖像和處理后圖像的灰度直方圖進(jìn)行對(duì)比,如圖4所示??梢钥闯觯褂脝螀?shù)同態(tài)濾波和CLAHE算法對(duì)圖像進(jìn)行增強(qiáng),可拉伸圖像的灰度級(jí),減少暗像元數(shù)量,增加亮像元數(shù)量,使得灰度級(jí)分布更加平滑,有利于保留圖像的細(xì)節(jié)和邊界信息。
采用傳統(tǒng)的SURF算法、AKAZE算法及本文算法進(jìn)行實(shí)驗(yàn),3種算法檢測(cè)到的特征點(diǎn)數(shù)量見(jiàn)表1。可見(jiàn),SURF算法檢測(cè)出的特征點(diǎn)最少,本文算法檢測(cè)出的特征點(diǎn)最多。
圖3 圖像增強(qiáng)效果Fig.3 Image enhancement effect
圖4 灰度直方圖對(duì)比Fig.4 Grayscale histogram comparison
表1 各算法特征點(diǎn)檢測(cè)數(shù)量Table 1 Number of feature points detected by each algorithm
3種算法的圖像匹配效果如圖5所示。由圖5可以直觀地看出,SURF算法檢測(cè)出的特征點(diǎn)過(guò)于稀少,AKAZE算法雖然可以檢測(cè)出較多特征點(diǎn),但特征點(diǎn)質(zhì)量不佳,匹配結(jié)果不理想。本文算法檢測(cè)出的特征點(diǎn)最多,具有較好的匹配效果。
(a) SURF算法(b) AKAZE算法(c) 本文算法
為了客觀評(píng)價(jià)3種算法的性能,以匹配準(zhǔn)確率作為評(píng)價(jià)指標(biāo),進(jìn)行對(duì)比分析,結(jié)果見(jiàn)表2??梢?jiàn),本文算法的匹配效果最佳,準(zhǔn)確率最高可達(dá)96.09%。
表2 各算法的準(zhǔn)確率Table 2 The accuracy of each algorithm
(1) 通過(guò)同態(tài)濾波對(duì)圖像進(jìn)行銳化,提高了圖像清晰度。同時(shí),采用單參數(shù)同態(tài)濾波傳遞函數(shù),提高參數(shù)的可調(diào)性。采用CLAHE算法對(duì)圖像進(jìn)行處理,使得圖像像素灰度間距拉開(kāi),可改善視覺(jué)效果,達(dá)到圖像增強(qiáng)的目的。
(2) 對(duì)傳統(tǒng)AKAZE算法進(jìn)行優(yōu)化,利用漢明距離作為相似度測(cè)度,采用暴力匹配算法對(duì)所有特征點(diǎn)進(jìn)行粗匹配,再采用基于單應(yīng)性矩陣的RANSAC算法剔除錯(cuò)誤匹配點(diǎn)對(duì),以提高匹配準(zhǔn)確率。
(3) 實(shí)驗(yàn)結(jié)果表明:使用單參數(shù)同態(tài)濾波和CLAHE算法對(duì)圖像進(jìn)行增強(qiáng),可拉伸圖像的灰度級(jí),減少暗像元數(shù)量,增加亮像元數(shù)量,使得灰度級(jí)分布更加平滑,有利于保留圖像的細(xì)節(jié)和邊界信息;采用基于單應(yīng)性矩陣的RANSAC算法進(jìn)行精準(zhǔn)匹配,可檢測(cè)出更多特征點(diǎn),提高匹配準(zhǔn)確率,準(zhǔn)確率最高可達(dá)96.09%,匹配效果優(yōu)于SURF算法和傳統(tǒng)AKAZE算法。