单图像3D重建AI算法综述【2023】

计算机视觉是人工智能的一个快速发展的领域,特别是在 3D 领域。 本概述将考虑一个应用任务:2D 和 3D 环境之间的转换。

在线工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器 

1、2D和3D的转换

关于2D和3D的转换,存在两种任务:从3D模型创建2D图像,或者从2D图像重建3D模型。

1.1 正向任务:从3D模型创建2D图像

首先,我们将分析如何解决计算机图形学的正向任务,即使用 3D 模型创建 2D 图像,并熟悉基本概念。

渲染是从 3D 模型转变为 2D 投影的过程。 你可能听说过其中一些方法:

  • 光栅化(rasterization)是最早、最快的渲染方法之一。 光栅化将模型视为多边形网格。 这些多边形的顶点嵌入了位置、纹理和颜色等信息。 然后将这些顶点投影到垂直于透视图的平面上。 光栅化存在重叠对象的问题:如果表面重叠,则渲染时最后绘制的部分将被反射,这将导致显示错误的对象。 这个问题是使用z-buffering解决的(事实上,z-buffer就是深度图)。
  • 射线投射(ray casting)。 与光栅化不同,光线投射期间不会出现重叠表面的潜在问题。 光线投射,顾名思义,就是从相机的角度将光线投射到模型上。 光线输出到图像平面上的每个像素。 它首先碰到的表面将在渲染过程中显示,并且第一个表面之后的任何其他交叉点都不会被绘制。
  • 光线追踪(ray tracing)。 尽管光线投射具有诸多优点,但该技术仍然缺乏正确建模阴影、反射和折射的能力。 光线追踪方法的开发就是为了帮助解决这些问题。 光线追踪的工作原理与光线投射类似,只是它能更好地显示光线。 基本上,从相机的角度来看的主光线被引导到模型上以产生次级光线。 击中模型后,将发射阴影光线、反射光线或折射光线,具体取决于表面属性。

1.2 逆向任务:从2D图像重建3D模型

现在我们已经考虑了从 3D 模型构建 2D 图像的直接问题,让我们看看解决逆问题的方法:从 2D 图像构建 3D 模型。

二维照片是三维场景的投影。 3D 场景是 3D 网格、顶点、面、纹理贴图以及从相机或视点查看的光源的集合。 为简单起见,我们将场景限制为单个 3D 对象。 如果我们能够恢复创建 2D 照片的原始 3D 场景,我们应该能够通过使用与创建输入 2D 照片相同的视点将 3D 对象投影到 2D 来验证这一点。

要重建3D对象,需要计算顶点、面、光源和纹理的所有可能组合,当以 2D 投影时,这些组合应该在给定输入图像的情况下给出等效的 2D 图像,前提是相机位置是 相同的。 这本质上是一个搜索问题。 但暴力破解的问题在于,可以创建的顶点、面、纹理贴图和光照的组合数量巨大,因此我们无法通过暴力破解来解决这个问题。

让我们看看现有的解决这个问题的方法!

2、从2D图像重建3D模型的解决方案

这里我们介绍几种从单张2D图像重建3D模型的解决方案:DIB-R、Im2Struct、ATLAS和Mesh R-CNN。

2.1 DIB-R

DIB-R 是一种差分渲染器,它使用可微分光栅化算法对像素值进行建模。 它有两种分配像素值的方法。 一个用于前景像素,另一个用于背景像素。 在这里,与标准渲染相反,标准渲染将像素值分配给覆盖像素的最近的面,前景光栅化被视为顶点属性的插值。 在每个前景像素上,我们执行 z 缓冲测试并将其分配给最近的覆盖面。 每个像素都只受该面的影响。 因此,前景像素的计算方式是使用每个顶点的权重对最近的三个相邻顶点进行插值。 对于背景像素,即未被 3D 对象的任何面覆盖的像素,该值是根据像素到最近面的距离计算的。

DIB-R可以生成具有传统渲染难以实现的逼真光照和阴影效果的图像。

2.2 Im2Struct:SMN+SRN

结构掩膜网络 (SMN:Structural Masking Network) 根据不同比例的输入 2D 图像创建对象掩膜。 这是一个多层卷积神经网络(CNN)。 它的任务是保存有关表单的信息,同时查看不相关的信息:背景和纹理。

结构恢复网络(SRN:Structure Restoring Network)以长方体结构的形式递归地重建对象细节的层次结构。 SRN接收来自SMN的输入数据,添加2D图像的CNN特征,然后将这些函数传递给递归神经网络(RvNN)解码成3D结构。 在输出中,我们得到具有合理空间配置的三维长方体形式的图像。

