第1章
绪 论
1.1 研究背景与研究意义
在计算机视觉和计算机图形学中,三维重建就是捕捉真实物体的形状和外观的过程。这个过程可以用主动的方法或被动的方法[1]来完成。主动视觉技术是指使用结构光发射的受控源,如扫描激光源或投影模式的光源和一个探测器(如照相机)。普通的主动视觉技术是激光测距,主动光源相对于一个物体移动,目的是为了恢复物体的三维数据。然而主动视觉技术有一些缺陷。例如,该技术很难拓展到外界应用或是有冲突的环境光源。采集系统限定物体模型的尺寸不能太大;物体的反射系数和颜色的变化可能与获取精度有冲突;主动视觉技术不能使用特殊的结构光去形成物体的图像,因此光源不能直接用于范围测量。恢复三维信息的基本原则是使用三角化原理。在主动视觉技术中,光源、物体和传感器形成了一个三角形。在被动视觉技术中,三角形是由物体和两个传感器形成的。也就是说,光源不能直接参与被动视觉的测量。被动方法不直接接触物体,而主动方法接触物体或投射物体上面某种能量。对于被动方法,计算机视觉领域主要研究提取一个或多个图像的范围信息。在采集数据方面,被动方法比主动方法更便宜、更方便,因为它不需要特殊目的的硬件。然而,被动方法明显不能准确数字化。要想获得更准确、更鲁棒的结果必须采用主动方法,它能快速精确地获得范围扫描数据,但主动方法所用设备的费用、可移植性和可操作性阻止了它们的广泛使用,如在家用领域。此外,普通的激光扫描仪一次只能扫描一行,为获得物体表面图像可能需要长达几小时,这也限定了它只能对静态物体或场景进行重建。
三维物体表面重建技术在工程、医药、生化、动画以及电子商务等诸多领域具有广泛的应用前景,三维表面重建问题也是当前的热点研究问题之一。总体来说,三维物体表面重建的内容主要包含以下4个方面:
(1) 采集三维数据的设备多种多样;
(2) 多种注册算法[2,3,4,5,6,7,8]可以排列连续的范围图像;
(3) 处理后的范围数据被合并成三维重建模型[9,10,11];
(4) 三维重建模型的补洞[12,13]。
目前测量技术中重要的数字化设备有:测距仪、激光快速扫描仪、断层扫描仪、深度传感器等。而MESA公司的SR3000传感器芯片提供了独一无二的距离测量功能,使用它很容易获得精确的三维深度图,并能快速准确地完成三维物体重建的过程。
目前国外很多研究机构提出了三维重建模型的系统或复杂的算法[14,15,16,17,18,19,20],系统中往往采用大型设备和精密的仪器,既昂贵,又不易搭建,并且还不能用于实时系统。这些局限性导致三维重建模型系统在现实生活中及很多领域不能应用。所以我们提出用深度传感器与数字照相机联合搭建的小型家用系统,既便宜,又适用,并能在实时系统中实施,可移植性强,重建模型结果相对质量高,这些因素使我们的系统具有广泛的应用价值及意义。
三维物体重建对银行、超市、公安等监控系统具有普遍的应用价值。同时,对电子商务平台及计算机游戏领域提供了技术支持,发展空间广,市场需求量大,存在巨大的商机,该技术的成熟将引领经济的快速发展。
1.2 研究现状
近几十年以来,三维模型重建在许多研究领域引起关注并产生很大影响,很多研究学者也致力于此项目,特别是在连续范围数据的采集和注册算法等方面展开了丰富的研究。在研究过程中,研究者尝试着采用各种摄像设备,以获取连续范围数据;同时研究各种注册算法,以减少连续范围数据在排列过程中的累积误差。为了获取更快捷、更方便、更简单的三维模型重建系统,国外已有很多公司、大学和科研机构开展了相关的研究,主要研究成果简要介绍如下。
计算机视觉领域长时期致力于从连续图像中获取物体范围信息。形状阴影算法[21]最早于20世纪70年代Horn开发使用,使用单一图像来恢复形状。计算机视觉中恢复形状的技术被称为来自于X形状的技术,X可以是阴影、立体、运动、纹理等。形状阴影算法处理从图像中逐渐变化的阴影来恢复形状。艺术家一直利用光影来表达绘图的深度。如何解决形状阴影的问题,重要的就是要研究如何形成图像。一个简单模型的图像构成就是Lambertian模型,图像像素灰度值取决于光源方向和表面法线。假设给定一个灰度图像,目标就是恢复光源和表面形状的像素值。但是,它们并没有真正估计深度距离。相反,它们通过假定lambertian表面强度大小推导出表面法线,整合表面法线后得到物体形状。形状阴影算法可分为4种类型:极小化方法、传播方法、局部方法和线性方法,如表1.1所示。最小化方法是通过最小化能量函数获得解决方案;传播方法是从一组表面点到整个图像传播形状信息;局部方法是基于表面类型假设推导出物体形状;线性方法是基于反射地图的线性化来计算结果。
表1.1 形状阴影算法4种类型(括号中数字表明作者出版年份)
极小化方法 传播方法 局部方法 线性方法
Ikeuchi & Horn(81) Horn(70) Pentland(84) Pentland(88)
Brooks & Horn(85) Rouy & Tourin(92) Lee & Rosefeld (85) Tsai & Shah (92)
Frankot & Chellappa(88) Dupuis & Oliensis(92)
. (续表)
极小化方法 传播方法 局部方法 线性方法
Horn(89) Kimmel & Bruckstein (92)
Malik & Maydan(89) Bichsel & Pentland(92)
Szeliski(91)
Zheng & Chellappa(91)
Lee & Kuo(91)
Leclerc & Bobick(93)
Vega & Yang(93)
立体视觉是计算机视觉领域中一个活跃的研究课题,它要求至少有两个图像,通过搜索图像对应点获得高密度的深度图像地图。目前已开发了大量的立体匹配算法,但极少描述这些算法的性能如何。Scharstein 和Szeliski[22]对一些现成的算法进行了总结,如先进的运动结构算法[23],即把一个图像序列作为输入,跟踪的特色三维点作为输出,这些三维点相当于相机的位置。立体匹配算法的目标是在差异空间中产生一个函数,它能最好描述场景物体的表面形状。从这可以看出,嵌入在差异空间图像的物体表面有一些最优的空间属性,如最低的成本和最佳的分段平滑。
为了获得高精度的物体范围信息,研究者们使用了活跃的光学反射方法[1]。这些光学成像的方法包括雷达、激活的深度聚焦、波纹、全息干涉、立体化和三角化。范围图像通常是用逐对表面网格注册形成完整的3D模型。许多算法已经提出排列范围扫描。Besl 等人提出用迭代最近点(ICP)方法[3]来排列有部分重叠的两个物体表面。但是序列多图像的注册可能导致累积误差,即第一幅图像和最后一幅图像会有较大偏差。迭代最近点算法可以从点集到物体形状坐标来注册一个物体形状数据。模型形状可以是点集、线集、参数曲线集合、隐式曲线集合、三角形集合、参数曲面集合和隐式曲面集合等。只要是模型的最近点到一个给定点的过程可以实现,那么任何类型形状都可以合并。迭代最近点算法与非线性理想化算法相比可以收敛到局部最小值,收敛的速度足够快,全局形状匹配可以通过使用一个足够浓密样本单位四元数作为初始旋转状态,局部形状匹配可以通过结合一个足够浓密相关平移值样本来获得。
为了获取高精度的三维物体的形状,研究学者们采用了很多光学测量技术。Frank Chen等人[24]对许多种光学测量方法进行了概述,并详细阐述了结构光测量技术。第一种光学测量方法即时间飞行器。它测量物体是基于激光或其他光源脉冲的直接飞行时间来度量的[25]。测量中,一个物体脉冲被反射回接收传感器,相关脉冲通过光纤,由传感器接收,两个脉冲之间的时间差就被转换成距离。时间飞行器的典型分辨率大约是毫米级,从二极管激光器和高分辨率电子器材发出的脉冲,亚毫米波分辨率是可以接受的。最近报道的时间相关单光子计数法有一个深度重复性。第二种是基于三角测距原理的激光扫描仪。利用三维激光扫描技术获取空间点云数据,可快速建立结构复杂、不规则的场景的三维可视化模型,既省时又省力,它的缺点是不能扫描动态物体。三角测距激光扫描仪的测量范围是5~250mm,精度可达万分之一,测量频率是40kHz或更高[26,27]。一个带电设备或几个位置灵敏探测器被广泛用于数字化激光图像的点。对于一个位置敏感探测仪,它的精度主要依赖于设备上的图像。第三种是莫尔波纹。它的关键技术是包含两个波动光栅:一个是主光栅,另外一个是参考光栅。CCD相机可以由波动光栅产生图像轮廓边缘。由于光栅自身并不需要被CCD相机分解,所以分辨率就提高了。然而,如果参考光栅是计算机产生的,如同莫尔波纹方法,那主光栅就必须被相机分解。第四种是激光散斑切片。在检测面光场对应一个物体三维傅里叶变换的二维切片。在光学波长(频率)和距离空间(范围)的三维傅里叶变换关系用来测量物体的形状。激光雷达三维成像,也称为散斑图抽样,利用的原则就是在光场检测平面内对应一个三维物体傅里叶变换到物体的二维切片对象。第五种是干涉法。其原理是灵敏度矩阵变量形成轮廓边缘,同时也解释了物体的几何形状和测量的光学位移之间的关系。矩阵包含3个变量:波长、折射率、照明和观察的方向,由此可推导出3个方法:两个或多个波长,折射率变化,照明方向的变化。第六种是摄影。主要用于功能型三维尺寸测量,它通常必须有一些明亮的标记,诸如测量物体表面的反光涂画的点。第七种是激光追踪系统。它通常用一个干涉仪来测量距离,两个高精度角度编码器来决定垂直角度和水平角度。第八种是结构光测量方法。与被动的光学测量方法相对应,它被归类为主动的光学测量方法,它包括投影编码光和正弦条纹技术,物体的深度信息通过图像传感器记录编码成一个可变形的边缘模式。
Sreenivasa Kumar.Mada 等人[1]把光学测量技术又详细分为被动的方法和主动的方法。在被动的视觉技术中,没有能量为传感的目的而发射,只有接收。被动技术包含立体视觉和来源于X形状的单眼技术,例如来源于阴影的形状或来自于轮廓的形状。被动视觉技术包括从X形方法、立体视觉技术、运动结构方法、从阴影恢复形状等方法。为了克服被动传感中的问题,主动的视觉技术也被开发出来。合适的格式化光和其他形式的能量一旦与物体相互作用并数字化时,能量将被释放并接收。激活的光学范围图像传感器收集来自于物体表面的三维坐标的数据,这些数据在自动化领域将被应用。主动的视觉技术包括雷达法、三角化法、莫尔波纹法、全息干涉法及聚焦法等。
美国普林斯顿大学的Szymon Rusinkiewicz和斯坦福大学的Olaf Hall-Holt等人的研究小组提出并设计了三维模型实时采集获取系统[17]。其原理是用户可以用手旋转一个物体对象,并对这个不断旋转的模型为对象进行扫描。当物体被完全覆盖每一个扫描角度时,这种紧密的反馈环路可以让用户找到并填洞。该系统是基于60Hz的结构光测距仪,用迭代最近点算法来排列每一帧图像,用基于点算法来合并和绘制序列图像。该原型系统比传统的三维模型获取系统扫描物体更快捷、获取实时三维重建模型更容易。Soucy等人[28] 和 Bergevin 等人[8]提出用扩展ICP算法同时匹配若干3D表面。这些多表面的全局注册算法能均匀分步误差,改进了变换矩阵的初始值、变换矩阵或者是初始设置的校验值、或者是粗糙的手工调整。这种算法平衡了网络中的所有点,误差被平均分布。Benjemaa等人[29]通过在理想的Z缓冲区内把采样点分割达到快速的全局注册。对于一个物体表面有许多重叠部分的情况,可采用全局注册。此算法基于迭代最近点算法及优化的Z缓冲区组的采样点的细分。多Z缓冲技术提供了三维空间分区,大大加快了搜索最近邻近点的速度,在表面重叠区域建立了点到点之间的相关性,然后在表面集设置了随机迭代注册。该技术已经在实际抽样表面进行了反复测试。此算法是快速、准确和鲁棒的,特别是在高度弯曲的物体表面。
初始排列对于ICP算法是必要的,因为ICP只收敛到局部极小值。生成初始排列可由许多方法来完成:跟踪扫描仪位置,识别和索引表面特征[30,31],旋转图像表面签名[32],计算扫描仪主轴[33],或详尽搜索对应点[5,6]。 Aiger等人[2]使用四点共面集合算法来排列物体表面,他们通过提取三维点集的所有共面四点来估计变换值。三维点集是近似全等的,在刚性变换下,给定一个共面四点集合。该算法允许注册稀少的噪音数据,可能含有异常值,对这些数据没有预滤波和消噪。这种方法大大减少了轨迹的数量,轨迹被要求在包含噪音的底层表面之间建立一个可靠的注册,关于初始排列没有任何假设值。
研究者们开发大量的技术,通过整合序列范围图像来重建物体表面。Soucy 和 Laurendeau[34]用文氏图法识别重叠数据区域,之后再重新参数化并合并范围数据。Turk 和Levoy[11]设计了一种增量算法,原理是侵蚀冗余几何来获取物体重建,沿着剩余的边界缝合多边形网格,最后一致的步骤是重新确定原始几何并建立最后的向量位置。范围图像提供了一种既便宜又精确的三维物体形状数字化的方式。因为大多数物体自身是闭合的,单独的范围图像不够描述整个物体。因此提出一个方法,把一系列范围图像合并成一个多边形网格,并能从物体外部来完整地描述一个物体。该方法的步骤是:首先用修改过的迭代最近点算法来排列彼此网格;其次,缝合邻近的网格形成一个连续的物体表面,并能捕捉物体的拓扑结构;最后,计算物体表面位置所有网格的局部加权平均值形成共识表面几何。Rutishauser等人[35]沿传感器的视线使用误差建立一致的表面位置,重新镶嵌合并冗余的位置。范围数据提供了一种直接产生物体表面形状描述的方式。通常,单范围图像图形表面公式z = g(x,y),因此遭遇闭塞。通过许多图像不同位置的融合可以减少闭塞,结果就是一个真正的三维物体表面的描述。在此研究中,提出了许多从二维到三维转换可能导致的问题,为此提出一个算法,就是使用一个高度局部方法合并任意形状物体的深度图像。一个显式传感器的误差模型用于支持图像合并。该算法的特征就是通过一个新附加点来更新结果。因此,该算法是逐渐改进高噪声区域的表面描述。
许多算法被提出整合结构数据生成隐函数。Connolly[36]把作为一个四叉树的范围图像投射到体素网格后存储成八叉树,并产生合成数据结果。Chien等人[37]做了严格假设,即所有视点均取自立方体的6个面方向,在严格假设前提下从范围数据产生八叉树模型。八叉树结构非常受欢迎,它可以代表三维物体的体积。当表面信息编码到一个八叉树,生成的八叉树称为体积八叉树或表面八叉树,它是三维物体的紧凑和多信息代表形式。该假设类似于四叉树生成算法,四叉树上的每个节点都对应于一个范围数据点的二叉树,因此,可视物体的八叉树可以通过合并相邻二叉树递归获得,表面法线可从范围图像直接计算机出来。它们被编码成二进制树,再传播到相应的八叉树节点合并求出。由于可视物体的三维信息在每一个范围图像中都可得到,该方案就可捕捉物体的八叉树结构。该算法本质上是递归树遍历过程,所以适合并行实现。Li和 Crebbin[38]以及Tarbox和Gottschlich[39]也描述了从范围图像生成二进制体素网格的方法。另一类包括隐函数的方法是利用一个连续函数样本合并结构化数据。Gross等人[40]从立体图像产生深度地图,再平均成占用斜道的体积值,变化的斜率对应不确定性测量方式,但是不能执行最后表面的提取。Succi等人[41]从立体图像和光流创建深度地图,然后用直接平均整合成体积。Curless 等人[9]提出体积的方法来整合范围图像,该方法是在三维网格上定义一个累积的符号加权距离函数,每次使用一个范围图像,范围图像被扫描转换成距离函数并累积在三维网格上。为实现空间有效性,采用体积的扫描宽度编码。为实现时间有效性,重新采样范围图像,与体元网格对齐,同步遍历范围图像和体素扫描线,在体积网格上提取一个等值面生成物体表面。在一定假设条件下,这种等值面在最小二乘意义上是理想的。
另外,研究设备在计算机视觉领域也是非常重要的,飞行时间深度传感器就应用在许多领域。时间飞行深度传感器也有误差特征,它与被动立体声是互补的。它能提供实时深度估计值,但被动立体声有时就不行,如在白色墙壁。时间飞行深度传感器有噪音,在有纹理的场景表现不佳,但被动立体声就很擅长。Zhu[42]提出的方法是融合时间飞行传感器和立体声获得更多准确和鲁棒的物体范围信息,这比任何一个单独执行效果都要好。每种方法都用深度概率分布函数计算再合并。立体声方法一直使用全局方法(如置信传播和图像削减)来改善结果,该方法也被应用到时间飞行深度传感器上面。由于时间飞行设备主要是用作单个传感器,通常精准度不佳。同时还介绍了一个方法来提高制造商的校验,目的是获得更高准确性和鲁棒性。Zhu[43]进一步在图像模糊框架内整合了图像传感器。深度信息用于识别未知边界之间的前景和背景区域,其结果是用alpha剪影改善深度图。此过程通过迭代共同提高单一的图像或视频序列的alpha剪影和深度图。相对于照明变化、颜色相似度和运动模糊而言,场景深度是不变的,并提供了自然而鲁棒的前景与背景分割,这正是剪影的先决条件。另一方面,图像剪影在相邻边界有丰富的信息编码,对于主动传感器或被动传感器处理边界来说都不是很好。所以提出通过被动立体声的信息作为全局理想化制定深度推断,同时融合主动范围传感器和剪影,深度地图就用来提高剪影质量。
相比较以前研究学者搭建的复杂设备并使系统同步化以及复杂的注册算法,本书提出了利用深度传感器完成三维物体重建的思想,既简单方便,又能获取高精度的三维物体成像,在监控系统、电子商务系统及计算机动漫游戏等领域具有广泛的应用价值。
1.3 主要研究问题
面对如此丰富的计算机视觉技术方法,如何简单、快捷、实用的生成三维物体模型重建结果是一项极具挑战性的工作。归纳已有的三维物体模型重建相关研究结果及原型系统的原理,大体可以将三维物体模型重建分为4个处理阶段:网格生成阶段、序列范围图像扫描排列阶段、范围数据合并阶段和补洞阶段。
网格生成阶段是计算机图形学的重要研究内容之一,尤其是计算机工程师或计算机科学家想利用有限元的方法或制造方法产生出非结构化网格。网格细分是曲面的一种表示方法,也是目前广泛使用的一种曲面造型方法。而三角网格细分的许多算法已经成功地应用于许多领域。在这一阶段需要解决的主要问题包括:利用点云重建曲面,Delaunay三角化网格产生技术,参数化、简化及编辑网格,利用顶点平滑及元素转换改进网格。
序列范围图像的产生就是采用一些相关的传感器设备制造一个二维图像,显示一个场景中的特定点到所有点的距离,由此产生的范围图像具有与距离相关的像素值。首先对不同帧进行初始排列表面工作,因为表面只是粗略排列,所以排列结果并不准确。然后再把大致初始排列作为初始估算,在全局范围内进一步使用迭代最近点(ICP)算法粘合不同的表面。但是对大量范围图像使用ICP算法可能会导致累积误差,这可能会导致产生不完整的模型。因此,在全局范围内应用ICP,以便使排列误差均匀分布在获取的成对物体表面。
范围数据合并阶段是整合一系列范围图像,构成物体完整表面模型。目前已开发出多种技术,通过整合排列好的范围图像序列来重建物体表面。这些算法具有非常好的性能集合,包括:增量更新,体现直接不确定性,重建过程中提高补洞能力。这些算法都使处理图像界外点的鲁棒性增强。
补洞阶段是生成的三维物体最后的修补过程。模型表面将整个空间分割为不相交的内部容量和外部容量,因此每一个多边形都存在于内部容积和外部容积之间,非闭合的模型通常包含网格缺陷,比如表面有间距、漏洞或自交的多边形等。在最后的细化阶段,补洞生成完整的三维模型,使该模型近似于原始模型并具有鲁棒的多边形修补功能。
1.3.1 利用点云重建曲面
曲面重建在计算几何、计算机辅助设计、计算机视觉、计算机图形和计算机工程领域中是一个十分重要的问题。通过各种三维数据采集仪获得物体表面各个离散点的物理参量,参量不仅包括离散点的三维坐标值,还包括物体表面的颜色、透明度及纹理特征值等。我们把三维扫描仪获得的物体表面三维坐标点的集合称为点云(point clouds),利用点云数据重建曲面[44,45,46]相关的研究方法可分为三大类,主要取决于它们是否基于:
(1) 隐式函数(或称距离函数);
(2) 传播(区间增长方法);
(3) Voronoi(泰森多边形)或三角化几何创建方法[47]。
隐式函数方法又分为两类:(1)通过隐式函数创建的局部逼近的全局距离函数;(2)传播创建的全局逼近的距离函数。首先,局部逼近方法主要区别在三个方面:点云集群如何产生;隐函数的类型有哪些;以及局部函数如何混合在一起。Blinn’s[48]的一系列论文阐述了以上三个方面,并重点研究局部隐函数使用哪些类型,例如Gaussian斑点的线性合并[49]、三个变量的边界多项式[50]、球体统一融合[51]以及最近被使用的基于径向基函数(RBF)的全局混合[52,53],最近一系列改进是统一隐式函数下的多层次分区[54,55,56]。其次,全局逼近方法明确地在网格上建立了一个距离区间,同时在网格上镶嵌了一个内含输入数据集的体积。Hoppe等人[57]早期的工作,把范围扫描图像网格化,就是通过使用视线[9]完成体积整合。近期很多工作都是使用层次集合方法[58,59],与其紧密相关的方法是在全局距离函数[60,61,62]影响下,吸引采样点或数据,完成活跃的可变形的表面模型重建。Kazhdan等人[63]通过定位点重建物体表面。隐函数方法做了一个强大的假设,即每个采样点的表面法线在某种形式下已知,等价于向量场完全梯度可在采样点附近任意处检索到。一个法线场信息是非常详实的,即物体表面本质上在每一个采样点局部定位正切平面都可得到。这通常意味着一个物体表面的“内部”或“外部”是可得到的,导致大多数隐函数方法进一步要求恢复物体的界限。这些方法适合处理噪声,花费的代价就是平滑尖锐特征点。还有一些重建表面的方法[58,64]并没有直接指出法线信息,但必须提供周围点云距离场的初始计算,提供一致的法线场、采样数据,但并没有必要对表面的“内部”或“外部”事先确认。
传播为基础的方法可以追溯到Boissonnat[65],在局部估计正切平面内挑出种子边缘的三角形。例如,球的旋转算法按照固定参数的尺寸旋转球来重建网格,网格上有洞,用半径参数函数迭代增加处理非均匀采样,但是会有一些不想要的插值。在文献[66]中,传播限制使用k最近相邻点和局部自动变化半径参数。另一种选择算法是内在属性驱动(IPD)算法[67],其原理是附带一个点的最长边和最短边的长度比值。如一个八叉树或体素网格划分就是用来有效地查找邻近的候选值。这些方法仍然会有拓扑错误,特别是两个不同的曲面片彼此接近对方时就会产生错误。Gopi等人[68]进一步引入严格的假设以解决局部模糊问题:假定有局部非均匀采样,属于不同曲面片的采样之间最小距离被设定,一个重要的基于传播的算法就是使用Delaunay三角形。
Voronoi图/Delaunay三角化方法可分为两个子类,无论是基于表面或基于体积的,都可以按此划分。首先,基于表面增量方法选择合适的Delaunay三角化插值采样点,采样点或是在片中,或是在渐进的增量样式中。一种流行的方法最近由Amenta等人提出,即Voronoi过滤方法[69],进一步考虑从采样点P的Voronoi单元分离Voronoi顶点来成对地定义洞,直到局部近似表面法线。他们还定义局部特色尺寸值作为从采样点P到理论值MA的最小距离,MA是一个光滑表面的限定曲率,这是用来推导采样点理论的制约因素和由此产生的网格保证。该方法要求二次阶段Delaunay计算,方法是把洞作为多余的顶点,通过对三元化的原采样点三角形化来创建最后的网格称为壳,由于洞并不总是很好地近似于表面或法线,就产生了很多问题,因此后处理的步骤就是需要修剪结果和解决这些问题。进一步细化就是在采样点P附近定义局部邻近点作为球形交集的补集,球形交集采用Voronoi单元,这里称为 cocone,同时给出一种启发式结果,近似于P的局部正切空间限制邻近采样点的搜索,目的是创建三角插值候选值。这种改进的cocone方法[70]的主要优点是在计算壳网格时绕过第二次Delaunay计算。但是,它仍然需要设法修复启发式计算网格。cocone方法理论上要想获取得正确的重建结果必须要有密集有效的采样点,MA必须严格要求表面光滑,然而这种情况并不一定在所有实际情况下存在,例如会发现计算机辅助设计或计算机辅助制造下的物体,常有尖锐的表面特征和边界。意识到这些问题,petitjean和Boyer提出定义r规则测量的概念,即单独从采样点测量,并使之和离散的平面合并[71],表面网格通过传播计划重建,传播计划选择的是Delaunay面满足r规律性的标准。Kuo 和Yau[72]也提出了改进壳的算法,通过合并自适应的雕刻点及区间增长计划来保留尖锐点。其次,我们介绍基于体积的方法,考虑重建闭合固体表面的边界限制的问题。Boissonnat提出了“体积雕刻”的方法,即各种四面体的表面可逐个去除[65],这是后来Attali定义的从数学形态中提取r规则形状的概念[73]。这类方法的著名变量是Edelsbrunner等人[74]提出的?-形状变量及?-形状变形[75]和?-形状权值[76]。另一种变量power crust,是基于加权Voronoi图的理论保证,有恰当的样本假设,并且是多边形插值而非三角形插值[77]。Tight cocone是在原有cocone方法的基础上,专门产生固体防水网格[78]。更确切的是,这种方法是针对噪声的鲁棒性来建立一个模型,采样密度和噪音水平能够局部改变[79]。改善power crust方法[80]是处理噪声数据集,并允许任意的过采样密度。
径向基函数RBF在插值散乱数据的应用领域非常受欢迎,因为生成的隐式曲面严格经过采样点集,且能给出更为精确的插值。所以将点云的RBF曲面重建算法应用到三维模型的围度测量中,实现了通过扫描点云的测量仿真。假设围度测量时,软尺经过3个控制点c1、c2、c3,则测量仿真的问题就转化为求取此三点决定的测量平面与基于点云的RBF重建曲面的交线问题。首先,选择初始交点。找到用于曲面重建的局部点集及其与测量平面的大致交点是仿真的前提。设3个控制点确定的平面为C,依次计算点云P中每个点到平面C的距离,并选择距离小于阈值D的点组成新点集S。阈值D的取值为尺子宽度的1/2,这样S中的点都处于软尺覆盖的范围,即点集S是对测量有用的局部点云。在此基础上依次计算S中每个点到平面C的距离,并选择距离小于阈值D的点组成新点集L。阈值D的取值为点云P最小生成树的最长边,这样可以保证点集L为连续的能反映测量平面与三维模型交线的点列,即待求的精确交点的大致初始值。其次,获取精确交点的插值。由于点集L严格位于XY平面上,对于其中任意一点Pi ,先求取其二维平面上的K个邻近点。以Pi为圆心,r为半径做圆,r的初始值为点云P最小生成树的最长边。若圆内的点数小于K,则令r = 2* r ,重复此操作直到圆内的点数不再小于K,如图1.1中虚线圆所示。排序圆内的点,选择距离Pi最近的K个点为其K邻域,如图1.1中实心圆所示。
图1.1 二维平面的K邻域搜索
用最小二乘法拟合Pi 的K邻域,可以得到拟合直线m,以m的法向作为点Pi的法向。计算出L中每一点的法向后,依次遍历所有点,采用广度优先的方法调整法向,使L中每个点的法向一致。然后沿任一点Pi的法向与反法向分别移动距离d,得到两个离线点PM 与PN ,如图1.1 所示,此处d的取值应该足够大以使两个离线点位于隐式曲面等值面的两侧。对于任一点Pi,采用插值法计算等值面与两个离线点所决定直线的精确交点Pi’:
(1.1)
其中,VM和VN是PM和PN在RBF隐式函数中的函数值,而isovalue是等值面上的函数值,isovalue = 0。最后进行交点排序与围长计算。交点严格位于RBF隐式曲面上,因此可以使用简单的方法进行排序。首先遍历所有交点,以交点连接两个邻点所形成两个矢量的夹角作为该点的角度,选择角度最大的交点作为起始点P1,以P1的最近邻点作为P2。然后考虑剩下的每一交点Pi,若矢量P2Pi 与矢量P1 P2同向且Pi距离P2最近,则以Pi作为后继点P3。重复执行上述操作直到找到的后继点为起点P1为止,此时排序结束。对于排序后的交点序列“P1 , P2 , P3 , …, Pi ,… , PT”,累加相邻两点间的距离可以得到尺子紧贴曲面时的围度值:
(1.2)
如果要模拟尺子拉直时的围度值,则交点不需要排序,直接使用二维凸包算法获得交点的凸包折线序列,以折线长度之和作为围长。
1.3.2 Delaunay三角化网格产生技术
三角化是输入几何的划分,它是把一个点集或多面体的区间划分成所需的共享面的单个形状[81]。因此在二维空间里,三角化仅包含相交于共享边或共享顶点的三角形。所谓理想三角化就是根据测量的形状、尺寸或单个表面的数量来最好地满足一定的标准。理想三角化和网格产生的关系是,有限元网格应避免有尖锐角度的元素。Lawson[82]提出,Delaunay三角化在几何重建中具有重要而悠久的历史,它是在二维网格中把最小角度最大化。同时,其他数量分析的工作也表明,最扁平的角度而非最尖锐的角度才是收敛的最重要的因素[83]。
1. 二维三角化
我们先考虑二维三角化,需要区分4种类型的输入区域,都被认为是平面区间的多边形,因为边界都包含直线元素。我们需要把输入区域分割成三角形,满足边对边及其他所需的理想属性。为此我们设定了参数n,代表顶点的数量,评价输入复杂度时用此参数。
(1) 简单的多边形。区域是平面的多边形区间,边界形成了简单的多边形闭合曲面,三角化时必须使用边界的一些边作为三角化边。特别的点可加入内部或边界上,因此边界的边可能被细分为许多共线边。
(2) 有洞的多边形。边界可能形成许多不连续的多边形,有洞的多边形围绕在曲线周围。
(3) 点集。输入是平面点的集合。如果没有Steiner点时,三角化的顶点都是输入点,三角化边缘是凸包。如果有Steiner点时,三角化顶点就是输入点的超集,三角化边缘是凸起的区域,比凸包还要大。
(4) 平面直线图。输入是顶点集合及平面内非相交线元素,它必须作为三角化的边使用。这些输入通常是多区域,并且是包含不同材料的边界。
2. 三维三角化
三维三角化被称作四面体,把输入区域在共享的面分割成点集、多面体或一序列四面体,它明显比二维三角化要复杂得多。
(1) 简单多面体。一个简单多面体拓扑上相当于一个球体,它自身不满足于一个点或一条边。那样一个多面体的边界形成一个连续的平面图。在三角化中没有Steiner点,每个四面体的顶点必须是多面体的顶点。
(2) 非简单多面体。一个非简单多面体可能多连通,拓扑结构等价于一个环或更高属性的表面。它可能有许多洞,也就是说边界可能不连通。
(3) 点集。在二维,一个点集的三角化填充了凸壳。如果Steiner点是允许的,那么边界的三角化可能是一个更大的凸多面体。
1.3.3 参数化、简化及编辑网格
1. 参数化技术
参数化技术[84]就是在表面之间建立映射。这种映射在计算机图形学和几何处理的应用中是必须的,例如纹理、压缩处理、散乱数据近似、网格调整等都将使用映射。映射的中心属性就是失真,即图像中角度、面积和距离的改变。此属性通常用于参数化方法进行分类。参数化技术的核心目标是在物体表面和参数域之间建立双映射,表面特定三角化的参数化在近似形状区域的三角化的分段线性映射中体现。大多数情况都选择设置简单的标准域,如平面或球体,映射是在表面和同构域之间建立。参数化方法主要关注的是减少参数失真。微分几何揭示出等距或保留长度的映射是罕见的,它们仅仅存在于分享内在特性的表面,如平面、圆柱面或规则表面。许多方法最小化近似函数,目的就是为了建立低失真映射,许多应用就是平衡角度和保留面积。除了失真还有许多其他重要的方面,最重要的是确保结果参数化的有效性。实际上,许多方法保证产生在特定条件下,而不是限定条件下的双映射,研究如何处理表面的边界。总之,有很多参数化网格方法的分类标准:按参数域类型分类,有平面参数方法和球面参数方法;按最小化失真分类,有角参数化方法和面积参数化方法;按对待边界分类,有固定方法和自由演变方法;按数字解决方案分类,有线性方法和非线性方法。这些方法都确保具有有效性和收敛性。目前,最常使用的是平面参数方法。
(1) 离散映射
假定表面是近似的三角网格,目标就是离散参数化,如逐对的线性映射。一个直观的方法来建立一个平面图就是去填补边界或平面。通过投影,再应用平滑,最小化膜能量产生一个平面网格,因此构成一个映射。这可以被解释为把表面弄成一个平面,并与膜能量的物理解释保持一致。然而有一个陷阱,结果不一定是一个有效的映射。为了保证有效性,必须仔细选择边界条件(和离散微分算子)。
(2) 保留角度
共形映射保留角度,在域相交的曲线角度与曲面之间,成对的角度是相同的。相对于连续设置,共形映射在离散的意义上说是近似的,严格保留角度是不可能的。通常,参数化问题可以表达为能量最小化问题,例如考虑函数(或各种规范)的第一基本形式、狄利克雷能源或保形能量。最小化求解常常为解决某些偏微分方程,有限元/有限差分方法可以应用于计算离散方法。狄利克雷能源最小化求解或拉普拉斯方程的相对求解被称为调和映射。它们扮演了一个重要角色,由于共形映射在谐波映射类型下组成一组特殊情况,每个保角映射也是谐波。在离散平面设置下,谐波映射的构成导致线性问题的解决,有效性确保填充凸边界。调和映射由于其简单性可以被有效地计算出来,并通常用在实践中。然而,它们通常没有被保留角度。不过,在离散设置情况下,我们可以解释它们作为公平的近似的共形映射,产生唯一的调和映射,任何共形映射必须满足相同的条件。
(3) 减小面积失真
在许多应用中,共形映射会有面积失真,很多情况是缓解角度而保留面积,就是角度和面积的权衡[85]。事实上对于固定边界的设置,当三角形远离边界时,三角形在此区间的尺寸大小被完全扩展了。一个可能的解决方案是引入新的削减,以不连续为代价,但提供更多的灵活性。在大多数的情况下最好是缓解角保护,这样有利于区域保护。等积映射一般来说不实用,想法是在角度保护和面积保护之间找到一个平衡。
(4) 球形映射
事实上,许多几何模型与球形同构,球体使球形映射成为有吸引力的几何处理工具。例如早期应用的脑表面的映射。
(5) 任意拓扑映射的表面
任意拓扑映射的曲面往往被削减成盘状的补丁,然后映射到平面上。对于三角形网格,自然分区可以通过互反律计算出来。简化网格即所谓的基地网格,用作域和原始表面网格的顶点,映射到粗基地三角网格,最终结果是在基地网格内分段参数化。
参数化在计算机图形学和几何处理应用方面是必须的,它依赖于离散微分几何映射特点。除了参数失真,还有其他几种分类方法标准,因此存在许多不同的方法。
2. 网格简化技术
网格简化可以用一类算法来描述,即把一个给定的多边形网格转换到另一个具有更少的面、棱、顶点的网格。网格简化过程通常是由用户定义的质量控制标准,它尽可能地保留了原始数据的特定属性。典型的标准包括几何距离或视觉外观如色差、功能保护等。对于简化算法有许多应用。首先,算法可以明显用来调整几何数据集的复杂性,这使得几何处理一个可伸缩的任务,不同复杂模型用计算机处理后会有不同的计算性能。第二,许多简化方案可以迭代计算机,例如每一次删除一个顶点来简化网格,它们通常可以转置。运行简化方法向后递归意味着重构原始数据并插入更多细节信息。这种简化方法的逆运算可以渐进传输几何数据。虽然有很多网格简化方法,但是原则上我们会考虑把一个操作步骤或一个迭代过程进行复杂度简化。简化网格的顶点位置可以作为原始顶点位置的一个子集,作为一组加权平均,或是重新采样原始的分段线性表面。我们把这些方法分成三类,分别是顶点聚类算法、增量式算法、重新采样算法。顶点聚类算法通常是非常高效和鲁棒的,计算的复杂性通常是给定顶点数的线性函数,然而,由此产生的网格的质量并不总是令人满意的。增量式算法在大多数情况下会产生更高质量的网格,迭代程序可以按照用户任意定义的标准考虑,根据下一个操作来选择是否删除。然而,这类算法的总体计算复杂性在平均情况下是 ,在最坏的情况下能够上升到 ,特别是当考虑到全局误差阈值的情况。重采样技术是最通用的网格简化算法,新样本都或多或少的自由分布在原始的分段线性表面几何,连接这些样本后,一个完整的新网格就构造出来了。重采样技术的主要目的是使新网格有一个特殊的连接结构,即细分连接或半连接。此类算法以直接的方式来构建多分辨率,并建立在基于细分的基础功能和相应伪小波基础上。然而重采样技术最大的缺点在于,如果采样模式与原来的几何特性不完全一致,可能会发生别名错误。为了避免别名效应,许多重采样方案在某种程度上需要手动分割的数据,目的在于可靠的特征检测。
(1) 顶点聚类算法
顶点聚类的基本思想很简单,对于一个给定的近似公差,在给定对象周围的边界空间进行分区,分区的直径小于公差。落在分区内的所有顶点,我们计算每一个代表顶点位置,我们分配给所有的顶点,落入那些细胞。通过这种聚类步骤,如果两个或三个角落在相同分区并被映射到相同的位置,那么物体原始表面就简化了,通过删除所有退化面,就获取简化的网格了。顶点聚类的一个明显缺点是,即使原始网格是二维的,但使用算法后产生的网格可能不再具有二维性。当物体表面变成一个单独点时不再是同构的,就会发生拓扑变化,例如两个不同的表面层通过同一个分区时就是这种情况。然而,这种劣势也可以被认为是一种优势。由于该算法能够改变给定模型的拓扑结构,我们就能有效减少物体的复杂性。顶点聚类的计算有效性由网格顶点映射到集群所决定的。对于简单、均匀的空间网格,可以用小常量实现线性时间。对于每个分区必定能找定一个代表顶点,该顶点有相当复杂的计算性,但集群的数量远远小于顶点的数量。该算法另一个好的一面是,它通过定义相应的集群来保证全局近似公差。然而事实证明,简化网格的近似误差通常远远小于集群的半径。这表明对于一个给定的误差阈值,顶点聚类算法达不到最优的复杂度降低。作为一个极端的例子,我们假定一个非常好的平面网格,简化到单一三角形并没有任何近似误差将是可能的,顶点聚类的结果将总是在每个分区保持一个顶点。
(2) 增量式算法
增量算法每次删除一个网格顶点。在每一步,删除的最好的候选顶点由用户指定的标准决定,标准可以是二进制也可以是连续的。二进制标准通常指全局近似公差或其他最小化要求,如三角形最小纵横比。连续的标准在某种意义上测量出网格的公正性。每执行一次删除,表面几何在附近都发生变化。因此,质量标准必须重新评估。在迭代过程中,重新评估是花费时间复杂度最昂贵的部分。为保护候选顺序,通常用最好的顶端删除操作保留一堆数据结构操作。每当移除候选顶点,必须重新评估,从一堆数据结构中删除数据,就得插入一个新值。对于大网格来说,如果评估标准有常量复杂度,那么更新的复杂度就增长了。
(3) 重新采样算法
重采样技术的主要目的是使新网格有一个特殊的连接结构,即细分连接或半连接。此类算法以直接的方式来构建多分辨率,并建立在基于细分的基础功能和相应伪小波基础上。然而重采样技术最大的缺点在于,如果采样模式与原来的几何特性不完全一致,可能会发生别名错误。为了避免别名效应,许多重采样方案在某种程度上需要手动分割的数据,目的在于可靠的特征检测。
1.3.4 不同类型的范围照相机
用于产生范围图像的传感器装置,有时被称为一个范围相机。范围相机可以根据不同的技术进行不同的操作。
第一种类型范围相机称作立体三角化。一个立体摄像系统可用于确定场景中所有点的深度,为了解决测量深度问题利用立体摄像系统,必须首先找到在不同图像中的对应点。当我们使用这种技术类型时,解决不同图像中对应点的关联问题是核心。例如,我们就难以解决位于同质强度和颜色区间内部图像点的对应问题。因此,范围成像的立体三角化通常产生的可靠深度估计值都是多个摄像机所有可见点的子集。对应点相关联问题在plenoptic相机设计中被最小化,但是深度分辨率受光圈大小的限制,使其更适合近距离范围的应用。这种测量技术或多或少是被动的,它并不需要现场光照条件有何特殊要求。其他方法没有解决相关问题,取而代之的是依赖特定场景光照条件。
第二种类型是光三角测量片。如果场景是用光板来发光,这将产生来自于照明光源的反射线。从光板平面外的任何点看,这条反射线明显会出现一个曲线,精确形状则取决于观察者和光源之间的距离以及光源和反射点之间的距离。通过使用高分辨摄像机观察光反射片,得知相机和光源的位置及定位,从而有可能确定反射点和光源或相机之间的距离。无论是移动光源(通常也是相机)还是移动镜头前的场景,一个场景的深度剖面序列值就此产生。这些可以被表示为一个二维序列范围图像。
第三种类型是结构光。用一种特别设计光模式即结构光来照亮场景,深度可使用单一图像的反射光来确定。结构光的形式可以是水平线、垂直线、点或棋盘格局。
第四种类型是时间飞行器。深度也可以使用标准的计量时间的飞行技术来测量,类似雷达或激光雷达,光脉冲是用射频脉冲来代替。例如激光扫描仪,它的旋转激光头可用于获取扫描平面上所有点的深度剖面。这种方法也产生了一系列的范围图像,类似于一个雷达图像。时间飞行相机是比较新的设备,配有精确图像传感器用于捕获整个三维场景,因此就没有移动部件的需求。
第五种类型是干涉。通过相干光照亮点和测量相对于光源的反射光相移来确定深度是有可能的,至少增加到光波长的模。根据假设,真正的范围图像或多或少是图像坐标的连续函数,正确的深度可以通过使用相位展开技术获得。
第六种类型是编码光圈。深度信息可伴随强度值能被部分或全部推断出来,专门设计的具有特定编码光圈模式,安排特别复杂的洞,入射光要么允许通过洞,要么被阻隔,这种被捕捉图像的反卷积是强度值。光圈的复杂形状产生图像非均匀模糊,场景中的那些部分没在镜头焦距平面内。由于光圈的设计模式是已知的,正确的数学卷积可以识别在何地及何种程度上场景已经成为选择性捕获光的表面下降焦点外卷积,并反转这一进程。因此,模糊的场景可以被检索,场景的模糊程度与焦平面到它的位移有关,焦平面可用于推断深度位移。由于一个点的深度是从它的模糊程度来推断的,而场景中相关点的光扩散又导致模糊,根据扩散通过光圈的整个表面和歪曲程度获取深度值,这是一个复杂的立体三角化过程,图像中的每个点经过光圈宽度被有效空间采样。
1.3.5 表面融合方法
表面融合也称范围数据合并,关于融合成组排列好的范围图像的方法已经提出很多。Soucy 和Laurendeau[34]描述的方法是采用维恩图来确定重叠的数据区域,然后通过重新参数化合并区域。整合问题在于计算从不同角度获得的一系列范围图像成为一个连接表面模型,该方法并没有限制观测到的表面拓扑结构是什么样,也没有限制观测点的位置,更没有限制合并点的数量。集成的曲面模型被分段预测,通过三角化建模成为一系列范围观测点维恩图的每一个典型子集。通过约束Delaunay三角化的局部模型的连接产生非冗余表面三角化,它描述了一组采样范围点的所有表面元素,实验结果表明该算法可用于建立自由曲面物体的表面连接。
Turk和Levoy[11]设计了一种增量更新算法,通过侵蚀多余的几何形状来更新重建,沿边界使用缝合算法,最后达成共识的步骤是重新引入原始几何建立最终的顶点位置。方法是首先用修改过的迭代最近点算法排列彼此的网格,其次缝合连接邻近的网格形成连续的物体表面,能正确地捕捉物体的拓扑结构,最后计算物体所有网格位置的局部加权平均值形成共识的表面几何。该系统不同于以往系统,它是渐进的办法,获得的扫描一次合并完成。这种方法允许我们用最小存储开销获得大量扫描。
从多个范围图像创建一个物体的单独模型有有两个主要问题,即注册和整合。注册是指计算一个刚性变换,把一个图像的点与另一个范围图像具有相同部分的点排列起来。整合的过程就是从两个或两个以上的范围图像的采样点创建一个单一物体表面。
注册方法是使用一个迭代过程来最小化两个三角形网格之间的距离,这两个三角形网格来源于两个范围图像,通过执行匹配来加速注册过程。这种方法允许一个采样物体从任何角度和方向来扫描。
我们把整合过程分为两个步骤:创建一个网格,它反映了物体的拓扑结构;细化网格顶点位置,并平均化所有扫描体现的几何细节。我们捕获物体的拓扑结构,并融合每个范围图像产生的三角形网格。当融合两个范围图像时可能会有相当多重叠区域,但沿着边界部分几乎没有重叠部分。
接下来需要缝合网格。一个网格的三角形被剪切到其他网格的边界,边界的顶点是共享的。一旦所有网格被合并,我们将通过找到共识几何允许所有扫描有助于物体表面细节。寻找顶点的最后位置方法是,把每个原始图像范围的邻近位置求平均即可得到。执行缝合和共识几何的顺序是重要的。我们故意推迟表面几何细化过程直到确定所有物体表面的形状。
Rutishauser等人[35]沿着传感器的视线利用误差建立共识的表面位置,该表面位置通过合并冗余数据重新镶嵌完成。研究集中在将放置不同位置的传感器捕获的范围图像融合在一起。对结果描述提出如下要求:传感器位置是稳定的和独立的;能够表示分段光滑表面的集合,对几乎任意形状的物体都是如此。为了不对物体的形状作任何假设和推导,合并算法应该使用严格的局部接近方法。局部接近算法的好处是减少计算成本。为了逐步提高算法的完整性和准确性,可以逐步添加额外的深度图像来描述。对没有数据的区域获得清晰辨别,可以有一个明确的边界描述表面补丁。
解决融合问题的两个基本方法是:基于无序点云作为输入数据和合并已经三角化的表面。基于无序点云方法是,使用一个迭代拟合程序,通过动态网格来对点云数据近似化,这将导致三角化表面补丁能直接被后面的分割作为起始点。强调了正确的误差模型,显示出拟合多项式来分散范围数据的重要因素。该方法用于表面轮廓,导致分割成直线。
我们使用一个高度局部方法解决来自于不同传感器获得的重叠表面所导致的矛盾,表面拟合是不必要的,因此我们可以处理任意形状的物体,融合物体的深度图像。使用一个局部接近的算法和一个明确的误差模型,对具有清晰的边界信息的物体表面进行描述。
1.3.6 补洞
理想的修补方法应包含以下特性。首先是鲁棒性,即对于任何输入模型都应产生闭合表面。其次是有效性,在合理的时间和空间内可以处理巨大数量的模型。最后是精确性,方法应尽可能保留模型表面的几何性质。但目前不存在同时满足以上特性的修补方法。
一种修复方法是基于网格方法,它直接修补多边形模型上的各种几何和拓扑错误。Turk和Levoy[11]提出网格缝合方法,融合多范围扫描图像时,移除网格的重叠区域。在每一个网格中删除冗余的三角形,因为其他网格包括同一空间位置的一个完整的表面。虽然这一步移除了网格的三角形,但并没有丢弃数据,原因在于所有的范围点最终将被用来找到几何共识。
Barequet和Kumar[86]描述了一个交互系统,通过边缘缝合来关闭小裂纹,对检测到的洞边界进行三角化来填补大洞。由于不精确的算法、模型转换、设计师错误、编程错误等原因产生误差,如裂缝、重复、孔洞和重叠等。这些误差经常妨碍进一步处理有限元分析、热辐射计算和快速原型化。故障修复算法将一个无序的集合转换到一个共享顶点的多边形表示以帮助消除误差。这是通过选择每一个多边形边和大多数适合的边统一来完成的。两条边通过移走顶点来几何融合为一个。在处理过程结束时,每条多边形边或者与另一条边保持一致,或者是边界边为多边形孔洞。最后为了让用户检测自动修正,设计了一个可视化修复程序,让用户标记原设计产生冲突的地方。第二个迭代修正算法产生一个修复过程,与原始设计意图是相符的。
Borodin等人[87]提出一种不同的做法,描述边界抽取的差距,逐步缩小。现代三维模型采集和建模工具生成高质量的详细的几何模型。然而,为了应对相关的复杂性,最近提出了一些网格简化算法。另一方面,一个关于几何建模工具的普遍问题是产生一致的三维网格。大多数输出网格包含退化的面,T顶点,狭窄的缝隙和裂缝。对于那样的网格应用成熟的简化方法将导致严重的人工处理痕迹,原因是缺乏一致连接信息。工业相关问题强调了作为大多数计算机辅助设计和计算机辅助制造的输出和其他建模工具,用户通常得到一致性网格,只针对单独的多边形补丁而不是整个网格。于是提出一个解决网格边界简化的方法,添加一个顶点对,收缩操作,允许加入独立区域的网格。除了这个操作和通常的边折叠操作,还引入一个新的顶点加边折叠操作。这给予相邻的缝隙和缝合的三角形补丁的边界提供额外的支持。因此网格边界简化方法包括误差控制、循序渐进的方式进行的角度误差。
Liepa[88]提出对小洞三角化后进行网格整流,使补丁插值于周围网格的形状和网格密度。基于网格的方法善于重新产生原始的几何,有网格缺陷的区域可被检测到并修补。但是,输出模型并不能保证是闭合的,可能含有自交的多边形。此外,缺陷区域检测往往需要全局遍历整个模型,既费时又占用空间。
另一种修补方法是基于体积的模型修复。此方法包含代表的输入模型在一个体积网格上,从网格上重建输出表面。首先是扫描转换,再产生符号距离函数和加权函数,最后表面重建。
Tao Ju[12]提出的模型修复办法包含三步。首先进行扫描转换,把输入模型嵌入间隔均匀的网格,同时在网格上的多边形相关边标记边缘,为了提高效率,把包含相交边的单元都存储在一个八叉树中。其次进行痕迹产生,即在网格格点中与相交边一致的产生痕迹,以便与每个单元格的边缘相交的模型都表现出符号变化。最后表面重建,在网格上重建封闭表面采用轮廓,双轮廓能产生尖锐特征。该方法对于修复任意多边形模型是鲁棒的,该方法确保产生一个封闭曲面,并把空间分区成不相交的内部和外部的体积。鉴于给定的任何多边形模型,使用八叉树构造一个内部和外部体积网格,通过轮廓线重建表面。该算法可以有效处理包含数百万多边形的大型模型并能在保持原始几何特征的情况下复制模型显著的特征。
1.4 本书章节结构
本书章节结构及各章主要内容如下。
第1章为绪论,介绍了本书的研究背景、研究意义、研究现状及主要研究问题。
第2章详细介绍获取范围数据的各种设备类型及特点。目前国外很多研究机构提出了三维重建模型的系统,系统中往往采用大型设备和精密的仪器,既昂贵,又不易搭建,并且还不能用于实时系统。这些局限性导致三维重建模型系统在现实生活中及很多领域不能应用。所以我们详细介绍获取范围数据的各种设备,就是想利用其中的某些设备联合搭建小型家用系统,既便宜,又适用,能在实时系统中实施,可移植性强,重建模型结果相对质量高,这些因素使我们的系统具有广泛的应用价值及意义。本章在论文中起到重要的铺垫作用。
第3章使用SwissRanger 3000(本书有时简称其为SR 3000)搭建三维重建系统,对采用的硬件设备工作原理进行阐述,同时给出三维重建系统的管道。这是本书研究课题的创新点,我们提出利用深度传感器及三维重建系统的管道来完成三维物体重建的思想,既简单方便,又能获取高精度的三维物体成像,在监控系统、电子商务系统及计算机动漫游戏等领域具有广泛的应用价值。
第4章介绍范围图像排列的过程,重点阐述初始排列和全局注册排列。范围图像排列在三维重建系统管道中占据着重要的统治地位,排列算法的设计显得尤为重要,本章给出了我们设计的算法思想及实现过程。
首先,在表面网格生成后,排列不同的物体表面。对于没有特征点的物体,我们使用四点一致集合算法来粗略地排列邻近表面,通过寻找两个邻近表面的一致共面四点集合来估计变换值。对于有足够特征点的物体,通过特色追踪来大致排列连续表面网格。其次,进行全局排列。初始排列后,表面只是粗略排列,所以排列结果并不准确。我们把上一阶段的大致初始排列作为初始估算,在全局范围内进一步使用迭代最近点算法黏合不同的表面。
根据物体三维模型不同采集帧分布密集的物点,对迭代最近点(ICP)算法进行了改进,应用于三维模型系统中,处理不同帧初始排列及全局排列过程。应用改进的迭代最近点算法进行初始排列和全局排列的探究,实验证明,基于不相邻帧的分段排列方法应用于三维模型重建系统的排列阶段是可行的,排列方法更简单,效率更高,排列结果也更准确。
第5章讨论范围图像合并及补洞问题,对合并和补洞的算法进行深入探讨研究,最终给出三维模型重建实验结果,并对结果进行各方面评估,这是验证本系统的重要阶段。根据范围图像不同的旋转方式,使用两种不同的改进Vrip体积合并算法得到物体的三维模型。算法1让合并的范围图像X轴方向旋转4次,Y轴方向旋转4次;算法2旋转6个角度,生成6个方向,总有1个方向正前方会被看到。实验证明,算法1合并的范围图像结果更鲁棒。在最后的细化阶段,对合并后的范围图像补洞生成完整的三维模型,使该模型近似于原始模型并具有鲁棒的多边形修补功能。最后,本书做了很多对比工作。我们使用FARO激光扫描仪Arm V2来扫描对象,并把输出结果作为基础事实数据,与本系统产生的结果进行比较,从实验结果我们看出,重建三维模型误差小于1%。另外,我们还把Zcam整合到本系统中重建青蛙的三维模型。数值误差表明,SR 3000比Zcam更好。
第6章对本书工作进行了总结,找出本系统的局限性,同时对未来工作提出展望。