LVS Kotlin centos7 caching nuget vue实现原理 bootstrap后台管理系统模板 广告投放系统源码 jquery事件绑定 jquery删除子元素 js获取数组第一个元素 java获取字符串 pythoninput java获取 linux系统安装 怎么装linux系统 登录界面html 东方头条邀请码 黑白照片一键变彩色 winhex使用教程 无限弹窗bat 选择模拟位置信息应用 通讯录管理系统 iframe跨域 骰子gif dota2控制台 lol不能全屏 天谕玲珑技能加点 语音转文字转换器 ps给图片加边框 淘宝店铺会员 mysql闪退 ps减去顶层 电力猫怎么用 战地4配置 机器人走迷宫 追加评论可以删除吗 爬虫项目 jq手册 vibe算法
当前位置: 首页 > 学习教程  > 编程语言

BSP-Net: Generating Compact Meshes via Binary Space Partitioning精讲

2020/12/28 19:06:31 文章标签:

在近日举行的 CVPR 2020 大会上,最佳论文、最佳学生论文等奖项悉数公布。加拿大西蒙弗雷泽大学陈之钦(Zhiqin Chen )等人的「BSP-Net」相关研究获得了最佳学生论文奖,他们的论文题目是《BSP-Net: Generating Compact Meshes via B…

在近日举行的 CVPR 2020 大会上,最佳论文、最佳学生论文等奖项悉数公布。加拿大西蒙弗雷泽大学陈之钦(Zhiqin Chen )等人的「BSP-Net」相关研究获得了最佳学生论文奖,他们的论文题目是《BSP-Net: Generating Compact Meshes via Binary Space Partitioning》。在最新一期的机器之心 CVPR 2020 线上论文分享中,西蒙弗雷泽大学 (SFU) 博士一年级学生陈之钦以第一作者的身份向我们分享了这篇最佳学生论文。

在这项研究中,西蒙弗雷泽大学和谷歌研究院的三位研究者提出了一种无监督方法,能够通过 convex decomposition 生成紧凑的结构化多边形网格。

图片

  • 论文地址:https://arxiv.org/pdf/1911.06971.pdf

  • 项目地址:https://github.com/czq142857/BSP-NET-original

多边形网格在数字 3D 领域无处不在,但它们在深度学习革命中仅扮演了配角。在学习形状生成模型这一方向上,领先方法要依赖于隐函数,并且只有经过昂贵的 iso-surfacing 处理过程才能生成网格。为了克服这些困难,该研究在 Binary Space Partitioning(BSP,计算机图形学中的经典空间数据结构)的启发下探讨了促进 3D 学习的方法。

BSP 的核心是对空间进行递归细分以获得 convex set。利用这一属性,研究者设计了 BSP-Net,一个通过 convex decomposition 来学习 3D 形状表征的网络。重要的是,BSPNet 是无监督的,因为训练过程中不需要 convex shape decomposition。

该网络经过训练,利用一组 convex 来重建一个形状,这些 convex 来自构建在一组平面上的 BSPtree。由 BSPNet 推断出的 convex 可被轻松提取以形成多边形网格,而无需进行 iso-surfacing 处理。生成的网格是紧凑的(即 low-poly),非常适合表示尖锐的几何形状。此外,它们一定是紧密的网格,并且可以轻松地被参数化。该研究还表明,BSP-Net 的重构质量可以媲美 SOTA 方法,且它使用的 primitive 要少得多。

 

方法详解

 

该研究试图找到一种既能训练又可解释的几何图形深度表征。研究者们通过设计一种能提供可微分 BSP-tree 表征的网络架构来完成这个任务。由于这种表征通过隐函数编码几何图形,所以它们很容易训练。此外,由于这些表征的输出是 convex polytope 的集合,所以它们是可解释的。