与传统 3D 扫描方法相比,Im2Struct 具有多个优势,因为它可以从单个 2D 图像恢复物体的 3D 结构,这通常比从多个视点扫描物体更快、更便宜。

2.3 ATLAS

ATLAS将任意长度的 RGB 图像序列作为输入。 每幅图像的内部特征和姿势都是已知的。 这些图像通过 2D CNN 主干进行特征提取。 然后将对象投影回 3D 体素体积并使用当前平均值进行累积。 一旦图像元素以 3D 形式组合,我们就直接使用 3D CNN 对 TSDF 进行回归。

ATLAS 可用于多种行业,包括制造、工程和考古。 ATLAS 3D 的一个限制是它要求被扫描的物体是静止的,这在某些应用中可能并不总是可行。 此外,系统可能难以捕捉具有高反射或透明表面的物体的精细细节和纹理。

2.4 Mesh R-CNN

Mesh R-CNN框架采用两阶段方法:在第一阶段,它使用卷积神经网络 (CNN) 检测和分割图像中的对象,类似于流行的 Mask R-CNN 框架。 在第二阶段,它使用网格预测网络对每个对象实例的一组 3D 顶点进行回归。

Mesh R-CNN 的主要优点之一是它能够重建对象的详细 3D 网格,包括其细粒度的几何形状和纹理。 这使得它对于虚拟现实、增强现实和 3D 打印等应用非常有用

3、从单张2D图像生成深度图

我们介绍了几种解决逆向图形任务的最先进的解决方案。 所有这些解决方案都可以帮助你解决各种任务,例如重建房间、创建 3D 局部地图、从单个图像重建 3D 场景,甚至估计农作物或地形的高度和深度以指导种植、收割和灌溉决策。

请记住,所有这些解决方案都基于不同的渲染、体素预测、网格预测等方法。 但它们都有一个共同的需求,即以一种或另一种形式构建或预测深度图。

这就是为什么我也建议单独考虑构建深度图的问题。

让我们看一下单目图像预测深度图的几种最先进的解决方案。

3.1 GLPN

GLPN单目深度估计网络具有贯穿整个网络的全局和局部特征路径的新架构。 该框架的整体结构如下:transformer编码器使模型能够学习全局依赖性,并且所提出的解码器通过跳跃连接和特征融合模块构建局部路径,成功地将提取的特征恢复到目标深度图中。

3.2 Dense Depth模型

Dense Depth模型的编码环节使用在 ImageNet 中预训练的 DenseNet-169 网络将 RGB 输入图像编码为对象向量。然后将该向量输入到一系列连续的层中,并增加采样,以构建分辨率等于输入一半的最终深度图。 这些上采样层及其相关的带宽连接形成了解码器。

3.3 Midas

Midas架构以视觉多连接transformer为基础来表示。 过去成功预测的整体编码器-解码器结构被保留。 通过提取非重叠部分,然后对其平滑表示(DPT-Base 和 DPT-Large)进行线性投影,或者通过应用 ResNet-50 (DPT-Hybrid),将输入图像转换为标记。 图像嵌入辅以位置嵌入和独立于补丁的标记。 标记要经历几个转换阶段。 从不同阶段收集标记作为多分辨率图像(重新组装)。 Fusion 模块逐渐合并和上采样视图以生成详细的预测。

4、众包之手

在后一种情况下,MIDAS 能够通过链接新的数据源来实现其结果,而这是以前没有人实现过的。 大规模收集不同的深度数据集是很困难的,因此引入了一种工具来组合互补的数据源。 此外,基于 3D 电影的新数据集提供了有关各种动态场景的可靠信息。

因此,我想重点关注3D方向的数据问题。 每个开发人员都面临这个问题,并且必须以某种方式回避它,包括在架构上。 我描述的所有这些解决方案都使用几乎相同的开放数据集。

这还不够,因为由于遮挡、光照条件差、视角有限等多种原因,收集如此复杂和高质量的数据并不是那么简单。 当没有足够的可用数据时,就很难准确估计场景的深度和结构,从而导致 3D 重建不准确或不完整。

众包可以作为解决 3D 重建需要更多数据的问题的潜在解决方案。 通过利用大量个人的集体努力,众包可以提供场景的额外数据和视角,从而提高 3D 重建的准确性和完整性。

