基于RANSAC的地下矿山巷道边线检测算法

黄金科学技术,2020,28(1):105-111doi:10.11872/j.issn.1005-2518.2020.01.043

采选技术与矿山管理

2.中南大学数字矿山研究中心,湖南长沙410083

2.CenterofDigitalMineResearch,CentralSouthUniversity,Changsha410083,Hunan,China

收稿日期:2019-05-05修回日期:2019-09-17网络出版日期:2020-03-06

Received:2019-05-05Revised:2019-09-17Online:2020-03-06

作者简介Aboutauthors

巷道边线是井下铲运机反应式导航系统中重要的感知信息。为了准确可靠地在井下环境中感知巷道边线,提出一种基于二维激光扫描信息和随机抽样一致性(RANSAC)的巷道边线检测算法。首先计算每个激光点的曲率,根据曲率阈值将激光点云划分为多个区域;然后基于RANSAC从每个区域提取直线,并根据铲运机航向角及巷道的设计标准进行筛选;最后合并筛选后的激光点云数据,使用RANSAC算法生成最终的巷道边线。基于地下矿山6种典型的巷道场景对算法效果进行验证,结果显示提取的巷道边线可靠度均达到96%以上,且算法具有很高的实时性和稳健性。

关键词:井下铲运机;激光雷达;随机抽样一致性;巷道边线检测;反应式导航;地下矿山

Keywords:undergroundLHD;lidar;randomsamplingconsistency;roadwayedgedetection;reactivenavigation;undergroundmine

本文引用格式

毕林,段长铭,任助理.基于RANSAC的地下矿山巷道边线检测算法[J].黄金科学技术,2020,28(1):105-111doi:10.11872/j.issn.1005-2518.2020.01.043

BILin,DUANChangming,RENZhuli.RoadwayEdgeDetectionAlgorithmBasedonRANSACinUndergroundMine[J].GoldScienceandTechnology,2020,28(1):105-111doi:10.11872/j.issn.1005-2518.2020.01.043

本文提出了一种基于二维单线激光雷达扫描信息和随机抽样一致性的井下巷道边线检测方法,通过考虑矿山井下巷道环境的特点及复杂性,提高算法在多种类型巷道环境下的稳健性和准确度。文中阐述了该方法的数学原理及算法实现流程,并通过6组激光模拟数据对算法的效果进行了验证及分析。

RANSAC算法的数学推导过程如下:

首先,假设数据集中内点占所有数据的比例为t,有

然后,假设用RANSAC算法求解的数学模型需要的点数为n。n的值由求解的问题确定,如求解直线模型时n为2,求解平面模型时n为3。则用RANSAC算法解得正确模型的概率P为

由于内点所占比例t是一个先验值,且是未知数,所以通常先赋给t一个经验值。根据式(2),可得t和迭代次数k共同影响RANSAC算法求得正确模型的概率,如果赋给t的经验值与真实值偏差过大,可以通过调整迭代次数来保证算法的准确度P,迭代次数k由以下公式得出:

式中:P为算法的目标准确度;k为迭代次数;t为内点占比。

图1基于RANSAC的巷道边线检测流程

Fig.1RoadwayedgedetectionprocessbasedonRANSAC

步骤1:计算激光点曲率

公式如下:

步骤2:根据激光点曲率划分不同的区域

在曲率出现突然变化的点处,将该点前后的激光点划分为2个部分。

步骤3:运用RANSAC提取不同区域的直线

应用RANSAC算法,从每一部分激光点提取巷道边线,并存储每个巷道边线的斜率和截距。

步骤4:根据铲运机运动方向和巷道设计标准筛选巷道边线

巷道边线筛选原则如下:

(1)巷道边线应该以铲运机为中点,分成左右2个部分。

(2)为保证铲运机的安全,铲运机运动方向与巷道走向夹角始终不超过50°。

(3)巷道边线原则上是两两平行的,但是由于实际建设或数据收集过程存在误差,相交角度应该在一定范围内(本文设置相交角度范围为小于20°),则有

(4)巷道宽度范围应满足矿山巷道设计要求,本文设置为约2.2m。

步骤5:合并筛选剩余的巷道边线激光点,并再次运用RANSAC算法进行最终巷道边线提取,同时计算巷道边线可靠度。

