点击上方“3D视觉工坊”,选择“星标”

干货第一时间送达

作者:Karbo

链接:https://arxiv.org/abs/2002.06597

来源:https://zhuanlan.zhihu.com/p/107658473

作者已授权,未经许可请勿二次转载。

摘要

1.探讨的问题:如何从三维物体的隐函数(implicit functions)表示,来尽可能精确地恢复出该物体的三维网格(mesh)?

2.传统方法:最常见的网格化方法是Marching Cubes(MC),但是它需要事先从三维空间中采样很多样本,即具有离散化的性质。并且只有当采样的分辨率很高时(例如  的采样数量),才有可能较为精确地恢复出隐函数所表示的三维物体网格。

3.本文做了什么:基于ReLU based MLP所具有的内在特殊性质,我们引入了analytic cells、analytic faces的概念,并给出了在何种条件下analytic faces会形成封闭的、分块线性的表面。并提出Analytic Marching(AM)算法,它可以绝对准确地恢复出被MLP学习得到的物体表面。

基本概念

1. 三维物体表示法:

  • 显式:明确地表示三维物体的表面,例如mesh,它使用共面的顶点来显式地定义物体的一块表面。或者使用分块的参数曲面,曲面的性质就描述了物体的表面。

  • 隐式:使用隐函数来描述物体的表面,例如隐函数: ,其  就定义了一个球体的表面,并且  定义了物体的外部,  定义了物体的内部。最常用的隐函数是Signed Distance Field(SDF),其数值是该点到物体表面的符号距离。

2. SDF在Deep Learning中的使用

  • 目前主流的三维物体网格重建的流程如下:将物体图片输入到CNN,而CNN输出描述物体形状的shape feature;将3D coordinate(点P)与shape feature输入到MLP,而MLP输出物体在该点P处的SDF值。重建时,从MLP采样  个点,并使用等值面提取算法(例如MC)得到三维物体的网格表面。

  • 但是这样就使得重建的精度与所选择的分辨率有关了。分辨率低了则精度低,分辨率高了则速度慢。并且MC得到的surface往往会丢失局部的尖锐细节。

方法

在此仅十分简单地介绍Analytic Marching的基本原理,此处的介绍十分不严谨,但是便于理解。形式化的数学描述和定理的证明请参见原文。
为了讨论简单起见,现考虑一个3层的MLP:其各层的结构为3-20-20-1,其中激活函数使用ReLU,而输出层不使用任何非线性函数,暂不考虑bias。
记输入为  ,第一个隐藏层的输出为  ,第二个隐藏层的输出为  ,则预测的sdf为  
不难发现,其中  可以替换成对角矩阵的形式,即  与  ,这里的  与  是描述第一层和第二层神经元激活状态的向量,例如  。简记  为描述整个MLP激活状态的向量。
那么给定  ,MLP则退化成一个线性的模型。其各层的输出均可以线性地计算:

 、 以及  。
而MLP退化必须要满足一些条件约束,即  必须给定不变,换言之,隐藏层神经元的激活状态要与  相符合: 且 ,也就是需要满足40个(2层隐藏层,每层20个神经元)不等式,我们简记为 

实际上,一般情况下,不等式组  定义了一个在3D空间中的凸多面体,我们称之为analytic cell;注意到  实质上可能是analytic cell内部的零值面,所以  定义了analytic face所以接下来的问题就是依据analytic face的定义式,求解出plane  与多面体  相交的顶点。所得的顶点实质上就是mesh的顶点。

根据求解出的顶点,我们其实可以推理出与该analytic face相邻的analytic cell的  值,举例说明如下:如果当前  ,并且当前的analytic face上的某条边,实际上是由第1个不等式约束所在平面  与等式约束平面  相交所得的,那么与其相邻的analytic cell的  (仅改变第一位,因为是“第1个”不等式约束)。

既然已知另一个新的  ,那么便可以循环求解,直到没有新的  出现并且所有的  都已经求解完毕,就算求解完成了。

结果

如上是定性的效果图,与之相对比的方法GM为GreedyMeshing、MC为MarchingCubes、MT为MarchingTetrahedra,DC为DualContouring。它们都依赖于采样的分辨率。而我们的Analytic Marching是绝对精确的,不依赖于参数设定。(更多的结果请参见原文)

我们的方法具有精度高、能恢复出尖锐细节、速度快等优点,具备一定的理论和实用价值。

推荐阅读:

吐血整理|3D视觉系统化学习路线

那些精贵的3D视觉系统学习资源总结(附书籍、网址与视频教程)

超全的3D视觉数据集汇总

大盘点|6D姿态估计算法汇总(上)

大盘点|6D姿态估计算法汇总(下)

机器人抓取汇总|涉及目标检测、分割、姿态识别、抓取点检测、路径规划

汇总|3D点云目标检测算法

汇总|3D人脸重建算法

那些年,我们一起刷过的计算机视觉比赛

总结|深度学习实现缺陷检测

深度学习在3-D环境重建中的应用

汇总|医学图像分析领域论文

大盘点|OCR算法汇总

重磅!3DCVer-论文写作投稿 交流群已成立

扫码添加小助手微信,可申请加入3D视觉工坊-论文写作与投稿 微信交流群,目前已满2000+人,旨在交流顶会(ICRA/IROS/ROBIO/CVPR/ICCV/ECCV等)、顶刊(IJCV/TPAMI/TIP等)、SCI、EI等写作与投稿事宜。

同时也可申请加入我们的细分方向交流群,目前主要有3D视觉CV&深度学习SLAM三维重建点云后处理自动驾驶、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、求职交流等微信群,请扫描下面微信号加群,备注:”研究方向+学校/公司+昵称“,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进去相关微信群。原创投稿也请联系。

