一种基于机器视觉的室内定位与地图构建装置的制作方法

文档序号:19144640发布日期:2019-11-15 23:22阅读:282来源:国知局
一种基于机器视觉的室内定位与地图构建装置的制作方法

本发明涉及一种基于机器视觉的室内定位与地图构建装置,可用于机器视觉领域。



背景技术:

随着科技的发展,人工智能受到了越来越多的关注,机器视觉可以说是人工智能的热门研究方向之一,机器视觉是人工智能正在快速发展的一个分支。简单说来,机器视觉就是用机器代替人眼来做测量和判断。机器视觉系统通过图像摄取装置,将被摄取目标转换成图像信号,传送给专用的图像处理系统,得到被摄目标的形态信息,根据像素分布和亮度、颜色等信息,转变成数字化信号,图像系统对这些信号进行各种运算来抽取目标的特征,进而根据判别的结果来控制现场的设备动作。

机器视觉目的是使机器具有类似于人眼的感知能力和大脑的决策能力。但如今的大多数机器感知并不能保证足够的精准度,更不能保证机器能在获取的信息下做出正确的选择,通常来说,大部分设备只能依靠经验来定位分析物体,而没有形成系统的理论体系。因此,目前物体定位与建图技术存在较大的不确定性,没有办法保证足够的稳定性,识别精度不高,存在有较大的误匹配率和漏匹配率等问题,比如目前的家用扫地机器人,经常出现部分区域无法定位等问题。



技术实现要素:

本发明的目的就是为了解决现有技术中存在的上述问题,提出一种基于机器视觉的室内定位与地图构建装置。

本发明的目的将通过以下技术方案得以实现:一种基于机器视觉的室内定位与地图构建装置,该装置包括传感器标定部分、图像预处理部分、视觉里程计构建部分与地图构建部分,所述传感器标定部分是对单目相机进行标定;图片预处理部分是将单目相机拍摄的图像进行校准与特定的灰度处理;视觉里程计构建部分是选择了半稠密直接算法最小化光度误差,来重建一个半稠密的结构,并且估计相机的位姿实现对相机的定位;地图构建部分依据半稠密直接算法提取的具有一定梯度的像素点进行局部地图的重建,最后将地图保存为八叉树地图的形式,并用可视化程序显示。

优选地,在所述的系统标定部分,采用通用的张正友标定法,构建3个坐标系分别为:世界坐标系、相机坐标系、图像坐标系。根据世界坐标与摄像机坐标之间的旋转、平移关系,摄像机坐标与图像物理坐标之间的相似三角形的正比关系,图像物理坐标与图像像素坐标之间的平移、比例关系可得图像像素坐标与世界坐标之间的关系。

优选地,在所述的图像预处理部分,首先根据系统标定部分得出的内参矩阵与外参矩阵,获得相机的径向畸变系数和切向畸变系数,通过泰勒级数展开将畸变点在成像仪上面的成像矫正至新的位置,从而达到尽可能减少径向畸变和切向畸变的目的。

优选地,在图像预处理部分将矫正的图片进行灰度化处理,改善图像的质量,灰度化采用分量法,将r、g、b三个分量的颜色比例进行调整,所呈现的灰度图更加直观的显示图像的信息。

优选地,在图像预处理部分采用图像大范围归一化处理之后采用非线性滤波中的中值滤波,将0到255的灰度值拉伸到-100到400之间,这样处理后的图像颜色对比度会更加明显,对于轮廓的显示和提取更有优势。

优选的,在视觉里程计构建中通过半稠密直接法进行重建。半稠密直接法不同于稀疏直接法和稠密直接法。他不需要计算所有的像素,只要将前后两帧图像中将带有一定梯度的像素点进行计算,舍弃像素点不明确的地方,该舍弃的像素点对于位姿的计算没有贡献并且加大计算量,最后将保留的像素点进行计算,重构成一个半稠密的结构,该方法相比于稠密重建对于cpu的要求也有一定程度的降低。

优选的,具体重建过程如下:设p的世界坐标为[x;y;z],它在前一帧和后一帧的图像上的非齐次像素坐标为p1,p2;我们的目标是求前一帧到后一帧的位姿变换,所以以前一帧的相机为参照系,经过旋转和平移到达第二个帧相机的位置,并设旋转和平移的矩阵为r,t,;两个相机的内参相同设为k,投影方程为:

