基于点云的三维重建_香港科技大学王煜教授:深度学习在物体三维重建中的应用...

基于单幅图像的物体三维重建是计算机视觉领域的一个重要问题, 近十年来得到了广泛地关注. 随着深度学习的不断发展, 近年来逐渐成为一个新的学术研究热点问题.

e745a48f0a7a24f9deb769353d0b0554.png

计算机视觉研究的主要目标之一是从二维图像复原三维结构. 二维图像是当今时代极易获取的数据形式, 互联网上每时每刻都在产生海量的图像数据, 而三维模型相对难以获取. 目前已经有许多基于多幅图像的物体三维重建方法被提出, 而基于单幅图像的物体三维重建问题因其输入形式的特殊性使得更具挑战性.仅以单幅图像作为输入使得重建丢失了很多几何信息, 这就需要一些假设或者先验知识, 亦或是从已有的模型基于学习来进行重建. 评价基于单幅图像的物体三维重建的重建精度目前仍没有一个固定的标准, 一些传统方法采用hausdorff距离作为评价重建效果的标准, 而随着深度学习的不断发展, IoU(Intersection over union)值被引入, 且被大多数论文采用为评价标准, 此外亦有论文采用更注重物体几何外形的CD(Chamfer distance)值等.

基于图像的三维重建具有重要的实用价值和应用前景. 随着互联网及电子商务的发展, 很多商家或者企业开始利用三维模型来帮助自己进行产品的展示与推广. 三维模型与二维图像相比, 因为多了一维信息,所以更能将物体的真实感和细节的质感与纹理表现出来. 同时, 在诸如虚拟现实、城市数字化建模、文物数字化保护、医学CT器官重建、三维影视动漫制作等领域, 基于图像的三维重建也具有广泛的应用. 多目图像三维重建往往需要相机标定等额外操作, 相比之下基于单幅图像的三维重建因其输入简单, 更适合于需要便捷式三维重建的应用场合, 因而近年来逐渐成为一个新的学术研究热点问题.

然而基于单幅图像的三维重建常常面临来自以下几个方面的挑战:

1) 类内差异和类间差异

不同的重建物体即使是同一个类型, 也会因为材料、外形等存在较大的差异性. 而不同类型的物体, 亦可能存在较大的相似性. 如果只是针对某个特定类别的物体进行三维重建往往会使重建系统缺乏一般性, 而针对多类别的重建系统则会因较大的类内差异和较小的类间差异使得重建精度不高, 如何构建既具有一般性又重建精度高的三维重建算法是目前研究的重点.

2) 图像自身属性

真实世界视图中的物体往往存在着遮挡、非刚性变形等现象, 且很多时候不满足理想的朗伯特反射模型, 这就使得待重建的物体存在较大的多样性, 因此对重建算法提出了更高的要求.

3) 不适定问题

基于单幅图像的三维重建本身就是一个不适定问题(ill-posed problem), 即由于输入形式为单幅图像, 深度信息不可避免地丢失, 如果不给定一些先验知识或者假设, 其重建结果是不唯一的. 如何根据一些假设和先验知识来重建出最适合的模型, 以及如何提供最少的假设和先验, 这对三维重建工作提出了不小的挑战.

随着深度学习技术的不断发展, 很多基于深度学习的三维重建方法近几年开始被提出, 逐渐成为该领域近年来研究的重点.

基于单幅图像三维重建研究的常用数据集 为了更好的研究基于单幅图像的物体三维重建, 构建大规模的三维模型数据集成为必然要求. 目前有多个三维模型的公共数据集供科研人员使用.

1) PASCAL 3D+数据集

PASCAL VOC数据集是在图像识别、图像分割和目标检测等领域经常使用的大型数据集, 它的广泛使用也推动了计算机视觉领域的不断发展. 而PASCAL 3D+正是基于PASCAL VOC 2012的12种刚体类别的图像,为它们添加了三维模型标注的数据集, 其每一类通过ImageNet扩展得到更多的图像, 最终每一类平均有3000左右的物体. 该数据集图像物体变化较大, 且包含遮挡和截断的物体, 能够更好的反应真实世界中的变化.

2) ShapeNet数据集

该数据集是由物体的三维CAD模型组成, 它也是目前为止包含丰富注释的最大的三维模型数据集. 其在WordNet分类下进行组织, 为每一个三维模型提供许多的语义注释, 包括物理尺寸、关键字等, 注释可通过基于Web的界面提供, 以实现对象属性的数据可视化. ShapeNet共包含超过300万个模型, 其中22万个模型被归类为3135个类别. 如下图为ShapeNet数据集部分三维模型示例.

3) Online Products数据集

