文章目录

  • 1. 概要
  • 2 Motivation
  • 3 思想
  • 4 算法
    • 4.1 可微凸指示器(Differentiable convex indicator)
    • 4.2自编码器:创建低维凸集
    • 4.3 显式解释
    • 4.4多凸面体分解:将对象表示为凸面的空间组成
    • 4.5损失函数
  • 5 实验结果
    • 5.1 抽象能力
    • 5.2 重建
    • 5.3 消融实验
  • 6 结论及思考

1. 概要

题目: CvxNet:Learnable Convex Decomposition,CVPR2020
论文:https://arxiv.org/pdf/1909.05736.pdf
Code:https://github.com/tensorflow/graphics/tree/master/tensorflow_graphics/projects/cvxnet
Video:https://www.youtube.com/watch?v=Rgi63tT670w
项目:https://cvxnet.github.io/
一句话概述:提出了一种基于原始分解的结合表示方法

背景知识
凸多面体,也称欧拉多面体。是一种简单多面体,即整个多面体都在其任何一个面所在平面同侧的多面体。凸多面体的任何一个面延展都不会通过它的内部,即把凸多面体的任何一个面伸展成平面,它的所有其他面都在这个面同侧。

凸对象(Convex Object)

  • 显示表达:通过计算凸包的顶点而派生的网络;结果直接,但训练较为复杂。
  • 隐式表达:1. 半空间约束或支持集合的集合;2. 适合于神经网络的训练;3. 是从徐耀表示的几何拓扑中抽象出来。训练是一个简单的分类问题,但是表面就需要通过移动立方体来提取。

高维数据表达
体素:

  • 高维表示,用于判别模型和生成模型
  • 缺点:内存要求高,分辨率<643;
  • 改进:利用体素稀疏性的八叉树,可以减少内存消耗,但更为复杂

表面:

  • 多边形网格,用于图卷积,网络的输出
  • 缺点:可能会产生自相交的网络

点云:

  • 高维表示,由深度传感器得到作为输入或中间结果
  • 缺点:想要生成3D网格会较为复杂

图元:

  • 通过一组体积图元来近似输入形状
  • 体素可以视为图元为单位立方体的情况
  • 其他方法:构造实体几何

2 Motivation

基于计算机图形学基础,任何固体对象可以分解为凸多面体的集合。也可以理解成为图元构成最终图的过程。

3 思想

传统显示表达,结果非常直接,但是训练较为复杂;
而隐式训练是一个简单分类问题,但是表面需要通过移动立方体来提取。
而所提出的Convex,是基于凸组合的混合表示,表示低维凸面族,通过自动编码过程自动派生。可应用在自动凸分解、图像到3D的重建,以及零件的形状检索当中。

4 算法

4.1 可微凸指示器(Differentiable convex indicator)

  • 在超平面表示部分,Hh(x)H_h(x)Hh​(x)表示点x的符号距离(signed distance)。
  • ϕ(x)\phi(x)ϕ(x)表示 符号距离函数,为了促进梯度学习,因而提出这个函数,通过使用平滑最大函数来实现连续性。
  • 指示函数C,最后使用sigmoid是由于ϕ(x)\phi(x)ϕ(x)梯度不一定全部都等于1,所以需要sigmoid对齐进行转换。

所以,给定超平面参数的集合,该可微分模块会生成一个可以在任何位置x求值的函数。

说明:
符号距离函数:在度量空间中的集合Ω\OmegaΩ, 给定点到Ω\OmegaΩ边界和∂Ω\partial \Omega∂Ω的距离,并且有x是在Ω\OmegaΩ内还是Ω\OmegaΩ外确定符号距离函数的正负号。
δ\deltaδ: 控制生成凸物体的平滑度
σ\sigmaσ:锋利程度

4.2自编码器:创建低维凸集

任何凸对象可由足够多的超平面构成。
D导出 超平面参数的集合。理论上讲,H顺序不影响其形状。D将单个超平面与方向关联起来。

图4解释了参数H之间的相关性:

  • 可解释性
  • 虽然理论上对H个超平面进行置换会生成相同的凸面,但解码器D会将特定的超平面与相应的方向相关联;


图5说明:
由于椭圆体和定向的长方体是凸面的,所以认为体系结构能够概括VP【68】和SIF【21】中提出的核心几何图元

4.3 显式解释

