分享

实景三维中国建设与发展(五)基于AIGC的三维重建初探1

 taotao_2016 2024-01-15 发布于辽宁

本资源均为通过网络等公开合法渠道获取的资料,转载文章旨在知识传递和学习,版权归原作者所有,不代表本平台观点;若未能找到作者和原始出处,还望谅解;如若侵权,请联系客服,我们会在第一时间删除。谢谢!

基于此前实景三维中国建设与发展(四)大模型如何赋能实景三维中国建设中的讲解,实景三维建设目前有部分场景是基于AIGC技术进行构建发展的。本章节基于AIGC 技术如何发力三维模型重建。从建模的特征、发展情况、关键技术、存在问题等进行讨论,不足之处请大家多多批评指教。

1 三维重建概述

1.1 数据来源

随着各地实景三维建设开展,数据量越发庞大,基于智能AI自动化建模能力已成为关键技术问题,涉及到实体的定义、几何、属性、语义关系等内容。全空间一体化实景三维智能化模型构建是支撑多精度、多场景的关键所在。实景三维数据的来源对于建模的质量和效果至关重要。

图片

1.2 建模类型

三维模型重建大致可分为两类,一类是传统三维重建利用点云、网格、体素栅格等进行显性表达,一类是基于神经网络参数进行的隐性表达

显式数据多采用mesh网格Point、体素等进行显式表达。三维模型的几何信息被明确地表示为一系列的顶点、边和面,需要明确指定模型的几何结构和拓扑关系。该方法通常基于GPU进行栅格化,直接调用API的性能进行快速渲染(在地质行业信息化建设(二)-三维地质建模》章节笔者已有论述)。显式表达训练/推理速度快,效果好,缺点是吃内存,易受限于GPU算力,而且目前并非所有的复杂几何形体都可用mesh网格进行表达。

传统三维重建大致流程为: 数据预处理—稀疏点云重建密点云重建网格重建纹理贴图材质贴图—输出模型。通常以CC、Pix4D等的建模工具的效果很依赖建模环境,多采用人工修复破洞网格和纹理。

图片

隐式表达的主要方法包括SDF和MLP等。隐式表达中三维模型的几何信息被表示为一个函数,该函数描述了模型表面上的点。通常这个函数等于零的地方对应于模型的表面,而函数的正负值则表示在表面之上或之下的空间。隐式表达训练/推理慢,效果不够平滑,但是模型的容量大,可用很小的内存表示巨量信息

对于AI应用方面包括基于AI直接生成三维的原生三维型和利于AI从二维图像数据升维到三维数据的二维升维型两种。

1.3 发展阶段

(1)18年-20年:18年之前多利用AI技术生成原生三维型,神经场三维表达初步诞生。

(2)20年-22年:神经辐射场(NeRF)算法的提出可从二维图片感知三维属性进而构建三维图像,但对硬件要求高,仅促进了升维技术发展。

(3)22年-至今:二维升维技术迅猛发展,路线明确,已开始进行应用探索。

20年左右主流模型包括 Dream Fields模型、CLIP-NeRF模型、谷歌的DreamFusion模型、英伟达的 Magic3D模型等。

2 相关技术

对于3D重建而言,我们需要思考的是在整体重建,几何,材质、纹理、光照等方面神经网络是不是不如显式表达的网络

2.1 体渲染(Volume Rendering)

计算机图形学是让计算机模拟出一个真实的世界,而渲染则是将这个虚拟出来的世界投影成图像,是图形学中的核心。渲染是从3D模型创建图像的过程,该模型包含纹理、阴影、照明和视点等特征。渲染引擎的作用是处理这些特征,以创建逼真的图像。

三种常见的渲染算法包括:

(1)光栅化。光栅化是一种最早、最快的渲染技术之一,它将模型视为由多边形网格构成的对象。在光栅化过程中,模型中的每个多边形通过其顶点的位置、纹理和颜色等信息被投影到垂直于透视图的平面上。然而,光栅化是一种逐物体绘制的方式,没有考虑光学效果,此外可能会出现重叠对象的问题,这是因为光栅化是一种基于像素的渲染方法,对于每个像素,只能选择一个对象进行渲染,而无法同时渲染多个对象

(2)光线投射。通过这种逐像素的光线投射,可以获得模型在图像平面上的投影效果。仅显示与光线首次相交的表面,是光线投射渲染的特征之一。这样可以模拟光线从相机出发,经过多次反射或折射后最终到达相机的现象,从而实现逼真的渲染效果。

