矿井智能化建设开启了煤炭行业全面创新和技术变革的新时代,是矿山高质量发展的核心技术支撑[1],其主要路径是“智能化生产决策+机器人作业”。其中,井下机器人在矿井智能化建设过程中发挥着关键作用,而自主导航能力是井下机器人智能化程度评价的重要指标,同时也是研究的重点和难点[2]。在灭点透视几何中,灭点是2条或多条代表平行线的线条向远处地平线伸展直至聚合的那一点[3]。灭点是二维图像中的重要特征,它包含了直线的方向信息,灭点位置对图像中道路方向、大致方位等信息的确定具有重要意义。灭点检测技术在机器人导航[4]、三维重建[5]、摄像机标定[6]等方面具有广泛应用,是计算机视觉领域的重要研究课题。因此,可通过检测识别图像中的灭点位置来辅助矿井巷道移动机器人进行自主导航。
目前,国内外学者在灭点检测领域已经进行了较多研究。文献[7]在具有一定置信度的情况下计算每个图像像素的主要纹理方向,并通过粒子滤波筛选出候选灭点,最后进行灭点投票估计,该方法虽然在一定程度上减少了计算量,但在光照环境发生变化的情况下误差较大。文献[8]采用一种全新的最佳局部优势取向方法并提出了一种新的投票方案用于灭点估计,但计算量较大,难以满足实时性要求。文献[9]采用Sobel滤波器来计算纹理方向,根据纹理方向对道路的灭点进行投票,该方法适用于直线或曲率较小的道路,但是对于弯道无法正确检测灭点和边界。文献[10]采用Gabor滤波器估计像素纹理方向,同时计算对应的置信度,根据纹理方向,由置信度大于阈值的像素投票确定初始灭点。上述基于纹理的灭点检测方法计算量大、耗时长,且不适用于煤矿巷道场景。
基于边缘的灭点检测方法是通过边缘检测或霍夫变换提取图像中的直线,对直线分组后再进行灭点的投票估计。文献[11]提出了一种基于视觉的灭点估计架构,通过计算直线的交点来实现灭点估计,并引入了置信度用于衡量灭点估计的准确性,该方法要求道路两侧的车道线非常清晰,否则会检测失败。文献[12]假设车辆的方向平行于道路边界,利用边缘和光流的组合来检测灭点,由于涉及光流算法,该方法计算量大、实时性差。文献[13]通过霍夫变换将图像中的平行直线检测出来,对属于同一灭点的直线组进行坐标变换映射为1条直线,再通过霍夫变换检测出该直线参数,即求得灭点信息,该方法简单有效,但对噪声敏感,易出现较大误差。文献[14]采用最大期望(Expectation-Maximization,EM)算法同时解决了直线分组和灭点估计的问题,但该算法仅限于结构化的人工场景。文献[15]在直线检测后采用基于教学学习的优化算法对直线进行聚类,进而求出灭点的最佳估计。上述基于边缘的灭点检测方法容易受到噪声干扰影响,同时若场景中边缘信息有限,该类方法会产生非常大的误差。
近年来,随着深度学习技术的发展,有学者研究将该技术应用在灭点检测领域。文献[16]将基于深度多任务学习的算法用于图像中的灭点检测,基于多任务的神经网络由特征提取基础网络和3个子任务网络组成,仅需要较少的训练数据集就可得到较精确结果。但由于煤矿巷道场景光照条件差,且结构化信息不足,基于深度学习的灭点检测方法在煤矿巷道场景下误差较大。
本文提出了一种矿井巷道复杂场景灭点检测方法。该方法引入直线长度阈值和平均梯度约束剔除场景中的干扰直线;采用块匹配算法生成连续图像的块运动轨迹直线,丰富场景中的结构化信息;在灭点回归估计过程中加入局部异常点分析,提高灭点检测精度。
矿井巷道复杂场景灭点检测方法流程如图1所示。首先对原图像进行等比例缩小至1/2、灰度化、滤波等预处理,以大幅减少计算量,较好地保留直线特征;然后检测直线并剔除干扰直线,同时利用块匹配算法生成块运动轨迹直线;最后,采用改进的加权回归算法完成灭点回归估计。
图1 矿井巷道复杂场景灭点检测方法流程
Fig.1 Process of vanishing point detection method in complex scene of mine roadway
LSD(Line Segment Detector,直线检测)算法是一种线性时间直线提取算法[17],具有检测速度快、噪声低的优点,而且无需参数调节,利用错误控制的方法提高直线检测准确度。因此,本文采用LSD算法检测图像中的直线,结果如图2所示。
图2 直线检测结果
Fig.2 Straight line detection result
从直线检测结果可看出,采用LSD算法得到的图像直线特征中包含了非常多的干扰直线,对灭点检测结果造成较大误差。通过分析,干扰直线是由长度小的直线和图像中阴影产生的直线组成,因此,本文引入直线长度阈值和平均梯度约束来剔除图像中的干扰直线。
对于长度小的干扰直线,通过设置直线长度阈值,将直线长度小于阈值的干扰直线剔除。对于图像中由阴影产生的干扰直线,其梯度要小于其他检测到的直线梯度。因此,可通过计算每条直线上所有像素点梯度幅值的平均值来判断直线是否由阴影产生。但数字图像中的直线是由一系列呈阶梯式分布的小直线组成[18](图3),LSD算法并不能得到直线上每个像素点的准确位置。因此,本文通过计算直线某邻域内所有像素点梯度幅值的平均值来判断该直线是否由阴影产生,具体步骤如下:
(1) 采用LSD算法得到每条直线的起点和终点坐标,假设其中一条直线的起点和终点坐标分别为(xstart,ystart),(xend,yend),由两点坐标确定该直线方程f(x)=kx+b,其中直线斜率截距b=ystart-kxstart。则组成该直线的像素点数量m=max{|xend-xstart|,|yend-ystart|}+1。若|xend-xstart|>|yend-ystart|,则认为直线分布形式如图3(a)所示,否则如图3(b)所示。
(a) 水平分布
(b) 垂直分布
图3 直线分布
Fig.3 Straight line distribution
(2) 假设直线为水平分布,首先根据直线方程计算f(xstart),对f(xstart)取整数,则直线上第1个像素点的邻域像素点坐标为(xstart,f(xstart)+1),(xstart,f(xstart)-1)。以此类推,将直线上所有像素点和其邻域像素点组成一个点集{(xi,yi)},i=1,2,…,n,n为像素点数量。假设点集中第i个像素点灰度值为g(xi,yi),则水平方向梯度dx(xi,yi)和垂直方向梯度dy(xi,yi)分别为
(1)
第i个像素点的梯度幅值为
(2)
直线上所有像素点和其邻域像素点组成点集的平均梯度幅值为
(3)
(3) 若|davg|小于设定的阈值,则认为直线由阴影产生并将该直线筛除。
剔除干扰直线后直线检测结果如图4所示。
图4 剔除干扰直线后直线检测结果
Fig.4 Straight line detection result after removing interference line
块匹配算法假设图像块内各像素做相同运动[19],根据一定的匹配准则,在前一帧某一给定搜索范围内找出与当前帧中每一块最相似的块,即匹配块,由当前块和匹配块的相对位置计算出运动轨迹。假设矿井巷道机器人沿平行于墙面的方向行走,则匹配块的运动轨迹直线指向灭点。基于以上分析,本文利用块匹配算法生成匹配块的运动轨迹直线,从而丰富场景中的结构化信息。
为减少计算量,本文采用三步搜索法(Three-Step Search,TSS)[20]求出图像的块运动轨迹直线:第1步,以匹配块当前位置为中心,按间隔为4的距离,搜索上下左右及斜对角 8个点;第2步,以第1步搜索结果中最接近点为中心,间隔减半搜索上下左右及斜对角8个点;第3步,重复第2步,将间隔再减半,当间隔为1时找到的最相似点就是匹配误差最小点。
在搜索最佳匹配块的过程中,本文采用MAD(Mean Absolute Deviation,平均绝对误差)来衡量当前块与匹配块之间的相似度[21]:
(4)
式中:M为平均绝对误差;N为图像块边长像素点数量;gc(u,v)为当前块中第u行、第v列处像素点灰度值;gr(u,v)为匹配块中第u行、第v列处像素点灰度值。
由于图像中左侧区域存在多种颜色的管道,特征相对明显,为减少计算量,只计算左侧区域的块运动轨迹直线,结果如图5所示。根据每条运动轨迹直线的起点和终点生成运动轨迹所在直线方程。
图5 块运动轨迹直线
Fig.5 Block motion trajectory straight line
将剔除干扰直线后的直线集合A(假设由p条直线组成)和块运动轨迹直线集合B(假设由q条直线组成)中的直线分为1组,共计p+q条直线,并将该组直线转换到参数空间,得到p+q个样本点,在参数空间中采用改进的加权回归算法进行灭点回归估计。
LOF(Local Outlier Factor,局部异常因子)算法[22]是一种典型的基于密度的高精度离群点检测方法。通过给每个样本点都分配一个依赖于邻域密度的离群因子值F,判断该样本点是否为离群点:若F远大于1,则该样本点为离群点;若F接近1,则该样本点为正常样本点。因此,在灭点回归估计过程中,可根据样本点的F来衡量该样本点的重要程度。
理想情况下,在图像中每一个灭点所对应的直线组在参数空间中满足线性分布关系,因此可通过回归算法求出样本点在参数空间中满足的线性数学模型。
在求解灭点的过程中,直线的重要性和其长度呈正比。因此,将样本点的离群因子值和对应直线长度共同作为样本点重要性的衡量标准。基于此,设计加权回归算法的权函数,其中第j个样本点的权重为
Wj=Wtjlj j=1,2,…,p+q
(5)
式中:Wtj为衡量第j个样本点异常程度的权重;lj为第j条直线的长度;Fj为第j个样本点的离群因子值。
(6)
改进的加权回归算法的线性拟合目标函数为
(7)
式中:Yj为第j个样本点的真实值;为第j个样本点的预测值。
在得到拟合后的线性模型后,求出图像中灭点坐标(w,h)。
ρ=wcos θ+hsin θ
(8)
式中:ρ为图像坐标系原点到直线的距离;θ为直线与图像坐标系x轴正方向的夹角。
将灭点坐标反馈给矿井巷道巡检机器人,即可指引机器人移动。
为验证本文方法的有效性,分别在矿井巷道数据集和公共数据集上进行灭点检测实验。实验系统为Ubuntu 16.04 LTS,内存为8 GB,处理器为Intel Core i5-4 200H@2.70 GHz。
实验1 在某矿井下,通过人工遥控方式得到矿井巷道巡检机器人在巡检过程中拍摄的视频,截取巡检视频中的一部分并提取视频帧组成矿井巷道数据集,包括矿井巷道中光照条件正常、光照条件差及出现强光干扰3种不同场景。矿井巷道数据集中图像分辨率为1 920×1 080,帧数为800,由人工标记出每张图像的真实灭点位置。在矿井巷道场景中,由于光照条件一直发生变化,导致部分区域过于昏暗,部分区域存在强光干扰,加之矿井巷道壁粗糙,使得场景中的结构化信息不明显、不规则。
在矿井巷道数据集上的灭点检测结果如图6所示。绿色的点表示人工标记的真实灭点;红色的点表示采用基于边缘的灭点检测方法得到的灭点;蓝色的点表示采用基于深度学习的灭点检测方法得到的灭点;黄色的点表示采用本文方法得到的灭点。
(a) 基于边缘的灭点检测方法
(b) 基于深度学习的灭点检测方法
(c) 本文方法
图6 在矿井巷道数据集上的灭点检测结果
Fig.6 Vanishing point detection results on mine roadway data set
从图6可看出,在第150帧时,光照条件正常,图像中能够检测到的直线多,3种方法得到的灭点均比较接近真实灭点;在第540帧时,光照条件差,图像中的直线特征不明显,3种方法得到的灭点与真实灭点相比均出现了明显差距,但本文方法得到的灭点更接近真实灭点;在第560帧时,图像上方出现了强光干扰,与基于边缘和基于深度学习的灭点检测方法相比,本文方法得到的灭点更接近真实灭点。由此可知,本文方法对光照变化有较强的鲁棒性,更适用于矿井巷道复杂场景的灭点检测任务。
实验2 公共数据集由行车记录仪的部分视频组成,包括雪地、白天、夜晚3个不同场景。公共数据集中图像分辨率为335×270,帧数为500,由人工标记出每张图像的真实灭点位置。
在公共数据集上的灭点检测结果如图7所示。可看出在第100帧时,图像中直线信息较多,3种方法得到的灭点检测结果都比较准确;在第250帧时,场景中的干扰直线数量增加,基于边缘的灭点检测方法和本文方法能准确检测灭点位置,而基于深度学习的灭点检测方法得到的灭点与真实灭点相比出现了较大差距;在第400帧时,图像中直线信息少、干扰多,基于边缘和基于深度学习的灭点检测方法得到的灭点均明显偏离了真实灭点,而本文方法得到的灭点更接近真实灭点。由此可知,本文方法在光照条件差、缺乏直线信息的情况下具有较好的灭点检测效果。
(a) 基于边缘的灭点检测方法
(b) 基于深度学习的灭点检测方法
(c) 本文方法
图7 在公共数据集上的灭点检测结果
Fig.7 Vanishing point detection results on public data set
假设由本文方法检测到的灭点坐标为(w,h),人工标记的灭点坐标为(w0,h0),则灭点检测误差为
(9)
不同灭点检测方法在不同数据集上的误差对比曲线如图8所示。可看出本文方法的精度高于其他方法;在矿井巷道数据集第500帧至第600帧及公共数据集第350帧至第450帧,3种方法均产生了大于正常水平的误差,这是由于场景中光照条件差,图像中可利用的直线信息大幅减少,引起误差增大。
(a) 矿井巷道数据集
(b) 公共数据集
图8 不同灭点检测方法误差对比曲线
Fig.8 Error comparison curves of different vanishing point detection methods
不同灭点检测方法在不同数据集上的平均误差对比见表1。可看出在矿井巷道数据集上,本文方法平均误差与基于边缘的灭点检测方法、基于深度学习的灭点检测方法相比分别减小了31.6%,26.4%;在公共数据集上,本文方法平均误差与基于边缘的灭点检测方法、基于深度学习的灭点检测方法相比分别减小了22.2%,16.0%。
表1 不同灭点检测方法平均误差对比
Table 1 Comparison of average error of different vanishing point detection methods px
数据集基于边缘的灭点检测方法基于深度学习的灭点检测方法本文方法矿井巷道3.833.562.62公共场景0.270.250.21
不同灭点检测方法在不同数据集上的平均计算用时对比见表2。可看出本文方法的实时性优于基于深度学习的灭点检测方法,但是与基于边缘的灭点检测方法相比还存在一定差距。
表2 不同灭点检测方法平均计算用时对比
Table 2 Comparison of average calculation time of different vanishing point detection methods ms
数据集基于边缘的灭点检测方法基于深度学习的灭点检测方法本文方法矿井巷道14.238.533.8公共场景10.626.823.1
针对矿井巷道场景光照条件差、结构化信息不足,现有的灭点检测方法在该场景下误差大的问题,提出了一种矿井巷道复杂场景灭点检测方法。首先,对图像进行缩小、灰度化、滤波等预处理;然后,采用LSD算法对图像进行直线检测,并引入直线长度阈值和平均梯度约束剔除干扰直线,同时采用块匹配算法生成图像的块运动轨迹直线,解决了光照条件差情况下结构化信息不足的问题;最后,将剔除干扰后的直线和块运动轨迹直线转换为参数空间中的样本点,将样本点的离群因子值和对应直线长度共同作为衡量样本点重要性的标准,采用改进的加权回归算法进行灭点估计,消除了错误样本点的影响。在矿井巷道数据集与公共数据集上的实验结果表明,与基于边缘和基于深度学习的灭点检测方法相比,本文方法对光照变化有较强的鲁棒性,且在光照条件差、缺乏直线信息的复杂场景中具有更高的灭点检测精度;实时性与基于边缘的灭点检测方法相比仍有差距,较基于深度学习的灭点检测方法略有提升。
[1] 王国法,刘峰,庞义辉,等.煤矿智能化——煤炭工业高质量发展的核心技术支撑[J].煤炭学报,2019,44(2):349-357.
WANG Guofa,LIU Feng,PANG Yihui,et al.Coal mine intellectualization: the core technology of high quality development[J].Journal of China Coal Society,2019,44(2):349-357.
[2] 马宏伟,王岩,杨林.煤矿井下移动机器人深度视觉自主导航研究[J].煤炭学报,2020,45(6):2193-2206.
MA Hongwei,WANG Yan,YANG Lin.Research on depth vision based mobile robot autonomous navigation in underground coal mine[J].Journal of China Coal Society,2020,45(6):2193-2206.
[3] 刘丹,刘学军,王美珍.单像自标定的迭代优化方法[J].国防科技大学学报,2015,37(5):29-34.
LIU Dan,LIU Xuejun,WANG Meizhen.Iterative optimization for camera self-calibration from a single image[J].Journal of National University of Defense Technology,2015,37(5):29-34.
[4] MA Jiayi,WANG Xinya,HE Yijia,et al.Line-based stereo SLAM by junction matching and vanishing point alignment[J].IEEE Access,2019,7:181800-181811.
[5] PARODI P,PICCIOLI G.3D shape reconstruction by using vanishing points[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,1996,18(2):211-217.
[6] HUANG Zengshi,GU Naijie,LIN Chuanwen,et al.Real time vanishing points detection on smartphones under Manhattan world assumption[J].Pattern Recognition Letters,2018,115:117-127.
[7] SHI Jinjin,WANG Jinxiang,FU Fangfa.Fast and robust vanishing point detection for unstructured road following[J].IEEE Transactions on Intelligent Transportation Systems,2016,17(4):970-979.
[8] MOGHADAM P,STARZYK J A,WIJESOMA W S.Fast vanishing-point detection in unstructured environments[J].IEEE Transactions on Image Processing,2012,21(1):425-430.
[9] ZU Zhaozi,HOU Yingtuan,CUI Dixiao,et al.Real-time road detection with image texture analysis-based vanishing point estimation[C]//IEEE International Conference on Progress in Informatics and Computing,Nanjing,2015:454-457.
[10] 刘鹏辉,李岁劳,何颖.基于消失点迭代重估的道路边缘检测[J].电子与信息学报,2014,36(7):1619-1624.
LIU Penghui,LI Suilao,HE Ying.Road edge detection based on vanishing point iteration revaluation[J].Journal of Electronics & Information Technology,2014,36(7):1619-1624.
[11] SUTTORP T,BUCHER T.Robust vanishing point estimation for driver assistance[C]//IEEE Intelligent Transportation Systems Conference,Toronto,2006:1550-1555.
[12] YU Zhelin,ZHU Lidong.Roust vanishing point detection based on the combination of edge and optical flow[C]//The 4th Asia-Pacific Conference on Intelligent Robot Systems,Nagoya,2019:184-188.
[13] EBRAHIMPOUR R,RASOOLINEZHAD R,HAJIABOLHASANI Z,et al.Vanishing point detection in corridors: using Hough transform and K-means clustering[J].The Institution of Engineering and Technology Computer Vision,2012,6(1):40-51.
[14] KOSECKA J,ZHANG Wei.Efficient computation of vanishing points[C]//IEEE International Conference on Robotics and Automation,Washington,2002:223-228.
[15] LOPEZ-MARTINEZ A,CUEVAS F J.Vanishing point detection using the teaching learning-based optimisation algorithm[J].The Institution of Engineering and Technology Image Processing,2020,14(11):2487-2494.
[16] LI Xingxin,ZHU Liqiang,YU Zujun,et al.Vanishing point detection and rail segmentation based on deep multi-task learning[J].IEEE Access,2020,8:163015-163025.
[17] GIOI R G V,JAKUBOWICZ J,MOREL J M,et al.LSD: a fast line segment detector with a false detection control[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2010,32(4):722-732.
[18] DAGHAMEEN K,ARMAN N.An efficient algorithm for line recognition based on integer arithmetic[C]//Proceedings of the 2nd Palestinian International Conference on Computer and Information Technology,Hebron,2019:1-3.
[19] 禹晶,苏开娜.块运动估计的研究进展[J].中国图象图形学报,2007,12(12):2031-2041.
YU Jing,SU Kaina.A survey of block-based motion estimation[J].Journal of Image and Graphics,2007,12(12):2031-2041.
[20] 王明江,王进祥,商迪.一种适合可变块运动估计硬件实现的改进三步搜索算法[J].中国图象图形学报,2010,15(11):1596-1602.
WANG Mingjiang,WANG Jinxiang,SHANG Di.An improved three step search algorithm fit for VBSME hardware implementation[J].Journal of Image and Graphics,2010,15(11):1596-1602.
[21] 廖祝华,张健,刘毅志,等.基于稀疏轨迹数据的出租车载客区域推荐[J].电子学报,2020,48(11):2178-2185.
LIAO Zhuhua,ZHANG Jian,LIU Yizhi,et al.Taxi pick-up area recommendation based on sparse trajectory data[J].Acta Electronica Sinica,2020,48(11):2178-2185.
[22] 刘芳,齐建鹏,于彦伟,等.基于密度的Top-n局部异常点快速检测算法[J].自动化学报,2019,45(9):1756-1771.
LIU Fang,QI Jianpeng,YU Yanwei,et al.A fast algorithm for density-based Top-n local outlier detection[J].Acta Automatica Sinica,2019,45(9):1756-1771.
CHENG Jian,WANG Ruibin,YU Huasen,et al.Vanishing point detection method in complex environment of mine roadway[J].Industry and Mine Automation,2021,47(6):25-31.