一种基于GPU和深度相机的室内三维重建方法与流程

文档序号:12722786阅读:779来源:国知局
一种基于GPU和深度相机的室内三维重建方法与流程

本发明涉及计算机视觉、三维重建、GPU及人工智能技术领域,尤其涉及一种基于GPU和深度相机的室内三维重建方法。



背景技术:

三维场景重建技术包括激光扫描仪重建、计算机视觉方法重建等技术。其中,激光扫描技术可以比较准确地扫描出三维物体的结构,但其更加适用于单个物体的重建,并且激光扫描仪价格相对昂贵。在计算机视觉技术领域,重建的方法主要是SfM(Structure from Motion),其难点在于对多视角图像进行特征点匹配、对特征点进行三角化的过程。然而SfM对于较大的场景容易出现偏移的现象,且计算复杂,计算量较大。随着深度相机,如微软的Kinect和ASUSXtion的推出,深度信息得到了各个领域的广泛应用,并在实践中有着良好的效果。而GPU(Graphics Processing Unit,图形处理器)在并行计算和深度学习、人工智能等领域有广泛的应用。利用深度相机获取场景信息,结合室内智能移动平台的里程计技术进行3D的场景拼接,可以快速得到室内3D模型。



技术实现要素:

本发明的目的是提供一种基于GPU和深度相机的室内三维重建方法。

本发明解决技术问题所采用的技术方案如下:一种基于GPU和深度相机的室内三维重建方法,包括如下步骤:

步骤1:摄像机和智能移动平台双轮的标定

将深度相机安装在智能移动平台上,智能移动平台的底部安装有两个由电机驱动的驱动轮和一个万向轮,电机上安装有编码器;

深度相机的标定方法采用的是OpenCV提供的ChessBoard方法,相机模型采用标准的针孔模型;

智能移动平台双轮的标定是对平台的驱动轮半径和两个驱动轮之间的距离进行误差消除,具体标定如下:通过控制智能移动平台沿直线运动一段距离,将该段距离除以2π和驱动轮转过的圈数的乘积,即可到得驱动轮的半径;之后控制智能移动平台沿圆周运动,根据驱动轮的半径和平台双轮转过的距离差,结合转过的圈数,可以获得两个驱动轮之间的距离;

步骤2:数据采集

利用深度相机采集彩色图片Ci和深度数据Di,利用编码器获取当前驱动轮的信息ODi,其中,i=1,2…n;

步骤3:对室内智能移动平台的运动轨迹进行定位

根据步骤2采集的数据,利用驱动轮的双轮信息ODi来获得里程计信息,即智能移动平台的位置信息;

步骤4:关键帧选取

首先选定智能移动平台的初始位置为第一帧,设定3个参数:Pmax_f,Pmin_d,Ploop_c,分别表示关键帧选取过程中需要的相邻两关键帧的最大帧数、相邻两关键帧的最小距离和最小的闭环数量,其中闭环表示智能移动平台重复走到之前到过的位置;关键帧的选择参照SLAM方法选取关键帧的方式;关键帧中相机采集的图像的集合须覆盖要重建的场景区域。

步骤5:基于GPU的地图生成

根据选取的关键帧和其轨迹构成的闭环,结合GPU并行算法进行场景拼接,生成三维稠密点云地图;

步骤6:地图优化

对步骤5中生成的三维稠密点云地图采用采用BA(Bundle Adjustment)方法和结合关键帧构成的闭环,对三维稠密点云进行矫正优化。

进一步的,所述智能移动平台的位置信息可由航迹推演的方式获取,具体如下:令z轴为垂直于智能移动平台运动平面的坐标轴,姿态信息为绕z轴旋转的变量,二维平面运动只有三个自由度,智能移动平台通过设定的采样频率获取运动轨迹(x,y,θ),(x,y)为二维平面上的位置,选择初始时智能移动平台前进方向为x方向,θ表示两个相邻时刻的朝向角的变化量。

本发明的有益效果如下:本发明利用深度相机和里程计信息获取数据,并对相机进行精确定位,并采用GPU加速的方法,在较快的速度下,完成室内场景的三位重建的过程。并且,地图准确,成本简单,噪声较少。同时具有通用的接口,容易进行扩展和可视化。

附图说明

图1是智能移动平台轨迹关键帧示意图,图中P0-P10表示智能移动平台的位置和姿态;

图2是本发明方法流程图;

图3是本发明智能移动平台在两个相邻时刻的位置和姿态示意图;

图4是本发明室内场景三维重建结果示意图;

图5是本发明室内场景三维重建结优化结果和八叉树表示示意图。

具体实施方式

下面结合实施例和附图对本发明做进一步的说明。

如图1所示,本发明的技术方案是一种基于GPU和深度相机的室内三维重建方法,包括如下步骤:

