点云数据生成三维模型_可直接编辑的高质量3D生成模型:三维深度生成方法SDM-NET...

机器之心发布作者:赵悠悠

中科院计算所、香港城市大学、英国卡迪夫大学以及加拿大西蒙弗雷泽大学的研究者,近日提出了一种能够表达几何细节和复杂拓扑结构的三维模型深度生成方法 SDM-NET,解决了之前方法的一部分局限性,使得生成的模型具有高质量的几何细节并可以支持快速编辑。该研究已被计算机图形学顶会 Siggraph Asia 2019 接收。

三维模型的生成一直是计算机图形学领域一个热门方向。不同于三维模型,二维图像的生成在深度神经网络的帮助下,已经有了高质量的结果,基于深度网络的图像生成方法生成的图像已经足够以假乱真。


例如,Deep Fake 已经可以做到非常真实的人脸替换。许多研究者尝试将深度网络类似地应用于三维模型的生成上,但因为缺乏有效的表示方法,生成的模型不具有精细的几何细节。例如,基于点云的方法,是在空间中离散分布的采样,无法刻画几何模型的细节和拓扑;基于体素的方法受限于复杂度的问题,分辨率较低;基于片网的方法对模型的表面进行逼近,但是仍然无法表示连续曲面。因此,学界及业界尚未有合适的高质量的三维模型深度生成方法。
中国科学院计算技术研究所的学者在三维模型的高质量生成方法上进行探索,在三维模型的表示上有了系列的研究基础 [1,2,3]。为了进一步生成具有复杂拓扑结构及高质量几何的三维模型,中科院计算所,联合香港城市大学、英国卡迪夫大学以及加拿大西蒙弗雷泽大学的研究者,提出了一种能够表达几何细节和复杂拓扑结构的三维模型深度生成方法 SDM-NET,解决了之前方法的一部分局限性,使得生成的模型具有高质量的几何细节并可以支持快速编辑。
论文地址:https://arxiv.org/pdf/1908.04520.pdf
项目主页:http://geometrylearning.com/sdm-net/论文:SDM-NET: Deep Generative Network for Structured Deformable Mesh
该方法涉及一种新的三维模型编码方式,同时深度生成网络的设计也与这种编码方式耦合在一起,完成对三维模型的生成,生成的三维模型可以直接进行编辑。图一展示了在 SDM-NET 隐含层上插值生成的高质量结果,能够实现模型拓扑之间的连续变换,如飞机引擎的从无到有。图二展示了 SDM-NET 与其他方法在细节上的比较。

f190648bbcdd0e13392675162699e825.png

图一:SDM-NET 隐含层插值生成模型结果

d5cf76b8b810f093294703192c1ee2ed.gif

图二:细节展示及对比
SDM-NET 的生成模型具有的另一大优势是可直接编辑,如下面这段动图所展示的,由 SDM-NET 生成的模型可以直接进行交互式的变形(如删除扶手、拉长椅腿及椅背等)。

962ee4a402271f34f0282d41ac85491e.gif

SDM-NET 生成的模型可以直接变形编辑
研究人员在最近于澳大利亚布里斯班举行的 Siggraph Asia 2019 上展示了他们的研究成果,Siggraph Asia 是 CCF A 类会议,计算机图形学领域的顶级会议,每年都会发布图形学领域中高质量的最新研究和学术成果,今年的会议吸引了将近一万人参会,包括学者、工程师、艺术家和学生等。
被该会议接收的论文都会发表在 ACM Transactions on Graphics 期刊上。该期刊的 SCI 影响因子在 ACM 出版的所有期刊中排名第一,享有极高的声誉,是被学界及业界高度认可的 ACM 汇刊。如下图(来自 ACM TOG 官网)所示,SIGGRAPH、SIGGRAPH ASIA 和 ACM Transactions on Graphics 具有同样高的质量。

142843c8ac27bf34979921776b587170.png

方法概述
一个咖啡杯能够由一个简单的圆圈变换得到,如图三所示,这是因为它们实际上是同胚的。一个咖啡杯的细节可以由变换来刻画,研究人员便利用细节等同于变换的思想来表示三维几何模型的细节。
同时,直接对模型整体建模比分块建模要更困难,为了实现高质量的三维模型生成,论文作者将完整的模型分割为具有特定语义标签的部件,逐一对每个部件进行建模。
如图四所示,为每一个部件构建轴对齐的包围盒,将包围盒同胚变换到被包围的部件上,刻画几何细节。对一类模型(如椅子类别)的不同部件分别进行上述操作,便将模型转换为几个同胚集合的并集。每个标签的部件集合对应一个同胚集合,集合中的变换进一步送到每个部件语义标签各自的变分自编码器(VAE)进行编码与学习。

430a956d31a49bb6167fc4f8f9ad3121.gif

图三:咖啡杯和圆圈是同胚的

79188590cd084b3b64948f2684c599ac.png

图四:对模型逐部件分析,构建网格包围盒,通过包围盒的变换刻画几何细节


