程健,王瑞彬,郁華森,閆鵬鵬,,王凱
(1.煤炭科學(xué)研究總院 礦山大數(shù)據(jù)研究院, 北京 100013;2.煤炭資源高效開采與潔凈利用國家重點實驗室, 北京 100013;3.中國礦業(yè)大學(xué) 信息與控制工程學(xué)院, 江蘇 徐州 221116;4.首都醫(yī)科大學(xué) 生物醫(yī)學(xué)工程學(xué)院, 北京 100069)
礦井智能化建設(shè)開啟了煤炭行業(yè)全面創(chuàng)新和技術(shù)變革的新時代,是礦山高質(zhì)量發(fā)展的核心技術(shù)支撐[1],其主要路徑是“智能化生產(chǎn)決策+機器人作業(yè)”。其中,井下機器人在礦井智能化建設(shè)過程中發(fā)揮著關(guān)鍵作用,而自主導(dǎo)航能力是井下機器人智能化程度評價的重要指標(biāo),同時也是研究的重點和難點[2]。在滅點透視幾何中,滅點是2條或多條代表平行線的線條向遠(yuǎn)處地平線伸展直至聚合的那一點[3]。滅點是二維圖像中的重要特征,它包含了直線的方向信息,滅點位置對圖像中道路方向、大致方位等信息的確定具有重要意義。滅點檢測技術(shù)在機器人導(dǎo)航[4]、三維重建[5]、攝像機標(biāo)定[6]等方面具有廣泛應(yīng)用,是計算機視覺領(lǐng)域的重要研究課題。因此,可通過檢測識別圖像中的滅點位置來輔助礦井巷道移動機器人進(jìn)行自主導(dǎo)航。
目前,國內(nèi)外學(xué)者在滅點檢測領(lǐng)域已經(jīng)進(jìn)行了較多研究。文獻(xiàn)[7]在具有一定置信度的情況下計算每個圖像像素的主要紋理方向,并通過粒子濾波篩選出候選滅點,最后進(jìn)行滅點投票估計,該方法雖然在一定程度上減少了計算量,但在光照環(huán)境發(fā)生變化的情況下誤差較大。文獻(xiàn)[8]采用一種全新的最佳局部優(yōu)勢取向方法并提出了一種新的投票方案用于滅點估計,但計算量較大,難以滿足實時性要求。文獻(xiàn)[9]采用Sobel濾波器來計算紋理方向,根據(jù)紋理方向?qū)Φ缆返臏琰c進(jìn)行投票,該方法適用于直線或曲率較小的道路,但是對于彎道無法正確檢測滅點和邊界。文獻(xiàn)[10]采用Gabor濾波器估計像素紋理方向,同時計算對應(yīng)的置信度,根據(jù)紋理方向,由置信度大于閾值的像素投票確定初始滅點。上述基于紋理的滅點檢測方法計算量大、耗時長,且不適用于煤礦巷道場景。
基于邊緣的滅點檢測方法是通過邊緣檢測或霍夫變換提取圖像中的直線,對直線分組后再進(jìn)行滅點的投票估計。文獻(xiàn)[11]提出了一種基于視覺的滅點估計架構(gòu),通過計算直線的交點來實現(xiàn)滅點估計,并引入了置信度用于衡量滅點估計的準(zhǔn)確性,該方法要求道路兩側(cè)的車道線非常清晰,否則會檢測失敗。文獻(xiàn)[12]假設(shè)車輛的方向平行于道路邊界,利用邊緣和光流的組合來檢測滅點,由于涉及光流算法,該方法計算量大、實時性差。文獻(xiàn)[13]通過霍夫變換將圖像中的平行直線檢測出來,對屬于同一滅點的直線組進(jìn)行坐標(biāo)變換映射為1條直線,再通過霍夫變換檢測出該直線參數(shù),即求得滅點信息,該方法簡單有效,但對噪聲敏感,易出現(xiàn)較大誤差。文獻(xiàn)[14]采用最大期望(Expectation-Maximization,EM)算法同時解決了直線分組和滅點估計的問題,但該算法僅限于結(jié)構(gòu)化的人工場景。文獻(xiàn)[15]在直線檢測后采用基于教學(xué)學(xué)習(xí)的優(yōu)化算法對直線進(jìn)行聚類,進(jìn)而求出滅點的最佳估計。上述基于邊緣的滅點檢測方法容易受到噪聲干擾影響,同時若場景中邊緣信息有限,該類方法會產(chǎn)生非常大的誤差。
近年來,隨著深度學(xué)習(xí)技術(shù)的發(fā)展,有學(xué)者研究將該技術(shù)應(yīng)用在滅點檢測領(lǐng)域。文獻(xiàn)[16]將基于深度多任務(wù)學(xué)習(xí)的算法用于圖像中的滅點檢測,基于多任務(wù)的神經(jīng)網(wǎng)絡(luò)由特征提取基礎(chǔ)網(wǎng)絡(luò)和3個子任務(wù)網(wǎng)絡(luò)組成,僅需要較少的訓(xùn)練數(shù)據(jù)集就可得到較精確結(jié)果。但由于煤礦巷道場景光照條件差,且結(jié)構(gòu)化信息不足,基于深度學(xué)習(xí)的滅點檢測方法在煤礦巷道場景下誤差較大。
本文提出了一種礦井巷道復(fù)雜場景滅點檢測方法。該方法引入直線長度閾值和平均梯度約束剔除場景中的干擾直線;采用塊匹配算法生成連續(xù)圖像的塊運動軌跡直線,豐富場景中的結(jié)構(gòu)化信息;在滅點回歸估計過程中加入局部異常點分析,提高滅點檢測精度。
礦井巷道復(fù)雜場景滅點檢測方法流程如圖1所示。首先對原圖像進(jìn)行等比例縮小至1/2、灰度化、濾波等預(yù)處理,以大幅減少計算量,較好地保留直線特征;然后檢測直線并剔除干擾直線,同時利用塊匹配算法生成塊運動軌跡直線;最后,采用改進(jìn)的加權(quán)回歸算法完成滅點回歸估計。