其中z1是p在第一个相机坐标系下的深度,z2是p在第二个坐标系下的深度,ξ为旋转平移对应的李代数,为了寻找与p1,更相似的p2,需要最小化光度误差,也就是最小化p在前后两帧的上的像的亮度误差:

e=i1(p1)-i2(p2),

优化目标为该误差的二范数,由于灰度不变假设,假设一个空间点在各个视角下成像的灰度是不变的,那么任意空间点为pi,整个相机位姿ξ的最小化误差为:

由于求解直接法相当于进行一个优化的问题,本文采用现有的优化库进行优化。

优选的,求解直接法相当于进行一个误差优化的问题,本文采用g2o进行优化,使用该库进行优化是将求解过程抽象成一个图优化的过程,图优化的关键是节点与边的构建,由于优化变量是一个相机位姿,并且在计算中用到了李代数,所以位姿顶点的构建我们使用se(3)位姿顶点,使用g2o库中的vertexse3expmap函数作为相机位姿,g2o库中不存在计算光度误差的边,所以我们自己定义一条新的边,并在构建边时继承现有的边g2o::baseunaryedge。在继承时,需要在模板参数里填入测量值的维度、类型,以及连接此边的顶点,同时,我们把空间点p、相机内参和图像存储在该边的成员变量中。

优选的,由于我们视觉里程计部分是采用的半稠密直接法,所以地图构建方面我们可以构建半稠密的八叉树地图。八叉树地图是将点云划分空间,划分到八个立体体元中,再将每个立体体元继续划分直到划分到规定的阈值条件停止。八叉树地图从视觉上看像是很多个小方块组成的。当分辨率较高时,方块很小;分辨率较低时,方块很大。每个方块表示该格被占据的概率。八叉树地图本身具有较好的压缩性能,不仅克服了点云图占用存储空间大、不能处理运动物体的缺点,又可以实时的反应周围环境。

附图说明

图1为本发明的坐标转换示意图。

图2为本发明视觉里程计流程示意图。

图3为本发明的直接法示意图。

图4为本发明的半稠密直接法的实验图。

图5为本发明的生成八叉树地图。

图6装置整体流程图。

具体实施方式

本发明的目的、优点和特点,将通过下面优选实施例的非限制性说明进行图示和解释。这些实施例仅是应用本发明技术方案的典型范例,凡采取等同替换或者等效变换而形成的技术方案,均落在本发明要求保护的范围之内。

本发明揭示了一种基于机器视觉的室内定位与地图构建装置,该装置包括传感器标定部分、图像预处理部分、视觉里程计构建部分与地图构建部分,所述传感器标定部分是对单目相机进行标定;图片预处理部分是将单目相机拍摄的图像进行校准与特定的灰度处理;视觉里程计构建部分是选择了半稠密直接算法最小化光度误差,来重建一个半稠密的结构,并且估计相机的位姿实现对相机的定位;地图构建部分依据半稠密直接算法提取的具有一定梯度的像素点进行局部地图的重建,最后将地图保存为八叉树地图的形式,并用可视化程序显示。

相机标定部分为单目标定,通过单目标定估计相机的内参就是固有属性,包括焦距,像元尺,径向畸变系数和切向畸变系数等。获得的畸变系数与相机内参作为后续的铺垫,畸变系数用来对单目相机拍摄的图片进行矫正处理;相机内参矩阵作为视觉里程计的输入参数。本发明采用张正友标定法,采用棋盘格作为传感器拍摄对象,构建3个坐标系分别为:世界坐标系、相机坐标系、图像坐标系,如图1所示。根据世界坐标与摄像机坐标之间的旋转、平移关系,摄像机坐标与图像物理坐标之间的相似三角形的正比关系,图像物理坐标与图像像素坐标之间的平移、比例关系可得图像像素坐标与世界坐标之间的关系,从而对相近进行标定,获得畸变系数与相机内参。

图片预处理部分,通过单目相机拍摄后的图片需要进行预处理,首先进行灰度化处理,由于室内环境光线不均,对于传感器采集的室内图像根据人眼对红绿蓝三种颜色的敏感程度,对图像的三分量权值进行调整,肉眼对绿色的敏感度最高,对蓝色的敏感度最低,按照红:绿:蓝=3:6:1的比列进行分量权值调整灰度化,让灰度图像在人眼观测时,更加逼真;归一化处理灰度图像的目的是为了增加图像的对比度,原本0-255的灰度值范围扩大后可加强线条轮廓感,视觉上相当于增加图像的对比度,便于后续光度误差的计算。