但光线投射是一种计算密集型的渲染方法,对于复杂的模型和场景可能需要较长的渲染时间。为了提高效率,在实际应用中常常会使用加速结构(如包围盒、光线追踪等)和优化算法来加快光线与模型的相交计算。

(3)光线追踪。光线追踪方法是为了解决光线投射无法正确建模阴影、反射和折射等问题而发展起来的一种渲染技术,它使用蒙特卡罗技术在更短的时间内获得逼真的图像。与光线投射不同,光线追踪可以更好地模拟光线在场景中的真实行为,包括阴影、反射、折射等。光线追踪的工作原理与光线投射类似,但是在追踪过程中会产生更多的次级光线,以模拟真实世界中的光线行为。光线追踪用于提高 NVIDIA GPU 中的渲染性能(光线追踪是逐像素画)。
三维场景指的是在三维空间中构建的虚拟环境或模型,它可以包含物体、光照、材质等元素,以及它们之间的相互关系。

体渲染是把气体等物质抽象成一团飘忽不定的粒子群,光线在穿过这类物体时,其实就是光子在跟粒子发生碰撞的过程。体渲染把光子与粒子发生作用的过程,进一步细化为吸收、发射、外散射、内散射四种类型,通过对这四个过程进行整合,形成了体渲染方程:

图片

在游戏引擎中,光线追踪和光栅化画的都是三角面模型,而体渲染的绘制目标就是三维数组,不仅仅是渲染外部的,还可以渲染内部结构体渲染常用的Ray-casting方法可以理解为光线追踪的简化版。体渲染描述了用于从三维标量数据生成图像的多种技术

对了,在这提几个概念。体渲染中比较重要的是体数据,体数据其实就是一个三维数组立方体,每一个体素都代表着空间的一个单位。体素是组成体数据的最小单元。一个体素表示体数据中三维空间某部分的值,代表了在体空间中的相对位置。

图片

2.2 NeRF(神经辐射场)

神经辐射场(NeRF)是一种基于神经网络的体积渲染技术。利用二维图像,通过在连续场景表示的基础上使用体射线行进来优化多层感知器(MLP)来实现重建三维场景,并实现高质量的光照和渲染效果。

2.2.1 原理

NeRF使用一组多目图作为输入,通过优化一个潜在连续的体素场景方程来得到一个完整的三维场景,可以以任意视角查看,并通过体素渲染技术,生成需要视角的照片。

图片

NeRF技术的存在可高效表达各种复杂几何结构,NeRF技术的原理个人理解如下:

(1)选定某个场景,确定好相机位置和光线方向,沿光线方向确定每个采样点的位置;

(2)将相机位置及方向送入神经网络,利用网络预测出光线上采样点的粒子信息并进行渲染;

(3)基于体渲染技术得到的二维平面投影与相机捕捉到的真实结果进行对比计算均方误差(MSE),更新渲染网络参数。

图片

2.2.2 存在问题

NeRF只是将三维场景的信息编码进入了神经网络里面,但并没有学习整个三维场景的结构信息NeRF在渲染时候通过MLP记住整个场景需要的数据量巨大,且NeRF每一个场景都要重新训练,每一个场景都需要足量的数据,这一要求过于费时费力。同时体渲染是对是将整个空间作为一个整体进行渲染

2.3 3D Gaussian Splatting(3D高斯溅射)

最近3D Gaussian Splatting在学术界火到了工业界。SIGGRAPH 2023上Gaussian Splatting这一三维重建领域“爆炸性”新技术一举突破了NeRF与之前的渲染引擎难兼容、开销的老大难问题,在训练时间和高质量的实时渲染之间实现了很好的权衡。

图片

图片

传统的 NeRF 管线目前还无法既实现快速训练,又能以高清分辨率实时交互式渲染高质量内容。3DGaussian Splatting 作为仅对存在物体的位置进行实时体渲染的一种光栅化技术,在NeRF大框架的基础上充分利用现有硬件管线使用球谐函数实现了辐射场的实时渲染。由于它能够在实现NeRF的同时引入传统光栅化,极大地加快了NeRF的渲染速度。Gaussian Splatting的具体原理如下(截图),实际上也是需要SFM给它稀疏点云,利用一堆高斯去做迭代匹配。

图片

2023年12月初Luma公布了支持threejs的npm包,意味着通过手机拍摄利用Luma软件可直接生成三维场景呈现在网页上。

图片

