基于gpu加速的三维场景重建方法

文档序号:6383187阅读:262来源:国知局
专利名称:基于gpu加速的三维场景重建方法
技术领域
本发明涉及计算机视觉和计算机图形学领域,具体地,涉及一种基于GPlXGraphicProcessing Unit,图形处理器)加速的三维场景重建方法。
背景技术
在计算机视觉领域,从二维图像中重建出物体的三维点云,一直是该领域的重点研究问题之一。它不仅综合了众多的学科知识,并且在航空测绘、场景模拟、视觉导航、医学诊断、文物保护、电子商务、虚拟现实等诸多领域都有着非常广阔的应用前景。基于图像的三维重建方法充分利用计算机视觉和计算机图形学的相关知识,从实际拍摄的单幅或多幅图像中恢复出物体的三维模型,可以把它认为是相机拍摄照片的一个逆过程。我国嫦娥一号环月卫星传回了月球表面的三维立体图像,其也向世人昭示了三维重建技术的巨大应用前景。如何更逼真地、简便地获得真实世界的三维模型促使着计算机视觉研究者们不断地提出新的方法并完善现有方法。计算机构建物体三维模型的技术手段通常分为以下三种几何造型的方法、用三维扫描设备获取三维模型的方法和基于图像的三维重建方法。几何造型的方法是指通过点、线、面、体等几何元素的平移、旋转、变比等几何变换以及并、交、差等集合运算,产生实际的或想象的物体模型。几何造型方法起源于上世纪七十年代,现在己经广泛地应用在计算机辅助设计、动画制作、广告制作、影视制作等领域。目前,市面上流行着很多优秀的建模软件,像3DMAX,Maya, AutoCAD等。它们都是利用一些基本的几何元素,通过一系列几何操作来构造复杂的模型。这种方法要求必须充分掌握场景数据,同时相关软件的操作比较复杂,往往需要熟练的操作人员且具备丰富的专业知识,创作过程相对比较复杂。利用三维扫描设备可以获得精确的三维模型,这些设备包括深度扫描仪、三维相机、激光器等。根据扫描仪不同的测头结构,可以分为接触式和非接触式两种,其中,接触式测头又可分为硬测头和软测头两种,接触式测头需要与被测物体直接接触,获取物体的三维信息。非接触式测头利用了光学及激光原理,称为三维激光扫描仪。利用三维扫描设备对物体进行三维重建的方法使用简单,精度非常高,并且构建模型所需时间相对较少,因此被广泛应用于逆向工程、虚拟现实、环境仿真等领域。但是,通常这些高精度的设备都非常昂贵,因此并不具备很好的普及性。基于图像的三维重建方法充分利用计算机视觉和计算机图形学的相关知识,从实际拍摄的单幅或多幅图像中恢复出物体的三维模型,可以把它认为是相机拍摄照片的一个逆过程,如公开号为101714262A的中国发明专利所公开的单幅图像的三维场景重建方法。目前,通过对重建方法的不断改进,建模过程越来越自动化,人工劳动强度越来越轻,建模成本越来越低。而在设备方面只需要一个普通的数码相机,价格低廉,适用于任何场景的重构,并且可以获得具有“照片级”高真实感的三维模型。目前基于图像重建三维点云的方法主要有两类SFM(Structure From Motion,从运动信息中恢复三维场景)和SFS (Shape From Silhouette,从轮廓信息恢复三维场景)。第一类方法的好处是可以获得更多的细节,但是会产生噪声;第二类方法的好处是能对边界问题进行非常好的处理,但是它对于细节的处理要比较糟糕。

