大家好,欢迎来到IT知识分享网。
该蓝图分享了 AI 方法、算法、工具、模板和 6 步系统,用于为 3D 模型构建数据科学解决方案:3D 数据采集、分析、建模、可视化和部署。
欢迎来到雲闪世界。建立 3D 数据科学项目涉及结合数据工程、数据分析和可视化技术来处理三维数据。
从收集初始数据到自动化 3D 沉浸式体验,我将为您讲解整个流程。我将介绍所有必要的程序、资源和方法,以确保高效的工作流程和出色的结果。
🦚 Florent 的注释:我想尝试一些更高级的东西。因此,您将无法实现 3D Transformer 网络,但您将获得理解,以定义您认为有潜力的下一个 3D 数据科学项目。
让我深入了解一下 6 个主要步骤:项目范围、数据采集、数据预处理、数据分析、可视化和部署,如下所示。
当然,我们从金字塔底层开始。我们如何定义我们想要创造的东西?
1. 定义项目范围和目标
假设你想听听我的意见。在深入研究技术设置之前,我想做一件事:明确定义 3D 数据科学项目的范围和目标。这一步就像在旅行前规划路线,确保我们做好准备并专注于确定的目的地。这包括:
- 识别问题:了解您要用 3D 数据解决的具体问题。
- 目标设定:弄清楚您希望实现的目标,无论是新知识、预测还是视觉表现。
- 确定可交付成果:指定预期输出,如报告、模型或交互式可视化。
🦚 Florent 的注释:举个例子,我有一个项目,旨在创建 Main Street 图书馆的详细 3D 模型,用于无障碍审计。该模型包括内部、外部和家具摆放,将在 4 周内以与无障碍软件兼容的格式交付。我将专注于建模与无障碍相关的永久结构和功能,不包括临时家具和高级功能。成功依赖于按时并在预算范围内交付可接受的模型。看看我是如何简洁而具体的?
2.数据采集
在建立 3D 数据科学项目时,最初的关键步骤之一是数据采集。在此阶段,从各种来源识别和收集相关 3D 数据并确保其格式兼容对于项目的成功至关重要。
🦚 Florent 的注释:厨房装修时,别再用卷尺了!借助摄影测量法,只要使用一些标记,您就可以生成精度相当不错的 3D 模型。您将获得一个 3D 数字模型,该模型可以让您准确测量所有内容,以 3D 形式设计新布局,并在开始拆除之前识别潜在障碍。3D 数据采集可节省时间、最大限度地减少错误,并让您的梦想厨房更近一步。
让我们深入研究 3D 数据采集的构建模块。
2.1. 数据来源
首先,我们应该从可靠的来源识别并收集必要的 3D 数据。
常见来源包括:
- 3D 相机:您可以将图像转换为 3D 模型。一个著名的例子:Kinect:Kinect for Windows – Windows apps | Microsoft Learn(消费级深度传感器)
- 3D 扫描仪:捕捉物体物理形状的设备(例如,Velodyne 等 LiDAR:https://en.wikipedia.org/wiki/Velodyne_Lidar)。
- 生成式人工智能:通过使用生成式人工智能生成 3D 数据的工具。(例如MeshAnything)
- 公共数据集:ShapeNet、ModelNet 等存储库或来自研究机构的自定义数据集。为了更好地帮助您完成旅程,我编制了一份有助于 3D 数据管理工作的数据集参考列表。
数据集
以下是一些具有公开数据集的选项:
- 斯坦福大规模数据集 (S3DIS): Stanford Computational Vision and Geometry Lab(包括室内场景的 LiDAR 和 RGB 数据)
- NuScenes: https://www.nuscenes.org/(包含 LiDAR、摄像头图像等的大规模自动驾驶数据集)
- Waymo 开放数据集: https://waymo.com/open/(自动驾驶汽车的大规模数据集,包括激光雷达和摄像头数据)
- Thing3D: Thingiverse – Digital Designs for Physical Objects(大型 3D 模型数据集,重点关注现实世界的物体)
- ShapeNet: ShapeNet Q&A(流行的各种类别 3D 模型数据集)
- StyleGAN2: Synthesizing High-Resolution Images with StyleGAN2 | NVIDIA Technical Blog(用于创建高保真图像的生成模型,可用于间接生成 3D 模型)
- DreamGAN: https://github.com/NVlabs/denoising-diffusion-gan/blob/main/train_ddgan.py(用于创建 3D 形状的生成模型)
- NOAA + NCEI: National Centers for Environmental Information (NCEI)(提供地理空间数据,包括 3D 高程数据)
3D 存储库
您还可以利用 OpenRepositories 来获取具有各种许可证的数据:
- Sketchfab: Sketchfab – The best 3D viewer on the web(3D 模型分享和发现平台)
- Turbosquid: https://www.turbosquid.com/(3D 模型市场)
现在您更好地了解了如何获取 3D 数据,让我们来谈谈格式。
🦚 Florent 的注释:在这个阶段,这些存储库应该在很大程度上帮助您开始使用不错的数据集。但是,特别是对于深度应用程序而言,知道如何生成自己的数据,然后针对您的下行流程进行调整通常是非常有益的。
2.2. 数据格式
实际上,我们通常会使用多种格式,每种格式都有自己的优点和缺点。选择正确的格式取决于目的——快速 3D 打印可能受益于更简单的格式,而令人眼花缭乱的虚拟现实体验可能需要更丰富、更详细的选项。因此,确保数据采用兼容的格式进行分析和可视化至关重要。让我描述一下我最喜欢的五种文件格式,如下所示:
OBJ(波前对象):一种流行且广泛支持的 3D 网格格式。它使用顶点(空间中的点)、面(形成平面的顶点集合)和纹理坐标来定义对象的基本几何形状。虽然 OBJ 简单且易于阅读,但它缺少有关材质和动画的信息。它是基本 3D 模型或作为在不同软件程序之间交换数据的中间格式的不错选择。
流行且广泛支持的 3D 网格格式。它使用顶点(空间中的点)、面(形成平面的顶点集合)和纹理坐标来定义对象的基本几何形状。虽然 OBJ 简单且易于阅读,但它缺少有关材质和动画的信息。
它是基本 3D 模型或作为在不同软件程序之间交换数据的中间格式的不错选择。
- 流行且广泛支持的 3D 网格格式。它使用顶点(空间中的点)、面(形成平面的顶点集合)和纹理坐标来定义对象的基本几何形状。虽然 OBJ 简单且易于阅读,但它缺少有关材质和动画的信息。它是基本 3D 模型或作为在不同软件程序之间交换数据的中间格式的不错选择。
- PLY(多边形文件格式):一种通用格式,可以处理 3D 网格(如 OBJ)和点云(表示 3D 空间的数据点集合)。PLY 比 OBJ 更灵活,允许您存储每个顶点或点的颜色和强度等其他属性。这使其成为科学数据和需要额外信息的应用的理想选择。但是,与 OBJ 等更简单的格式相比,PLY 可能不太受某些软件的支持。
- STL(立体光刻): 3D 打印的首选格式。STL 文件将 3D 对象的表面几何形状表示为一组微小三角形。这种简单的表示方式使 3D 打印机能够轻松理解并转换为物理层。但是,STL 文件缺少有关颜色、纹理或动画的信息。它们非常适合传达对象的基本形状以供打印,但不适合具有丰富视觉细节的复杂场景。
- GLTF(GL 传输格式):一种现代格式,旨在高效地在网络上传输 3D 模型。GLTF 结合使用 JSON(基于文本的数据格式)和二进制数据(模型信息的压缩表示),以在文件大小和细节之间实现良好的平衡。它支持网格、材质、纹理和动画等功能,是将交互式 3D 内容嵌入网页或应用程序的绝佳选择。
- LAS(激光存档系统):专为管理大型地理空间点云数据集而设计。LAS 文件通常包含表示地球表面上物体或地形位置的 3D 点,通常由 LiDAR 扫描仪(基于激光的成像系统)捕获。这些文件还可以存储强度值(激光束的反射率)等其他信息,这些信息对地形分析很有帮助。LAS 是地理空间数据的行业标准,广泛应用于测量、制图和环境建模等应用。
考虑到这一点,您可以独立于应用程序案例解决 90% 遇到的情况。
🦚 Florent 的注释:在某些情况下,尤其是在医学成像或地理空间应用中,利用体素组件会对您大有裨益。在这种情况下,您可能需要调整这些格式或利用更纯粹的版本
3.数据预处理
步骤 3. 数据预处理。© Florent Poux,博士。
清理和转换 3D 数据是建模和分析之前的重要第一步,以确保数据适合进一步处理。此阶段称为数据预处理,涉及数据清理、规范化和特征提取等任务。让我们探索预处理 3D 数据以实现有效分析和模型开发所涉及的基本步骤和技术。
3.1. 数据清理
数据永远不完美。说实话,有时候,数据看起来就像一个小孩把意大利面条扔到扫描仪上。朋友们,本节主要讲数据清理。
在这里,我们解决异常点、修补漏洞,并将一团乱麻变成光滑、有嚼劲的数据集,随时准备应对我们提出的任何问题。这可能不是工作中最引人注目的部分,但相信我,干净的数据是任何成功的 3D 项目的秘诀。
这可能涉及:
- 消除异常值:识别并消除与常态有显著偏差的数据点。
- 填充缺失值:使用插值或其他技术填补数据中的空白。
- 过滤噪音:噪音与异常值不同,它是使分析产生偏差的数据点。应予以解决。
3.2. 数据转换
在此阶段,我们需要调整数据,以便更有效地进行分析。以下是一些流程示例:
3D 数据预处理的四个主要步骤。
- 规范化:使信息适应标准范围。
- 重采样:调整数据的分辨率。
- 特征提取:从原始数据中识别并提取相关特征。
- 旋转、平移、缩放:调整空间中的 3D 数据集位置
在这个阶段,我认为最好先进行高层次的概述,而不要深入。这在许多情况下应该是非常有用的,特别是对于(3D)数据分析的任务。
4.数据分析
步骤 4. 数据分析。
🦚 Florent 的注释:好吧,我必须说实话。我在这里过于简化了分类。事实上,我通常认为模型构建是一个与 3D 数据分析略有不同的专业分支,因为如今,构建模型的任务非常深奥,而且是一个独立的阶段。然而,为了理解我们如何从定义项目到结果的流程,我喜欢将其作为分析“分类法”的一部分。
让我从探索性数据分析开始。
4.1. 探索性数据分析(EDA)
探索性数据分析 (EDA) 拥有一个非常简单的工具箱,可用于在深入进行复杂的建模或分析之前了解您的 3D 数据。下面是我们经常使用的两种关键技术的简要分解,如下所示:
如何分析数据:3D 数据分析的两种主要方法。
统计分析
这涉及使用描述性统计数据总结 3D 数据的主要特征。可以将其视为绘制数据的基本图景,以了解其集中趋势和分布。技术包括提取集中趋势、平均值、中位数、分布范围、范围或其他分布指标。
可视化
虽然数字很棒,但有时图片(或者更确切地说是 3D 图!)更有效。可视化就是创建信息丰富且交互式的图表和图形来探索数据中的关系和模式。我们通常依靠 3D 散点图(可视化 3D 空间中多个变量之间的关系)、直方图或热图。
🦚 Florent 的注释:这些是非常简单但非常方便的“技术”,可以更好地理解和分析我们的数据集。通常,为定量和定性分析提供坚实的基础非常好。
现在我们已经通过 EDA 探索了 3D 数据,是时候构建一些模型并解锁它们的更深层含义了!
4.2. 模型建立
模型帮助我们从探索走向解释!了解 3D 模型(而非几何模型)构建的世界是件好事,我们将使用复杂的技术来提取隐藏的模式并解锁数据中的真正含义。我们可以利用从传统统计分析到尖端人工智能 (AI) 的一系列方法来构建模型,这些模型可以根据您宝贵的 3D 信息分析、解释甚至预测未来结果。
数据分析水平与模型
首先,让我谈谈我们进行的分析的“类型”:
3D Systems 的数据分析的各个级别。
- 回归分析:该技术可以找到“最佳拟合”模型来描述数据中变量之间的关系。想象一下散点图中的趋势线 — 这就是回归的实际应用。
- 数据点分类:将基础实体分类为预定义的类别数
- 3D 物体检测:使用 3D 边界框在数据集内识别和定位特定数量的类别
- 语义/实例分割:更进一步,在基础实体级别工作(点云的点、网格的面、体素模型的体素,…)
🦚 Florent 的注释:再次强调,我倾向于简化一点,但即使您是经验丰富的 3D 数据科学家,这也是一个很好的做法,因为它有助于更有效地传达我们处理的内容。
通过使用人工智能。但人工智能的精细度有多高?
AI 模型粒度
我们总是想知道这些模型中是如何产生“魔法”的。人工智能模型的架构定义决定了它在 3D 数据中捕获的内容,并在其有效性中起着至关重要的作用。让我定义四个主要系列,如下所示:
3D 数据科学中使用的 AI 模型的粒度。
- 人工智能:试图模仿非人工智能
- 机器学习:这涉及应用上述明确定义的算法(回归、分类等)从数据中学习。可以将 ML 视为一名学生,努力学习教科书(数据)以进行学习并做出预测。
- 深度学习:这是机器学习的一个子领域,它使用人工神经网络,特别是专门用于处理 3D 数据的卷积神经网络 (CNN)。想象一下,深度学习就像一个拥有超能力的学生,能够从海量数据集中学习复杂的模式,远远超出传统机器学习算法的能力。
- Transformers:Transformers 利用编码 / 解码架构完美融合全局和局部特征,更有效地掌握上下文和局部变化。这对于理解 3D 场景中不同部分之间的上下文和关系等任务特别有用。
🦚 Florent 的注释:选择最佳的模型构建技术和 AI 方法取决于您的具体任务和数据。以下是一些一般准则。对于更简单的关系,回归分析或基本 ML 算法可能就足够了。对于复杂的对象分类或分割,通常首选 CNN 或 Transformers 等深度学习方法。
现在,我们可以深入研究 3D 可视化了!
5.可视化
步骤 5. 3D 可视化。
3D 可视化工具和库概述。
使用 Python:
- Matplotlib ( https://matplotlib.org/ ):这款老牌软件是进行基本 3D 绘图甚至一些交互式 3D 可视化的绝佳选择。它是理解基础知识的坚实基础。
- Open3D ( Open3D – A Modern Library for 3D Data Processing ):如果您想要一个内置于 Python 环境中的流畅 3D 查看器,Open3D 就是您的好帮手。它让您轻松探索和操作数据。
- Pyvista ( PyVista — PyVista 0.44.1 documentation ) :这款软件提供了多种功能,可以很好地处理各种 3D 数据格式。当你需要比 Matplotlib 更强大的功能时,这是一个不错的选择。
对于 Web(WebGL):
- Three.js ( Three.js – JavaScript 3D Library ):雄心勃勃,想要创建一些非常先进的基于 Web 的 3D 图形?Three.js 就是您的游乐场。它是一个功能强大的库,可让您构建令人惊叹的交互式体验。但请注意,它的学习难度较高。
- Potree ( https://github.com/potree/potree ) :需要在网络上实时传输点云数据?Potree 就是您的最佳选择。它是专为此目的而设计的出色工具。
- Cesium ( https://cesium.com ):处理包含 3D 元素的地理空间数据?Cesium 可以满足您的需求。它是一个用于构建交互式 3D 地图和可视化的综合平台。
使用软件:
- CloudCompare ( CloudCompare – Open Source project ) — 如果您是点云纯粹主义者,并且想要专用的软件解决方案,CloudCompare 是一款免费的开源软件。它提供了大量用于处理、编辑和分析点云数据的工具。
- Blender ( blender.org – Home of the Blender project – Free and Open 3D Creation Software ):有时您只想亲自体验可视化。Blender 是一款流行的 3D 创作套件,对于想要创建令人惊叹的 3D 数据渲染图的艺术家和业余爱好者来说,它是一个绝佳的选择。
- Unity ( Unity Real-Time Development Platform | 3D, 2D, VR & AR Engine ):想得更远?Unity 是一款游戏引擎,可让您创建身临其境的 3D 体验。虽然它有一定的学习难度,但它可以成为以真正引人入胜的方式展示 3D 数据的强大工具。
请记住,这只是可用工具的简单介绍。最适合您的选择将取决于您的特定项目需求和技能。最主要的问题是:您需要交互性吗?下图应该可以帮助您回答这个问题。
使用交互式 3D 可视化的优缺点是什么。
最后,可视化技术怎么样?
5.2. 可视化技术
您已经构建了 3D 模型,现在是时候展示它们了!有效的 3D 可视化技术超越了静态图像——它们允许查看者探索、交互并真正理解您的数据。您可以考虑第一个问题:
可视化 3D 数据的不同方式(交互式 VS 静态)。
3D 数据可视化的主要主题。
交互式可视化
想象一下用户旋转 3D 模型、放大细节,甚至操纵其组件。交互式可视化可创造引人入胜的体验,让查看者从不同角度探索您的数据并获得更深入的见解。
3D 交互式可视化。
和 Unity
。
动画
有时,静态的 3D 模型或交互式静态体验还不够。动画增加了时间的力量,让您可以展示数据中的变化、过程或模拟。这在可视化天气模式、生物学中的生长过程或工程学中的动态模拟方面非常受欢迎。
注解
虽然精心设计的可视化效果可以传达大量信息,但有时添加清晰的标签、注释或标注可以进一步增强理解。注释可以突出显示特定特征、解释复杂概念或引导查看者浏览数据。
3D 注释。
如果您需要指出医学扫描中的关键特征、解释复杂机器模型中的组件或在科学可视化中提供其他信息,它们会特别有用。我建议利用CloudCompare来完成这项任务。
太棒了,我们几乎接触到了 3D 数据科学应用程序的所有组件。但最后一步是进行部署和维护
6.部署和维护
第 6 步。
部署 3D 数据分析
现在您已经构建并可视化了令人惊叹的 3D 模型,是时候将它们部署到现实世界了!本节将解决 3D 部署和维护的关键方面,确保您的模型可访问、功能齐全且最新。
6.1. 部署
3D 模型的部署方法取决于其预期用途和目标受众。以下是一些常见策略:
三个主要系列(网络、桌面工具和云平台)。
Web 应用程序:它们非常适合让任何有互联网连接的人都可以访问您的 3D 模型。它们可以直接在 Web 浏览器中查看,无需用户下载任何特殊软件。Flask和Django是两个流行的框架。
- 桌面应用程序:它们比 Web 应用程序提供更具交互性的体验。它们可以本地安装在用户的计算机上,并可能提供在 Web 浏览器环境中可能无法实现的附加功能。我通常使用 PyQt 或Electron等工具。
- 云服务:云平台提供了一种可扩展且经济高效的 3D 模型部署和管理方法。这些平台提供可按需访问的基础设施、存储和计算资源,让您可以专注于构建应用程序,而无需担心管理底层硬件和软件。我建议利用 AWS、AZURE 或 Google Cloud 等平台。
太棒了。现在您已经了解了如何推广您的应用,最后一步就是如何保持其相关性和无错误。
6.2. 维护
就像任何作品一样,您的 3D 模型需要持续的呵护才能保持其准确性和功能性。以下是一些关键做法,可确保您的 3D 项目继续创造价值。
如何保持模型性能和准确性
监控:定期检查模型的性能和准确性。
- 更新:根据需要合并新数据并改进模型。
- 文档:保存全面的文档以供将来参考和协作。
通过遵循这些实践并利用所提供的资源,您可以确保您的 3D 数据科学应用程序保持良好维护和准确,并在未来几年继续提供价值!
结论
恭喜!您已经掌握了六步指南,并且正在顺利构建有影响力的 3D 数据科学应用程序,如下所示。
基于您的数据部署 3D 体验的线性路径。© Florent Poux,博士。
该设置需要仔细规划和执行各个阶段,从数据采集到部署。这种结构化方法可带来有意义的见解、高质量的预测和 3D 可视化。
🦚 Florent 的注释:随着您的不断进步,您将会看到专为 3D 数据设计的更加复杂的 AI 技术。例如,生成模型具有基于您的数据创建全新 3D 对象的巨大潜力,从而突破了数据探索和创新的界限。此外,实时处理方面的进步将实现在动态环境中与 3D 模型的无缝交互,为增强现实和元宇宙中的应用打开大门。
感谢关注雲闪世界。(亚马逊aws和谷歌GCP服务协助解决云计算及产业相关解决方案)
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/144948.html