基于激光测距仪的3维景深图像重构与辨识
基于激光测距仪的3维景深图像重构与辨识
作者:陈伟海;高铭辰;王建华
十几年来,机器视觉始终都是移动机器人研究领域的关键技术.常用的传感器有摄像头和测距仪.摄像头CCD获取的是每个像素点的光照强度,而测距仪得到的是机器人与障碍物之间的距离.距离信息相比于光强信息在机器人的导航与避障中是更直接、更有用的信息,可以大大减少机器人本体在路径规划运算中所需要的运算时间,降低运算复杂度.基于激光测距仪的避障导航将会大大提高移动机器人的全自主运动能力.
2维激光测距仪具有较高的测量精度和不错的分辨率,已经被广泛应用到室内或室外障碍物检测上.但茂2维激光测距仪仅有一个扫描平面,所以它具有仙人的扫描盲区.市场上的3维激光测距仪价格过高,而且所谓的3维激光测距仪的第3个维度的扫描线过少,一般只有4到5条,这种3维激光测距仪的盲区也很大.所以通常的研究方法是利用2维激光测距仪来构建3维激光測距仪.这种3维激光测距仪可以克服上述2维激光测距仪的缺点,构建这样的3维测距仪的简单有效的方法是直接旋转2维激光测距仪,通过电机为它增加第3个维度,从而获得3维的环境信息。国内的研究者中蔡自兴教授对基于这种传统方法的3维重构显示有较深入的研究〔用,但这种方法的一个很大缺点是沉重的2维激光测距仪所带来的惯性问题,电机的摆动以及震动导致的激光源的不稳定问题,由此问题所带来的误差是不可忽视的.为了克服这个缺陷,我们在激光测距仪的前面放置一套棱柱反射系统.利用这套机构,使系统获取的数据更加精准,而且在第3个维度的数据埴大幅增加.通过对前方3维环境的精准认知,这套改进的3维激光测距仪提高了移动机器人的门主导航能力.
当前关「由激光测距信息构成的环境信息的认知,很多的研究成果是针对2维平面的.这些2维平面上的环境认知问题主要集中在点、线、圆的特征提取以及数据的实时更新上.Gonzalez等采用简易的点聚类分割法直接对2维激光测距仪获得的原始数据进行处理卩可.一些研究者利用Hough变换的方法重构出部分2维环境地图.PearsB!采用扩展卡尔曼滤波(EKF)方法来提取经过限制性描述的环境中的线性特征,并且利用这些信息作为匹配标准.这种方法不仅恰当地描述并且更新了线性特征的标准误差,而且减少了机器人和2维激光测距仪作线性因素的影响.然而,这种方法需要进行大筮的矩阵运算,而常用的移动机器人硬件控制平台很难承受这种运算.为了描述线性特征的或然率分配,Pfister网考虑每个测量点的不确定性,并且用最大似然法对每条线进行了修正.但是这种方法同样有计算复杂度高的缺点.
由r3维景深图像和2维景深图像明显的不同,所以这些处理2维平面上环境认知的算法无法直接应用到3维景深图像上.3维景深图像同普通的数字图像比较起来,它的特点是图像是空间上3维立体的,由距离信息构成,并且没有颜色纹理的渲染.这些特点也为3维景深图像的处理带来难度.
为了对3维景深图像进行处理识别,本文提出了景深而元的概念.利用基于景深面元的一系列方法,可以将3维景深图像类比成一幅数字灰度图像,应用-些处理灰度图像的成熟算法对3维景深图像进行检测.其中基丁面元的法向量聚类法将景深图像划分成若干个平面,这有利于室内结构化环境中移动机器人对环境的识别.在景深面元的基础上,本文将数字图像分割方法中常用的Sobel算于应用到3维景深图像的边缘检测中,取得了不错的效果.
23维激光测距系统(3Dlaserrangefindersystem)
2.13维激光测距仪的原理
本项使用的激光仪最大扫描范围达到了180°.它是利用&行时间(TOF)的原理进行测距的.激光脉冲从光源中直线发山,被前方的障碍物垂直反射来,并且反射光被LMS291中的接收器记录下来.通过计算接收时刻与发射时刻之间的时间差可以求得激光源与障碍物之间的距离.
自制的3维激光测距仪系统包括2维激光测距仪LMS291、一个可控转速的六棱柱和一套嵌入式控制系统.所有这些都被安装在移动小车的表面上.在这套自制的系统中,激光源LMS291被固定住,通过旋转光源前的六面棱柱来获取3维景深数据.这种方法稳定了光源,并且通过变速控制棱柱的旋转,可以得到变分辨率的3维景深数据.同传统的装置相比,这套装置获得的数据更精准,而且数据量大幅增加。
2.2激光测距仪控制系统硬件结构
3维激光测距仪控制系统的主控制器为Intel公司的XScale,采用的是ARMV5TE架构,主要负责整个系统的调度、图形的显示、人机接口以及小乍的移动控制.系统釆用DSP6713作为协控制器,负责图像矩阵的运算处理.主从控制器通过64kDPRAM(dual-portstaticRAM)CY7C028进行通信.图2显示了整个系统的结构框图.3维激光景深数据釆集模块中有伺服控制系统,负责对码盘和LMS291数据进行实时同步处理,整合后传给运算单元.DSP6713和景深数据获取模块通过HPI(host?postinterface)接口连接.
33维景深图像的重构与辨识(Reconstruc-tionandrecognitionof3Ddepth-of-fieldimage)
3.1景深图像的重构
系统获得景深数据以后,实际上得到的是一组前方空间中所有反射激光的物体的距离值.这些数据是由若干条扫描线构成的,而每条扫描线乂包括了若干个测距点.所以每帧3维景深图像是由成千上万个排列整齐的测距点构成.
通过一系列的坐标系换算,诃以将这些距离值转化为此点在笛卡儿坐标系下的坐标.在3D空间中,场景是物体或模型的集合.在3D图形渲染中,所有的物体都是由三角形构成的.这是因为一个三角形可以表示一个平面,而3D物体就是由一个或多个平面构成.为此,本文将相邻的3个点连接成一个三角面,进行图像的重构.在嵌入式平台上,以Ql/Embedded作为图形程序框架的基础,移植了嵌入式版本的TinyGL.它是OpenGL在嵌入式平台上的一种实现形式.利用TinyGL提供的标准OpenGL接口,系统将景深数据显示在LCD屏幕上达到重构图像的目的.
3.2景深图像的辨识
重构出的3维景深图像通常具有如下特点:(1)景深图像是3维的、立体的、空间的图像,我们可以旋转3维景深图像,从各个角度观察景深图像;(2)景深图像所体现的最直观的信息是空间中的距离,也就是机器人与环境中各点的相对距离:(3)景深图像没有颜色、纹理的渲染,看起来不真实.景深图像的这些特点也为景深图像的处理增加了难度.
数字图像通常由灰度或者彩色信息所构成,由于景深图像同普通数字图像有着显著区别,所以不能用传统的数字图像处理方法对景深图像进行辨识.为了有效地解决这个问题,本文提出了景深面元的概念以便将数字图像的处理方法移植到景深图像.通常对于灰度数字图像来说,图像中的边缘信息往往体现在灰度变化剧烈的地方,所以可以通过判断灰度的变化来检測边缘.而对于景深图像来说,边缘信息往往体现在法向量变化剧烈的地方,所以可以通过检测法向量来判断景深图像的边缘.但是,由于景深图像的信息具有单一性,即它仅仅包含距离值信息,所以只通过判断法向域来检测图像的边缘还不够,需要综合考虑每个三角网格的面积权值、相对曲率以及最重要的法向量等因素,米检测景深图像的边缘信息.为了理解和运算上的方便,将单个三角网格及其法向量、面积权值和相对曲率等其他特性定义为一个景深面元,通过对景深面元的剧断来检测边缘信息.
3维景深环境认知流程图.从景深图像的三角形网格化开始,到网格简化后将图像信息存储到存储器后结束.整个过程的关键是对景深面元的处理.首先对景深图像进行滤波,然后在系统中利用法向量聚类法进行景深面元的分类,并通过面元对景深图像进行边缘检测.
33景深图像的滤波
所获得到的景深数据中存在各种随机噪声及野值,通常不能直接进行景深图像的重构和辨识.由于面元的法向量是空间向量,故不能直接成用图像检测中常用的滤波方法进行去噪,可以利用曲面法向量的球而坐标分解来克服此问题。这两个函数的定义域和面元法向量的定义域相同.通过将法向量分割成两个图像力和仇,再利用图像处理的一般方法对这两个图像进行滤波,可以完成面元法向量的噪声处理.
3.4景深面元归类类算法的实现
利用基于景深面元的法向量聚类法对3维景深图形进行基本处理.和顶点聚类法一样,它是简易而且有效的方法.顶点聚类法是用来简化三角网格且能够用多边形表示3维物体的实用技术.然而,点聚类法是对多边形顶点进行聚类,而对丁T维空间中面的聚类就无能为力了,而这正是法向量聚类法所具有的功能.法向量聚类法是在3维坐标系下将景深面元的法向量进行聚类.首先用一个包围盒将原始模型包围起来,然后通过空间划分将包围盒分成若干个区域,这样,原始模型的所有景深面元就分别落在这些小区域内,如果在此区域内景深面元法向量的差异度小于设定好的阈值,那么景深面元就被归为一类,如图5所示.最终一帧3维景深图像中的景深面元会被划分为若干类.
3维景深图像中的景深面元被归类到数个集合当中,这个简易的方法可以区分岀空间中不同的平面.这为移动机器人进一步的环境认知打下了基础.像房间和走廊这种结构化的室内环境可以划分成若F个平面.房间内的每个规则物体,比如墙壁、犬棚、底板、门、桌子和柜子,都是由若干个平面构成的.因此,当机器人可以对环境中不同的平面作出准确辨识后,就可以进一步对周围环境进行认知.
被不同平面进行准确的区分所带来的另一个好处是,可以对平面进行简化.一幅3维景深图像是由成千上万个点构成的,但是其中包括了大量的冗余信息,如果能对数据中的有效信息进行提取,去除多余的冗余信息,那么就可以节约宝贵的嵌入式存储空间,并且加快数据传输速度.当一个平面被识别出以后,那么确定这个面的点数就会大幅减少,可以用少数点来表示这个平面,用其它一些信息来表示这个面的属性,比如颜色、点的密度等等.这样就达到了简化图像的目的.
以下是本文使用的归类流程:
1)判断:根据元素的行列坐标确定其有效邻域的大小.
2)循环:将元素的法向堇和其邻域内其它元素所属组的法向量进行比较.当相似度小于阈值:将两元素的差异度和此元素所属组的组号存入一元数组中,并且更新归组计数器.
3)判断:_元数组中的组号是否相同.若为同一组,将此元素加入该元素所属组的元素列表:若为多个组,寻找相似度最大的元素(将一元数组中的差异度进行排序),然后将该点元素加入到相应的组中;若没有与其相近的元素,在组链表中新加入一个组.
针对3维景深图像,进行墙壁和地面的识别实验.首先对面元进行滤波,然后对整幅画面使用归类算法进行归类,归类后作特征判断,进行墙壁和地面的识别.未经处理的景深点阵图像,图像表示的是走廊的尽头站立了一个人.对原始图像使用识别算法得到的地而图像,地面被分割出来,地面信息可以用于机器人的导航,平视走廊的一角,整个画面由4个平面构成,但从原始图像中无法作任何区分.图显示的是走廊左面墙壁的识别结果.
43维景深图像的边缘检测(Edgedetectionof3Ddepth-of-fieldimage)
应用景深面元可以使3维景深图像的处理变得简易起来.可以使用常用的数字图像的手段(比如边缘检测、区域划分的方法)来处理景深图像.
图像分割处理中,边缘方法常用Roberts算子、Sobel算子、Prewitt算子和Kirsch算子.这些算法都是针对灰度图像的,利用对灰度的检测来逬行图像分割.对『3维景深图像来说,并没有灰度的概念,所以无法直接使用这些算子.但可以将这些算F作用在景深面元上,来确定出边界.本文中使用Sobel算于对3维景深图像进行边缘检测.
5实验与分析(Experimentandanalysis)
选定实验场景.场景为一处走廊的拐角,在拐角处站立一个人,让移动机器人平台在拐角处后动对前方空间进行扫描.3维激光测距仪获取到景深信息以后,在嵌入式平台上重构图像.
因为移动机器人的观测角度与拍摄角度存在差异,所以会-定的角度偏移.利用基景深面元的算法实时处理3维景深构图像,并进行颜色渲染.从图像中可以清晰地分辨出两面墙壁、地面、右而墙壁的门以及站立的人像.
对3维景深图像进行识别并作渲染之后的显示若别.这处实验和之前的弟别在于峡入式控制平台通过网络传输模块将数据传输给了远程的PC机,在PC机上进行3维景深图像重构与渲染处理.在PC机的Linux操作系统下直接截图获得.通过对比两幅图像可以清楚地看到景深图像识别后的效果,对丁未作渲染的重构图像,很难看出冇用的特征信息.绘制3维景深的网格图像,可以清楚地分辨出结构化场景中包含的基本信息.
对维景深重构图像进行边缘检测的结果.本处使用的是前文提的边缘检测方法,它很好地将3维图像中的边缘信息检测出来.从图像中可见,这些边缘信息包括了地面与墙壁的交线、墙壁与墙壁之间的交线、人物背后的门棱以及人的边界.显示的这些边缘信息的相对位置和相对角度基本上和实际图像相符合.这也充分说明了本文算法的检测效果.
6结论(Conclusion)
本文详细分析了如何对由距离信息构成的3维景深图像进行重构以及如何对其包含的信息进行简易的识别.通过对距离信息的多重分析,提出了景深面元的概念.通过使用基于景深面元的法向量聚类法对3维景深图像进行处理,可以将景深面元进行划分、归类,确定岀图像中互异的平面.在景深面元的基础上,应用Sobel算子对3维景深图像进行边缘检测取得了不错的效果.本文所提的算法均是在嵌入式系统上实现的.此系统为ARM+DSP的移动机器人控制系统,并以QtE+TinyGL作为软件框架进行开发.
本文章转自爱学术(aixueshu.com),如有侵权,请联系删除