发明内容
针对现有技术中的缺陷,本发明的目的是提供一种基于GPU加速的三维场景重建方法,可以自动的快速获得三维场景。为实现上述目的,本发明采用的技术方案是对二维图像进行GPU并行SIFT(Scale-1nvariant feature transform,尺度不变特征转换)特征点计算,并进行特征点匹配,然后对每幅图像进行相机标定,再进行稠密点云重建,接着进行点云滤波,去噪,再把点云网格化,最后通过GPU进行纹理映射,得到三维场景。具体地,一种基于GPU加速的三维场景重建方法,它由以下步骤具体实现步骤一、使用相机在不同的位置、不同的角度对场景进行拍照,获得真实场景的二维图像序列。步骤二、使用GPU并行加速的SIFT算法得到每幅图像的特征点,并进行特征点匹配。步骤三、使用Bundle Adjustment (光束平差)算法,自动获得所有图像的相机参数(相机矩阵),并得到特征点在三维空间中的位置,生成初始的稀疏点云模型。步骤四、使用PMVS(Patch-based Mult1-view Stereo,基于块的多视角立体场景)算法,将之前由特征点重建出的空间点称之为种子点,扩散从种子点开始,利用相邻点具有相似的法向和位置的特性,逐步扩散重建出其周围的空间点,扩散结束后,进行过滤处理,将灰度一致性、几何一致性比较弱的点剔除,得到稠密的点云模型。步骤五、对每一幅图像进行图像分割,得到前景和背景,然后通过点云反投影到图像中,把错误生成的点去掉,第一次精炼点云,然后使用低通滤波器对三维模型进行滤波,滤掉一些孤立点(高频噪声),第二次精炼点云。步骤六、对生成的点云使用KNN (k-Nearest Neighbor algorithm, K最邻近结点算法)的思想计算点云中每个点的法向向量,然后将向量投影到一个球面的cell (格子)中,计算点云的主方向、此方向和第三方向,再计算旋转矩阵,将点云的主要法向与三维空间的坐标轴方向一致。步骤七、重新组织点云的存储结构,把点云放在空间八叉树中,然后从最上方的点进行A*搜索,增量的搜索三角片面,将点云网格化。步骤八、从二维图像中找到网格化后所有三角片面对应的纹理,然后通过GPU进行纹理映射,最终渲染出整个场景。优选地,步骤一中,所采用的相机获取目标对象的二维图像序列的方法,需在不同的角度和不同的位置进行拍摄,不能只站在一个固定的位置拍摄。优选地,步骤二中,所采用的GPU加速SIFT,系统需要安装CUDA (ComputeUnifiedDevice Architecture,显卡厂商NVidia推出的运算平台)的运行环境,保证SIFT可以并行的由GPU处理。优选地,步骤四中,所采用PMVS进行稠密点云的获取,需要对图像划分网格,网格的尺寸可以选择,网格越小,获得的点云越稠密。优选地,步骤五中,先对图像进行前景和背景的分割,然后所采用的反投影的方式,为将点云反投影到每幅图像中,如果有点落在了前景或者图像之外,则保留该点,如果投影到背景中,则删掉该点。再使用低通滤波器,滤掉孤立点。优选地,步骤七中,基于A*搜索的网格化,在生成三角网格的时候要保证两个条件第一,三角形尽可能的饱满,不要太窄,要求三角形的每个角都要大于30度,第二,平面尽可能光滑,即相邻的两个三角面片要近似180度。优选地,步骤八中,纹理映射可以使用OpenGL SL (Open Graphics LibraryShadingLanguage,开放的图形程序库渲染语言)将图像作为纹理保存起来,然后绑定纹理,进行渲染。与现有技术相比,本发明具有如下的有益效果本发明通过对一个场景进行多角度,多位置的拍照,可以自动的快速获得三维场景。本发明主要有三个显著优点1.本发明通过GPU并行计算SIFT特征点,加快重建的速度,解决三维重建速度慢的问题;2.本发明通过使用SFM和SFS融合的办法,成功解决三维重建边界的问题;3.本发明不需要人工干预,可以实现完全的重建自动化。