网络所产生的的图面有一个明确的解释:可以将其从超平面转换到到多边形网格。
且只需要执行两个对偶变换,以及两个H点凸包的计算即可。
具体的:先将预测的半空间通过对偶变换转换为点,然后计算这些点的凸包,再通过对偶变换转换为多边形网格。

4.4多凸面体分解:将对象表示为凸面的空间组成

这里的着重点不在于最终图像的生成,而是抽象出来其形状与姿态。
非凸对象表示为凸的组成

编码器E输出所有K个凸面的低维表示,D将其解码为K个参数元组的集合 shape { βk } 和location { Tk }

Tk(x) = x + ck 将点从世界坐标转换为局部坐标

4.5损失函数

对象近似损失为主要部分,其余损失函数为辅助部分。

对象的近似损失

分解损失:使得元素之间尽量不重叠。
描述了元素间的重叠抑制。RELU仅当有重叠存在的时候激活该损失。

唯一参数化损失:可能存在令空间的情况,也即偏移量为0的解。需要将原点移动到凸面内的另一个位置。所以通过最小化Lunique可获得唯一解且使得凸面体中心化。这个损失也可以保证不活跃的超平面限制在学习过程中可以被再次激活。保证与表面紧密贴合,所以对形状改变异常敏感。

导向损失:使用离线采样来加速训练。然而这会导致凸面体产生太多碎片,存在空隙,会在学习过程中小时。这是由于上一个Lunique损失导致的。所以这里需要使用该损失保障至少N个最近点在凸面体内部。

局部化损失:由于sigmoid函数,当一个凸点远离内点的时候,Lguidane将发生梯度小时的情况,所以提出了该损失。亦即需要寻找少量近似于输入形状的图面,所以要抑制远距的。

合并损失:(导向损失+局部化损失)

5 实验结果

实验设置:

  • 离线对地面真实形状上的一组点进行采样,预先计算地面真实量,然后在训练循环中从该集合中进行子采样。
  • 使用OccNet中的体积样本,SIF中的表面样本
  • 网络框架:
    Depth-3D:50个凸面,每个凸面具有50个超平面;
    RGB-3D: 50个凸面和25个超平面
    编码器E: ResNet18
    全连接层:256维latent code
    解码器D:隐藏层(1024、1024、2048、|H|),输出尺寸(|H|=K(4+3H))
    K凸面数,H超平面数
    4:3个平移+1个平滑度
    3H:法线、偏移量

数据集:

  • ShapeNet数据集、PartNet标签
  • 体素化、渲染和数据拆分[16]

对比方法:

  • 与自监督方法定量比较
  • 简单圆柱体组合VP[68]、结构隐式函数SIF[21]
  • 学习隐式函数的不可即使表示形式:OccNet[44]、P2M[71]、AtlasNet[26]

度量指标:

  • The Volumetric IoU
  • The Chamfer-L1 distance:测量重建精度和完整性之间的平均值
  • Fscore:正确重建表面的百分比

5.1 抽象能力

图9:通过改变组件的数量来评估形状的抽象能力。
考虑两点:1.简约性欲重构精度之间的权衡;2. K代表凸面数量。

图10:基于零件的检索。是对对应关系的进一步探索。

图11: 期望相同的第k个凸面代表相同的成分(图左),然后将最常用的关联标签分配给给定的凸面,从而获得相对较高的准确性(图右)。可以看成是利用了其语义结构。

5.2 重建

图12:重建。

在单类和多类的情况下都测试,发现说多类下对depth所有类都有用,但RGB只有部分有用。其中一个原因是,从深度图中学到的局部几何信息对于分类是不可知的。而对于RGB而言,其拥有复杂的纹理,且每个问题在每个类中是稳定的,但不容易进行跨类转移。

5.3 消融实验

可以看到音响和柜子之所以会混淆是因为其隐性编码部分是接近的。这也就解释了为什么类别区分不明显。与OccNet效果类似。

6 结论及思考

这是一个独特的表达3D物体的一个思想。运用图形学上的一些概念,来模拟生成过程。其和2D流体不断转换最终变成3D形状有类似之处。区别在于描述是凸面体构成还是2D平面的各种转换。

另外觉得说其实这个超平面的思想和SVM及其的相像。

这个方法算是隐式和显式中间的一种trade-off吧

参考:
https://blog.csdn.net/u013519537/article/details/107367107/

