基于种子区域生长的激光线段特征提取介绍

基于种子区域生长的激光线段特征提取介绍

A line segment extraction algorithm using laser data based on seeded region growing

open source

摘要:本次将介绍一种基于种子区域生长的激光线段特征提取方法,种子区域生长在图像处理中得到了广泛的应用。所要介绍的方法将不同于线段跟踪、霍夫变换和分割合并等等,总的步骤包括种子线段的提取、区域生长、重叠区域处理和端点生成。通过实际对比实验,表明所提方法在提取线段过程中的实时性、准确性和精确性方面,相比于传统的Iterative-End-Point-Fit 取得了更好的效果,所用数据集为室内实验室环境和走廊环境。所要叙述的内容分为以下几个方面

  • 线激光提取线段的必要性,以及相关工作
  • 基于种子区域生长的线段提取方法
  • 实验比较
  • 总结

线激光提取线段的必要性,以及相关工作

相比于视觉传感器,激光传感器具有数据可靠、抗干扰能力强,数据精度高等优点。线激光应用于SLAM,karto_SLAM、gmapping以及cartographer都取得了相当成功的成果,以及在移动和飞行机器人自主导航等领域也取得了不错的效果。在需要移动机器人完成更为复杂的任务时,比如被绑架时的全局定位,自主导航过程中的鲁棒定位,SLAM过程中的回环检测,都需要利用观测信息对环境进行更为高等的描述,而不仅仅是点云。就线激光而言,容易想到也易于实现的高等特征,就是线段特征,也有大量学者利用线段特征进行导航、全局定位以及SLAM。

早期就有大量学者关于线激光的线段特征提取做了大量工作,譬如线段跟踪、霍夫变换以及分割合并等等,在07年的Auton Robot 发表的一篇关于线段提取方法比较的论文:

Nguyen V, Gachter S, Martinelli A, et al. A comparison of line extraction algorithms using 2D range data for indoor mobile robotics. Auton Robot 2007; 23(2): 97-111

经过实验比较之后,得出分割合并的性能最优;鉴于此,在设计对比实验中,我们所提方法也将与分割合并进行比较。分割合并方法的示意图如下所示:

分割合并方法示意图

但是在实验过程中发现,这样的提取方法会产生如下问题,致使线段提取的精确性与准确性收到影响:

分割合并错误

基于种子区域生长的线段提取方法

所提方法的整体步骤如下图所示:

整体步骤

正交最小二乘

直线的参数方程为: ax+by+c=0 a x + b y + c = 0 。传统最小二乘只考虑 Y Y 轴方向上的误差,而对于正交最小二乘应用于直线拟合,考虑的是点到直线的垂直距离,使得拟合直线不会受到病态方程的影响(微小的波动就会引起直线参数巨大的变化)。代价函数如下:

f(a,b,c)=i=1i=ndi2,di=|axi+byi+c|a2+b2.

代价函数关于对参数 a,b,c a , b , c 求偏导,分别置为0,在经过化简之后就可以获得所要拟合直线的参数。

种子线段的获取

种子区域生长的第一步,需要先获得种子,而线段的种子可以理解为一段少量连续点云构成的线段(小线段)。在获取激光数据之后,可以依次选取连续 Snum S n u m 个点云进行判断是否符合种子线段的要求,如果符合,则进行区域生长获取整条线段,否则舍弃,重新进行种子线段的选取。判断的标准有两个:
1、点到直线的距离:
候选种子线段上各个点云到所拟合直线的距离小于阈值 ϵ ϵ , 阈值的选取与所用传感器有关:

|axi+byi+c|a2+b2<ϵ. | a x i + b y i + c | a 2 + b 2 < ϵ .

2、点到点的距离
候选种子线段的点云往往较少,因此引起的误差可能较大,由下图所示:

这里写图片描述

上图中,红色点即为了点云的预测位置,而蓝色的为实际位置,当候选种子线段的误差较大时,预测和实际位置之间的差距往往较大,所以在判定种子线段时需要增加这么一条判定条件。

(xixi)2+(yiyi)2<δ, ( x i − x i ′ ) 2 + ( y i − y i ′ ) 2 < δ ,

其中预测点的位置,由当前点云的角度和所拟合的直线参数共同决定:

