【论文阅读 TextureMe】Texture: MeHigh-Quality TexturedSceneReconstruction in RealTime

本文提出一种在实时环境中重建高质纹理场景的方法。通过创建纹理块和全局纹理地图,结合TSDF模型,避免了传统方法中因体素网格数量增加导致的计算复杂性。利用纹理块融合策略,减少了不必要的网格变化,同时采用多尺度优化处理位姿估计误差,确保纹理重建的准确性。系统通过优化采样和管理纹理块,实现了高效且稳定的纹理更新。
摘要由CSDN通过智能技术生成

1. Abstract

本文的工作:在线重建出高质量纹理的地图

  1. 创建TSDF模型,以及在mesh基础上,创建三角形纹理块
  2. 将颜色集成到贴片中,同时将深度图融合进TSDF中
  3. 不需要额外的 纹理图优化、网格参数、繁重的后处理

2. Introduction

背景

  1. 前人的TSDF模型很好,但若想表示更细节的纹理,需要增加体素网格数量,无疑增大了计算量
  2. Marching Cubes算法: 从TSDF模型中提取出mesh网格,mesh网格可以表示更加细节的颜色,但以往的方法都是通过插值来确定网格颜色,依然受制于体素网格数量
  3. Kinect相机可以捕捉到高质量的颜色信息,但是以往的方法都注重在提高3D模型的质量,忽略了颜色细节的重建
  4. 本文提出了一个全新的框架,同时创建一个 纹理地图几何地图,全局纹理图+TSDF图
    1. 纹理地图:包括直角三角形(存储了该位置重建表面的颜色细节);Marching Cubes算法提取出的三角形映射到RGB图上得到texture patches三角块;texture patches再集成到纹理地图上
  5. texture fusion的比较:
    1. TF和本文的实现目标手段相同,都建立了纹理地图和几何地图;
    2. 本文和TF重建的几何模型都是体素模型,但是,TF中每个体素只对应一个纹理,而本文对纹理的划分不仅局限在体素尺度上;

本文贡献

  1. 本文提出了基于纹理块的多尺度优化,让纹理块能更加高效对齐
  2. 本文提出一个TSDF 过滤器,防止三角形进行不必要的链接或者更新,进而使得纹理块的更新更加稳健
  3. 重采样算法,当三角形间的链接关系发生变化时,新全局纹理地图
  4. 提出一种考虑模糊程度加权方案来更新全局纹理

3. System Overview

  1. TSDF模型用Kinectfusion的流程,并修改了KF中ICP,加上颜色信息
  2. 获取全局纹理地图,局部纹理地图,并融合
    1. Marching Cubs算法从TSDF模型中提取mesh(三角形网格)
    2. 从当前帧中提取纹理块(纹理块表示了mesh网格的位置颜色)
    3. 利用当前帧纹理块来update全局纹理地图
  3. 本文的核心是纹理块的 表示、存储、建立、更新,融合到全局纹理
    1. Section 4 : 纹理块的表示和存储
    2. Section 5 : 纹理块的更新、减少mesh网格连接方式的变化
    3. Section 6 : 在纹理块更新前,为了避免漂移误差对重建的影响而进行的优化

4. Texture Atlas Representation

为了实现实时处理,本框架需运行在GPU上,所以需要让 纹理块 的数据结构便于并行处理

4.1 纹理块和全局纹理地图的表示

  1. 纹理块==(texture patch)==: 一个纹理块表示全局mesh网格中的一个三角区域,存储了该三角形区域的颜色、位置信息;为了存储效率,被设置为直角三角形???

  2. 全局纹理地图==(texture atlas)==:

    1. 相当于全局所有纹理块的目录

    2. 是一张由许多直角三角形组成的图片,mesh网格中每一个三角形都对应全局纹理地图中唯一的直角三角形

    3. 每个直角三角形在图中的位置为该纹理块的索引

      image-20220403145912979

4.2 存储和管理纹理块

  1. 由TSDF获得mesh,对mesh中每一个三角形新建纹理块
  2. 一个体素所能对应的三角形个数是有限的,由Marching Cubes算法得到mesh,本文一个体素最多对应5个三角形
  3. 为了节省空间,用栈动态存储所有未被使用的纹理块对象
    1. 随着重建过程(KinectFusion)的进行,全局mesh网格随之变化,必然新纹理块会产生,旧纹理块会被替代
    2. 将所有新建的纹理块的索引放入栈freelist中
    3. 判断新纹理块的质量,
      1. 如果质量好,则从freelist中POP出去
      2. 如果质量不好,或者要被替代,则释放纹理块的空间,并将其索引PUSH到栈中
  4. 总结:
    1. 首先,只要TSDF模型中纳入了新的体素,就要为此体素新建纹理块,并加入全局纹理地图中
    2. 相反,如果相机重复访问了TSDF中某一片区域,
      1. 当两次访问所提取纹理块数量、形状、位置不一样时,那这片区域所对应的旧纹理块对象被释放,对应的索引PUSH到free list,创建新的纹理块,加入全局纹理地图
      2. 当两次访问所提取纹理块数量、形状、位置一样时,保留、更新旧纹理块(相当于只更新了颜色)
    3. Section5.4 中会详细讨论新旧纹理块间如何更迭

5. Texture patch Fusion

本节展示如何从RGB图像提取纹理块、加权融合至全局纹理图中的纹理块

值得注意的是,加权融合的方法考虑了图像模糊度,以及介绍了一种处理mesh网格频繁变化的方法

5.1 从当前帧提取纹理块

  1. 当前帧 k k k 对应mesh网格模型为 M k \mathcal{M}_{k} Mk , 对 M k \mathcal{M}_{k} Mk中**每一个三角形新建纹理块 T k ′ T_k' Tk **
  2. 利用当前帧的位姿 Q k \mathcal{Q}_{k} Qk 将每个纹理块 T k ′ T_k' Tk 投影到当前帧的RGB平面( C k \mathcal{C}_{k} Ck)上来确定 T k ′ T_k' Tk 中每个纹理块的颜色
  3. 利用三角形的重心坐标来确定纹理块的颜色

5.2 更新全局纹理图中的纹理块

  1. 前面对当前帧新建的一个纹理块 T k ′ T_k' Tk ,要与与 上一帧重建好的纹理块 T k − 1 T_{k-1} Tk1融合,

  2. 首先比较包含 T k ′ T_k' Tk 的体素和包含 T k − 1 T_{k-1} Tk1的体素

    1. 如果对应的纹理块数量和类型相同,直接进行下一步(进行颜色的更新)
    2. 如果对应的纹理块数量和类型不相同,则在全局纹理图中重新采样 T k − 1 T_{k-1} Tk1
    3. 如果 T k ′ T_k' Tk对应到全局纹理块区域为空的怎么办???
  3. T k − 1 T_{k-1} Tk1 代表了截止到上一帧某三角面的颜色细节信息,用公式(1)来加权平均 T k − 1 T_{k-1} Tk1 T k ′ T_k' Tk

  4. T k = W k − 1 ⊙ T k − 1 + W k ′ ⊙ T k ′ W k −

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值