圖1 礦井巷道復(fù)雜場景滅點檢測方法流程Fig.1 Process of vanishing point detection method in complex scene of mine roadway
LSD(Line Segment Detector,直線檢測)算法是一種線性時間直線提取算法[17],具有檢測速度快、噪聲低的優(yōu)點,而且無需參數(shù)調(diào)節(jié),利用錯誤控制的方法提高直線檢測準(zhǔn)確度。因此,本文采用LSD算法檢測圖像中的直線,結(jié)果如圖2所示。

圖2 直線檢測結(jié)果Fig.2 Straight line detection result
從直線檢測結(jié)果可看出,采用LSD算法得到的圖像直線特征中包含了非常多的干擾直線,對滅點檢測結(jié)果造成較大誤差。通過分析,干擾直線是由長度小的直線和圖像中陰影產(chǎn)生的直線組成,因此,本文引入直線長度閾值和平均梯度約束來剔除圖像中的干擾直線。
對于長度小的干擾直線,通過設(shè)置直線長度閾值,將直線長度小于閾值的干擾直線剔除。對于圖像中由陰影產(chǎn)生的干擾直線,其梯度要小于其他檢測到的直線梯度。因此,可通過計算每條直線上所有像素點梯度幅值的平均值來判斷直線是否由陰影產(chǎn)生。但數(shù)字圖像中的直線是由一系列呈階梯式分布的小直線組成[18](圖3),LSD算法并不能得到直線上每個像素點的準(zhǔn)確位置。因此,本文通過計算直線某鄰域內(nèi)所有像素點梯度幅值的平均值來判斷該直線是否由陰影產(chǎn)生,具體步驟如下:


(a) 水平分布

