kinect三维重建
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
上海大学2014 ~2015学年秋季学期研究生课程考试
课程设计大作业
课程名称:建模与仿真课程编号: 09SAS9011
论文题目: 基于Kinect的三维重建
研究生姓名: 邵军强学号: 14721629 论文评语:
成绩: 任课教师:
评阅日期:
基于Kinect的三维重建
邵军强
(上海大学机电工程与自动化学院)
摘要:三维重建是计算机视觉的一个重要目标,可以帮助人们快速精确地将日常生活中的物体数字化,并有着广泛的应用前景。本文叙述了一种成本低廉、快速且操作简便的三维重建方法。借助于微软公司的Kinect 体感传感器作为采集深度图像和彩色图像的输入设备,通过对原始深度图像的去噪、平滑、表面重建等一系列方法,最终可以获得在三维空间中的点云模型。
关键词:三维重建,Kinect,点云模型
Based on Kinect 3D Reconstruction
SHAO JUNQIANG
( Shanghai University EMSD and automation College)
Abstract:3 D reconstruction is an important goal of computer vision, and can help people quickly and accurately to digital objects in everyday life, and has a broad application prospect. This paper describes a kind of low cost, quick and easy operation method of 3 d reconstruction. By using Microsoft's device body feeling sensor as a collection of depth image and color image input device, through the depth of the original image denoising and smoothing, surface reconstruction and a series of methods, finally can get the point cloud model in three-dimensional space.
Keywords:3D Reconstruction,Kinect, point cloud model
1 引言
Kinect 传感器是一种RGB-D 传感器,即可以同时获得环境颜色值(RGB)和深度值(depth)的传感器.它的采集速度快,精度高,且价格低廉,使其迅速被运用到很多领域.机器人领域也开始了对Kinect 传感器广泛的研究[1].利用Kinect 传感器对室内环境进行3D 重构,获得环境的3D 点云模型是研究热点之一.华盛顿大学与微软实验室[2],开发了基于SIFT (尺度不变特征变换)特征匹配定位及TORO(Tree-basednetwORk Optimizer)优化算法的实时视觉SLAM系统来建立3D 点云地图.德国Freiburg 大学[3]提出了RGBD-SLAM 算法,采用了与华盛顿大学类似的方法,但是为了提高实时性,使用了Hogman(hierarchical optimization for pose graphs on manifolds)图优化算法,同时在相对位姿检测上采用了SURF (加速鲁棒特征)特征进行对应配.KinectFusion 算法与这些算法不同,它仅使用深度信息,通过设计高效及高度并行的算法在GPU(图形处理单元)上运行达到了非常高的实时性,在试验中,在配置4000 元左右的电脑上运行速度达到了18 帧/秒(在同样配置的计算机上前面两种算法仅达到2 帧/秒),在进行场景建立时有良好的用户体验,甚至可以用来做一些人机交互方面的应用[4-5].同时KinectFusion 采用了基于TSDF(truncated signed distance
function)模型的点云融合方法,构建的点云模型冗余点少.而前面的方法因为没有进行点云融合,所以在地图创建过程中,点云的容量将不断增加[1].
除此之外,KinectFusion 算法也存在一些问题,由于其重建过程是在GPU上的实时重建,因此,受GPU 内存限制,只能建立较小规模环境。其算法注重效率的提升,在鲁棒性方面有不足之处,比如在一些环境中容易出现定位失效而无法正常建模。
2 Kinect 传感器
Kinect 传感器如图1,它包括随机红外点云投射器、红外相机和彩色相机.
图1 Kinect传感器结构
红外点云投射器和红外相机构成了一个结构光3D 成像系统[8].Kinect可以同时采集到环境的深度信息数据和颜色信息数据,其中深度信息数据是一个2 维矩阵,它的元素值表示环境中物体到相机中心的距离值,可以作为灰度图像进行处理.
不同于普通的通过计算得到物体3D坐标的设备,Kinect可以直接获取物体与摄像头之间的距离,这是Kinect最受人瞩目的一个功能。微软先后于2009年和2010年收购了3DV Systems(TOF)和PrimeSense(Light Coding)这两家以色列公司,并最终采用了Light Coding 技术作为Kinect体感设备的深度摄像功能的基础。
Light Coding技术理论是利用连续光(近红外线)对测量空间进行编码,经感应器读取编码的光线,交由晶片运算进行解码后,产生一张具有深度的图像。Light Coding技术说到底还是结构光技术。但与传统的结构光方法不同的是,他的光源打出去的并不是一副周期性变化的二维的图像编码,而是一个具有三维纵深的“体编码”。这种光源叫做激光散斑(laser speckle),是当激光照射到粗糙物体或穿透毛玻璃后形成的随机衍射斑点。这些散斑具有高度的随机性,而且会随着距离的不同变换图案,空间中任何两处的散斑都会是不同的图案,等于是将整个空间加上了标记,所以任何物体进入该空间以及移动时,都可确切记录物体的位置。
光源标定:测量前对原始空间的散斑图案做记录,先做一次光源的标定,方法是每隔一段距离,取一个参考平面,把参考平面上的散斑图案记录下来;假设Kinect规定的用户活动范围是距离摄像头1~4m,每隔10cm取一个参考平面,标定后保存了30幅散斑图像;测量时拍摄一幅待测场景的散斑图案,将这幅图像和保存的30幅参考图像依次做互相关运算,得到30幅相关度图像;空间中有物体存在的位置,在相关度图像上就会显示出峰值。把这些峰值一层层叠在一起,经过插值运算,即可得到整个场景的三维形状。
Kinect就是以红外线发出人眼看不见的class 1镭射光,透过镜头前的diffuser(光栅)将镭射光均匀分布投射在测量空间中,再透过红外线CMOS传感器记录下空间中的每个散斑,结合原始散斑图案,再透过晶片计算成具有3D深度的图像。传感器是通过黑白光谱的方式来感知环境的,纯黑代表无穷远,纯白代表无穷近,黑白间的灰色对应着物体到传感器的物理距离,如图2。