通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显图1是本发明基于GPU加速的三维场景重建方法的流程图。图2 是一实施例 Bundle Adjustment 的结果。图3是图2所示实施例的稠密点云。图4是图2所示实施例的最终结果。
具体实施例方式下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进。这些都属于本发明的保护范围。如图1所示,使用基于GPU加速的三维场景重建方法,通过以下步骤获得真实场景的三维重建模型步骤一、使用相机在不同的位置、不同的角度对场景进行拍照,获得真实场景的二维图像序列。步骤二、使用GPU并行加速的SIFT算法得到每幅图像的特征点。并进行特征点匹配。所米用的 GPU 加速 SIFT,系统安装 CUDA (Compute Unified DeviceArchitecture,显卡厂商NVidia推出的运算平台)的运行环境,保证SIFT可以并行的由GPU处理。步骤三、使用Bundle Adjustment算法,自动获得所有图像的相机参数(相机矩阵),并得到特征点在三维空间中的位置,生成初始的稀疏点云模型,如图2。步骤四、使用PMVS算法,将之前由特征点重建出的空间点称之为种子点,扩散从种子点开始,利用相邻点具有相似的法向和位置的特性,逐步扩散重建出其周围的空间点,扩散结束后,进行过滤处理,将灰度一致性、几何一致性比较弱的点剔除.得到稠密的点云模型。如图3。采用PMVS进行稠密点云的获取,需要对图像划分网格,网格的尺寸可以选择,网格越小,获得的点云越稠密。步骤五、对每一幅图像进行图像分割,得到前景和背景,然后通过点云反投影到图像中,把错误生成的点去掉,第一次精炼点云,然后使用低通滤波器对三维模型进行滤波,滤掉一些孤立点(高频噪声),第二次精炼点云。在此步骤中,采用反投影的方式将点云反投影到每幅图像中,如果有点落在了前景或者图像之外,则保留该点,如果投影到背景中,则删掉该点,再使用低通滤波器,滤掉孤立点。步骤六、对生成的点云使用KNN的思想计算点云中每个点的法向向量,然后将向量投影到一个球面的cell中,计算点云的主方向、次方向和第三方向,再计算旋转矩阵,将点云的主要法向与三维空间的坐标轴方向一致。步骤七、重新组织点云的存储结构,把点云放在空间八叉树中,然后从最上方的点进行A*搜索,增量的搜索三角片面,将点云网格化。本步骤中,基于A*搜索的网格化,在生成三角网格的时候要保证两个条件第一,三角形尽可能的饱满,不要太窄,要求三角形的每个角都要大于30度,第二,平面尽可能光滑,即相邻的两个三角面片要近似180度。步骤八、从二维图像中找到网格化后所有三角片面对应的纹理,然后通过GPU进行纹理映射,最终渲染出整个场景。纹理映射可以使用OpenGL SLCOpen GraphicsLibraryShading Language,开放的图形程序库渲染语言)将图像作为纹理保存起来,然后绑定纹理,进行渲染。最终的结果如图4所示。本实施例通过对一个场景进行多角度,多位置的拍照,可以自动的快速获得三维场景,通过GPU并行计算SIFT特征点,解决三维重建速度慢的问题,同时解决三维重建边界的问题。以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变形或修改,这并不影响本发明的实质内容。
权利要求
1.一种基于GPU加速的三维场景重建方法,其特征是,它由以下步骤构成 步骤一、使用相机在不同的位置、不同的角度对场景进行拍照,获得真实场景的二维图像序列; 步骤二、使用GPU并行加速的SIFT算法得到每幅图像的特征点,并进行特征点匹配; 步骤三、使用Bundle Adjustment算法,自动获得所有图像的相机参数即相机矩阵,并得到特征点在三维空间中的位置,生成初始的稀疏点云模型; 步骤四、使用PMVS算法,将之前由特征点重建出的空间点称之为种子点,扩散从种子点开始,利用相邻点具有相似的法向和位置的特性,逐步扩散重建出其周围的空间点,扩散结束后,进行过滤处理,将灰度一致性、几何一致性比较弱的点剔除,得到稠密的点云模型; 步骤五、对每一幅图像进行图像分割,得到前景和背景,然后通过点云反投影到图像中,把错误生成的点去掉,第一次精炼点云,然后使用低通滤波器对三维模型进行滤波,滤掉一些高频噪声孤立点,第二次精炼点云; 步骤六、对生成的点云使用KNN的思想计算点云中每个点的法向向量,然后将向量投影到一个球面的cell中,计算点云的主方向、次方向和第三方向,再计算旋转矩阵,将点云的主要法向与三维空间的坐标轴方向一致; 步骤七、重新组织点云的存储结构,把点云放在空间八叉树中,然后从最上方的点进行A*搜索,增量的搜索三角片面,将点云网格化; 步骤八、从二维图像中找到网格化后所有三角片面对应的纹理,然后通过GPU进行纹理映射,最终渲染出整个场景。
2.根据权利要求1所述的一种基于GPU加速的三维场景重建方法,其特征在于步骤一中所采用的相机获取目标对象的二维图像序列的方法,需在不同的角度和不同的位置进行拍摄,不能只站在一个固定的位置拍摄。
3.根据权利要求1所述的一种基于GPU加速的三维场景重建方法,其特征在于步骤二中所采用的GPU加速SIFT,系统安装CUDA的运行环境,保证SIFT能并行的由GPU处理。
4.根据权利要求1所述的一种基于GPU加速的三维场景重建方法,其特征在于步骤四中采用PMVS进行稠密点云的获取,需对图像划分网格,网格的尺寸可以选择,网格越小,获得的点云越稠密。
5.根据权利要求1所述的一种基于GPU加速的三维场景重建方法,其特征在于步骤五中先对图像进行前景和背景的分割,然后所采用的反投影的方式,将点云反投影到每幅图像中,如果有点落在了前景或者图像之外,则保留该点,如果投影到背景中,则删掉该点,再使用低通滤波器,滤掉孤立点。
6.根据权利要求1所述的一种基于GPU加速的三维场景重建方法,其特征在于步骤七中基于A*搜索的网格化,在生成三角网格时要保证两个条件 第一,三角形尽可能的饱满,不要太窄,三角形的每个角都要大于30度,第二,平面尽可能光滑,即相邻的两个三角面片要在160度至200度范围。
7.根据权利要求1所述的一种基于GPU加速的三维场景重建方法,其特征在于步骤八中的纹理映射,使用OpenGL SL将图像作为纹理保存起来,然后绑定纹理,进行渲染。
全文摘要
本发明提供了一种基于GPU加速的三维重建系统。其方法主要包括对二维图像进行GPU并行SIFT特征点计算,并进行特征点匹配,然后对每幅图像进行相机标定,再进行稠密点云重建,接着进行点云滤波,去噪,再把点云网格化,最后通过GPU进行纹理映射,得到三维场景。该系统通过输入一系列二维图像,可以输出最终的三维模型,全过程自动处理,不需要人工干预,具有重建速度快,精读高,误差小等特点。
文档编号G06T15/04GK103021017SQ20121051374
公开日2013年4月3日 申请日期2012年12月4日 优先权日2012年12月4日
发明者杨杰, 闫世博, 毛润超 申请人:上海交通大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1