算法数据基于二维单线激光雷达。单线激光雷达与多线束激光雷达相比,具有体积小、测量速度快、数据量少和成本较低的优点,因此更加适用于巷道边线的检测。为了测试本文所提算法的准确度和稳健性,共准备了6组激光点云模拟数据,分别代表地下矿山井下巷道中6种典型的场景,其中既有对应相对简单情景的数据,也有对应相对复杂情景的数据,所以试验结果具有很好的代表性。

6组激光点云数据是在铲运机航向角与巷道真实走向完全一致的假设条件下模拟得出(航向角与x轴夹角为90°,模拟的巷道真实走向与x轴夹角也为90°)。本文的研究重点是如何在井下根据二维激光扫描信息提取巷道边线,所以文中数据是指经过去除运动畸变等处理的激光点数据,不需要考虑铲运机运动速度等因素的影响。

图2激光点云数据集

Fig.2Laserpointclouddataset

图3巷道边线提取效果图

(a)直行巷道分段;(b)转弯处分段;(c)交叉口处分段;(d)直行巷道最终结果;(e)转弯处最终结果;(f)交叉口处最终结果;(g)多交叉口巷道分段;(h)不规则交叉口处分段;(i)采场处分段;(j)多交叉口巷道最终结果;(k)不规则交叉口处最终结果;(l)采场处最终结果

Fig.3Effectmapofroadwayedgeextraction

表1巷道边线可靠度分析

Table1Reliabilityanalysisofroadwayedge(%)

Table2Operatingtimeofalgorithm

通过分析试验结果得出:在6种场景下,提取的巷道边线平行度都在93%以上,巷道边线与航向角契合度都在96%以上,巷道边线内点占比都在92%以上,最终计算得到提取的巷道边线总体可靠度都在96%以上;同时生成的巷道边线经可视化显示后均符合井下巷道工程实际情况,没有异常;算法的平均解算时长为72.51ms,最大值为89.47ms,完全满足井下反应式导航的需求。以上结果说明本文所提方法能够有效准确地提取巷道边线,并且具有很高的实时性。

(2)算法稳健性评估。试验场景设计由简单到复杂,已经对算法的稳健性进行了一定程度的测试。为了更加深入地评估算法的稳健性,通过删除当前数据的1/2和2/3来模拟不同角度分辨率的激光数据,如果激光雷达原本角度分辨率是1°,经上述处理之后分别为2°和3°,这样就可以评估当使用更低数据速率(角度分辨率更大)的雷达或小功率处理器时算法的效果。

表3由不同角度分辨率数据提取的巷道边线可靠度

Table3Reliabilityofroadwayedgeextractedfromdifferentangleresolutiondata

表4试验数据方差分析

Table4Varianceanalysisofexperimentaldate

(1)针对多粉尘及巷道壁凹凸不平的井下封闭环境,提出了基于RANSAC的巷道边线检测算法,用于辅助井下铲运机的反应式导航,为实现井下铲运机的自主导航提供技术支撑。

(3)稳健性分析试验结果表明:该算法在矿山复杂多变的环境和较大角度分辨率的激光数据下均能稳定有效地提取巷道边线,具有很高的稳健性。

DragtBJ.ModelingandControlofanAutonomousUndergroundVehicle

陈盟,王李管,贾明涛,等.地下铲运机自主导航研究现状及发展趋势

ChenMeng,WangLiguan,JiaMingtao,etal.AnoverviewofautonomousnavigationtechniquesanddevelopmenttrendforundergroundLHD

姜勇.基于双变量PID控制算法的地下智能铲运机自主导航技术研究

JiangYong.TechnicalstudyonautonomousnavigationofsmartundergroundscraperbasedonbivariatePIDcontrolalgorithm

杨超,陈树新,刘立,等.反应式导航在地下自主行驶铲运机中的应用

YangChao,ChenShuxin,LiuLi,etal.Reactivenavigationforundergroundautonomousscraper

LarssonJ.ReactiveNavigationofanAutonomousVehicleinUndergroundMines

BorensteinJ,EverettHR,FengL,etal.Mobilerobotpositioning:Sensorsandtechniques

李晓梅,贾明涛,李宁,等.基于模糊控制的井下自主铲运机的安全导航

LiXiaomei,JiaMingtao,LiNing,etal.Safenavigationofundergroundautonomouscarryscraperbasedonfuzzycontrol

