zl程序教程

您现在的位置是:首页 >  后端

当前栏目

使用 Python 从图像生成 3D 网格,将深度学习与 3D 数据处理相结合以生成网格(基于 Open3D和 transformers)

Python3D学习 基于 生成 深度 图像 数据处理
2023-09-11 14:18:29 时间

几年前,从单个 2D 图像生成 3D 网格似乎是一项非常艰巨的任务。如今,由于深度学习的进步,已经开发了多种单目深度估计模型,它们可以从任何图像中提供精确的深度图。通过这张地图,可以通过执行表面重建来生成网格。

介绍

单目深度估计是在给定单个(单目)RGB 图像的情况下估计每个像素的深度值(相对于相机的距离)的任务。单目深度估计模型的输出是深度图,它基本上是一个矩阵,其中每个元素对应于输入图像中相关像素的预测深度。

深度图中的点可以看作是具有 3 轴坐标的点的集合。由于地图是一个矩阵,每个元素都有x和y分量(它的列和行)。而z分量是它的存储值,即点(x, y)中的预测深度。在 3D 数据处理领域,一列(x, y, z)点称为点云。

image.png

从非结构化点云开始,可以获得网格。网格是由一组顶点和多边形组成的 3D 对象表示。最常见的网格类型 是三角形网格,它由一组通过共同边或顶点连接的三维三角形组成。在文献中,有几种方法可以从点云中获得三角形网格,最流行的是 Alpha 形状¹、Ball pivoting² 和 Poisson 曲面重建³。这些方法被称为表面重建算法。

image.png

本指南中用于从图像生成网格的过程由三个阶段组成:

  • 深度估计——输入图像的深度图是使用单目深度估计模型生成的。