【点云相关】CvxNet:Learnable Convex Decomposition相关推荐

  1. 【ICCV2019】点云相关论文解析

    今年ICCV19涉及点云的相关论文一共49篇(keyword:point),标题直接包含点云的26篇(keyword:pointcloud).后续在浏览今年论文时会持续更新.这篇博客挑选了其中一些感兴 ...

  2. CVPR2020 3D点云相关论文思想和方法总结

    CVPR2020 3D点云相关论文思想和方法总结(持续更新) A. 3D目标检测和跟踪 1. A Hierarchical Graph Network for 3D Object Detection ...

  3. 【产业互联网周报】百度、金山、用友发布最新财报,披露智能云相关业务进展...

    关注ITValue,看企业级最新鲜.最具价值报道! 图片来源@视觉中国 | [产业互联网周报 是由钛媒体TMTpost发布的特色产品,将整合本周最重要的企业级服务.云计算.大数据领域的前沿趋势.重磅政 ...

  4. echarts字符云相关配置说明

    4.9版本字符云相关配置项 字段 字段说明 type 类型wordCloud gridSize 网格大小,各项之间的间距 shape 图表形状,一般分为 circle 圆,cardioid 心, di ...

  5. iOS应用支持IPV6及阿里云相关配置

    http://www.jianshu.com/p/a6bab07c4062 果然是苹果打个哈欠,iOS行业内就得起一次风暴呀.自从5月初Apple明文规定所有开发者在6月1号以后提交新版本需要支持IP ...

  6. 笔记:云相关基础知识

    云概念 Iaas.Paas.Saas IaaS (基础设施即服务) 主要提供:服务器.存储.网络.负载均衡器.防火墙.诸如 DNS 等基础服务 可以根据消耗量购买硬件.可扩展 用户可以在云服务提供商提 ...

  7. 机智云相关的控制协议和上报协议简介

    大家好,今天小编给大家介绍一些机智云通信协议相关的基础知识,欢迎一起交流学习. 1.gagent目录 该目录下的文件为机智云设备接入协议库文件,包括mqttlib.o,mqttgat.o等mqtt(M ...

  8. 敏感词检测:整合阿里云与腾讯云相关API

    前言 项目地址:Text-Sensitivity 笔者在开发小程序时,由于需要对用户输入内容进行敏感词检查,故需要使用现有服务商的相关API(自行开发NLP产品,难度大). 我们技术团队初步使用的是腾 ...

  9. 金龙云介绍——城轨云相关

    "金龙云",是北京城建集团核心自主知识产权的城轨综合服务云产品系统,目前在昆明四号线有应用. 背景: 随着城市交通的快速发展,城市轨道交通列车的数量日益剧增,客运量及需求的不断膨胀 ...

最新文章

  1. hdu 4278 2012天津赛区网络赛 数学 *
  2. 使用Python实现真正意义上的随机数,谁能破解奖励1千万
  3. win7下编译uCOS-II
  4. hdu 1086(判断两线段是否相交)
  5. 渲染性能测试 , 结果比想象中好很多.
  6. Windows 10 解决 0x80070021 错误
  7. 数据库设计笔记——关系型数据库基础知识(三)
  8. Find and Delete Files with Extension Name
  9. 树莓派官方支持的Tensorflow版本
  10. 有意思的clip-path
  11. leetcode 13 13. 罗马数字转整数 (python)
  12. Http压力测试工具HttpTest4Net
  13. python GIL 全局锁
  14. Python编程实践—打印 九九乘法表的几种方法
  15. 小黑课堂c语言题库,未来教育和小黑课堂哪个好 试卷题目是一样的吗
  16. 使用WebPack构建UMD库兼容性原理浅谈
  17. VB 四言古诗词赏析 制作
  18. Uboot DM9621网卡移植之路
  19. mac 给 iPhone 充电一直闪跳
  20. Linux下shell脚本的4中执行方式

热门文章

  1. PNG或JPEG或PDF转eps
  2. 科普贴,告诉大家SGLTE、SVLTE、CSFB、SRLTE的意思
  3. coreldraw2023安装教程及新功能讲解
  4. 【论文阅读笔记】High Quality Monocular Depth Estimation via Transfer Learning
  5. Kafka:High level consumer vs. Low level consumer
  6. 华为平板可以安装python_平板电脑能否代替笔记本电脑?平板电脑购买指南
  7. 石墨烯和碳纤维的联系与区别
  8. 从零开始学前端第十七讲--微信小程序开发入门
  9. 中兴oltc320用户手册_中兴OLT常用命令
  10. [转]中英文停止词表(stopword)