三维模型不只具有精细的几何细节,同时还有复杂的拓扑结构。如图五所示,研究人员通过部件包围盒之间的支撑关系、对称关系来对模型的复杂结构进行建模。相比采用相邻关系,支撑关系更能准确描述部件之间的物理支持属性,从而保证生成的三维模型是物理上具有稳定支撑的特性。

56c8070d6b8ed2524c96e62c4b5c29a5.png

图五:分析部件之间的支撑关系、对称关系对模型复杂拓扑结构建模


将结构信息与刻画部件细节的变形信息串联在一起,得到模型部件完整的编码,如图六所示。研究人员进一步构建一个变分自编码器来联合编码模型的几何形状与拓扑结构,保证生成模型的几何与结构的一致性。这也是第一次尝试运用神经网络结构,对支撑形状结构进行编码。最终的网络由两级 VAE 组成,部件层次编码变形的 VAE 与模型层次联合编码几何和结构的 VAE,用于结构化变形网格的编码与生成,被称作 SDM-NET。在网络训练完成后,可生成高质量、平滑的三维模型。

d08127cbdae04b4c4911722d73871d00.png

图六:模型部件的完整编码结果展示

ba42d22f380a0f27b73ec0ddfbc32893.png

图七:与基于点云和片网的三维模型表示方法的比较

774315c63d7516b53ab3eea9d6575f18.png

图八:与基于体素的三维模型生成方法的比较
如图八所示,作者与基于体素的三维模型生成方法做了比较,可以看到在生成模型的质量上 SDM-NET 具有很大的优势。
下面这个动图展示了模型插值的结果,可以看到 SDM-NET 可以实现在不同拓扑结构模型之间的插值。

05963ab0ec08419e6ff2916134c76d8c.gif

SDM-NET 可以在不同拓扑结构模型之间插值

有关论文的更多细节,及论文、视频、代码的下载,请浏览项目主页。

f8b3c807f5bdb03b5179cd61038b58f7.png


参考文献:[1] Lin Gao, Jie Yang, Yi-Ling Qiao, Yu-Kun Lai, Paul L. Rosin, Weiwei Xu, and Shihong Xia. 2018. Automatic unpaired shape deformation transfer. ACM Trans. Graph. 37, 6 (2018), 237:1–237:15.

[2] Qingyang Tan, Lin Gao, Yu-Kun Lai, Jie Yang, Shihong Xia. 2018. Mesh-based Autoencoders for Localized Deformation Component Analysis. AAAI Conference on Artificial Intelligence (spotlight). 2452-2459.

[3] Lin Gao, Yu-Kun Lai, Jie Yang, Ling-Xiao Zhang, Shihong Xia, and Leif Kobbelt. 2019. Sparse Data Driven Mesh Deformation. IEEE Trans. Vis. Comput. Graph. (2019).

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

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

相关文章

golang调用java的函数_大话golang性能分析(一):profile基本原理

引言:好久没分享了,不多废话了,准备一个专题分三期来分享下golang的性能分析。O 专题目标理解profile基本原理熟悉go常用性能分析工具pprof快速对线上服务的cpu、内存、goroutine的问题进行分析和排查对性能分析,golang是采取采样…

Boost智能指针——weak_ptr

循环引用&#xff1a; 引用计数是一种便利的内存管理机制&#xff0c;但它有一个很大的缺点&#xff0c;那就是不能管理循环引用的对象。一个简单的例子如下&#xff1a; #include<string> #include<iostream> #include<boost/shared_ptr.hpp> #include<b…

Linux下,C++编程论坛题目抽取

从一个论坛主页开始&#xff08;固定的一个&#xff0c;比如学校的论坛&#xff09;&#xff0c;输出各个&#xff08;不用全部&#xff09;板块下若干个主题帖子&#xff08;比如1000个&#xff09;的题目&#xff0c;按功能模块保存在txt文件中。 输入关键词&#xff0c;在上…

lisp eval apply_SICP远古魔法-LISP概览(1-2)

我们之所以能够像今天这样构建丰富多彩的应用是因为&#xff0c;我们有大系统中控制复杂度技术。实际上这种技术在其它领域早已存在。例如造火箭&#xff0c;盖房子。但是计算机科学又和他们不太一样&#xff0c;因为计算机科学处理的不是真实的情况&#xff0c;而是虚拟的。 例…

奥拉星插件flash下载手机版下载安装_终于等到你!安卓微信7.0.13内测版发布 支持夜间模式 附下载地址!...

3月22日&#xff0c;iOS版微信迎来了7.0.12正式版更新&#xff0c;最大的亮点在于为iOS13设备加入了“深色模式”功能&#xff0c;虽然没有独立的控制开关&#xff0c;但可以跟随系统开启或关闭夜间模式。此外&#xff0c;iOS版微信7.0.12还优化了语音消息的发送体验&#xff0…

boost::weak_ptr和enable_shared_from_this

boost::weak_ptr和enable_shared_from_this shared_ptr在我的实践中使用很广,在接口层面上,我基本都会默认的使用shared_ptr.而weak_ptr则很少使用;即便使用,也是间接的使用,例如使得class A继承自boost::enable_shared_from_this,这样A便具有了一个weak_ptr的成员对象,我便可以…