(b) 垂直分布
(2) 假設(shè)直線為水平分布,首先根據(jù)直線方程計算f(xstart),對f(xstart)取整數(shù),則直線上第1個像素點的鄰域像素點坐標(biāo)為(xstart,f(xstart)+1),(xstart,f(xstart)-1)。以此類推,將直線上所有像素點和其鄰域像素點組成一個點集{(xi,yi)},i=1,2,…,n,n為像素點數(shù)量。假設(shè)點集中第i個像素點灰度值為g(xi,yi),則水平方向梯度dx(xi,yi)和垂直方向梯度dy(xi,yi)分別為
(1)
第i個像素點的梯度幅值為
(2)
直線上所有像素點和其鄰域像素點組成點集的平均梯度幅值為
(3)
(3) 若|davg|小于設(shè)定的閾值,則認(rèn)為直線由陰影產(chǎn)生并將該直線篩除。
剔除干擾直線后直線檢測結(jié)果如圖4所示。

圖4 剔除干擾直線后直線檢測結(jié)果Fig.4 Straight line detection result after removing interference line
塊匹配算法假設(shè)圖像塊內(nèi)各像素做相同運動[19],根據(jù)一定的匹配準(zhǔn)則,在前一幀某一給定搜索范圍內(nèi)找出與當(dāng)前幀中每一塊最相似的塊,即匹配塊,由當(dāng)前塊和匹配塊的相對位置計算出運動軌跡。假設(shè)礦井巷道機器人沿平行于墻面的方向行走,則匹配塊的運動軌跡直線指向滅點?;谝陨戏治觯疚睦脡K匹配算法生成匹配塊的運動軌跡直線,從而豐富場景中的結(jié)構(gòu)化信息。
為減少計算量,本文采用三步搜索法(Three-Step Search,TSS)[20]求出圖像的塊運動軌跡直線:第1步,以匹配塊當(dāng)前位置為中心,按間隔為4的距離,搜索上下左右及斜對角 8個點;第2步,以第1步搜索結(jié)果中最接近點為中心,間隔減半搜索上下左右及斜對角8個點;第3步,重復(fù)第2步,將間隔再減半,當(dāng)間隔為1時找到的最相似點就是匹配誤差最小點。
在搜索最佳匹配塊的過程中,本文采用MAD(Mean Absolute Deviation,平均絕對誤差)來衡量當(dāng)前塊與匹配塊之間的相似度[21]:
(4)
式中:M為平均絕對誤差;N為圖像塊邊長像素點數(shù)量;gc(u,v)為當(dāng)前塊中第u行、第v列處像素點灰度值;gr(u,v)為匹配塊中第u行、第v列處像素點灰度值。
由于圖像中左側(cè)區(qū)域存在多種顏色的管道,特征相對明顯,為減少計算量,只計算左側(cè)區(qū)域的塊運動軌跡直線,結(jié)果如圖5所示。根據(jù)每條運動軌跡直線的起點和終點生成運動軌跡所在直線方程。

圖5 塊運動軌跡直線Fig.5 Block motion trajectory straight line
將剔除干擾直線后的直線集合A(假設(shè)由p條直線組成)和塊運動軌跡直線集合B(假設(shè)由q條直線組成)中的直線分為1組,共計p+q條直線,并將該組直線轉(zhuǎn)換到參數(shù)空間,得到p+q個樣本點,在參數(shù)空間中采用改進(jìn)的加權(quán)回歸算法進(jìn)行滅點回歸估計。
LOF(Local Outlier Factor,局部異常因子)算法[22]是一種典型的基于密度的高精度離群點檢測方法。通過給每個樣本點都分配一個依賴于鄰域密度的離群因子值F,判斷該樣本點是否為離群點:若F遠(yuǎn)大于1,則該樣本點為離群點;若F接近1,則該樣本點為正常樣本點。因此,在滅點回歸估計過程中,可根據(jù)樣本點的F來衡量該樣本點的重要程度。
理想情況下,在圖像中每一個滅點所對應(yīng)的直線組在參數(shù)空間中滿足線性分布關(guān)系,因此可通過回歸算法求出樣本點在參數(shù)空間中滿足的線性數(shù)學(xué)模型。
在求解滅點的過程中,直線的重要性和其長度呈正比。因此,將樣本點的離群因子值和對應(yīng)直線長度共同作為樣本點重要性的衡量標(biāo)準(zhǔn)?;诖耍O(shè)計加權(quán)回歸算法的權(quán)函數(shù),其中第j個樣本點的權(quán)重為
Wj=Wtjljj=1,2,…,p+q
(5)
式中:Wtj為衡量第j個樣本點異常程度的權(quán)重;lj為第j條直線的長度;Fj為第j個樣本點的離群因子值。
(6)
改進(jìn)的加權(quán)回歸算法的線性擬合目標(biāo)函數(shù)為
(7)