该数据集包含在线销售的23000个物体的图像. 由于存在宽基线的问题, 传统的MVS和SFM方法无法通过这些图像进行重建.

4) ModelNet数据集

该数据集是当前规模较大、模型类别较多的一个大型CAD数据集, 收集了各类3D CAD网站, 3D Warehouse以及Princeton Shape Benchmark 660 种共计151125个CAD模型.

5) IKEA Dataset

该数据集收集了来自Google 3D Warehouse的225个IKEA的三维模型和从Flickr得到的800幅图像, 分为IKEA家具和IKEA房间两个部分, 主要集中了室内家具的模型, 模型类别及数量相对较少, 同时部分图像存在遮挡. 该数据集的每一幅图像都标注其关联的三维模型, 可以借此评估三维重建的效果.

d0ed383bc308d18c1df6438fd68182af.png
ca304b8c281199753132b38fc8a7142a.png
11bbac505d6923cbf03a55bdabf71726.png

ShapeNet数据集中部分三维模型示例

随着深度学习的不断发展和三维数据集的不断完善, 基于单幅图像的三维重建取得了较大的进展, 与传统手工设计的方法相比, 基于深度学习的端到端的训练方法能够直接以单幅图像作为输入, 并以重建的三维模型作为输出, 其提取特征效率更高, 重建效果更好. 同时深度学习使用诸如dropout等稀疏化网络参数的方法来防止过拟合, 以此来利用大规模的数据, 其具有更好的泛化性. 正如人看到二维图像即可联想到它的三维表示, 基于深度学习的单幅图像重建也越来越趋向于与人类认知三维物体方法相同的无监督学习, 也有越来越多的网络融合了单幅图像和多幅图像两种方式, 使得重建能够更加灵活.

综上所述, 基于深度学习方法相较于传统的方法拥有较多的优势, 并且在这一领域逐渐取得了显著进展, 但是与此同时在这一领域也存在着一些问题:

1) 公共数据集较小

对于一个三维重建任务来说, 增加训练数据的种类和规模可以增加学习的泛化能力. 但是与目前千万级的二维图像数据集想比, 三维公共数据集规模小、种类少. 即使是近年来发布的较大的数据集ModelNet也仅仅包含了来自662个类的127915个三维外形. 相信随着深度学习在三维领域的不断深入, 在未来会涌现出更大规模的三维公共数据集.

2) 重建分辨率及精度问题

三维物体相较于二维多了一个维度, 基于体素的重建随着重建分辨率的增加, 物体体积成立方体增长,使得受限于计算和内存, 重建物体常见的分辨率是32×32×32. 这样分辨率的重建结果是非常粗糙的, 离真实物体还有较大差距. 即使有针对这一问题提出改进的方法, 但改进后仍然无法达到较为精密的重建效果.而在以主要依赖于大规模多样性标记数据集的监督学习的方法中, 在实验中与真实模型的对比, 其重建精度也未达到0.85以上. 要提高基于体素重建的分辨率, 还要考虑三维体素的稀疏性, 未来针对如何在基于体素的重建中提升计算效率, 避免在未占用的部分浪费过多内存, 提高重建的分辨率以及如何改善网络结构以提高重建效果, 能够恢复更多细节, 这些仍然是未来值得关注的问题.

3) 基于点云和网格重建的问题

图像是结构化的, 可以表示为二维平面上的一个矩阵, 基于体素的重建使模型通过体素化变为二值模式, 也保证了大小的相同. 但三维点云和网格都是不规则的数据形式, 这使得学习方法的应用存在问题, 由于欧几里德卷积运算不能直接应用, 这些数据表示不能很好地适应传统的CNN. 目前针对该问题仅有少数前期探索工作, 其主要思路有: 1)将三维点云或者网格数据转化成二维图像, 再在神经网络中提取特征. 2)设计适应原始三维数据特点的网络模型, 如结合GCN的网络模型. 3)在三维外形上手工提取低级特征, 再采用深度学习模型提取高级特征. 但总体而言, 该问题仍未得到很好地解决, 如何设计能适应原始三维数据特点的深度学习模型, 如何设计点云生成网络的损失函数仍旧是未来一个值得研究的课题. 而基于网格的重建, 如何生成具有不同拓扑的对象, 仍然是一个具有重要意义的研究方向.

4) 单幅图像重建的不适定问题

正如在传统方法中所提到的, 对一幅图像的三维重建, 特别是对一幅来自真实世界的图像(区别于从CAD模型中生成的二维图像), 其不可见部分的几何外形需要猜测, 一幅图像往往可能对应多个不同的重建模型, 且他们均可以看作是该幅图像的重建结果. 从统计的角度来看, 输入图像的合理预测形成一个分布. 反映在训练集中, 两个看起来相似的图像可能具有相当不同的重建结果. 如果将这个问题看作一个回归问题,这就与传统的只有一个对应真实模型的三维重建大有不同, 定义正确的损失函数就显得尤为重要. 针对这一问题Fan等通过VAE的网络结构和其定义的MoN损失使得网络能对单幅图像生成多种可能的重建结果, 该方法进行了一次有益的尝试, 但在实现细节和准确度上仍有提高的空间.