张绍光.基于局部重建的点云特征点提取

ZhangShaoguang.FeatureDetectiononPointCloudsViaLocalReconstruction

陈岚峰,杨静瑜,崔崧,等.基于MATLAB的最小二乘曲线拟合仿真研究

ChenLanfeng,YangJingyu,CuiSong,etal.MATLABsimulationofcurvefittingbasedonleast-squares

HoughV,PaulC.Methodandmeansforrecognizingcomplexpatterns

FischlerMA,BollesRC.Aparadigmformodelfittingwithapplicationstoimageanalysisandautomatedcartography

LarssonJ,BroxvallM,SaffiottiA.Laserbasedcorridordetectionforreactivenavigation

王旭宸,卢欣辰,张恒胜,等.一种基于平行坐标系的车道线检测算法

WangXuchen,LuXinchen,ZhangHengsheng,etal.Alanedetectionmethodbasedonparallelcoordinatesystem

杜恩宇,张宁,李艳荻.基于Gabor滤波器的车道线快速检测方法

DuEnyu,ZhangNing,LiYandi.LanelinequickdetectionmethodbasedonGaborfilter

段建民,李岳,庄博阳.基于改进SIS算法和顺序RANSAC的车道线检测方法研究

DuanJianmin,LiYue,ZhuangBoyang.LanelinedetectionmethodresearchbasedonimprovedalgorithmofSISandsequentialRANSAC

贾会群,魏仲慧,何昕,等.基于神经网络与最小二乘法的车道线检测算法研究

JiaHuiqun,WeiZhonghui,HeXin,etal.Aresearchonlanemarkingdetectionalgorithmbasedonneuralnetworkandleastsquaresmethod

游俊甫.基于RANSAC的点云数据特征提取

YouJunpu.FeatureExtractionofPointCloudDataBasedonRANSAC

ZhangJ,SinghS.Low-driftandreal-timelidarodometryandmapping

