单图像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.mzph.cn/news/151915.shtml

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

相关文章

小红书为什么没人看,小红书爆款标题怎么写?

作为快节奏的社会,人们追求的是不仅仅是高价值更是高性价比,和吸引度。而标题类似于门面,吸引程度自然作为重中之重。今天我们和大家分享下小红书为什么没人看,小红书爆款标题怎么写? 以母婴类型为例子,母婴…

《云计算:云端协同,智慧互联》

《云计算:云端协同,智慧互联》 云计算,这个科技领域中的热门词汇,正在逐渐改变我们的生活方式。它像一座座无形的桥梁,将世界各地的设备、数据、应用紧密连接在一起,实现了云端协同,智慧互联的愿…

网络参考模型与标准协议(二)-TCP/IP对等模型详细介绍

应用层 应用层为应用软件提供接口,使应用程序能够使用网络服务。应用层协议会指定使用相应的传输层协议,以及传输层所使用的端口等。TCP/IP每一层都让数据得以通过网络进行传输,这些层之间使用PDU ( Paket Data Unit,协议数据单元)彼此交换信…

Ubuntu(Linux)的基本操作

基本操作三步走 1、输入vim code.c点击i(出现insert)表示可以编辑代码编辑代码之后按下esc(退出编辑模式)按下shift:(冒号)wq(退出文件)2、输入gcc code.c(进行编译代码…

【知识增强】A Survey of Knowledge-Enhanced Pre-trained LM 论文笔记

A Survey of Knowledge-Enhanced Pre-trained Language Models Linmei Hu, Zeyi Liu, Ziwang Zhao, Lei Hou, Liqiang Nie, Senior Member, IEEE and Juanzi Li 2023年8月的一篇关于知识增强预训练模型的文献综述 论文思维导图 思维导图网页上看不清的话,可以存…

软件测试:测试分类

一. 按照测试对象划分 1.1 界面测试 界面测试(简称UI测试),按照界面的需求(UI设计稿)和界面的设计规则,对我们软件界面所展示的全部内容进行测试和检查,一般包括如下内容: • 验证界面内容的完整性,一致性,准确性,友好性,兼容性.比如页面内容对屏幕大小的自适应,换行,内容是否…

Leetcode—206.反转链表【简单】

2023每日刷题(三十三) Leetcode—206.反转链表 头插法实现代码 /*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/ struct ListNode* reverseList(struct ListNode* head) {if(head NULL…

ajax,axios,fetch

文章目录 ajax工作原理ajax发请求四个步骤创建xmlhttprequest对象设置请求方式设置回调函数发送请求 自封装ajax axiosaxios 特性如何用配置拦截器fetch 三者区别 ajax 工作原理 Ajax的工作原理相当于在用户和服务器之间加了—个中间层(AJAX引擎),使用户操作与服务…

HDD与QLC SSD深度对比:功耗与存储密度的终极较量

在当今数据世界中,存储设备的选择对于整体系统性能和能耗有着至关重要的影响。硬盘HDD和大容量QLC SSD是两种主流的存储设备,而它们在功耗方面的表现是许多用户关注的焦点。 扩展阅读: 1.面对SSD的步步紧逼,HDD依然奋斗不息 2.…

Windows系统中搭建docker (ubuntu,Docker-desktop)

一、docker安装前的准备工作 1. 开启CPU虚拟化,新电脑该默认是开启的,如果没开启可以根据自己电脑型号品牌搜索如克开启CPU虚拟化。当开启成功后可在设备管理器中看到。 2.开通Hyper-V 通过 Windows 控制面板 --> 程序和功能 -->启用或关闭…

Java集合大总结——Set的简单使用

Set的简单介绍 Set接口是Collection的子接口,Set接口相较于Collection接口没有提供额外的方法。Set 集合不允许包含相同的元素,如果试把两个相同的元素加入同一个 Set 集合中,则添加操作失败。Set集合支持的遍历方式和Collection集合一样&am…

[Kettle] 生成记录

在数据统计中,往往要生成固定行数和列数的记录,用于存放统计总数 需求:为方便记录1~12月份商品的销售总额,需要通过生成记录,生成一个月销售总额的数据表,包括商品名称和销售总额两个字段,记录…

使用键盘管理器更改键盘快捷键,让键盘真正迎合你的使用习惯

如果默认快捷键不适合你,你肯定会想知道如何在Windows 11中更改键盘快捷键。 也许你已经习惯了macOS键盘,或者像我一样在Windows和Mac之间切换工作/游戏——如果是这样的话,重新配置默认的Windows快捷方式,使其与Mac上的快捷方式…

Docker网络详细说明

Docker网络 docker不启动,默认网络情况 ipconfig----------ens33、lo、virbr0 在CentOS7的安装过程中如果有选择相关虚拟化的的服务安装系统后,启动网卡时会发现有一个以网桥连接的私网地址的virbr0网卡(virbr0网卡:它还有一个固定的默认I…

多目标应用:基于多目标灰狼优化算法MOGWO求解微电网多目标优化调度(MATLAB代码)

一、微网系统运行优化模型 微电网优化模型介绍: 微电网多目标优化调度模型简介_IT猿手的博客-CSDN博客 二、多目标灰狼优化算法MOGWO 多目标灰狼优化算法MOGWO简介: 三、多目标灰狼优化算法MOGWO求解微电网多目标优化调度 (1&#xff09…

ANSYS网格无关性检查

网格精度对应力结果存在很大的影响,有时候可以发现,随着网格精度逐渐提高,所求得的最大应力值逐渐趋于收敛。 默认网格: 从默认网格下计算出的应力云图可以发现,出现了的三处应力奇异点,此时算出的应力值是…

趣学python编程(六、关于蓝桥杯比赛)

蓝桥杯全国软件和信息技术专业人才大赛简称“蓝桥杯”,是由工业和信息化部人才交流中心举办的国内最大的信息技术竞赛。为促进中小学科技创新,提升中小学生逻辑思维,发现和培养面向未来的科技精英人才。 蓝桥杯介绍 蓝桥杯全国软件和信息技术…

Linux操作系统使用及C高级编程-D6-D8Linux shell脚本

利用shell命令写的脚本文件,后缀是.sh shell脚本是一个解释型语言,不需要编译,可直接执行 书写:vi test.sh #!/bin/bash:说明使用的是/bin目录下的bash 说明完后即可编写脚本文件 bash test.sh:运行文…

企业级SSD还是一个巨大的蓝海~

根据Allied Market Research市场分析报告显示,2020 年全球企业级 SSD 市场规模为 178.5 亿美元,预计到 2030 年将达到 468.9 亿美元,2021 年至 2030 年的复合年增长率为 10.2%。 扩展阅读:华为展望|2030年数据中心存储…

【IDEA 使用easyAPI、easyYapi、Apifox helper等插件时,导出接口文档缺少代码字段注释的相关内容、校验规则的解决方法】

问题 IDEA 使用easyAPI、easyYapi、Apifox helper等插件时,导出的接口文档上面,缺少我们代码里的注解字段,如我们规定了NOTNULL、字段描述等。 问题链接,几个月之前碰到过,并提问了,到现在解决&#xff0c…