5) 三维模型的表示形式和评价指标

与深度学习在二维图像中的应用不同, 目前人们仍然还在探索什么样的三维表示是最准确有效的, 因此基于体素、网格、点云表示的方法也都不断涌现. 而同样, 在对基于单幅图像的三维重建的评价标准上,至今也仍旧没有一个完全统一的定论, 哪种评价指标最能够反映重建的效果, 仍然有待进一步研究.

文章信息:陈加, 张玉麒, 宋鹏, 魏艳涛, 王煜. 深度学习在基于单幅图像的物体三维重建中的应用. 自动化学报, 2019, 45(4): 657-668.

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

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

相关文章

ranger管mysql_添加Kafka的Ranger访问权限策略

设置Kafka管理员权限在首页中单击“Kafka”区域的组件插件名称,例如“Kafka”。选择“Policy Name”为“all - topic”的策略,单击按钮编辑策略。在“Allow Conditions”区域,单击“Select User”下选择框选择用户。单击“Add Permissions”&…

ubuntu安装python3.6_Ubuntu上安装python3.6以及多版本python管理 | SQN

这篇文章记录了如何在Ubuntu上安装python3.6以及将其设置为系统默认。 查看Ubuntu版本 由于python3.6在不同的Ubuntu版本中的安装是不一样的,这里我们先来看一下的Ubuntu的版本,在terminal中输入lsb_release -a即可查看,例如我的Ubuntu版本为…

vue @click 多个事件_VUE学习记录3

v-on的基本使用​ 在前面的计数器案例中使用了v-on:click监听单击事件。这里在回顾一下&#xff1a;<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-w…

cas登录成功后不跳转成功页面_SpringSecurity用户登录成功后页面跳转原理剖析

Spring Security 框架在用户成功登录后的处理逻辑&#xff0c;相对来说比较复杂&#xff0c;比较绕&#xff0c;下面我们就关键逻辑&#xff0c;进行相关分析。首先&#xff0c;框架默认的 AuthenticationSuccessHandler 为 SavedRequestAwareAuthenticationSuccessHandler。判…

android pdf阅读器开发_如何在 Windows 10 中将 Firefox 设置为默认 PDF 阅读器

PDF 作为办公一族中的必备文档&#xff0c;很多人都会编辑或者创建 PDF 文档&#xff0c;而在 Windows 系统中并没有默认的 PDF 阅读器。而在新版的 Microsoft Edge微软已在开始提供有真正的高级 PDF 控件&#xff0c;从而使用户可以正常使用文档而无需其他专用 PDF 阅读器应用…

shell脚本和python脚本和go脚本的区别_Nodejs中调用系统命令、Shell脚本和Python脚本的方法和实例-Go语言中文社区...

NodeJS 子进程提供了与系统交互的重要接口&#xff0c;其主要 API 有&#xff1a;1)标准输入、标准输出及标准错误输出的接口&#xff1b;child.stdin 获取标准输入child.stdout 获取标准输出child.stderr 获取标准错误输出2)获取子进程的PID&#xff1a;child.pid提供生成子进…

js文件中怎么使用thymeleaf标签_007、Spring Boot集成Thymeleaf模板引擎

1. Thymeleaf 介绍Thymeleaf 是适用于 Web 和独立环境的现代服务器端 Java 模板引擎。Thymeleaf 的主要目标是为您的开发工作流程带来优雅的自然模板 - 可以在浏览器中正确显示的HTML&#xff0c;也可以用作静态原型&#xff0c;从而在开发团队中实现更强大的协作。 以上翻译自…

python语言中包含的标准数据类型_python标准数据类型(笔记一)

关于python&#xff0c;它是一种解释型&#xff0c;面对对象&#xff0c;带有动态语义的高级程序设计语言。 之前学习python的时候&#xff0c;简单的将python的基础内容过了一遍&#xff0c;然后在工作中需要用到什么就相应的去加深某一模块的需求以及应用&#xff0c;总觉得基…

python怎么输入一个数字并调用_python如何直接输入上一句话,如何快速打出上一句话...

如何快速打出上一句话 用搜狗或者QQ拼音打字法&#xff0c;里面有设置快捷键输入语就行了。 Python&#xff0c;怎么在输入非数字时&#xff0c;输出一句话 Python提供2113了两个内置函数从标准输入5261读入一行文本&#xff0c;默4102认的标准输入是键盘。如下&#xff1a;165…