步骤1:摄像机和智能移动平台双轮的标定

将深度相机安装在智能移动平台上,智能移动平台的底部安装有两个由电机驱动的驱动轮和一个万向轮,电机上安装有编码器;本发明采用的是深度相机,可选择微软Kinect或ASUS Xtion。数据采集之前,需要对相机和智能移动平台双轮进行标定。深度相机的标定方法采用的是OpenCV提供的ChessBoard方法,相机模型为标准的针孔模型,摄像机的模型假设没有畸变,可用如下矩阵表示:

式中,u、v为相机平面坐标轴,(cu,cv)是相机像平面中心坐标,(fu,fv)是相机的焦距;色彩相机的中心和深度传感器的中心距离为10cm。

智能移动平台双轮的标定是对其驱动轮半径和两个驱动轮之间的测量距离进行误差消除,具体方法如下:1、驱动轮半径标定,通过控制智能移动平台沿直线运动一段距离,将该段距离除以2π和驱动轮转过的圈数的乘积,即可到得驱动轮半径的半径。2、双轮距离标定,控制平台沿圆周运动,根据驱动轮的半径和平台双轮转过的距离差,结合双轮转过的圈数,获得两个驱动轮之间的距离。

步骤2:彩色图片和深度信息获取

在此步骤中,采集的数据包括两部分内容,一是利用深度相机采集彩色图片Ci和深度数据Di,二是利用智能移动平台轮子信息获取当前里程计信息ODi。其中,i=1,2…n,为相机采集的每一帧的信息。图片Ci为彩色图片,分为RGB三个通道;里程计信息ODi包含当前相机的位置和姿态信息,由读取的双轮编码器信息计算获得。智能移动平台的移动方式由人工控制,保证采集的数据覆盖需要重建的场景。同时,为保证重建的准确性,使智能移动平台的运动轨迹形成多个闭环,其轨迹如图2所示。

步骤3:室内智能移动平台的运动轨迹进行定位

本发明利用智能移动平台双轮编码器信息来获得运动轨迹,从而得到里程计信息。移动平台的位置信息可由航迹推演的方式获取。在室内平面场景中,位置信息可假设Z轴的坐标为0,姿态信息也只有沿着Z轴旋转的变量,可简化为只有三个自由度。于是智能移动平台在近似的二维平面空间运动,具体的参数可用(x,y,θ)来表示,(x,y)为二维平面上的位置,选择初始时智能移动平台前进方向为x方向,θ表示两个相邻时刻的朝向角的变化量。

如图3所示,vl和vr分别表示当前左右轮的转速,用ω表示当前智能移动平台的角速度。图3为智能移动平台在两个相邻时刻的位置和姿态示意图,θ表示两个相邻时刻的朝向角的变化量,变量Δl表示左轮比右轮多移动的距离,d表示左右两轮直接的间距,r表示智能移动平台圆弧运动的半径。

智能移动平台的速度和角速度可由如下公式推导:

在室内智能移动平台角度和位移都很小的情况下,角速度可由如下公式得出:

同时可以推出智能移动平台的转弯半径:

智能移动平台和摄像机的行驶轨迹可以通过对当前的角速度和线速度进行积分得到,实际操作中,对采集的数据进行采样累加。在二维平面内的运动,可以在智能移动平台上加入惯性模块(IMU)进行矫正。

步骤4:关键帧选取

深度相机的图像采集速度都在30fps左右。对于一个简单的室内环境中,一个循环的信息往往有数百甚至数千张彩色图片。关键帧的选择参照SLAM方法选取关键帧的方式。首先选择智能移动平台的初始位置为第一帧。其次设定如下3个参数:Pmax_f,Pmin_d,Ploop_c,分别表示关键帧选取过程中需要的相邻两关键帧的最大帧数、相邻两关键帧的最小距离和最小的闭环数量,其中闭环表示智能移动平台重复走到之前到过的位置和姿态,如图2所示。关键帧的选取保证智能移动平台获取到稀疏的位置和姿态。这些位置中采集的图像的集合须覆盖要重建的场景区域。

步骤5:基于GPU的地图生成

根据选取的关键帧和其轨迹构成的闭环,结合GPU并行算法进行场景拼接,生成三维稠密点云地图;根据选取的关键帧,如图2所示,关键帧的轨迹构成几个闭环。相邻两帧图像的拼接根据PCL的方法结合智能移动平台的姿态进行拼接,生产三维稠密点云地图。

步骤6:地图优化

由步骤5生成的三维稠密点云地图为空间3D点云地图,由于噪声等原因,地图存在一定误差。本发明在PCL拼接的过程中采用其自带的优化模块,同时采用BA(Bundle Adjustment)方法,结合关键帧构成的闭环,对3D点云进行矫正,减少噪声,如图4、图5所示。

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