{axi+byi+c=0sin(θ)xi+cos(θ)yi=0, { a x i ′ + b y i ′ + c = 0 − sin ⁡ ( θ ) x i ′ + cos ⁡ ( θ ) y i ′ = 0 ,

xi=ccos(θ)acos(θ)+bsin(θ),yi=csin(θ)acos(θ)+bsin(θ). x i ′ = − c cos ⁡ ( θ ) a cos ⁡ ( θ ) + b sin ⁡ ( θ ) , y i ′ = − c sin ⁡ ( θ ) a cos ⁡ ( θ ) + b sin ⁡ ( θ ) .

整体伪代码如下:
这里写图片描述

区域生长

区域生长在图像领域获得了较为广泛的应用。通过一些删选条件把具有相同特征的对象聚类在一起,最终获得分割或者分类的效果。在线段提取的过程中,同一线段上的点云具有的特征就行,点云到直线的垂直距离小于给定阈值。在本方法中,通过种子线段的向前和向后生长获得完整线段,具体如下伪代码所示:

这里写图片描述

重叠区域的处理

这里写图片描述

区域生长可以获得较为理想的分割效果,但是不尽如人意的是,环境错综复杂,经常会发生重叠区域,如上图所示。发生重叠的情况包括共线和不共线两种,上图所示的是共线情况,需要对两条共线的重叠线段合并为一条线段,而不共线的情况(比如墙角)则需要判断重叠部分的归属问题,即判断重叠部分的点云距离哪条线段更近(属于哪条),具体可以如下伪代码所示:

这里写图片描述

线段端点的获取

在其他的一些文献资料中,并未对线段端点有过多的描述,通过末端点云对线段端点进行描述,但是所提线段的末端点云包含包含噪声,本方法利用所获得的直线参数进行端点的生长,具体如下图所示:

这里写图片描述

通过末端点云正交所拟合的直线获取线段端点:

{axs+bys+c=0bxsays+ay0bx0=0, { a x s + b y s + c = 0 b x s − a y s + a y 0 − b x 0 = 0 ,

其中 ( x0,y0 x 0 , y 0 ) 末端点云位置。 然后, 由上述方程联立获得的交点( xs,ys x s , y s ) 如下所示:

xs=b2x0aby0aca2+b2,ys=a2y0abx0bca2+b2. x s = b 2 x 0 − a b y 0 − a c a 2 + b 2 , y s = a 2 y 0 − a b x 0 − b c a 2 + b 2 .

实验配置与实验结果

实验环境与实验平台

室内实验室环境和走廊环境:
这里写图片描述

实验平台为P3DX移动机器人,传感器为UTM-30LX:
这里写图片描述

实时性比较

不失一般性,对于两个环境的数据集分别选取前1000帧数据进行实时性展示:
这里写图片描述

定量数据如下:
实验室环境(单位:毫秒)

项目均值方差最小值最大值
种子区域生长0.4450.0570.0130.695
分割合并6.6720.6723.08412.00

定量数据如下:
走廊环境(单位:毫秒)

项目均值方差最小值最大值
种子区域生长0.3290.1290.0730.6931
分割合并5.1931.0392.8487.791

准确性比较

准确性定义如下:

TRFR=NumMatchTrueLines,=NumExtLineNumMatchNumExtLine, T R = N u m M a t c h T r u e L i n e s , F R = N u m E x t L i n e − N u m M a t c h N u m E x t L i n e ,

其中 NumMatch N u m M a t c h 表示正确提取的线段数量, NumExtLine N u m E x t L i n e 为全部提取的线段数量, TrueLines线线 T r u e L i n e s 则 表 示 环 境 中 真 实 存 在 的 线 段 数 量 一 个 理 想 的 线 段 提 取 方 法 具 有 较 高 的 TR 和 一 个 较 低 的 FR$。

定量比较结果如下所示:
实验室环境(单位:%)

项目 TR T R FR F R
种子区域生长93.552.59
分割合并68.557.06

定量比较结果如下所示:
走廊环境(单位:%)

项目 TR T R FR F R
种子区域生长94.200
分割合并71.014.08

精确性比较

精确性比较指代所提线段是否完整,不同于07年线段提取方法比较的文章。
这里写图片描述

由上图所示,基于种子区域生长的方法可以获得更多更完整的正确线段。

总结

至此,基于种子区域生长的直线段提取方法介绍完了,整个方法比较简单,参数较少。另外如果有不同的需要,例如所用传感器是否为全向,或者所用传感器是否存在噪点,需要对程序进行修改。
之后可以将所获得的线段特征应用于SLAM,混合特征于地图构建,全局定位或者更为鲁棒的自主导航过程。

有问题可加群 (移动机器人导航与控制群:199938556) 讨论交流,进群修改备注。


评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值