在得到擬合后的線性模型后,求出圖像中滅點坐標(biāo)(w,h)。
ρ=wcosθ+hsinθ
(8)
式中:ρ為圖像坐標(biāo)系原點到直線的距離;θ為直線與圖像坐標(biāo)系x軸正方向的夾角。
將滅點坐標(biāo)反饋給礦井巷道巡檢機器人,即可指引機器人移動。
為驗證本文方法的有效性,分別在礦井巷道數(shù)據(jù)集和公共數(shù)據(jù)集上進(jìn)行滅點檢測實驗。實驗系統(tǒng)為Ubuntu 16.04 LTS,內(nèi)存為8 GB,處理器為Intel Core i5-4 200H@2.70 GHz。
實驗1在某礦井下,通過人工遙控方式得到礦井巷道巡檢機器人在巡檢過程中拍攝的視頻,截取巡檢視頻中的一部分并提取視頻幀組成礦井巷道數(shù)據(jù)集,包括礦井巷道中光照條件正常、光照條件差及出現(xiàn)強光干擾3種不同場景。礦井巷道數(shù)據(jù)集中圖像分辨率為1 920×1 080,幀數(shù)為800,由人工標(biāo)記出每張圖像的真實滅點位置。在礦井巷道場景中,由于光照條件一直發(fā)生變化,導(dǎo)致部分區(qū)域過于昏暗,部分區(qū)域存在強光干擾,加之礦井巷道壁粗糙,使得場景中的結(jié)構(gòu)化信息不明顯、不規(guī)則。
在礦井巷道數(shù)據(jù)集上的滅點檢測結(jié)果如圖6所示。綠色的點表示人工標(biāo)記的真實滅點;紅色的點表示采用基于邊緣的滅點檢測方法得到的滅點;藍(lán)色的點表示采用基于深度學(xué)習(xí)的滅點檢測方法得到的滅點;黃色的點表示采用本文方法得到的滅點。



從圖6可看出,在第150幀時,光照條件正常,圖像中能夠檢測到的直線多,3種方法得到的滅點均比較接近真實滅點;在第540幀時,光照條件差,圖像中的直線特征不明顯,3種方法得到的滅點與真實滅點相比均出現(xiàn)了明顯差距,但本文方法得到的滅點更接近真實滅點;在第560幀時,圖像上方出現(xiàn)了強光干擾,與基于邊緣和基于深度學(xué)習(xí)的滅點檢測方法相比,本文方法得到的滅點更接近真實滅點。由此可知,本文方法對光照變化有較強的魯棒性,更適用于礦井巷道復(fù)雜場景的滅點檢測任務(wù)。
實驗2公共數(shù)據(jù)集由行車記錄儀的部分視頻組成,包括雪地、白天、夜晚3個不同場景。公共數(shù)據(jù)集中圖像分辨率為335×270,幀數(shù)為500,由人工標(biāo)記出每張圖像的真實滅點位置。
在公共數(shù)據(jù)集上的滅點檢測結(jié)果如圖7所示??煽闯鲈诘?00幀時,圖像中直線信息較多,3種方法得到的滅點檢測結(jié)果都比較準(zhǔn)確;在第250幀時,場景中的干擾直線數(shù)量增加,基于邊緣的滅點檢測方法和本文方法能準(zhǔn)確檢測滅點位置,而基于深度學(xué)習(xí)的滅點檢測方法得到的滅點與真實滅點相比出現(xiàn)了較大差距;在第400幀時,圖像中直線信息少、干擾多,基于邊緣和基于深度學(xué)習(xí)的滅點檢測方法得到的滅點均明顯偏離了真實滅點,而本文方法得到的滅點更接近真實滅點。由此可知,本文方法在光照條件差、缺乏直線信息的情況下具有較好的滅點檢測效果。