视觉里程计构建部分,主要通过半稠密直接法进行重建,算法流程图如图2所示。直接法构建视觉里程计可以避免计算特征点与描述子,可以构建半稠密乃至稠密的地图,对于需要后续进行路径规划的系统,直接法是个很好的选择,直接法的示意图如图3所示。直接法又区分为稀疏直接法、半稠密直接法、稠密直接法,本发明中选用半稠密直接法。半稠密直接法不同于稀疏直接法和稠密直接法。他不需要计算所有的像素,只要将前后两帧图像中将带有一定梯度的像素点进行计算,舍弃像素点不明确的地方,该舍弃的像素点对于位姿的计算没有贡献并且加大计算量,最后将保留的像素点进行计算,重构成一个半稠密的结构,该方法相比于稠密重建对于cpu的要求也有一定程度的降低。对于相机位姿求解方面,在半稠密直接法中通过最小化光度误差来优化相机的运动。具体分析过程如下:

设p的世界坐标为[x;y;z],它在前一帧和后一帧的图像上的非齐次像素坐标为p1,p2。我们的目标是求前一帧到后一帧的位姿变换,所以以前一帧的相机为参照系,经过旋转和平移到达第二个帧相机的位置,并设旋转和平移的矩阵为r,t,。两个相机的内参相同设为k,投影方程为:

其中z1是p在第一个相机坐标系下的深度,z2是p在第二个坐标系下的深度,ξ为旋转平移对应的李代数,为了寻找与p1,更相似的p2,需要最小化光度误差,也就是最小化p在前后两帧的上的像的亮度误差:

e=i1(p1)-i2(p2)

优化目标为该误差的二范数,由于灰度不变假设,假设一个空间点在各个视角下成像的灰度是不变的,那么任意空间点为pi,整个相机位姿ξ的最小化误差为:

由于求解直接法相当于进行一个优化的问题,本文采用现有的优化库进行优化。本文采用g2o进行优化,使用该库进行优化是将求解过程抽象成一个图优化的过程,图优化的关键是节点与边的构建,由于优化变量是一个相机位姿,并且在计算中用到了李代数,所以位姿顶点的构建我们使用se(3)位姿顶点,使用g2o库中的vertexse3expmap函数作为相机位姿,g2o库中不存在计算光度误差的边,所以我们自己定义一条新的边,并在构建边时继承现有的边g2o::baseunaryedge。在继承时,需要在模板参数里填入测量值的维度、类型,以及连接此边的顶点,同时,我们把空间点p、相机内参和图像存储在该边的成员变量中。为了让g2o优化该边对应的误差,我们需要覆写两个虚函数:用computeerror()计算误差值,用linearizeoplus()计算雅可比。将节点与边组合成图就可以采用g2o进行图优化估计相机的运动,图4为半稠密直接法实验中参考帧与第2帧的对比,绿色部分为参与优化的像素,该像素满足一定梯度要求。

地图构建部分,由于我们视觉里程计部分是采用的半稠密直接法,所以地图构建方面我们可以构建半稠密的八叉树地图。八叉树地图是将点云划分空间,划分到八个立体体元中,再将每个立体体元继续划分直到划分到规定的阈值条件停止。八叉树地图从视觉上看像是很多个小方块组成的。当分辨率较高时,方块很小;分辨率较低时,方块很大。每个方块表示该格被占据的概率。八叉树地图本身具有较好的压缩性能,不仅克服了点云图占用存储空间大、不能处理运动物体的缺点,又可以实时的反应周围环境。本文中我们根据深度图和相机的位姿信息,将点的坐标转换至世界坐标,带有位置信息的坐标作为点云放入octomap中,最后保存成八叉树地图形式。其中我们需要安装octomap库,该库中主要包含octomap地图组件和一个可视化程序octovis,可以查看生成八叉树地图的三维信息,图5为使用octovis程序显示生成的八叉树地图。

本发明为室内对象的自动巡检、操作任务,构建了一套基于机器视觉的定位与地图构建装置,以室内卧室为实际应用案例,设计出可以实时定位并实现局部建图的系统,可配合后续的机器人的路径规划等操作。针对室内环境提出一种高精度定位方法,能够实时定位传感器位置信息,并建立八叉树地图。

本发明尚有多种实施方式,凡采用等同变换或者等效变换而形成的所有技术方案,均落在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1