2.4 视觉SLAM

SLAM(Simultaneous Localization and Mapping), 即同时定位与地图构建,本质是对运动主体自身和周围环境空间不确定性的估计,(在《三维模型重建技术初探》章节详细论述),SLAM主要用来做定位和建图,传统意义上完整的视觉SLAM系统,包括前端初始化、特征提取和匹配等、 后端滤波/图优化估计Pose和三维点,同时进行定位和建图等。

图片

视觉SLAM技术应用最广泛的落地产品就是三维激光扫描仪、无人机、自动驾驶等,这里多传感器融合是未来。在论文层面,NeRF结合SLAM是这两年新兴的方向,衍生出了很多工作。主要有两个方向,一个是SLAM为NeRF训练提供位姿,然后建立稠密的三维场景;一个是在NeRF里建立各种损失函数反过来优化位置和高度

图片

2.5 GANs(生成对抗网络)

基于神经网络的 生成式对抗网络(GAN, Generative Adversarial Networks )模型,是一种用于生成模型的机器学习框架。它由两个主要组件组成:生成器(Generator)和判别器(Discriminator)。生成模型负责对随机噪声进行处理,模拟出与真实训练样本类似的假数据;判别器则负责鉴别出训练样本中由生成器生成的假数据;两个模型相互博弈、学习,从而达到优化生成模型的目的。

图片

(1)GANs 是一种无监督学习方法,不需要标注训练数据。生成器和判别器之间的对抗训练仅使用样本本身作为训练信号。

(2)GANs 能够生成多样性的样本,而不仅仅是复制输入数据集中的特定样本。生成器通过学习潜在空间的分布来生成新的样本,这使得生成的样本具有一定的创造性和多样性。

(3)GANs 的目标是生成与真实样本无法区分的样本。通过对抗训练,生成器不断优化以生成更加逼真的样本,而判别器则逐渐变得更加准确。这使得生成的样本质量逐步提升

(4)GANs 可以用于生成艺术作品、合成逼真的图像、进行数据增强、生成虚拟等场景,但也存在着训练的不稳定性、模式崩溃、生成样本的多样性不足、梯度消失等问题。目前为应对 GAN 的缺陷,较长使用的是WGAN和WGAN-GP模型。

图片

在这插一句,就是我查资料的时候发现有一家做点云预测的公司-小库科技。该团队从20年就在探索如何用 AI 生成 3D 模型;同时该团队发布了一种通过 GANs 学习卫星图与真实三维模型之间关系,将卫星图生成为真实三维模型的算法该算法通过对卫星图上不同的图层元素进行特征学习,能大致复原出卫星图所对应的主要物体三维拉伸形体,预测不同物体投影所对应的原物体高度。可用于项目早期研判使用。 这就让我想起来去年12月在DTC大会上百度云的一个类似技术,也是对卫片进行深度学习然后拉伸三维模型。

图片

2.6 Diffusion(扩散模型)

目前,AIGC主要采用的是基于扩散模型的方法。这种方法类似于给图片去噪,通过学习对一张加噪图片进行去噪的过程,来理解有意义的图像是如何生成的。相比GAN模型扩散模型生成的图片精度更高,更符合人类视觉和审美逻辑。随着数据量和深度学习时间的增加,扩散模型还展现出了对艺术表达风格较好的模仿能力。

图片

DDPM是一种基于扩散模型的方法,其基本思想是学习一个定义良好的随机过程的反向过程。该过程逐步破坏信息,从复杂的目标分布中获取数据,并将它们带入简单的高斯分布。这样的反向过程将沿着相反的方向进行,将高斯噪声作为输入,并从感兴趣的分布中生成数据。任意多么复杂的数据分布都可以通过添加数据来将其转化为简单的高斯分布。

3 代表厂商

3.1 Point-E 

2022年OpenAI 推出了 Point-E 框架,该框架首先使用文本到图像扩散模型生成单个合成视图,然后使用一个扩散模型在生成的图像的条件下产生3D点云,进而通过点云去预测三维物件。这种独特的3D点云生成方法可以在单个GPU上仅用1-2分钟生成3D模型。虽然Point-E在样本质量方面仍然不如最先进的方法,但它在样本生成速度上比最先进的方法快1到2个数量级。且应用中对硬件要求较低,但生成质量较差,且由于生成的三维数据采用点云表达,难以满足与传统三维生成工作流的专业应用的需求。而之后开源的Shap-E模型在生成速度与效果方面较Point·E有了较大提升,且采用网格与NeRF的双重表达,但生成质量距离专业应用要求仍有较大差距。