python 打卡程序_如何用python实现腾讯文档自动打卡并定时执行

最近学了些Web&#xff0c;了解了一些selenum包内函数使用&#xff0c;就写了下自动健康打卡&#xff0c;并用windows任务计划程序定时执行&#xff0c;健康打卡这个针对特定网站&#xff0c;所以对于通用化使用倒没有太大用处&#xff0c;但关于腾讯文档如何填写&#xff0c;因…

springboot test_精益求精!Spring Boot 知识点全面回顾,带你重新细读源码!

作者&#xff1a;cyd_0619原文&#xff1a;https://blog.csdn.net/cyd_0619约定优于配置Build Anything with Spring Boot&#xff1a;Spring Boot is the starting point for building all Spring-based applications. Spring Boot is designed to get you up and running as …

事物日志恢复 mysql_浅谈SQL Server中的事务日志(五)----日志在高可用和灾难恢复中的作用...

本篇文章是系列文章中的第五篇&#xff0c;是对前一个日志系列的补充篇。如果您对日志的基本概念还没有一个比较系统的了解&#xff0c;可以参看本系列之前的文章&#xff1a; 浅谈SQL Server中的事务日志(一)----事务日志的物理和逻辑构架 浅谈SQL Server中的事务日志(二)----…

select count(*) from返回的类型_数据分析面试题类型汇总

1 简单查询- 基本的查询语句&#xff1a;select <列名> from 表名 where 条件- where 后的条件需要标量&#xff0c;不可以使用集合&#xff0c;若与关联子查询连用可用&#xff1b;可使用逻辑运算符连接多个条件&#xff1a;between、and、or、in&#xff08;&#xff0…

configurationproperties_【Springboot】注解@ConfigurationProperties让配置整齐而简单

1 简介前面我们用一篇文章《【Spring】只想用一篇文章记录Value的使用&#xff0c;不想再找其它了(附思维导图)》详细讲解了在Spring中如何使用Value来实现我们对配置的需求&#xff0c;它功能强大、使用方便。但它也是有它的局限性的&#xff0c;比如对于邮件服务&#xff0c;…

dmo Java_java DMO及增删改查代码的自动生成

在web开发过程中&#xff0c;尤其是后台管理系统的开发中&#xff0c;少不了增删改成的基础操作&#xff0c;原来我自己的做法是一份一份的拷贝粘贴&#xff0c;然后修改其中的不同&#xff0c;然而这样既枯燥无味又浪费了大量的时间&#xff0c;所以根据自己项目结构的特点写了…

if __name__ == __main___一文带你弄懂python中if __name__ == #39;__main__#39;

我们在python模块那章节的学习&#xff0c;有所接触到if __name__ __main__这个概念。当时我们只是大概描述了一番&#xff0c;不少伙伴还是有所困惑&#xff0c;今天就让我们通过实际例子去讲解这条语句到底有何含义。一个python文件有两种用途&#xff0c;一种被当主程序、脚…

java 生成apk包_Eclipse导出安卓apk文件的图文教程

安装到Android手机上的apk需要签名&#xff0c;本文描述了如何创建自己的签名及从Eclipse中导出apk。方法/步骤1、在Eclipse中选择一个Android工程&#xff0c;然后点击鼠标右键菜单中的“Export”&#xff1a;2、选择“Android”->;“Export Android Application”&#xf…

营业执照在线生成_平罗县实现个体户营业执照“秒批”

近日平罗县市场监管局注册登记窗口推出个体工商户“秒批”系统。今后&#xff0c;75%个体户常见经营项目可实现5分钟内乃至数秒无人工干预智能审批。01 一是实现智能化审批。平罗县市场监管局登记注册窗口依托自治区系统升级改造&#xff0c;推行企业设立登记标准化和智能化。…

wireshark-win64-3.4.0安装_轴承安装规范

Sulli小苏&#xff1a;今天详细介绍下如何正确的安装轴承&#xff0c;正确的安装操作是轴承长寿命的关键&#xff0c;轮毂轴承的主要作用是承重和为轮毂的转动提供精确引导&#xff0c;它既承受轴向载荷又承受径向载荷&#xff0c;是一个非常重要的零部件。轴承的安装正确方式滚…

代码实现tan graph model for classification_几行代码搞定ML模型,低代码机器学习Python库正式开源...

PyCaret 库支持在「低代码」环境中训练和部署有监督以及无监督的机器学习模型&#xff0c;提升机器学习实验的效率。想提高机器学习实验的效率&#xff0c;把更多精力放在解决业务问题而不是写代码上&#xff1f;低代码平台或许是个不错的选择。最近&#xff0c;机器之心发现了…