假設(shè)由本文方法檢測到的滅點坐標(biāo)為(w,h),人工標(biāo)記的滅點坐標(biāo)為(w0,h0),則滅點檢測誤差為
(9)
不同滅點檢測方法在不同數(shù)據(jù)集上的誤差對比曲線如圖8所示。可看出本文方法的精度高于其他方法;在礦井巷道數(shù)據(jù)集第500幀至第600幀及公共數(shù)據(jù)集第350幀至第450幀,3種方法均產(chǎn)生了大于正常水平的誤差,這是由于場景中光照條件差,圖像中可利用的直線信息大幅減少,引起誤差增大。

(a) 礦井巷道數(shù)據(jù)集

(b) 公共數(shù)據(jù)集
不同滅點檢測方法在不同數(shù)據(jù)集上的平均誤差對比見表1??煽闯鲈诘V井巷道數(shù)據(jù)集上,本文方法平均誤差與基于邊緣的滅點檢測方法、基于深度學(xué)習(xí)的滅點檢測方法相比分別減小了31.6%,26.4%;在公共數(shù)據(jù)集上,本文方法平均誤差與基于邊緣的滅點檢測方法、基于深度學(xué)習(xí)的滅點檢測方法相比分別減小了22.2%,16.0%。

表1 不同滅點檢測方法平均誤差對比Table 1 Comparison of average error of different vanishing point detection methods px
不同滅點檢測方法在不同數(shù)據(jù)集上的平均計算用時對比見表2??煽闯霰疚姆椒ǖ膶崟r性優(yōu)于基于深度學(xué)習(xí)的滅點檢測方法,但是與基于邊緣的滅點檢測方法相比還存在一定差距。

表2 不同滅點檢測方法平均計算用時對比Table 2 Comparison of average calculation time of different vanishing point detection methods ms
針對礦井巷道場景光照條件差、結(jié)構(gòu)化信息不足,現(xiàn)有的滅點檢測方法在該場景下誤差大的問題,提出了一種礦井巷道復(fù)雜場景滅點檢測方法。首先,對圖像進(jìn)行縮小、灰度化、濾波等預(yù)處理;然后,采用LSD算法對圖像進(jìn)行直線檢測,并引入直線長度閾值和平均梯度約束剔除干擾直線,同時采用塊匹配算法生成圖像的塊運動軌跡直線,解決了光照條件差情況下結(jié)構(gòu)化信息不足的問題;最后,將剔除干擾后的直線和塊運動軌跡直線轉(zhuǎn)換為參數(shù)空間中的樣本點,將樣本點的離群因子值和對應(yīng)直線長度共同作為衡量樣本點重要性的標(biāo)準(zhǔn),采用改進(jìn)的加權(quán)回歸算法進(jìn)行滅點估計,消除了錯誤樣本點的影響。在礦井巷道數(shù)據(jù)集與公共數(shù)據(jù)集上的實驗結(jié)果表明,與基于邊緣和基于深度學(xué)習(xí)的滅點檢測方法相比,本文方法對光照變化有較強的魯棒性,且在光照條件差、缺乏直線信息的復(fù)雜場景中具有更高的滅點檢測精度;實時性與基于邊緣的滅點檢測方法相比仍有差距,較基于深度學(xué)習(xí)的滅點檢測方法略有提升。