WebSite和Web Application\网站与Web项目的区别

简要记录下&#xff1a;1、web应用程序Default.aspx显示有两个原有文件及Default.aspx.cs和Default.aspx.designer.cs&#xff1b;1、Web网站Default.aspx显示有一个原有文件Default.aspx.cs。 2、web应用程序有重新生成和发布两项&#xff1b;Web网站只有一个发布网站。 3、we…

linux(centos7)安装jdk

一、下载jdk1.8压缩包 官网链接如下&#xff1a; jdk官网 用xftp直接传输文件&#xff0c; 把下载好的jdk压缩包上传到Linux的文件夹下去到我们存放软件的文件夹下面&#xff0c;将刚刚下载好的压缩包通过如下命令进行解压&#xff1a; tar -zxvf jdk-8u321-linux-x64.tar.g…

inner join 和join的区别_left join、right join和join ???

点击上方“JAVA”&#xff0c;星标公众号重磅干货&#xff0c;第一时间送达有个困扰 说到SQL&#xff0c;很多人可能用了挺久&#xff0c;但依然有个问题一直困扰着&#xff0c;那就是 left join、 join、 right join和 inner join等等各种 join的区别。网上搜&#xff0c;最常…

黑马程序员顺义校区php_黑马程序员:从PHP零基础到月薪11K为何送锦旗给班主任?...

2016年我在传智播客学习完PHP以后&#xff0c;特意给班主任王智慧老师送了一面锦旗。为什么我会送锦旗&#xff0c;那是因为从她当我们班主任开始&#xff0c;就非常的负责&#xff0c;对我们非常的好&#xff0c;这个可以随便问问班里的同学。而且我能找到高薪工作跟她对我的鼓…

C++中std::tr1::function和bind 组件的使用

在C的TR1中(Technology Report)中包含一个function模板类和bind模板函数&#xff0c;使用它们可以实现类似函数指针的功能&#xff0c;但却却比函数指针更加灵活&#xff0c;特别是函数指向类的非静态成员函数时。可以参考Scott Meyers. <<Effective C (3rd Edition)>…

linux(centos7)安装MySQL

一、删除MariaDB的文件 通过命令查询MariaDB&#xff1a;rpm -pa | grep mariadb 通过命令删除查找到的程序rpm -e 查找到的文件名 如果删除失败&#xff0c;就通过下面的命令强制删除&#xff1a;rpm -e --nodeps 查找到的文件名 二、安装MySQL 1、安装mysql repo源 …

python ddos攻击脚本_python版本DDOS攻击脚本

今天为了休息下&#xff0c;换换脑子&#xff0c;于是就找到了我之前收藏的一篇python的文章&#xff0c;是关于ddos攻击的一个脚本&#xff0c;正好今天有空&#xff0c;就实践下了。 附上源码pyDdos.py:#!/usr/bin/env python import socket import time import threading #P…

设计模式 - Command

意图&#xff1a;将一个请求封装为一个对象&#xff0c;从而使你可用不同的请求对客户进行参数化&#xff1b;对请求排队或记录请求日志&#xff0c;以及支持可撤消的操作。 class Receiver { public:Receiver(){}virtual ~Receiver(){}virtual void Action(){cout<<&quo…

代码中特殊的注释技术——TODO、FIXME和XXX的用处

前言&#xff1a;今天在阅读Qt Creator的源代码时&#xff0c;发现一些注释中有FIXME英文单词&#xff0c;用英文词典居然查不到其意义&#xff01;实际上&#xff0c;在阅读一些开源代码时&#xff0c;我们常会碰到诸如&#xff1a;TODO、FIXME和XXX的单词&#xff0c;它们是…

我有机器人合体成一个大力神_史上最菜大力神(三)——SS加强级高塔

史上最菜大力神&#xff08;三&#xff09;——SS加强级高塔​mp.weixin.qq.com上次开箱废渣和狂暴的时候&#xff0c;误把电影中出现的高塔当作废渣&#xff0c;犯下了一个不大不小的错误&#xff0c;如今真正的高塔终于来了。史上最菜大力神&#xff08;一&#xff09;——SS…

c语言判断闰年_C语言1博客作业06 - D丶千思

1.作业头实验作业输入在一行中按照格式“yyyy/mm/dd”(即“年/月/日”)给出日期。注意&#xff1a;闰年的判别条件是该年年份能被4整除但不能被100整除、或者能被400整除。闰年的2月有29天。.1数据处理数据表达&#xff1a;采用整形定义变量Y(year)&#xff0c;M(month)&#x…

新版本idea的run/debug configuration

点击Edit Configuration点击modify options的下拉选项根据需要勾选相应的选项

登录用户Eclipse中SVN访问用户的变更办法

废话就不多说了&#xff0c;开始。。。 有点标题党了&#xff0c;呵呵 其实不止Eclipse成集SVN&#xff0c;全部SVN拜访用户的更变&#xff0c;都可以参照面下的式方 每日一道理 谁说人与人隔着遥远的重洋&#xff0c;谁说心与心设着坚固的堤防&#xff1f;十六岁的鸟儿飞上天空…