例如,众包平台可用于收集大量贡献者从不同角度拍摄的场景的多幅图像。 然后可以使用多视图立体或运动结构技术处理这些图像,以创建更准确的场景 3D 重建。

这正是 Neatsy 项目中为了部分弥补 3D 数据缺乏而实施的内容。 Neatsy 开发了用于虚拟调整鞋子尺寸的人工智能软件。 他们使用 Toloka 众包平台进行额外的数据收集(超过 5 万张新照片),并对模型的指标进行了改进。 他们的软件使用大约 50 种不同的测量方法创建脚的 3D 模型,并帮助你找到一双完美的运动鞋。 该项目已经继续进行,现在他们还可以诊断足部的健康问题,这一切都归功于人群中的数据。 这只是开发 3D 技术的巨大潜力的一个例子。

5、结束语

有许多最先进的解决方案可用于正向和逆向图形任务以及预测深度图。 我们研究了每种方法在实际应用中的情况,并注意到由于缺乏 3D 数据而造成的限制。 众包平台有潜力解决数据收集问题并支持现实计算机视觉应用的 3D 技术开发。


原文链接:单图像3D重建AI综述 - BimAnt

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/200023.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C语言入门笔记—static、extern、define、指针、结构体

一、static static修饰局部变量的时候,局部变量出了作用域,不销毁。本质上,static修饰局部变量的时候,改变了变量的存储位置。详见下图,当a不被static修饰和被static修饰的时候。 C/C static关键字详解&#xff…

Spring Cloud学习(九)【Elasticsearch 分布式搜索引擎01】

文章目录 初识 elasticsearch了解 ES倒排索引ES 的一些概念安装es、kibana安装elasticsearch部署kibana 分词器安装IK分词器ik分词器-拓展词库 索引库操作mapping 映射属性索引库的 CRUD 文档操作添加文档查看、删除文档修改文档Dynamic Mapping RestClient 操作索引库什么是Re…

【Spring Boot】使用WebSocket协议完成来单提醒及客户催单功能

1 WebSocket介绍 WebSocket 是基于 TCP 的一种新的网络协议。它实现了浏览器与服务器全双工通信(双向传输)——浏览器和服务器只需要完成一次握手,两者之间就可以创建持久性的连接, 并进行双向数据传输。 1.1 HTTP协议和WebSocket协议对比 1、HTTP是短…

redis五大常见数据结构的操作命令(string, hash, list, set和zset)

string redis的string,直接按照二进制(不做任何的转换,存的是什么取出来的依旧是什么)的方式存储。所以string不仅仅可以存储文本数据,还可以存储整数,JSON,xml甚至音视频。但是string的大小最…

谷歌浏览器任意文件访问漏洞(CVE-2023-4357)复现

1.漏洞级别 高危 2.漏洞描述 该漏洞的存在是由于 Google Chrome中未充分验证 XML 中不受信任的输入。远程攻击者可利用该漏洞通过构建的 HTML 页面绕过文件访问限制&#xff0c;导致chrome任意文件读取。 总结&#xff1a;一个XXE漏洞 3.利用范围 Google Chrome < 116.…

【计算机网络笔记】网络地址转换(NAT)

系列文章目录 系列文章目录 什么是计算机网络&#xff1f; 什么是网络协议&#xff1f; 计算机网络的结构 数据交换之电路交换 数据交换之报文交换和分组交换 分组交换 vs 电路交换 计算机网络性能&#xff08;1&#xff09;——速率、带宽、延迟 计算机网络性能&#xff08…

JAXB:用XmlElement注解复杂类型的Java属性,来产生多层嵌套的xml元素

例如&#xff0c;下面这段请求的xml代码&#xff0c;在元素body下面又多了一层&#xff0c;嵌套了4个元素&#xff1a; <?xml version"1.0" encoding"UTF-8"?><request><reqtype>04</reqtype><secret>test</secret>…

​软考-高级-系统架构设计师教程(清华第2版)【第10章 软件架构的演化和维护(P345~382)-思维导图】​

软考-高级-系统架构设计师教程&#xff08;清华第2版&#xff09;【第10章 软件架构的演化和维护&#xff08;P345~382&#xff09;-思维导图】 课本里章节里所有蓝色字体的思维导图

细节决定成败——我的日志去哪了?

概述 编写本文档的目的有两点。 本周遇到了一个日志丢失的问题&#xff0c;经过分析&#xff0c;觉得挺有意思的。向大家分享一下我的分析及解决思路。应该在很多项目中都会有该问题。领导和我私下讨论过多次&#xff0c;当前的autodomain代码对文件读取的频率太高了,如何去避…

