朱代先, 秋強, 孔浩然, 胡其勝, 劉樹林
(1.西安科技大學 通信與信息工程學院,陜西 西安 710054;2.西安科技大學 電氣與控制工程學院,陜西 西安 710054)
煤炭產(chǎn)業(yè)是我國能源體系的基石[1]。近年來,隨著人工智能、圖像處理等技術的蓬勃發(fā)展,計算機視覺技術成為一種感知煤礦井下環(huán)境的有效手段[2]。尤其是井下發(fā)生安全事故時,在救援人員無法進入的情況下,機器人可利用同步定位與地圖構建(Simultaneous Localization and Mapping,SLAM)技術,在不依賴先驗信息的條件下,估計出自身位姿,并構建出坍塌礦井的地圖模型[3]。圖像匹配是視覺SLAM技術中極為重要的一環(huán),用于根據(jù)圖像之間的變換關系確定相機位姿。由于礦井環(huán)境特殊,拍攝的圖像往往亮度及對比度低[4]。同時,避難硐室、巷道密集管線等圖像局部存在較多相似紋理,導致特征的區(qū)分度較低。在圖像采集時,不可避免存在快速平移與旋轉(zhuǎn),使得待匹配圖像存在較大視差。特殊的光照環(huán)境、局部相似紋理的干擾及視差圖像本身的缺點共同導致井下圖像匹配困難,影響視覺SLAM定位精度與建圖結(jié)果,因此對井下圖像的高質(zhì)量匹配研究具有重要意義。
目前主流的圖像匹配方法包括基于點特征的匹配算法和基于線特征的匹配算法[5]。基于點特征的匹配算法雖然可在井下應用,但是井下光照條件差,巷道圖像紋理弱,可能造成特征點的提取數(shù)量少、分布不均勻、匹配精度低等[6]。而基于線特征的匹配算法具有較強的魯棒性和抗噪能力[7],更加適用于井下圖像匹配。
基于線特征的匹配方法主要利用線特征的幾何信息[8]及鄰域內(nèi)灰度、梯度的相似性[9],結(jié)合幾何約束[10]進行匹配,側(cè)重于搜索范圍約束[11]、描述符構建[12]及匹配核驗[13]等方面。Li Gang等[14]提出一種基于語義不變量的點線特征匹配方法,為待匹配線特征添加語義約束,降低了線特征的失配率,但該方法依賴語義信息提取網(wǎng)絡,難以在井下直接應用。Zheng Xianwei等[15]提出一種基于全局投影變換的線匹配方法,匹配精度較高,但是局限在城市街道等室外場景,在視差變換大時會失效。Wang Qiang等[16]利用位置和方向系統(tǒng)構建出圖像間的變換關系來獲取匹配線對,消除了跨視角圖像間的幾何形變,匹配精度較高,但對于寬基線圖像匹配仍有提升空間。Shen Liang等[17]提出一種線段誤匹配去除方法,解決對線段長度的敏感性和斷裂問題,提高了匹配召回率,但是該方法不適用于存在仿射等非剛性變換的圖像中。劉肅艷等[18]提出了一種結(jié)合線對幾何條件約束及單線描述符的方法,該方法性能良好,但涉及的參數(shù)較多,依賴手動調(diào)參。張珊等[19]提出了一種結(jié)合網(wǎng)狀描述符和單應約束的近景影像直線匹配算法,該算法能夠獲得較高的匹配精度,且魯棒性良好,但是依賴同名特征點約束,在同名特征點稀少的情況下影響匹配結(jié)果。隨著深度學習的發(fā)展,學者們將卷積神經(jīng)網(wǎng)絡(Convolutional Neural Network,CNN)強大的特征提取能力應用在線特征匹配上。A.Vakhitov等[20]提出一種全卷積神經(jīng)網(wǎng)絡構建的可學習型線描述符,用于線特征匹配。M.Lange等[21]提出一種基于機器學習和小波增強的線特征描述符,預處理階段利用小波變換從圖像中提取特征作為描述符。R.Pautrat等[22]首次提出聯(lián)合線描述與檢測的深度學習網(wǎng)絡,即自我監(jiān)督遮擋感知線描述和檢測(Self-supervised Occlusion-aware Line Description and Detection,SOLD2),用于在線特征檢測與匹配。
基于深度學習的線描述符對線段遮擋等場景具有較高魯棒性,性能優(yōu)于傳統(tǒng)描述符,但CNN架構的描述符將可變長度線段抽象為固定維進行描述,仍然不利于線段長度及視差變化較大圖像的匹配。針對該問題,本文提出一種基于直線段檢測法(Line Segment Detector,LSD)和LT(Line Transformers)描述符的礦井圖像線特征匹配算法。采用改進單參數(shù)同態(tài)濾波算法和對比度受限的自適應直方圖均衡化(Contrast Limited Adaptive Histogram Equalization,CLAHE)算法進行圖像增強,在此基礎上進行LSD線特征提取,用LT描述符構建LSD線特征向量[23],最后利用歐氏距離及最近鄰準則進行匹配線對篩選,完成匹配。
基于LSD和LT描述符的礦井圖像線特征匹配算法流程如圖1所示。
圖1 基于LSD和LT描述符的礦井圖像線特征匹配算法流程Fig.1 Process of mine image line feature matching algorithm based on line segment detector(LSD) and line transformers(LT) descriptor
在圖像的RGB空間,利用改進單參數(shù)同態(tài)濾波算法進行濾波,在頻域降低圖像的照射分量,并提高反射分量,增強后圖像的亮度與對比度均有提高。在圖像的YUV空間,利用CLAHE算法對圖像的亮度分量進行均衡[24],使亮度更加均勻,更好地保留圖像的細節(jié)信息。再逆變換至RGB空間提取LSD線特征,增強圖像后,提取的LSD線特征數(shù)量更多。為了克服LSD線特征匹配常用的線二進制描述符(Line Binary Descriptor,LBD)等魯棒性差、匹配精度低的缺點,采用基于Transformer架構的LT描述符構建LSD線特征向量,并進行L2范數(shù)歸一化,計算出目標直線與候選直線的特征向量的歐氏距離,結(jié)合最小歐氏距離和最近鄰準則完成匹配,得到可靠的同名直線。
同態(tài)濾波是一種在頻域應用的圖像處理算法[25]。根據(jù)照射-反射模型,圖像密度函數(shù)f(x,y)(x,y為像素空間坐標)可表示為自身的照射分量i(x,y)和反射分量r(x,y)的乘積。
對式(1)進行對數(shù)變換,得
對式(2)進行傅里葉變換,然后應用H(u,v)(u,v為x,y對應的離散頻率變量)同態(tài)濾波器,得
式中F(u,v),I(u,v),R(u,v)分別為f(x,y),i(x,y),r(x,y)的傅里葉變換。
H(u,v)通常選用高斯型同態(tài)濾波傳遞函數(shù):
式中:PH,PL分別為高頻增益和低頻增益;c為銳化系數(shù);D(u,v)為某頻率(u,v)到頻率中心(u0,v0)的歐氏距離;D0為截止頻率;n為濾波器的階數(shù)。
高斯型同態(tài)濾波傳遞函數(shù)需要手動調(diào)節(jié)參數(shù)PH,PL,c,n,不利于算法的泛化。因此引入一種單參數(shù)同態(tài)濾波傳遞函數(shù)[26]:
式中k為濾波器的調(diào)節(jié)參數(shù)。
式(6)中只存在一個參數(shù)k,可降低調(diào)參的復雜性。高斯型同態(tài)濾波傳遞函數(shù)與單參數(shù)同態(tài)濾波傳遞函數(shù)的三維結(jié)構如圖2、圖3所示??煽闯鰡螀?shù)同態(tài)濾波器由中心頻率到高頻的過渡相較傳統(tǒng)高斯型同態(tài)濾波器更平緩,斜率更小,因此濾波更加均勻。
圖2 高斯型同態(tài)濾波傳遞函數(shù)Fig.2 Transfer function of gaussian homomorphic filtering
圖3 單參數(shù)同態(tài)濾波傳遞函數(shù)Fig.3 Transfer function of single parameter homomorphic filter
使用改進后的單參數(shù)同態(tài)濾波器對F(u,v)進行濾波后,再用傅里葉逆變換將圖像變換至空間域,得
式中hf(x,y),hi(x,y),hr(x,y)分別為逆變換后的圖像密度函數(shù)、照射分量和反射分量。
對式(7)進行指數(shù)變換,得到輸出圖像密度函數(shù):
采用單參數(shù)同態(tài)濾波算法在頻域?qū)聢D像進行增強,可初步提高井下圖像的對比度與亮度。
單參數(shù)同態(tài)濾波雖然能夠提升亮度及對比度,但是仍然存在亮度分布不均勻、局部細節(jié)損失的現(xiàn)象,可能會導致線特征斷裂、漏檢。因此在圖像經(jīng)過同態(tài)濾波增強后,采用CLAHE算法對YUV空間的亮度分量進行均衡。均衡后的圖像亮度分布更加均勻,細節(jié)更明顯,可進一步提升線段提取的質(zhì)量。
CLAHE算法在直方圖均衡的基礎上,通過抑制部分灰度級被過多合并所引起的噪聲放大和局部對比度增強現(xiàn)象,使圖像更加清晰[27]。CLAHE算法將輸入圖像分為若干個大小相等且不重疊的子域,并計算每個子域的直方圖。由于算法引入了對比度限制,在計算累積分布函數(shù)前,使用預先設定的限制閾值對每個子域直方圖進行剪切,從而限制放大幅值,將超出閾值的部分重新均勻分布到其他部分,如圖4所示。
圖4 CLAHE原理Fig.4 Principle of contrast limited adaptive histogram equalization(CLAHE)
LT描述符是基于Transformer架構的新型描述符,摒棄了傳統(tǒng)的CNN和循環(huán)神經(jīng)網(wǎng)絡(Recurrent Neural Network,RNN),整個網(wǎng)絡融合了自注意力機制。LT描述符仿照自然語言處理(Natural Language Processing,NLP)中的思想,將點視為“單詞”,將線段視為“句子”。將NLP的結(jié)果作為整條線段的描述符,通過自注意力機制關注線段上關鍵點來理解線段的上下文,自適應地將各種長度的線抽象為固定大小的描述符。同時,采用了組描述符的思想,將線的幾何屬性共享到鄰域,形成線簽名網(wǎng)絡,通過在鄰域內(nèi)共享線的相對幾何結(jié)構,使描述符學習到鄰域的幾何屬性。LT描述符適合應用在具有較大視差變化及較多相似紋理干擾的圖像匹配中。
基于LSD和LT描述符的礦井圖像線特征匹配算法模型如圖5所示。進行LSD線檢測,同時使用CNN得到整張圖像的密集描述符地圖(Descriptor map),包含圖像中每個像素的特征點置信度得分與該點描述符。對LSD線均勻取關鍵點,作為點標記,表示為p=[xyC],其中C為關鍵點置信度,在密集描述符地圖中查找每個關鍵點對應的描述符向量,實現(xiàn)點標記對應的點嵌入(Point embedding)提取,點嵌入E∈R1×w,其中w為點描述符的維度。特殊嵌入[LINE]是線描述符的初始狀態(tài),表示為Eline∈R(n+1)×w,其權值在訓練過程中學習。在多層感知器(Multilayer Perceptron,MLP)中利用每個關鍵點的位置得到位置嵌入(Positional embedding),表示為Epos∈R(n+1)×w。結(jié)合構建好的點嵌入與位置嵌入,使用Transformers編碼器對線描述符進行建模。
圖5 基于LSD和LT描述符的礦井圖像線特征匹配算法模型Fig.5 Model of mine image line feature matching algorithm based on LSD and LT descriptor
Transformer編碼器由多頭自注意(Multi-head Self-Attention,MSA)層和MLP層組成,具有殘差連接與層歸一化(Layer Normalization,LN)功能,將Transformer編碼器堆疊L次,得
式中:Z0為Transformer編碼器的初始輸入;Z′I-1為計算第I(I=1,2,···,L)次堆疊時Transformer編碼器的輸入ZI的中間變量;OLN,OMSA,OMLP分別為歸一化及通過MSA層、MLP層的操作;m為掩碼向量;d為描述符;Z0L為第L次堆疊后Transformer編碼器的輸出。
當?shù)贗-1次堆疊時的Transformer編碼器輸入ZI-1進入MSA層時,為了解決直線特征長度不同的問題,在網(wǎng)絡中加入掩碼向量m,去除相關性比較低的特征點。
將直線a的中點位置(xa,ya)、直線與主方向的角度信息(cosθa,sinθa)、線長la輸入MLP層,得到線屬性嵌入,并添加至描述符da,得到含有線屬性的描述符d′a。對圖像中所有M個線描述符進行構建,得到初始含有線屬性的描述符向量集合s0。設sI為簽名網(wǎng)絡結(jié)果,將sI-1輸入MSA層后得到的計算結(jié)果與sI-1進行級聯(lián),作為MLP層的輸入,堆疊M次后得到sI。
實驗采用的編程語言為Python3.7,使用計算機視覺庫OpenCV 3.4.18.65,集成開發(fā)環(huán)境為PyCharm 2021.3.1,GPU為NVIDIA 2080Ti 16 GiB,深度學習框架Pytorch1.10。數(shù)據(jù)集源于在模擬礦井實驗室進行SLAM過程中采集的RGB幀,分辨率為640×480,共1 802張圖像。依次進行圖像增強實驗、線特征提取實驗、線特征匹配實驗。LT描述符的訓練參數(shù)見表1。
表1 LT描述符的訓練參數(shù)Table 1 Training parameters of the LT descriptor
分別采用改進同態(tài)濾波算法、EnlightenGAN算法[28]和本文算法進行實驗。圖像增強結(jié)果和對應的灰度分布如圖6與圖7所示。
圖6 圖像增強結(jié)果Fig.6 Image enhancement results
圖7 灰度直方圖對比結(jié)果Fig.7 Comparison results of gray histogram
可看出,3種算法對井下圖像均有增強作用。使用EnlightenGAN算法后,圖像對比度顯著增強,但是亮度明顯存在過度增強,且灰度級分布不均勻,大多分布在180~250。使用改進同態(tài)濾波算法增強后,圖像的亮度與對比度有一定提高,像素灰度級分布較均勻。本文算法結(jié)合了同態(tài)濾波和CLAHE算法的優(yōu)點,增強圖像的亮度適中,對比度良好,灰度分布更加均勻。
圖像增強的結(jié)果統(tǒng)計見表2。標準差是圖像對比度的評價指標,標準差越大,代表圖像對比度越大;均值是圖像的亮度評價指標,均值越大,代表圖像亮度越高;信息熵是反映圖像信息量的評價指標,信息熵越大,代表圖像信息量越大;峰值信噪比(Peak Signal-to-Noise Ratio,PSNR)表征圖像的保真性,圖像失真越小,該值越大??煽闯鯡nlightenGAN算法增強圖像的均值提高最大,從視覺主觀來看是因為亮度被過度增強,且EnlightenGAN算法增強圖像的PSNR僅為7.598,說明該算法增強圖像失真較為嚴重,且信息熵也不及本文算法與改進同態(tài)濾波算法,說明圖像部分信息丟失。經(jīng)本文算法處理后圖像的對比度、信息量、保真性均為最優(yōu),且亮度提升適中。從主觀比較與客觀數(shù)據(jù)綜合來看,本文算法對井下低照度圖像的增強效果最好。
表2 圖像增強結(jié)果統(tǒng)計Table 2 Statistics of image enhancement results
采用增強前后的圖像進行LSD線特征提取實驗,分別在巷道、水房、避難硐室、工作面處選取視頻幀共1 802幀。實驗結(jié)果如圖8所示,其中綠色表示增強前后共有的線特征,藍色表示圖像增強后新增的線特征??煽闯鰣D像增強后提取出的線特征更多。將部分斷裂的線特征修復合并,可在一定程度上減少誤匹配現(xiàn)象[29]。
圖8 LSD提取對比Fig.8 LSD extraction comparison
LSD線段提取數(shù)量見表3,由于短線提取效率低,實驗時濾掉了長度小于20像素的線段。本文算法提取的線段數(shù)量平均增長32.92%,說明在線段提取前進行圖像增強處理這一關鍵步驟有效,可使LSD線特征質(zhì)量更高,提取的線段更多。
表3 LSD線段提取數(shù)量Table 3 LSD line segment extraction quantity
3.3.1 圖像選擇及相關設置
采用視覺SLAM技術進行定位與建圖時,最主要的運動包括平移與旋轉(zhuǎn),因此,挑選同時具有視角變化與旋轉(zhuǎn)變化的井下低照度圖像,分別選取變化程度小和變化程度大的2組代表性圖像進行實驗,以驗證本文算法在不同程度視差干擾時的匹配性能。視覺SLAM技術經(jīng)常應用于井下發(fā)生坍塌事故時的救援任務,場景局部密集的線纜、堆積的礦石及受困人員所處避難硐室的墻壁等均包含較多相似紋理,相似紋理越多,線特征的特征向量區(qū)分度越低,給匹配帶來干擾。因此,選取相似紋理較少和相似紋理較多的2組代表性圖像進行實驗,以驗證本文算法在相似紋理占比不同時的性能。如果在具有較大視差及較多相似紋理干擾的情況下,匹配性能仍然較高,說明算法的魯棒性良好。
實驗圖像如圖9所示,圖像屬性見表4。分別采用LBD、LBD_NNDR、LT、本文算法進行實驗。LBD_NNDR對OpenCV視覺庫中LSD線匹配的最近鄰策略進行了優(yōu)化:在目標與候選直線的配對中,首先計算出目標直線與每條候選直線特征向量的漢明距離,漢明距離越小,說明2個特征向量越相似;篩選出目標直線到候選直線的最小漢明距離Xm與次小漢明距離Xsm,如果Xm小于閾值Td,則在此基礎上根據(jù)最近鄰距離比準則(Nearest Neighbor Distance Ratio,NNDR)進行二次篩選;若Xm與Xsm的比值小于閾值Tn,則認為該線段為最佳匹配,Td與Tn選取工程上常用的30與0.8。LT描述符使用文獻[24]推薦的權重。本文算法的匹配策略是計算出目標直線與每條候選直線L2范數(shù)歸一化描述符向量之間的歐氏距離,利用歐氏距離表征2個線對的相似度,選擇相似度最大的2個線對作為候選同名直線。根據(jù)工程經(jīng)驗,相似度閾值選取0.8能夠同時兼顧精度與同名直線數(shù)量。
表4 圖像屬性Table 4 Image attributes
圖9 實驗圖像Fig.9 Experimental images
3.3.2 實驗結(jié)果
圖像1匹配結(jié)果如圖10所示。未匹配直線標為藍色,匹配錯誤線對標為紅色,正確匹配線對標為綠色,匹配正誤由人工目視判別。由于短線匹配效率低,實驗時濾掉了長度小于20像素的線特征。圖像1旋轉(zhuǎn)平移程度小、相似紋理較少,4種算法的性能均良好,精度分別為85.48%,89.65%,90.19%,92.06%,正確匹配數(shù)量分別為53對、52對、46對、58對。圖像2、圖像3匹配結(jié)果如圖11、圖12所示。
圖10 圖像1匹配結(jié)果Fig.10 Image 1 matching results
圖11 圖像2匹配結(jié)果Fig.11 Image 2 matching results
圖12 圖像3匹配結(jié)果Fig.12 Image 3 matching results
圖像2相對于圖像1存在相似紋理較多的干擾。圖像3相對于圖像1存在較大的視差干擾。從匹配結(jié)果可看出,本文算法性能最優(yōu),圖像2的正確匹配數(shù)量高達100對,遠超過LBD、LBD_NNDR、LT對應的28對、25對、52對。圖像2的匹配精度為85.47%。圖像3的正確匹配數(shù)量為39對,精度為92.86%。精度與正確匹配數(shù)量均維持在較高水平,說明本文算法在較大視差干擾下或者較大平移旋轉(zhuǎn)視差下的魯棒性良好。
圖像4相對于圖像1,同時具備了較大的視差及相似紋理較多的雙重干擾,匹配結(jié)果如圖13所示。LBD對圖像4的匹配效果極差,幾乎無法正確匹配,精度僅為15.00%,正確匹配數(shù)量僅為9對。LBDNNDR能夠剔除部分誤匹配對,但是精度與正確匹配數(shù)量依然很低。LT的正確直線匹配數(shù)量與精度有一定提升。本文算法性能最優(yōu),線特征正確匹配數(shù)量達65對,精度達76.92%,精度與正確匹配數(shù)量維持在較高水平。這是因為本文算法在圖像增強后,得到了更多可靠的LSD線特征,而且采用的LT描述符自適應地將變化較大的直線抽象成了固定維度,更加適合線段變化較大時的匹配,并且線的簽名網(wǎng)絡獲取到鄰域的幾何屬性,LT描述符構建出的特征向量包含更多位置及幾何信息,能夠在一定程度上克服相似紋理干擾。
圖13 圖像4匹配結(jié)果Fig.13 Image 4 matching results
3.3.3 統(tǒng)計分析
線特征匹配實驗數(shù)據(jù)統(tǒng)計見表5。可看出對于任一類圖像,本文算法得到的線特征數(shù)量、同名直線數(shù)量、正確匹配數(shù)量、精度均優(yōu)于LBD,LBD_NNDR,LT。
表5 線特征匹配實驗數(shù)據(jù)統(tǒng)計Table 5 Statistics of experimental data of line feature matching
4種算法的平均精度與平均正確匹配數(shù)分別如圖14、圖15所示??煽闯霰疚乃惴ㄆ骄葹?6.83%,較LBD,LBD_NNDR,LT分別提升32.71%,16.03%,3.07%。本文算法平均正確匹配數(shù)為61.75對,是LBD的2.422倍、LBD_NNDR的2.572倍、LT的1.453倍。統(tǒng)計分析結(jié)果說明本文算法性能優(yōu)良,能夠滿足井下圖像的穩(wěn)健匹配需求。
圖14 平均精度統(tǒng)計Fig.14 Average accuracy statistics
圖15 平均正確匹配數(shù)統(tǒng)計Fig.15 Statistics of the average number of correct matches
1) 針對井下圖像線特征匹配精度低、正確匹配量少、魯棒性差的問題,提出了一種基于LSD和LT描述符的礦井圖像線特征匹配算法,采用改進單參數(shù)同態(tài)濾波算法和CLAHE算法進行圖像增強,在圖像增強的基礎上使用LT描述符對提取的LSD線進行描述和匹配。
2) 實驗結(jié)果表明:本文算法的平均精度為86.83%,較LBD,LBD_NNDR,LT分別提升32.71%,16.03%,3.07%;平均正確匹配數(shù)為61.75對,是LBD的2.422倍、LBD_NNDR的2.572倍、LT的1.453倍;本文算法提取的LSD線數(shù)量更多,質(zhì)量更好,在不同干擾下魯棒性良好。
3) 下一步將繼續(xù)優(yōu)化本文算法的匹配策略,研究如何剔除更多的誤匹配線對。