首页 基于三维点云的图象存储与研究

基于三维点云的图象存储与研究

举报
开通vip

基于三维点云的图象存储与研究基于三维点云的图象存储与研究 - 西南科技大学 题目名称:基于三维点云的图像存储研究 年 级:2003级 ?本科 ?专科 学生学号:20035067 学生姓名:金建 指导教师: 蔡波 学生单位:信息工程学院 技术职称: 讲师 学生专业:生物医学工程 教师单位:信息工程学院 西 南 科 技 大 学 教 务 处 制 -页脚-- - 基于三维点云的图像存储研究 摘要:三维技术在建筑、医用图像、文物保护、电影制作、三维游戏等领域有着广泛的应用。多边形网格是目前表示三维模型最常用的方法,它把三维模型表面上...

基于三维点云的图象存储与研究
基于三维点云的图象存储与研究 - 西南科技大学 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 目名称:基于三维点云的图像存储研究 年 级:2003级 ?本科 ?专科 学生学号:20035067 学生姓名:金建 指导教师: 蔡波 学生单位:信息工程学院 技术职称: 讲师 学生专业:生物医学工程 教师单位:信息工程学院 西 南 科 技 大 学 教 务 处 制 -页脚-- - 基于三维点云的图像存储研究 摘要:三维技术在建筑、医用图像、文物保护、电影制作、三维游戏等领域有着广泛的应用。多边形网格是目前表示三维模型最常用的方法,它把三维模型表面上的点连接成以多边形为单位的网格,可以表达复杂的表面,提供了很强的适应性。其中尤以三角形网格的使用最为广泛。 但是三角网格的显示,简化,渐进传输的算法已经不适合目前大规模的数据集。本文描述的三角网格数据文件与基于边界球数据文件转换系统将表示并逐步压缩这些三角网格。这种表示方法不仅紧凑,而且能被快速的计算出来,它最大的特点是压缩比高,节省了大量的时间和空间,这些使得它能适合大规模的数据集。它的执行程序能够服务于大型的三维数据处理项目。本文已经论证了这个系统是可以转换包含较大数量级多边形模型的。 边界球 关键字:点云;多边形网格; -页脚-- - Studies on image storage based point cloud Abstract: 3D modeling technology is widely used in many fields, such as architecture, medicine images, relic protecting, filmmaking and 3D games. People usually use polygon meshes to represent 3D models, by connecting the points on the surface of a model into polygons. But traditional algorithms for display, simplification, and progressive transmission of meshes are impractical for data sets of this size. The system that converts ply models to Qsplat models is described for representing and progressively displaying these meshes. This indicates that method is not only compact , can also be come out by speedy calculation, its maximal characteristic has been that the compression ratio is high , has economized large amount of time and space, these it can be suitable to those large-scale data collection will do. The implementation of procedures can be used in large 3D data-processing projects. It has been demonstrated the system on scanned models containing hundreds of millions of samples. Keyword:point cloud, ply, Qsplat -页脚-- - 目 录 第1章 绪 论??????????????????????????????????????????????????????????????????????????????????????????????????????????????? 1 1.1 课题研究的目的与意义 ??????????????????????????????????????????????????????????????????????????????????????? 1 1.2 国内外研究现状 ??????????????????????????????????????????????????????????????????????????????????????????????????? 1 1.3 主要工作及 流程 快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计 ??????????????????????????????????????????????????????????????????????????????????????????????????? 3 1.4 论文的组织结构 ??????????????????????????????????????????????????????????????????????????????????????????????????? 5 第2章 ply文件数据结构分析 ???????????????????????????????????????????????????????????????????????????????? 6 2.1 ply数据存储格式 ????????????????????????????????????????????????????????????????????????????????????????????????? 6 2.2 ply 文件格式 ???????????????????????????????????????????????????????????????????????????????????????????????????????? 7 2.3 ply数据网格的压缩 ????????????????????????????????????????????????????????????????????????????????????????????? 9 2. 4 点云数据与三维网格(ply)数据的转换 ??????????????????????????????????????????????????????? 10 2.4.1 imageware软件在图像处理中的应用 ????????????????????????????????????????????????????? 10 2.4.2 ply数据的转换过程 ????????????????????????????????????????????????????????????????????????????????? 11 2.5 ply数据文件在不同机型中的存储方式分析 ??????????????????????????????????????????????????? 13 2.5.1 不同机型的存储结构 ??????????????????????????????????????????????????????????????????????????????? 13 2.5.2 存储结构转换算法设计 ??????????????????????????????????????????????????????????????????????????? 14 2.6 实验结果分析 ????????????????????????????????????????????????????????????????????????????????????????????????????? 14 第3章 Qsplat文件结构分析及转换算法设计????????????????????????????????????????????????? 17 3.1 QSplat的数据结构及量化算法 ????????????????????????????????????????????????????????????????????????? 17 3.1.1 QS球体位置半径及量化算法 ????????????????????????????????????????????????????????????????? 18 3.1.2 QS球体泛数及量化算法 ????????????????????????????????????????????????????????????????????????? 20 3.1.3 QS球体颜色及量化算法 ????????????????????????????????????????????????????????????????????????? 22 3.1.4 圆锥泛数 ??????????????????????????????????????????????????????????????????????????????????????????????????? 23 3.2 Qsplat数据压缩算法 ?????????????????????????????????????????????????????????????????????????????????????????? 23 第4章 ply数据与QSplat数据之间的转换编程与实现????????????????????????????????? 25 4.1 数据转换系统算法设计 ????????????????????????????????????????????????????????????????????????????????????? 25 4.1.1 QS树节点结构算法设计 ????????????????????????????????????????????????????????????????????????? 25 4.1.2 ply文件转换成Qsplat文件主流程图设计 ????????????????????????????????????????????? 25 4.1.3 读取ply文件的算法设计 ???????????????????????????????????????????????????????????????????????? 26 4.1.4 建立Qsplat树型结构算法 ??????????????????????????????????????????????????????????????????????? 29 -页脚-- - 4.2 实验结果与分析 ????????????????????????????????????????????????????????????????????????????????????????????????? 30 结论 ???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 34 致 谢 ??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 35 参考文献??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 36 -页脚-- - 第1章 绪 论 1.1 课题研究的目的与意义 三维数据作为一种新的媒体数据越来越引起人们的广泛关注,在与传统应用领域的逐步结合过程中,三维数据也促进了多学科交叉的新型领域的发展。本设计可以从以下几个方面分析三维数据的应用前景: 三维模型 记录 混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载 了物体表面的精确几何信息,有助于模型的形态分析和几何测量。基于真实三维数据的几何形态分析,其可信度要远远高于二维空间中的信息分析。目前正在应用的实例有:在人类进化的不同阶段,头颅骨的形态变化;泥石流对土壤的影响程度等。 三维技术可记录场景的全方位信息。相对于以往的二维图像,三维数据允许用户从各个角度观察事物,从而得到更准确地信息。例如,通过三维扫描来记录地质勘探、考古挖掘中的各阶段现场(因为这些场景往往是不可重现的),可以从不同角度分析其地形地貌;在一些事故现场,三维数据可以使得人们从各个视点观察现场,避免在 [1]二维图像由于视点的影响而造成的遮蔽问题。 三维技术可以用于增强现实、虚拟现实的应用中,以建立具有真实感的场景环境。比如,在目前正进行的数字博物馆项目中,三维模型可以真实再现物体形态不需要人们亲临现场。因而三维建模不但可以在文物展示、文化教育中发挥重大作用,而且可以很好的保护文物原件。更为重要的是,记录精确几何信息的三维数据具有保存价值,有助于文物受损后的修复工作。此外,对于历史遗迹的三维建模,不但可以使人们通过虚拟场景漫游仿佛置身于真实的环境中,可以从各个角度去观察欣赏这些历史瑰宝,而且还可以为这些历史遗迹保存一份完整、真实大型三维点云模型的交互绘制研究的数据记录,一旦遭受意外破坏,也可以根据这些真实的数据进行修复和完善。此外,在电子购物,电影娱乐,网络游戏,远程手术,文化教育等诸多方面,三维数据 [1]的介入也促进了应用的发展。三维技术得以应用和发展的基本前提是首先需要获取现实世界中物体的真实三维信息。 1.2 国内外研究现状 本节将回顾基于点的图形学的历史发展,以时间顺序排列:点作为基本的图形绘制元素已经有很长的历史了。早在1974年,Catmull注意到任何几何剖分最终都将显-页脚-- - 示为一个个离散点。不幸的是点作为基本图形元素在很长一段时间内不受重视,尽管 [13]很多系统都将其集成到应用程序界面(API)中。 随后Reeves在1983年提出在计算机图形绘制时用3D离散采样点—粒子—作为基本绘制元素。一个粒子是三维欧氏空间内的一个点,附属一些如颜色、密度、光照反射系数等附加信息。粒子系统的最大的优点在于简便快捷的绘制:将每个粒子投影到屏幕上,利用 Z-buffer消隐,并用粒子的颜色给相应象素着色。粒子系统主要应用于一些用传统造型方法很难表示和绘制的自然场景:如火焰与爆炸场面,流水与瀑布。 Levoy与Wihtted在1985年首先提出将点作为基本绘制元素的思想。他们分析出复杂物体用连续的扫描线方法绘制时的缺陷,并指出点虽然简单却足以表示任何物体:只要三维点云足够致密,将一个个点投影到屏幕上后仍然能得到逼真的显示效果。其核心思想是在绘制前将任何物体转化成一系列离散点表示并用一个新的通用算法绘制。他们用圆形 splat 来绘制点,并设定splat的最小尺寸为一个象素以保证绘制质量,同时采用A-Buffer技术进行反走样,论文中还详细地考虑了纹理问题。点的独立性,基于点的绘制允许高度的并行处理。 概括地讲,点离散地表示几何而无需存储任何拓扑信息。因此,点云简化了实体表示方法而只保留最重要的信息,尽管无拓扑使得数据结构变得非常简单,它同时会给图形处理带来很大的困难与挑战。高性能绘制、光影 [12]计算、各向异性的纹理映射以及进一步的信号处理将是其最大的特点。 1992年Szeliski与Tonneson在Reynolds的工作基础上改进了粒子系统,给原本各向同性的粒子确定了一个法向,并将这个有向粒子系统应用于模型的表面造型以及交互编辑。每个有向粒子是一个具有局部构架的点,相互间通过远距离引力和近距离斥力发生关联。在绘制有向粒子时他们并没有使用基于点的绘制技术,而是用椭圆来 [10]显示粒子,最终实体也是三角化的曲面。这种有向粒子被他们首先命名为“surfels”。 1994年Witkin与Heckbert将有向粒子应用于隐式曲面的采样以及交互编辑,并采用同样的绘制方法来显示有向粒子。受基于图像的绘制技术(IBR)的启发,1998年Grossman与 Dally重新开展了点绘制方面的研究工作,其目标是在避免昂贵图形硬件的条件下实时绘制复杂物体。同一时期美国MERL(Mitsubishi Electric Research Laboratories)拓展了surfels(surface elements)的概念,其思路与Grossman 和Dally的点 [2]采样绘制方法(point sample rendering approach)非常相似。 随后,1999年第一篇有关Surfels的表示、压缩及动力特性的技术考察 报告 软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载 发表。2000年随着Pfister等人的Surfels与Rusinkiewicz等人的Qsplat绘制系统出现, 点绘制技-页脚-- - 术有了重要突破。 同期,Rusinkiewicz和Levoy给Qsplat系统设计了一种全新的数据结构,高效地压缩了数据并实现了层次LOD控制和基于法向聚类的可见性剔除。在预处理阶段,采样点存储在层次包围球内。在绘制时层次遍历数据结构,根据当前视点视角、屏幕分辨率以及计算条件等情况选择绘制的层次。Qsplat的算法设计允许使用硬件加速绘制,能实时地绘制上亿个点的超大模型。其缺点是没有考虑透明度以及反走样问题,因此绘制质量一般。纯粹用点云来构建场景有其应用缺陷:首先,点云的密集分布造成了大量的数据冗余,极大地消耗了存储、传输以及绘制资源;其次,在当前的几何绘制引擎中,点云在绘制时最终采用三角形或圆面表示,而拓扑关系的缺失使得在视点靠近时无法保证无空洞的绘制效果。因此许多研究者采用多边形与点混合表示场景,这种混合表示方式结合了点与多边形两种表示方式的优点:当绘制元素在屏幕上投影区域很小时用点绘制效率高一些,反过来投影区域较大时用多边形绘制效果更好。 1.3 主要工作及流程 三角形作为三维建模中的基本表示元素,在图形学中的应用非常广泛。基于三角形的表面表示需要首先根据物体表面的复杂度进行不规则的采样,然后采用分段线性拟合技术来实现建模过程。这种表示元素不但性质简单,而且可以很有效的表示物体表面的几何属性。同时,在目前的硬件发展中也得到了直接的支持。 然而,随着可获取采样点数目的飞速增长,三角化网格的点云数据在实施绘制显示时,会消耗大量的空间和时间。而本设计中提出的Qsplat(基于多分辨率处理大规模网格的点绘制系统)数据结构大大的压缩了三角网格点云数据的数据量,这对于大量的数据绘制显示是非常有利的。本设计的主要工作就是将传统的三维网格数据转换成Qsplat数据,使得数据能够适应与大规模的绘制。以下是总设计框图 -页脚-- - 图1-1 系统设计框图 设计框图介绍 本文设计框图分两部分: 第一部分: 图像采集设备将采集的物体点云数据以文本形式存放,本设计用软件imageware 将数据进行预处理,也就是将点云数据构造成三维网格ply数据文件。 第二部分: 这一部分就是本设计的主要研究工作了,要设计ply数据文件与Qsplat数据文件的转换。 1.对Qsplat数据结构进行设计 -页脚-- - 2.设计读取ply数据的函数,并将数据存储在与Qsplat相对应的数据节点中 3.将读取得的数据进行处理,使数据符合Qsplat的数据格式 4.建立QS树的算法,并将形成的QS文件输出 1.4 论文的组织结构 在本章中介绍了基于点云的图像研究背景,研究的主要内容,以及目前所做的主要工作。后面将详细介绍各部分研究内容的基本思想、实现细节和实验分析。 论文结构安排如下: 第二章介绍对输入点云数据建立三角网格数据结构。这是点云数据重组织的重要步骤。本设计在这一章介绍ply存储结构,数据结构。用imageware软件处理点云数据,并简要介绍一下ply数据在不同机型之间的存储。最后通过实验分析点云数据和三角化网格数据所形成的图像特点。 第三章主要介绍基于多分辩率的点绘制系统模型(即QSplat)的数据结构,存储结构压缩算法等 第四章是本设计研究的重点章节,也是整个设计中的关键。本章将对PLY和Qsplat数据之间转换算法将详细介绍。并且对两种数据进行数据量,图像对比。 第五章总结了全文,并给出未来工作展望。 -页脚-- - 第2章 ply文件数据结构分析 2.1 ply数据存储格式 一般来讲,为得到更好的视觉效果及快速显示,三维表面模型重建后还需要进行平滑和简化的后续处理。但是经典的表面模型重建算法(如MC 算法)只能在得到重建后网格数据的空间信息,而网格优化所必需的拓朴信息(各三角形、边及顶点之间连接关系)不能在模型重建过程中提取。但是如果直接对重建后得到的网格数据进行组织提取拓朴信息,将会耗费大量的计算资源和时间。耿国华等人[36]在MC 算法的基础上提出了三角面片的生成与组织同步完成的算法,大大缩短了三角网格数据生成与组织的时间。该算法的主要思想是在构造某一层三角网格时,分配一个缓冲区Buffer来存储当前层中每条Cube 边上的顶点的编号,这样大大加速了顶点的定位过程。吕晟珉等人提出了将数据分层重建、即时简化的处理方法,实现了大数据在较少资源情况下的三维重建。Soetebier等人也提出了将超大递进网格分块后进行处理的方法。如果进行海量断层数据三维重建时能够使用多台计算机并行处理,就可以极大地提高重建以及后续简化的速度。采用并行化方法需要将数据连续分成若干段,在不同的计算节点上实现某一段或若干段的重建与组织,然后将所有得到的网格数据合并形成最终要得到的结果。但是前人进行三维重建研究所使用的网格格式在并行处理后会使网格数据连接处的拓扑信息丢失从而不能进行合并,不能进行并行化处理。在前人研究的基础上,“网格环境下数字虚拟人的三维重建”项目组提出了一种新的网格数据存储格式,实现了海量断层数据的分布式并行重建与组织。数据文件中要存储网格的空间信息,同时也要存储顶点、边、三角形之间连接信息的拓扑信息。本文采用“网格环境下数字虚拟人的三维重建”项目组提出的网格数据存储格式,在网格数据文件不仅存储了网格的空间信息,也存储了网格的顶点、边、三角形这些几何元素之间连 [4]接关系的拓扑信息,使三维表面重建实现了分布式并行重建与组织。 该网格数据存储格式拓扑结构如图2-1 所示。 其中表A 是网格数据文件,表B是表A 中顶点信息的存储结构,表C 是表A 中边信息的存储结构,表D 是表A 中三角形信息的存储结构,表B、C、D 与表A 的关系如图2-1 中“箭头”所示: -页脚-- - 图2-1 网格数据存储格式 2.2 ply 文件格式 ply数据文件格式ply Animator Pro创建的一种图形文件格式,其中包含用来描述多边形的一系列点的信息 顶点列表 面片列表 其他元素列表 头部是一系列以回车结尾的文本行,用来描述文件的剩余部分。头部包含一个对每个元素类型的描述,包括元素名(如“边”),这个元素在工程里有多少,以及一个与这个元素关联的不同属性的列表。头部还说明这个文件是二进制的或者是ASCII的。头部后面的是一个每个元素类型的元素列表,按照在头部中描述的顺序出[7]现。 右边是一个立方体的完整ASCII描述。相同工程的二进制版本头部的唯一不同是用词“binary_little_endian”或者“binary_big_endian”替换词“ascii”。大括号中的注释不是文件的一部分,它们是这个例子的注解。文件中的注释一般在“comment”开始的关键词。 ply format ascii 1.0 { ascii/二进制,格式版本数 } comment made by anonymous { 注释关键词说明,像其他行一样 } comment this file is a cube -页脚-- - element vertex 8 { 定义“vertex”(顶点)元素,在文件中有8个 } property float32 x { 顶点包含浮点坐标“x”} property float32 y { y 坐标同样是一个顶点属性 } property float32 z { z 也是坐标 } element face 6 { 在文件里有6个“face”(面片) } property list uint8 int32 vertex_index { “vertex_indices”(顶点素引)是一列整数 } end_header { 划定头部结尾 } 0 0 0 { 顶点列表的开始 } 0 0 1 0 1 1 0 1 0 1 0 0 1 0 1 1 1 1 1 1 0 4 0 1 2 3 { 面片列表开始 } 4 7 6 5 4 4 0 4 5 1 4 1 5 6 2 4 2 6 7 3 4 3 7 4 0 这个例子说明头部的基本组成。头部的每个部分都是以一个关键词开头以回车结尾的ASCII串。即使是头部的开始和结尾(“ply”和“end_header”)也是以这种形式。因为字符“ply”是文件的魔法数字,必须是文件的头四个字符。跟在文件头部开头之后的是关键词“format”和一个特定的ASCII或者二进制的格式,接下来是一个版本号。再下面是多边形文件中每个元素的描述,在每个元素里还有多属性的说明。一般元素以下面的格式描述: element <元素名> <在文件中的个数> property <数据类型> <属性名-1> -页脚-- - property <数据类型> <属性名-2> property <数据类型> <属性名-3> ... 属性罗列在“element”(元素)行后面定义,既包含属性的数据类型也包含属性在每个元素中出现的次序。一个属性可以有三种数据类型:标量,字符串和列表。属性可能具有的标量数据类型列表如下: 名称 类型 字节数 ------------------------------- int8 字符 1 uint8 非负字符 1 int16 短整型 2 uint16 非负短整型 2 int32 整型 4 uint32 非负整型 4 float32 单精度浮点数 4 float64 双精度浮点数 8 这些字节计数很重要,而且在实现过程中不能修改以使这些文件可移植。使用列表数据类型的属性定义有一种特殊的格式: property list <数值类型> <数值类型> <属性名> 这种格式的一类例子是上面的立方体文件中的: property list uint8 int32 vertex_index 这表示属性“vertex_index”首先包含一个非负字符报苏在属性里包含多少索引,接下来是一个列表包含许多整数。在这个边长列表里的每个整数都是一个顶点的索引[7]。 2.3 ply数据网格的压缩 网格简化方法通过减少三角网格中的顶点和三角形数目,降低了模型的存储、传输数据量,并且可以通过网格重建、多分辨率建模的方法,在绘制过程中恢复出必要的细节。三维网格压缩方法采取的则是另一种途径,即通过编码/解码过程减少网格模型的几何、拓扑信息的存储量,而不直接对网格模型的细节信息进行消减。 最常用的网格压缩方法是将三角形网格模型拆分为连续的三角形条带,于是三角-页脚-- - 形顶点的重复记录就大大减少,节省了存储空间。这种方法有很多的应用和发展。此外,通过平行四边形预测方法还可以减少顶点坐标(即网格的几何信息)的存储量。另一类网格压缩方法通过坐标量化等手段对网格的几何信息进行编码,这是一种有损的压缩方法。而近年来出现的一些方法中,通过重新建网将原始网格转化成半规整的网格,然后利用一些常规的信号处理工具,如小波分析,对网格的几何信息进行压缩。这样网格在几何和拓扑两方面的压缩都是有损的。近年兴起的“点绘制(point-based)”的方法也可以看作是一种网格压缩的手段。它完全抛弃了网格模型中的拓扑连接关系,仅保存几何信息部分,因而使数据量大大减少,但是模型绘制的效果也相应的有所损失。网格压缩方法在减少数据量的同时并不对模型的细节信息进行简化,因此在数据传输中十分有用;但是它也因此无法提供不同LOD 的多分辨率模型目前有很多方法将网格编码算法应用于大数据量模型简化的out-of-core 方法中,取得了很好的效[8]果。 2. 4 点云数据与三维网格(ply)数据的转换 2.4.1 imageware软件在图像处理中的应用 Imageware是著名的逆向工程软件,广泛应用于汽车、航空、航天、消费家电、模具、计算机零部件领域。拥有广大的用户群,国外有BMW、Boeing、GM、Chrysler、Ford、ray
theon、Toyota;国内已有上海大众、上海交大、上海DELPHI、成都飞机制造公司等。以前该软件主要应用于航空航天和汽车工业,因为这两个领域对空气动力学性能要求很高,在产品开发的开始阶段就要认真考虑空气动力性。常规的设计流程首先根据工业造型需要设计出结构,制作出油泥模型,然后将模型送到风洞实验室去测量空气动力学性能,再根据实验结果对模型进行修改,经过反复修改直到获得满意结果为止,这样所得到的最终油泥模型才是符合本设计需要的模型。如何将油泥模型的外形精确地输入计算机成为电子模型,这就需要采用逆向工程软件、首先利用三坐标测量仪器测出模型表面点阵数据,利用逆向工程软件(例如:Imageware surfacer)进行处理,获得class 1曲面。 随着技术进步和消费水准的不断提高,很多其他行业也开始纷纷采用逆向工程软件进行产品设计,例如,微软公司生产的鼠标器(mouse),就其功能来讲,只需要三个键就可以了,可是怎样才能让鼠标器手感最好,经过长时间使用而不易产生疲劳感确是生产厂商需要认真考虑的问题。因此微软公司首先根据人体工程学制作了几-页脚-- - 个模型,并交给使用者评估,根据评估意见对模型直接修改,直到模型修改到大家都满意为止,然后将模型数据利用逆向工程软件Imageware生成CAD数据。当产品推出市场后,由于外观新颖、曲线流畅、加上手感好,符合人体工程学原理,迅速获得用户的广泛认可,产品市场占有率大幅度上升。 Imageware逆向工程软件的主要产品有: Surfacer 逆向工程工具和class 1曲面生成工具。 Verdict 对测量数据和CAD数据进行对比评估。 Build it 提供实时测量能力,验证产品的制造性。 RPM 生成快速成型数据。 View 功能与Verdict相似,主要用于提供三维报告。 最新发布的Surfacer 9.0软件将以下工作流程的高性能工具完整的集成到一起: (1)弹性的曲面创建工具:可以在一个弹性的设计环境里非常方便的直接从曲线、曲面、或测量数据创建曲面,支持贝茨尔(Bezier)和非均匀有理B样条(NURBS)曲面两种方法。用户可以选择适合的曲面方法,通过结合两种方法的优点来获益。 (2)动态的曲面修改工具:允许用户在交互的方式下试探设计主题,立刻就可以看到是否美观和思路是否符合工程观念。设计、工程分析、制造的标准都通过精心的构造过程考虑进去,所以当每次修改曲面时不需要在重新校核标准。 (3)实时的曲面诊断工具:可以提供诸如任意截面的连续性、曲面反射线情况、高亮度线、光谱图、曲率云图和园柱型光源照射下的反光图等多种方法。在设计的任何时候都可以查出曲面缺陷。 有效的曲面连续性管理工具:在复杂的曲面缝补等情况下,即使曲面进行了移动修改等操作,也能保证曲面同与之相连的曲面间的曲率连续,避免了乏味的手工再调整过程。 强大的处理扫描数据能力:根据Rainbow图法(相当于假设雨水从上面落下,由于形状差异导致雨水流速差异)、曲率大小变化云图法(对于一个完全光顺的class 1曲面,相当于曲率大小变化为零,对于两个不同曲面,此值会不同)将扫描数据分开,这样可以很快地捕捉产品的主要特征,并迅速建立各个相应曲面,避免了费事的分析和处理。 正是由于Imageware在计算机辅助曲面检查、曲面造型及快速样件等方面 [9]具有其它软件无可匹敌的强大功能,使它当之无愧的成为逆向工程领域的领导者。 2.4.2 ply数据的转换过程 Imageware采用NURBUS技术,软件功能强大,易于应用,对硬件要求低,可运-页脚-- - 行于各种平台:UNIX工作站、PC机,操作系统可以是UNIX、NT、Windows95及其他平台。 Imageware由于在逆向工程方面的技术先进性,产品一经推出就占领了很大市场分额,软件收益正以47%的年速率快速增长。 Surfacer是Imageware的主要产品,主要用来做逆向工程,它处理数据的流程遵循点--曲线--曲面原则,流程简单清晰,软件易于使用。流程如下: 一、点过程 读入点阵数据。Surfacer可以接收几乎所有的三坐标测量数据,同时还可以接收其他格式入stl、vda等。 将分离的点阵对齐在一起(如果需要)。有时候由于零件形状复杂,一次扫描无法获得全部的数据,或是零件较大无法一次扫描完成,这就需要移动或旋转零件,这样会得到很多单独的点阵。Surfacer可以利用诸如圆柱面、球面、平面等特殊的点信息将点阵准确对齐。 对点阵进行判断,去除噪音点(即测量误差点)。由于测量工具及测量方式的限制,有时会出现一些噪音点,Surfacer有很多工具来对点阵进行判断,去掉噪音点,以保证结果的准确性。 通过可视化点阵观察和判断,规划如何创建曲面。一个零件,是由很多单独的曲面构成,对于每一个曲面,可根据特性判断用用什么方式来构成,例如,如果曲面可以直接由点的网格生成,就可以考虑直接采用这一片点阵;如果曲面需要采用多段曲线蒙皮,就可以考虑截取点的分段。提前作出规划可以避免以后走弯路。 根据需要创建点的网格或点的分段。Surfacer能提供很多种生成点的网格和点的分段工具,这些工具使用起来灵活方便,还可以一次生成多个点的分段。 二、曲线创造过程 判断和决定生成哪种类型的曲线。曲线可以是精确通过点阵的、也可以是很光顺的(捕捉点阵代表的曲线主要形状)、或介于两者之间。 创建曲线。根据需要创建曲线,可以改变控制点的数目来调整曲线。控制点增多则形状吻合度好,控制点减少则曲线较为光顺。 诊断和修改曲线。可以通过曲线的曲率来判断曲线的光顺性,可以检查曲线与点阵的吻合性,还可以改变曲线与其他曲线的连续性(连接、相切、曲率连续)。Surfacer提供很多工具来调整和修改曲线。 三、曲面创建过程 决定生成那种曲面。同曲线一样,可以考虑生成更准确的曲面、更光顺的曲面(例如class 1曲面),或两者兼顾。根据产品设计需要来决定。创建曲面。创建曲面的方法很多,可以用点阵直接生成曲面(Fit free form),可以用曲线通过蒙皮、扫掠、四-页脚-- - 个边界线等方法生成曲面,也可以结合点阵和曲线的信息来创建曲面。还可以通过其他例如园角、过桥面等省城曲面。诊断和修改曲面。比较曲面与点阵的吻合程度,检查曲面的光顺性及与其他曲面的连续性,同时可以进行修改,例如可以让曲面与点阵对齐,可以调整曲面的控制点让曲面更光顺,或对曲面进行重构等处理。英国 Tri umph Motorcycles有限公司设计工程师Chris Chatburn说:“利用Surfacer可以在更短的 [9]时间内完成更多的设计循环次数,这样可以减少50%的设计时间。 2.5 ply数据文件在不同机型中的存储方式分析 2.5.1 不同机型的存储结构 谈到字节排序的问题,必然牵涉到两大CPU派系。那就是Motorola的PowerPC系列CPU和Intel的x86系列CPU。PowerPC系列采用big endian方式存储数据,而x86系列则采用little endian方式存储数据。ARM同时支持 big和little,实际应用中通常使用little endian。其实big endian是指低地址存放最高有效字节(MSB),而little endian则是低地址存放最低有效字节(LSB)。用文字说明可能比较抽象,下面用图像加以说明。比如数字0x12345678在两种不同字节序CPU中的存储顺序如下所示: Big Endian 一个Word中的高位的Byte放在内存中这个Word区域的低地址处 低地址 高地址 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 12 | 34 | 56 | 78 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Little Endian 一个Word中的低位的Byte放在内存中这个Word区域的低地址处 低地址 高地址 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 78 | 56 | 34 | 12 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 从上面两图可以看出,采用big endian方式存储数据是符合人类的思维习惯的。必须注意的是:一个Word的长度是16位,一个Byte的长度是8位。如果一个数超过一个Word的长度,必须先按Word分成若干部分,然后每一部分(即每个Word内部)按-页脚-- - Big-Endian或者Little-Endian的不同操作来处理字节。 2.5.2 存储结构转换算法设计 设计的转换算法其实就是用循环对数据的地址的换位,下面是主要部分的算法,用 模版会增强函数的实用性 template F3D_INLINE T ConvertEndian(T t) { T tResult = 0; for (int I = 0; I < sizeof(T); ++ I) { tResult <<= 8; tResult |= (t & 0xFF) ; t >>= 8; } return tResult; } 2.6 实验结果分析 图2-2 球型点云图与ply网格图 -页脚-- - 图2-3 马的点云图与ply网格图 图2-4 人脸的点云图和ply网格图 -页脚-- - 在处理点云数据时,首先要对原始点云数据进行除噪。通过imageware对点云的处理效果图,可以很清楚的知道处理的具体过程就是从点到线,再对网格线进行曲面重构。这一过程也是其他处理软件所使用的。对于那些噪声点很少或几乎没有的点云模型,可以用imageware对点云数据处理为STL数据格式,然后借助于3D Object converter将STL数据处理成ply数据文件,这种方法虽简单但对点云数据模型的质量要求较高。imageware对于数据量大的ply文件的显示效果很好,但是这会占用大量的时间和空间。如果采样点的数目巨大,由采样点得到的多边形的数目也是巨大的(如果把采样点连接成三角形,那么三角形的数目大约是采样点数目的两倍)。比如斯坦福大学的数字米开朗基罗工程制作的St. Matthew模型有超过1.86×108个三角形[1]。如果要把St. Matthew模型存储在硬盘上,将会需要6G以上的空间,对于如此巨大的数据,从硬盘中读取都要花好几分钟的时间,在网络上传输了需要的时间就更加多了。这也就产生想要简化数据量的想法。后面将介绍新的方法来解决这个问题。 -页脚-- - 第3章 Qsplat文件结构分析及转换算法设计 3.1 QSplat的数据结构及量化算法 通过调整以及整合扫描的点云数据产生三角网格如图3-1(a),它可以通过前面介绍的imageware软件处理获得。在此基础上,在每个节点上放置一个球体,这个球体要足够大使得能够和旁边的球体相接触如图3-1(b)。(后面会着重讲述球体的一些概念)建立了球体后,要对图3-1(b)建立层次结构。Qsplat是通过将不同区域的 [19]边界球进行着色来建立层次结构的。如图3-1(C) 图3-1 Qsplat数据结构图 QSplat 用边界球的层次结构作为可见性剔除技术,多细节层次的控制以及绘制。树中每个节点都包含球心位置和半径,泛数和圆锥泛数的宽度,以及颜色(可选)。尽管对程序来说,仅需要一种算法从三角网格中生成这种边界球的层次结构,但是QSplat还能从多边形、体素或者点云模型生成这样的层次结构。这种层次结构作为一 [19]种预处理被构造,并被写入到磁盘上。 树中每个节点包含:球的位置和半径、每点处的法向量、圆锥泛数的宽度、颜色值(可选),每个节点用4个字节(无颜色信息时)或6个字节(有颜色信息时)表示,如图1所示: 图3-2 QSplat 节点布局 -页脚-- - 图3-3 QSplat文件和节点的设计 (a)树的存储方式是宽度优先(顺序由红线表示)。(b)父节点到孩子节点的连接是通过一个从一组父节点到第一个孩子节点的指针建立。如果所有的父节点的兄弟节点都是叶子节点那么这些指针都不出现。所有指针都是32位的(c)一个量化了的节点占据48个比特(不带颜色的只要32个比特) 3.1.1 QS球体位置半径及量化算法 每个球的球心位置和半径在边界球层次结构上相对 于它们的父节点被编码。为了节约空间,这些度量的值定 在了13比特。也就是说,球的半径数值范围相对与它父 节点是1/13到13/13,球心相对于它父节点(每一个X, Y,Z)的中心的偏移量是它父节点直径的1/13的倍数。 量化自顶向下进行,如此孩子节点球的位置和范围相对其 父节点的量化的位置而被输入; 因而, 量化错误不向网格 图3-4 QS球体位置半径 传播。为了保证量化过程不引起任何的空洞,量化的半径总是收敛于代表最近点的值以保证量化球非常接近真实球。 -页脚-- - 4需要注意的是不是所有的13可能组合的中心偏移量和半径比是有效的,因为许 多结果孩子节点的结果是不依附它父节点的。事实上,只有7621个可能的组合是有 效的,这就意味着对球心位置和半径所使用的空间只能是13比特。假设父球的半径 是1的话,这个编码的 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 给出了对于孩子球的X、Y、Z的一个平均量化误差是0.04, 对于孩子球半径而言有平均0.15的误差。半径误差远大于位置误差的原因是半径被 球位置的量化误差首次增加(为了保证量化球能够接近实际球),于是半径总是收敛 于代表最近点的值。只要不坚持量化球不完全接近原始球在半径方面就能够获得比较 低的量化误差。但是要是这样的话,就会引起球不会向量化后那样紧密接触。这样做 在绘制的时候会制造出空洞来,通过渐进式的编码来表示像球位置这样的几何量,因 此实质上在层次结构的层次上按比特输出这些几何量。这种方案在网格压缩方面是违 背传统方案的。传统方案依赖对于沿着一些路径和沿着网格边的顶点位置的不同的编 码。实际上这种层次三角编码和Eck的多分辨率分析中小波表示几何体比较接近。本 设计每个节点只需要13比特空间的方案比stateof-the-art几何压缩方法更有竞争力, 而后者是依靠最初量化的顶点位置使得每天顶点平均占用9-15个比特。然而这不是 完全有效的比较,因为传统几何压缩方案同样也表示出了网格的连通性(这个方案本 设计已经抛弃),而且13比特存储一个节点还包括球的半径。 每个节点的位置和半径在绘制的时候被飞快得解码。由于这个原因,数据结构不 但在磁盘上表现得紧凑,而且在绘制的时候比在绘制前解压数据的方案需要更少的内 [19]存空间。 QS球体量化算法 pcx为父球X坐标,pr为父球的半径,cx为子球X坐标,dx为相对坐标值,N为13, INVALID为0xffff dx = cx - pcx; dy = cy - pcy; dz = cz - pcz; X1 = min(max(int(floor((rdx - 0.5f*rr)*N)), 0), N-1); Y1 = min(max(int(floor((rdy - 0.5f*rr)*N)), 0), N-1); Z1 = min(max(int(floor((rdz - 0.5f*rr)*N)), 0), N-1); X2 = min(max(int(ceil((rdx + 0.5f*rr)*N)), 1), N); Y2 = min(max(int(ceil((rdy + 0.5f*rr)*N)), 1), N); Z2 = min(max(int(ceil((rdz + 0.5f*rr)*N)), 1), N); maxdiff = max(max(X2 - X1, Y2 - Y1), Z2 - Z1) -页脚-- - dx=cx-pcx; dx = cx - pcx; dy = cy - pcy; float dz = cz - X2-X1ay ax>az 接流程 图2 x>0 z>0 A=0;u=y;v=z; A=1;u=y;v=z; A=4;u=x;v=y; A=5;u=x;v=y; u=WARP(u); 算法流程图(1) ay>az y>0 z>0 A=2;u=z;v=x; A=3;u=z;v=x; A=4;u=x;v=y; A=5;u=x;v=y; 算法流程图(2) 图3-7 QS球泛数量化算法流程图 3.1.3 QS球体颜色及量化算法 颜色目前存储时占用16个比特, R、G、B分别为5、6、5位。在做泛数运算 的时候,颜色增加式的编码能够节约存储空间,但是在运行的时候耗费比较多的内存。 颜色量化算法 r ,g , b分别代表R,G,B颜色值 ,colorquant_table为量化表 -页脚-- - colorquant return; colorquant_table=newfloat[3*65536]; Unsigned r=0 r<32 Unsigned g=0 g<64 Unsigned b=0 b<32 colorquant_table[index++]=float((r<<3)|(r>>2))/255.0f colorquant_table[index++]=float((g<<2)|(g>>4))/255.0f colorquant_table[index++]=float((b<<3)|(b>>2))/ 255.0f b++ g++ r++ 颜色量化完成 图3-8 QS球体颜色量化算法流程图 -页脚-- - 3.1.4 圆锥泛数 经过实验后,决定给每个节点圆锥泛数宽度仅2比特。四个有代表性的数值对应着面。在典型数据集上,使用量化的圆锥泛数做背面剔除可以裁减掉超过90%的节点。这些节点通过准确的圆锥泛数的宽度被剔除掉。值得注意的是本设计总是保守地去表示圆锥泛数的宽度,所以从不裁减本不该被裁减的几何元素。和泛数以及颜色一样,圆锥泛数的宽度能相对于父节点的宽度而被表示,但是回减慢绘制速度。 该层次结构由输入的三角形网格生成,树中每个节点对应多边形网格的一个顶点。原始网格中顶点之间的关联信息被丢弃,但是为了保证生成的图像没有空洞,每个叶结点的球半径都选的足够大,以保证同周围节点的球相交。 在进行绘制时,层次树按深度优先方法进行遍历。对每个中间节点,首先判断该球是否完全在屏幕之外(可将球投影到视平面上来判断)或者是完全背向的(可由节点处的法向量和圆锥泛数来判断)。如果是,则该节点不可见,忽略该节点和它所有的子节点,这就实现了可见性选择。如果该节点至少有一部分子节点是可见的,则将该节点在屏幕上的投影大小同一个阈值进行比较,如果大于阈值,则继续向下递归;如果小于阈值或者已经到达叶结点,则按该节点的球位置和半径确定的屏幕上的位置和大小绘制一个“Splat”。其中阈值的大小可由上一帧图像绘制的时间动态确定,以达到满足用户指定的每秒绘制帧数的要求。一旦用户停止移动鼠标,则逐渐使用更小的阈值进行绘制,直到达到叶结点或者Splat的大小为一个像素点为止。 3.2 Qsplat数据压缩算法 高度压缩的数据结构是QSplat方法的一大特点,在该方法中,每个节点的球的位置和半径都是相对于父节点进行编码的,而且将它们离散化为13级离散值,即每个节点的球半径是它的父节点的球半径的1/13至13/13之间的一个值,球心相对于父节点球心的距离是父节点球半径的1/13的倍数。每个节点的法向量也采用离散化表示,用以该点为中心的每个面划分为52x52网格的立方体上的网格点来近似记录向量的方向。圆锥泛数的宽度仅用2位来表示,四个离散值分别表示该圆锥泛数的半顶角的正弦值为1/16、4/16、9/16和16/16的情况。颜色值离散化为16位表示。经过上述压缩表示,最大程度的减少了每个节点所占用的字节数,同时误差控制在可以接受的范围内。这样QSplat在内存和外存中数据表示方式是一样的,绘制时不必先进行解压缩的工作,只需直接将数据调入内存即可,因而进一步加快了绘制的速度。 由于QSplat主要面向大数据量的模型的快速显示,因而,尽管采用了相当大的压-页脚-- - 缩率,但是每个模型的所需的数据文件仍然很大,尤其是当数据通过网络远程调入时,则很可能会出现数据传输跟不上显示速度的情况。为了解决这一问题,Streaming QSplat[18]方法对QSplat方法进行了修改。因为QSplat可以在递归过程中的任意层次中止,所以Streaming QSplat方法的修改采用了一种非常简单、直接的方法——一旦所需数据尚未传到,则中止递归。这样就可以先行显示一个较粗糙的图像,等数据传到后再逐步求精。 -页脚-- - 第4章 ply数据与QSplat数据之间的转换编程与实现 4.1 数据转换系统算法设计 4.1.1 QS树节点结构算法设计 通过对QSplat数据结构以及树型结构的了解,知道QSplat结构的关键在于其树型节点的设计,本人在设计转换系统时,特别注重对Qtree_node设计,在软件中,我定义Qtree_node的结构如下: struct QTree_Node { point pos; //树节点的位置 float r; //树节点的半径 vec norm; //树节点的泛数值 float normcone; //树节点的圆锥泛数值 union { QTree_Node * child[4]; //孩子节点 struct { int refcount; //参考记数 int remap; //重映射 short col_tmp[3]; //孩子节点颜色 } m; }; color col; //树节点颜色 static PoolAlloc memPool; //存入内存 void operator delete(void *p, size_t n) { memPool.free(p,n); }//释放内存 }; 4.1.2 ply文件转换成Qsplat文件主流程图设计 前面已经介绍了PLY文件的获取,在设计转换算法时,首先要设计打开PLY文件的算法,由上面的PLY文件结构很容易的设计这一过程。第二步就是对于PLY数据和QS数据的接口设计,这个接口其实就是对读取的数据进行处理。第三部是对要-页脚-- - 生成的QS树计算大小为它设置空间。第四部是对QS树进行初始化,比如球的初始化,颜色等并且建立QS树型结构。最后一步是对QS树型存储结构编写成文件输出。以下就是设计的主流程图: 打开点云数据ply文件 用read_ply读取取ply文件 转向4.1.3流 中的相关数据并进行存储 程图 将存储的数据进行分析处 理, 计算初始的SPLAT大小 用find_splat_sizes() 初始化QS树 QTree qt() 建立QS树 转向4.1.4 qt.BuildTree() 形成QS文件输出 qt.Write() 图4-1设计主流程图 4.1.3 读取ply文件的算法设计 在读取PLY文件时,必须知道PLY文件的结构,在第二章已经做了介绍。这个设计的第一步就是要根据PLY文件头部的一些关键字特征对输入文件进行判断。第二步是设计的关键,就是将PLY文件中的数据提取出来并进行存储。这里要分成两-页脚-- - 个块,一个是对叶子的数目和叶子信息存储。另一个是对面数目和面信息的存储。第三步就是一些收尾工作,如读取失败的一些处理函数。 根据PLY数据和QS数据的特征定义读取PLY函数 read_ply(infilename, numleaves, leaves, numfaces, faces, havecolor, comments) 此函数的中的参数 infilename为输入文件的名字, numleaves为叶子数目,顶点数存储在它中 numfaces为面数目 ,faces为面数据 havecolor为拥有的颜色,comments为注释是在PLY文件头的信息 读取ply文件函数的程序流程图(图4-2) -页脚-- - 图4-2 ply数据读取算法流程图 -页脚-- - 4.1.4 建立Qsplat树型结构算法 本设计的算法是从用三角网格来表示被编码的模型开始的(下面的网格一般都指的是三角网格)。尽管每个人都能直接从点云模型建立一个QSplat的层次结构,但是直接从网格入手使计算每个节点的泛数变得容易。如果不使用网格的话,将不得不通过找每一个点周围小领域范围里的顶点组成的最小二乘面去计算泛数。从网格入手也使分配的球的大小到相应的输入顶点上(这些顶点在边界球层次结构中可以变成叶节点),这样在绘制过程中使得点与点之间没有空洞。为了保证上述情形,如果每两个顶点由原始网格的一条边连接,则球的大小必须被选得足够大,使得每两个球在顶点的位置上能够接触到。目前的算法这是一个保守的算法——它导致了球过大,但是保证了不会留下任何空洞。 一旦分配了叶球尺寸,就用下面的算法去建立剩下的树: BuildTree(vertices[begin..end]) { if (begin == end) return Sphere(vertices[begin]) else midpoint = PartitionAlongLongestAxis(vertices[begin..end]) leftsubtree = BuildTree(vertices[begin..midpoint]) rightsubtree = BuildTree(vertices[midpoint+1..end]) return BoundingSphere(leftsubtree, rightsubtree) } 算法通过沿着顶点的边界盒子的最长轴对顶点集的分离、两个子树的递归地计算以及两个子球的边界球的查找建立了剩下的树。当树被建立起来的时,在内部节点上的每个顶点的属性(如:泛数和颜色等)被设置成这些属性在子树中的平均值。在递归达到某一个顶点时,简单的去创建一个球,这个球的球心就在这个顶点的位置上。因为整个树的大小依赖每一个节点的分支因素,把这些节点都结合到树中去,使得树的平均分支大约有4个。这样将减少内部节点的数目,从而减少了树的存储量。处理的最后一步就象Qsplat数据结构描述的那样去量子化每个节点的属性。 4.2 实验结果与分析 -页脚-- - 图4-3 小数据量的球型ply数据与Qsplat数据绘制对比图 图4-4 较大数据量的球型ply数据与Qsplat数据绘制对比图 图4-5 人体模型的ply数据与Qsplat数据绘制对比图 -页脚-- - 图4-6 马的ply数据与Qsplat数据绘制对比图 图4-7 人脸的ply数据与Qsplat数据绘制对比图 上图中 ply文件和Qs文件的数据量为 图4-8 ply数据量和Qsplat数据量比较 从上图中,可以发现ply转换成QS文件的数据量明显的减少了很多,压缩比大概为1:5.7。看来转换的效率还是比较高,但同时也发现,数据量小的donna1.ply转换成donna1.qs,图形的显示效果差了很多,而数据量稍大的bunny转换出的QS文件的效果还比较好。本算法适合于大规模网格的数据转换,对于小的数据量也没有必要-页脚-- - 转换。下面是两种数据文件的不同绘制比较,通过表格中的比较,Qsplat占有明显的优势,尤其是在对大规模数据量时,它大大的节省了空间和绘制时间。 .表4-1 ply绘制与Qsplat绘制的比较 ply绘制 QSplat绘制 适合用于大的,表面平坦的或者是较对模型的每一处绘制都很好 为弯曲的区域 需用高效扫描的3D图像设备 虽然像素值较高,但是它对3D硬件设备 的要求不高 十进制或者LOD数据结构较为费时,预处理较为快,对于低数据量的图形显图像效果好 示效果稍差 -页脚-- - 结 论 Qsplat数据处理在速率方面大大的超过了ply数据处理。Qsplat系统中全新的数据结构,高效地压缩了数据并实现了层次LOD 控制和基于法向聚类的可见性剔除。在预处理阶段,采样点存储在层次包围球内。这种数据结构允许使用硬件加速绘制,能实时地绘制上亿个点的超大模型,能够使在硬件设备较差而数据量大的时候绘制出较好的图形。所以Qsplat在未来的三维数据处理方面是很有潜力的。 本文针对ply数据和Qsplat数据转换方面作了如下的工作: 1.ply数据的获取,本设计是通过运用imageware软件将提取的点云数据重构成三维网格数据,再重构曲面而获得的。在此认识了ply数据的存储结构,文件结构。 2.Qsplat数据结构及量化算法设计,由于Qsplat的数据结构是树型的,所以关键就在于对节点的理解,节点也是树中的叶子,它是Qsplat的最基本单元,携带着Qspalt的数据信息。Qspalt的数据压缩是基于数据结构的,本文提出的量化算法对于数据的压缩是很有效的。 3.ply数据与Qsplat数据转换的具体实现,它包括对Qsplat树节点的设计,ply数据文件的读取设计,建立Qspalt树的算法设计,以及最终的输出算法。本设计通过两种数据的图形绘制比较他们的优缺点。 本文阐述了ply文件和Qsplat文件的转换,今后的工作安排如下: 1. 本设计只对由三角网格构成的ply文件转换有效,而对四边形等其他多边形的ply文件的转换是不支持的,所以今后要在多种网格ply文件的转换算法上面进行深入研究。 2. 实验的图形都是黑白图,缺乏真实效果。所以今后的工作会集中于对带有颜色的ply数据文件和Qsplat数据文件的转换研究,使得转换的效果更加真实。 -页脚-- - 致 谢 首先我衷心的感谢我的导师蔡波老师。半年以来,从确定毕业设计的选题,到完成论文都离不开他的指导和鼓励。对于毕业设计过程中遇到的各种问题,蔡老师总是悉心的指导并且给我推荐一些文章以拓展思路。他严谨的治学态度、精益求精的科研精神尤其使我受益匪浅。蔡老师对科研工作的热情、严谨,和深厚的学术造诣给我留下了深刻的印象。感谢蔡老师为我指定研究方向,提供良好的研究环境,并严格指导我的科研进展、论文写作、学术交流等诸多方面。 感谢韩雪梅、李俊国、乔静、刘先勇等众位老师的诸多帮助。在我完成毕业设计的过程中,他们给我提出了很多好的想法和建议,帮我解决了遇到的不少困难。感谢生物医学图像处理实验室的所有成员。他们在毕业设计的过程中帮我拓宽了思路。在我写论文的过程中,他们为我提供了很多参考材料,在此一并感谢。其中,我要重点感谢龙祺同学教我C语言程序设计的使用以及蔡老师指导我写作论文。 感谢实验室机房的所有老师以及其他所有工作人员对我的帮助。 感谢同学们和朋友们在学习上和生活上对我的帮助和支持;尤其感谢我的室友在此期间经常和我讨论问题,激发了我很多想法。最后,我要感谢我的父母、姐姐和妹妹。他们虽在千里之外,但不时对我督促和鼓励,在我遇到困难的时候,他们给了我莫大的关怀和支持,为我的学业作出了很大的牺牲和奉献。 最后,感谢所有在我人生道路上关心支持和帮助过我的人们,包括我认识的与不认识的。 金建 二??七年六月 -页脚-- - 参考文献 [1]孟放,大型三维点云数据的交互绘制研究,北京大学博士研究生学位论文,2005:1-117 [2]杨振羽,基于点表示几何体的造型技术,硕士学位论文,2004:1-86 [3]魏涛,扫描密度不同的三维深度数据的配准和场景重建,北京大学本科生毕业论文,2004:1-46 [4]刘胜兰,周儒荣,张丽艳,三角网格模型的特征线提取,计算机辅助设计与图形学学报,2003, 15 (4):444-453 [5]冯洁,大型三维网格模型的简化及基于视点的LOD控制,北京大学博士学位论文,2004:1-119 [6]张龙,董朝,陈为,彭群生,大规模点模型的实时高质量绘制,计算机学报,2005, 28 (2):241-249 [7]李鑫,基于外存的海量三角网格模型的压缩,北京大学本科生毕业论文,2005:1-48 [8]赵新方,三角网格剖切算法的研究,华中科技大学硕士学位论文,2006:1-46 [9]田海山,何援军,蔡鸿明,基于点的计算机图形学综述,系统仿真学报,2006, 18 (1):42-45 [10]陆济湘,李德华,从点云到表面的建模问题综述,武汉理工大学学报,2004, 26 (5):84-86 [11]Peter K. Allen, Ioannis Stamos, A. Troccoli, et al., “3D Modeling of Historic Sites Using Range and Image Data,” IEEE Int. Conf. on Robotics & Automation, 2003, pp. 145-150. [12]Mario Botsch, Andreas Wiratanaya and Leif Kobbelt, “Efficient High Quality Rendering of Point Sampled Geometry,” Proc. 13th workshop on Rendering, 2002, pp.53-64. [13]Liviu Coconu and Hans-Christian Hege, “Hardware-Oriented Point-Based Rendering of Complex Scenes,” Proc. Eurographics Workshop on Rendering, 2002, pp.43-52. [14]Baoquan Chen and Minh Xuan Nguyen, “POP: A Hybrid and Polygon Rendering System for Large Data,” Proc. Visualization 2001, pp.45-52. [15]Shachar Fleishman, Daniel Cohen-Or, Marc Alexa, et al., “Progressive Point Set Surfaces,” ACM Transaction on Graphics, Vol. 22, Issue 4, 2003, pp. 997-1011. [16]Markus Gross, ,Point-Based Computer Graphics,Eurographics 2003, Tutorial T1. [17]Leif Kobbelt and Mario Botsch, “A Survey of Point-Based Techniques in Computer Graphics,” Computers & Graphics, Vol.28, No.6, 2004, pp. 801-814. [18]Aravind Kalaiah and Amitabh Varshney, “Modeling and Rendering of Points with Local Geometry,” IEEE Trans. on Visualization and Computer Graphics, 2002, pp.100-128. [19] Szymon Rusinkiewicz,Marc Levoy, “QSplat: A Multiresolution Point Rendering System for Large Meshes,”Stanford University,2000,343-352 -页脚--
本文档为【基于三维点云的图象存储与研究】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_601191
暂无简介~
格式:doc
大小:329KB
软件:Word
页数:0
分类:教育学
上传时间:2017-11-11
浏览量:33