数学建模-图与网络模型解题方法和代码实现

本文针对以下几个方面问题进行整理&#xff1a; 最短路问题 两个指定顶点之间的最短路径任意顶点之间的最短路径 2.最小生成树问题 求最小生成树 3.网络最大流问题 源点与汇点之间的最大流基于最大流的最小费用求解 4.旅行商问题 基于哈密顿(Hamilton)圈求解旅行商线性…

基于Qt QList和QMap容器类示例

## QList<T> QList<T>容器是一个数组列表,特点如下: 1.大多数情况下可以用QList。像prepend()、append()和insert()这种操作,通常QList比QVector快的多。这是因为QList是基于index标签存储它的元素项在内存中(虽然内存不连续,这点与STL的list 是一样的),比…

网络连接Android设备

参考&#xff1a;https://blog.csdn.net/qq_37858386/article/details/123755700 二、网络adb调试开启步骤 1、把Android平板或者手机WiFi连接到跟PC机子同一个网段的网络&#xff0c;在设置-系统-关于-状态 下面查看设备IP,然后查看PC是否可以ping通手机的设备的IP。 2、先…

深度学习人脸表情识别算法 - opencv python 机器视觉 计算机竞赛

文章目录 0 前言1 技术介绍1.1 技术概括1.2 目前表情识别实现技术 2 实现效果3 深度学习表情识别实现过程3.1 网络架构3.2 数据3.3 实现流程3.4 部分实现代码 4 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 深度学习人脸表情识别系…

口袋参谋:找关键词的三种方法!

​如何找热搜关键词&#xff1f;99%的商家都不知道。那么今天可以根据我说的三种方法去做。 第一种方法&#xff1a;利用竞争对手 通过分析竞争对手&#xff0c;正在使用和采取何种优化方法&#xff0c;来帮助你理解市场上正在流行什么样的关键字&#xff0c;这些热词可以直接从…

美国DDoS服务器:如何保护你的网站免遭攻击?

​  在当今数字化时代&#xff0c;互联网已经成为人们生活中不可或缺的一部分。随着互联网的普及和发展&#xff0c;网络安全问题也日益严重。其中&#xff0c;DDoS攻击是目前最常见和具有破坏性的网络攻击之一。那么&#xff0c;如何保护你的网站免遭DDoS攻击呢?下面将介绍…

自动化物流运输设备模组要选择哪种类型?

在自动化物流运输设备中&#xff0c;选择合适的模组类型取决于具体的运输需求和应用场景。 1、同步带模组&#xff1a;同步带模组是一种低噪音、低成本的物流运输设备&#xff0c;适用于中短距离、轻型货物的运输。它采用同步带传动的方式&#xff0c;具有传动准确、运行稳定、…

代码随想录二刷 | 链表 | 翻转链表

代码随想录二刷 &#xff5c; 链表 &#xff5c; 翻转链表 题目描述解题思路 & 代码实现双指针法递归法 206.翻转链表 题目描述 给你单链表的头节点 head &#xff0c;请你反转链表&#xff0c;并返回反转后的链表。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4…

G管螺纹尺寸对照表

G管螺纹尺寸对照表 NPT 是 National (American) Pipe Thread 的缩写&#xff0c;属于美国标准的 60 度锥管螺纹&#xff0c;用于北美地区&#xff0e;国家标准可查阅 GB/T12716-1991 PT 是 Pipe Thread 的缩写&#xff0c;是 55 度密封圆锥管螺纹&#xff0c;属惠氏螺纹家族&a…

URDF文件

URDF&#xff08;Universal Robot Description Format&#xff09;&#xff1a;通用机器人描述格式&#xff0c;包含的内容有&#xff1a;连杆、关节&#xff0c;运动学和动力学参数、可视化模型、碰撞检测模型等。 父子关系树&#xff1a;连杆link1 --> 关节joint1 -->…

【TEC100TAI-KIT】青翼科技基于复微青龙JFMQL100TAI的全国产化智能异构计算平台

板卡概述 TEC100TAI-KIT是我司自主研制的一款基于上海复旦微电子复微青龙100TAI的全国产智能异构计算平台开发套件&#xff0c;该套件包含1个复微青龙100TAI核心板和1个PCIE规格的扩展底板。 该套件的核心板集成了100TAI的最小系统&#xff0c;包含一颗JFMQL100TAI900片上系统…