git地址:https://github.com/openai/point-e

图片

3.2 Magic3D

2022年11月,英伟达 (Nvidia) 提出了Madic3D模型,其是在DreamFusion的基础上提出了两步优化策略:首先用与DreamFusion相似的扩散模型生成低分辨率、简单渲染的哈希网格三维模型之后再采用与传统计算机图形学相似的方法对三维模型进行更高质量的渲染。

与DreamFusion相比,Magic3D模型既可以完成三维建模工作也可以完成三维渲染工作,且生成的三维模型分辨率更高,渲染效果、生成效率更好。由于Magic3D模型的渲染方式与传统计算机图形学有非常紧密的关系,生成结果是直接在标准的图像软件中进行查看。目前英伟达宣布其生成式AI云服务平台Picasso将上线Magic3D模型,Magic3D模型已经具备进行产业应用的能力基础。

图片

3.3 DreamFusion

DreamFusion是谷歌提出的一种Text-to-3D模型凭借其惊艳的3D生成效果,DreamFusion荣获了ICLR2023的outstanding paper award,同时也成为后续大量科研工作的baseline。

图片

直接利用diffusion模型生成的2D图片来做几何重建是非常困难的一件事。模型大体思路是通过 2D 生成模型(如 magen)生成多个视角的 3D 视图,然后用NeRF 重建。最终达到在给定一个文本描述的情况下利用Diffusion Model的知识,也就是利用了Diffusion模型的生成过程来来优化NeRF, 使得这个NeRF尽量地接近我们文字的描述。但通过该模型无法获得3D模型的高分辨率几何体或纹理,同时扩展性表现并不好。DreamFusion的场景渲染模型使基于Mip-NeRF 360的大型MLP,该模型在体渲染时需要海量样本。

git地址:https://dreamfusion3d./

3.4 其他

国内做3D重建的也有一些产品,包括阿里达摩院、旷视OccDepth模型、商汤琼宇SenseSpace、华为云盘古、快手虚拟场景等等,本次借用下图进行说明。

图片

4  技术路线

传统的三维重建主要是依靠三维扫描设备,并且需要被扫描的目标保持一段时间的稳定。近年来深度学习技术的发展促进了三维重建领域的快速发展,比如在传统二维重建算法的基础上引入深度学习方法进行改进,典型如BA-Net、RCNN等的;再比如两者融合,典型如CNN-SLAM;再就是直接利用深度学习算法进行三维重建,包括基于深度图(灰度图像,即二维图片)、点云、网格和体素四种类型

其他几种方式笔者会在后续章节里面一一说明,本次就重点说明单图像三维重建。

为什么要先说用二维图片呢,无他,成本低。

基于深度学习使用二维图片直接获得三维模型,主要有这三条路径:先对单图片中的目标物体进行建模、直接使用给定的先验形体进行体态学习,以及使用神经辐射场(NERF)外加体素渲染进行三维结构的学习。每种方法都有其优点和局限性。

这里有一篇文章在这块写的很好,我放上来供大家学习。

文章地址:https://mp.weixin.qq.com/s/dRTbRQqVBdSRwqqIi3P2ZQ

图片

图片

图片

图片

下一章讲述 实景三维中国建设与发展(五)基于AIGC的三维重建初探2-基于NeRF的3D重建

参考文献

(1)https://blog.csdn.net/qq_45752541/article/details/132854115;

(2)https://zhuanlan.zhihu.com/p/590840909;

(3)Kerbl, Bernhard, et al. '3d gaussian splatting for real-time radiance field rendering.'ACM Transactions on Graphics (ToG)42.4 (2023): 1-14;

(4)https://zhuanlan.zhihu.com/p/628676557;

(5)三维重建Gaussian Splatting技术支持Threejs呈现了 (qq.com);

(6)https://blog.csdn.net/qq_40731332/article/details/134535065;

(7)下一代NeRF, Gaussian Splatting来了~ (qq.com)

(8)https://zhuanlan.zhihu.com/p/627356466;

(9)https://mp.weixin.qq.com/s/dRTbRQqVBdSRwqqIi3P2ZQ;

(10)https://blog.csdn.net/liu_lin_xm/article/details/4850593;

  (11) https://mp.weixin.qq.com/s/dRTbRQqVBdSRwqqIi3P2ZQ。

喜欢就点“赞”“在看”哈~

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多