▲长按加微信群或投稿

▲长按关注公众号

3D视觉从入门到精通知识星球:针对3D视觉领域的知识点汇总、入门进阶学习路线、最新paper分享、疑问解答四个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近1000+星球成员为创造更好的AI世界共同进步,知识星球入口:

学习3D视觉核心技术,扫描查看介绍,3天内无条件退款

圈里有高质量教程资料、可答疑解惑、助你高效解决问题

Analytic Marching:一种基于解析的三维物体网格生成方法相关推荐

  1. html webservice数据交互_一种基于WebService的数据交换方法

    一种基于WebService的数据交换方法 [专利摘要]本发明涉及数据交换[技术领域],特别涉及一种基于WebService的数据交换方法.本发明是以Web服务为依托,通过定义参数的方式进行传入内容和 ...

  2. 论文研读-AI4VIS-可视化推荐-VizML: 一种基于机器学习的可视化推荐方法

    VizML: 一种基于机器学习的可视化推荐方法 1 论文概述 1.1 摘要 1.2 引言 2 问题陈述 3 相关工作 3.1 基于规则的可视化推荐系统 3.2 基于机器学习的可视化推荐系统 4 数据 ...

  3. uvm 形式验证_一种基于UVM的总线验证方法与流程

    本发明涉及芯片设计的功能验证领域,尤其是一种基于UVM的总线验证方法. 背景技术: 随着集成电路工艺的不断进步,集成电路的规模和复杂度也在不断地提高,验证的难度也越来越大.在集成电路设计中,验证工作已 ...

  4. matlab车辆测距,一种基于单目视觉的车辆测距方法

    一种基于单目视觉的车辆测距方法 [专利说明]一种基于单目视觉的车辆测距方法 所属技术领域 [0001] 本发明属于目标检测与测距领域,尤其涉及一种基于单目视觉的车辆测距方法. [背景技术] [0002 ...

  5. matlab实现谱聚类法图像分割代码,一种基于谱聚类的图像分割方法与系统与流程...

    本发明是一种基于谱聚类的图像分割方法与系统,涉及聚类.机器学习和人工智能领域.特别涉及通过相关性将已经学习到的知识运用到图像分割中,并在此基础上构造性地改造谱聚类方法,从而达到快速精确地分割彩色图像的 ...

  6. linux 网络监控 邮件,一种基于Linux的邮件监控方法与流程

    本发明涉及计算机安全技术领域,具体地说是一种实用性强.基于Linux的邮件监控方法. 背景技术: 随着计算机的普及以及人们对个人信息安全的重视,如何保障计算机乃至个人信息的安全成为了一个至关重要的问题 ...

  7. python检索论文_一种基于Python的音乐检索方法的研究

    应用技术 0 前言 最近两年,人们对于流行音乐的追求与需求量日益增 加,但如何保证用户能在不知歌名只知歌词的情况下,完成 自己的全方面多种类的听歌需求呢?于是,电脑工程师就推 出了"听歌识曲 ...

  8. matlab 指纹,一种基于matlab的指纹识别方法

    一种基于matlab的指纹识别方法 [技术领域] [0001 ] 本发明涉及指纹识别领域,特别涉及一种基于MTLAB的指纹识别方法. [背景技术] [0002] 传统的安防系统主要采用基于令牌或密码的 ...

  9. 火焰识别python_一种基于人工智能的火焰图像识别方法与流程

    技术领域 本发明涉及消防技术领域,具体来说,涉及一种基于人工智能的火焰图像识别方法. 背景技术: 目前,随着社会科技的不断发展,人工智能系统是一种能模拟生物脑神经元在大脑中的真实链接,并对外来信号有自 ...

最新文章

  1. nginx-ingress 配置https,同支持http
  2. python算法很难吗_python 机器学习难吗?
  3. OpenTTD 1.9.0-beta3 发布,开源模拟经营游戏
  4. Arduino UNO WIFI开发板,学习必备开发套件
  5. 每日一题(42)—— 已知一个数组table,用一个宏定义,求出数据的元素个数
  6. Win10系统如何查看声卡ID
  7. 隔年增长的题_资料分析——隔年增长
  8. 计算机的主机主要由什么和什么不同,台式电脑主机由什么硬件组成?
  9. Python数据挖掘和机器学习
  10. bzoj 4596: [Shoi2016]黑暗前的幻想乡
  11. 【Vue】—计算属性
  12. 图像变换——分段线性变换
  13. 架构之旅~一个操作的返回要有一个标准,看我的公用消息类
  14. 保障系统迁移服务器搬迁,整体中心机房搬迁服务器idc数据迁移方案应用场景
  15. Vue2 Browserslist: caniuse-lite is outdated. Please run: npx browserslist@latest --update-db
  16. android rom打包解包工具,Android ROM包定制(解包,增删模块,打包)
  17. 逻辑电路 - 或门Or Gate
  18. 使用oa系统租用移动服务器,oa系统云服务器租赁
  19. 可行解、最优解、基解、基可行解、基最优解
  20. html 文字两边加横线\竖线\ Css3中间文本两侧横线

热门文章

  1. Map集合中value()方法与keySet()、entrySet()区别 ——转载
  2. 目前网络上开源的网络爬虫以及一些简介和比较
  3. 【转】每天一个linux命令(34):du 命令
  4. C# 网络编程之豆瓣OAuth2.0认证具体解释和遇到的各种问题及解决
  5. Unity3D开发赛车Demo遇到的问题
  6. thinkJava@第五章@隐藏实施过程
  7. windows 7下安装VS2005,SQL Server2005,VS2008
  8. 【万字长文】吃透负载均衡
  9. 3天我把DDD业务领域建模、数据库、聚合彻底撸干净了!
  10. 微服务架构10个最重要的设计模式