THE END
1.小学数学简便运算定律与简便计算知识讲解大盘点!加法除法分配律注意:加法结合律有着广泛的应用,如果其中有两个加数的和刚好是整十、整百、整千的话,那么就可以利用加法交换律将原式中的加数进行调换位置,再将这两个加数结合起来先运算。 例1.用简便方法计算下式: (1)63+16+84 (2)76+15+24 (3)140+639+860 https://www.163.com/dy/article/JJN99GMG05566S5I.html
2.刷题32动态规划1动规是由前一个状态推导出来的,而贪心是局部直接选最优的,对于刷题来说就够用了。 动态规划解题五部曲: 确定dp数组(dp table)以及下标的含义 确定递推公式 dp数组如何初始化 确定遍历顺序 举例推导dp数组 debug过程:把dp数组打印出来;把状态转移在dp数组的上具体情况模拟一遍 2.leetcode斐波那契数509 2.1题目 2.2https://zhuanlan.zhihu.com/p/12807570388
3.算法讲解及例子算法案例一、排序算法 1、冒泡排序 重复走访过要排序的数列,一次比较相邻的两个元素,如果他们顺序错误就交换,直到没有再需要交换。两个for循环,第一个循环0len-1,第二个循环0len-1-i voidbubble_sort(ints[],intn){intflag=0;for(inti=0;i<=n-1;i++){flag=0;for(intj=0;j<=n-i-1;j++){if(s[j]>https://blog.csdn.net/stupidcunning/article/details/123692706
4.[Python从零到壹]十三.机器学习之聚类算法四万字总结(K聚类算法在Scikit-Learn机器学习包中,主要调用sklearn.cluster子类实现,下面对常见的聚类算法进行简单描述,后面主要介绍K-Means算法和Birch算法实例。 (1) K-Means K-Means聚类算法最早起源于信号处理,是一种最经典的聚类分析方法。它是一种自下而上的聚类方法,采用划分法实现,其优点是简单、速度快;缺点是必须提供聚https://cloud.tencent.com/developer/article/1910131
5.javascript常用经典算法实例详解javascript技巧这篇文章主要介绍了javascript常用算法,结合实例形式较为详细的分析总结了JavaScript中常见的各种排序算法以及堆、栈、链表等数据结构的相关实现与使用技巧,需要的朋友可以参考下GPT4.0+Midjourney绘画+国内大模型 会员永久免费使用!【 如果你想靠AI翻身,你先需要一个靠谱的工具!】本文实例讲述了javascript常用算法。分享给https://www.jb51.net/article/75437.htm
6.监督学习有哪些常见算法?都是如何应用的监督学习有哪些常见算法?都是如何应用的 掌握一些最常用的监督学习算法能够帮助我们解决实际问题,本文将通过很多实例进行详细介绍。 ?什么是监督学习? 监督学习是机器学习的子集,监督学习会对机器学习模型的输入数据进行标记,并对其进行练习。因此,监督模型能最大限度地预测模型的输出结果。https://www.51cto.com/article/712484.html
7.AWS常见问题汇总Q: ELB/ALB 采用什么算法转发请求到后端实例? A: ELB TCP 监听端口使用轮询算法,HTTP 监听端口使用未完成最少请求算法。 ALB 使用轮询算法。 如果只有1个健康的后端实例,所有请求都会被转到此实例。如果没有任何健康的后端实例,请求会被转发到所有已注册但是不健康的实例。 https://www.imooc.com/article/47391
8.科学网—[转载]基于容器云技术的典型遥感智能解译算法集成3 遥感深度学习算法集成实例 3.1 数据集与实验环境 为了验证该集成方案的有效性,本节基于Docker和Kubernetes的遥感深度学习算法集成方案,以DOTA、UC Merced LandUse、DSLT、SpaceNet7这4个数据集为例,选取5种不同的基于深度学习的遥感智能解译算法,介绍4种遥感产品的生产。 https://blog.sciencenet.cn/blog-3472670-1339282.html
9.转型AI产品经理需要掌握的硬知识二:AI常见概念和算法梳理上一篇文章介绍AI产品经理能力模型,人工智能的发展历史,人工智能常见概念的结构梳理,也简要做了BAT人工智能的优势分析,感兴趣的朋友可以点击链接查看上文。转型AI产品经理需要掌握的硬知识一:AI产品能力框架和看待AI的几个视角本文将继续介绍Ai产品经理需要理解的一些概念,常见AI算法,机器学习的工作方式和三大流派,使用Tenhttps://www.jianshu.com/p/6efadb29420f
10.“才”聚天开,勇往“职”前兰力科(天津)科技集团有限公司是以中科院和国内重点高校为依托,从事科教仪器、医疗器械、健康医疗三大支柱产业的专业化的产业集团。是以生产电化学分析仪器闻名于中国分析仪器行业,是以光电化学技术应用于生物医学工程领域闻名于中国医疗器械行业。集团下控7个独立子公司。https://www.tjrc.com.cn/app/article/content/VE4rR2NWRjUzUU5SOFFxWDdRa09oZz09.shtml
11.各种排序算法大全ppt课件11、 3 4 5 6.1.4 希尔排序希尔排序 运用实例t 30 1 2 3 4 50 1 2 3 4 5t 2t 16.1.4 希尔排序希尔排序 算法分析 开场时 gap 的值较大, 子序列中的记录较少, 排序速度较快 随着排序进展, gap 值逐渐变小, 子序列中记录个数逐渐变多,由于前面大多数记录已根本有序, 所以排序速度依然很快 Gap的https://www.renrendoc.com/paper/213502782.html
12.多种算法(精选七篇)经过对上述交易模式的仔细研究和分析,笔者认为:不管是哪种模式,都有一个共同的要素——匹配交易,即有一个需方队列和一个供方队列,两个队列根据不同的交易模式进行不同地排序,并形成有效的匹配对队列,这个队列按照煤耗差或者价差排序,形成一个有序匹配对队列,按照这个思路,笔者设计了统一的算法,其中总算法框图如图3https://www.360wenmi.com/f/cnkey4of91dc.html
13.c++史上最全算法详解,0基瓷秒懂!(爆肝上万字)递归函数通常用于解决具有递归性质的问题,例如树、图和集合等数据结构的遍历,以及分治算法等。通过将问题分解为更小的子问题,递归函数能够简化问题的解决过程,并使代码更加简洁和易于理解。然而,使用递归函数需要注意避免栈溢出和正确处理终止条件,以确保程序的正确性和效率。 二、核心代码实例 以下是一个简单的C++程序https://www.acwing.com/blog/content/40238/