研究者提出了 BSP-Net。该网络学习一个隐式场:给定 n 个点的坐标和一个形状特征向量作为输入,网络输出一些能够指示这些点是在形状内部还是外部的值。这个隐函数的构造如图 2 所示,由三个步骤组成:1)平面方程的集合意味着空间的 p 个二叉分割的集合,参见图 2(上);2)一个算子 T_{p×c}将这些分割结果分组,以创建一个包含 c 个 convex shape primitive/part 的集合;3)最后,合并这些 part 集合以生成输出形状的隐式场。

图片

下图 3 显示了与以上三个步骤对应的网络架构:

图片

1)超平面提取。给定一个特征向量 f,应用一个多层感知机图片获取平面参数 P_{px4},其中 p 是平面的数量,即图片

对于任意点图片,乘积图片 是该点到每个平面的符号距离的向量。如果点 X 在内部,则第 i 个距离为负值,反之为正值。

2)超平面分组。为了将超平面分为若干组几何 primitive,研究者利用了二进制矩阵 T_{p×c}。通过一个最大池化操作,他们聚合了输入平面,以形成一组 c 个 convex primitive 组成的集合。

图片

注意,在训练期间,梯度只能通过一个最大(max)的平面。因此,为了简化训练,研究者利用了一个用求和代替 max 的版本。

图片

3)形状组装。该层通过最小池化对 convex 进行分组,以创建一个可能非凸的输出形状:

图片

注意,此处用 C^+ 是有目的的。之所以避免使用 C^*,是因为在 TensorFlow 1 中的算子实现内存不够高效。

为了促进学习,研究者通过使用(加权)求和来将梯度分配给所有的 convex:

图片

实验结果与评估

 

在一个 2D 形状合成数据集上,研究者分析了 BSP-Net 的行为。此外,他们还将 BSP-Net 与其他 SOTA 方法进行了比较,以评估该研究中的自编码器以及单视图重建效果。

 

2D 形状自编码

 

为了说明 BSP-Net 效果如何,研究者构建了一个 2D 合成数据集。他们在几个 64 × 64 的图像上分别放置了一个菱形、一个十字以及一个空心菱形,如图 4(a)所示。这三种形状是有顺序的,菱形总是在左边,空心菱形总是在右边,这是为了模仿 ShapeNet 等形状数据集的结构。

在第一阶段的训练之后,该研究的网络已经实现了良好的近似 S^+ 重建,但是,通过查看 S^∗,研究者发现他们推断的输出还存在一些缺点。在第二阶段进行了调整之后,该研究的网络实现了近乎完美的重构。最后,使用 overlap 损失显著提高了表示的紧凑性,减少了每部分的 convex 数量,如图 4(d)所示。

图片

图 4:在 2D 合成数据集上的评估——自编码器是在合成的 2D 数据集上训练的。研究者展示了自编码结果,并用红色圈出了第一阶段中存在的错误,这些错误在第二阶段已改正。此外,研究者还展示了使用 overlap 损失的效果。注意,在可视化时,使用了不同的颜色来表示不同的 convex。

 

3D 形状自编码

 

对于 3D 形状的自编码,研究者将 BSP-Net 与其他一些 shape decomposition 网络进行了比较,包括 Volumetric Primitives(VP)、Super Quadrics(SQ)以及 Branched Auto Encoders(BAE)。

表 2 给出了每种类别的分割结果。

图片

BSP-Net 在保证高分割准确度的同时,也能显著提高重构质量,如表 1 和图 7 所示。

表 1:各个模型的表面重构质量和 3D 形状自编码结果对比。

图片

图 7:分割和重建 / 定性研究。

 

单视图重建(SVR)

 

在单视图重建任务上,研究者将 BSP-Net 与 AtlasNet、IMNET 和 OccNet 做了比较,表 3 和表 4 中给出了定量分析结果,在图 8 中给出了定性结果。

图片

表 3:单视图重建,与 SOTA 方法的比较。

图片

表 4:low-poly 分析——单视图重建中的数据集平均指标。

图片图 8:单视图 3D 重建,该模型与 AtlasNet [16]、IM-NET [5]及 OccNet [28]的比较结果。

扫描二维码

获取更多精彩

机器之眼

图片


本文链接: http://www.dtmao.cc/news_show_550169.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?