【点云处理之狂读论文经典篇1】——3D ShapeNets: A Deep Representation for Volumetric Shapes
3D ShapeNet:一种体素形状的深度表示方法
- 1.摘要
- 2.引言
- 3.相关工作
- 4.3D ShapeNets
- 4. 2.5D Recognition and Reconstruction
- 4.1 View-based Sampling
- 4.2 Next-Best-View Prediction
- 5.ModelNet: A Large-scale 3D CAD Dataset
- 6.实验
- 6.1Classification and Retrieval
- 6.2 View-based 2.5D Recognition
- 6.2Next-Best-View Prediction
- 7.总结
1.摘要
- 提出了一种将几何3D形状表示为3D体素网格中的二值变量概率分布方法,然后用卷积深度网络进行处理。
- 不仅可以对3D形状进行操作,2.5D的深度图也可以处理,可以使用单视图的方法,也可以使用Next-Best-View 优化识别率。
- 构造了ModelNet,一个规模很大的CAD模型3D数据集,用于3D深度训练。
2.引言
- 本文探寻一种能够用于目标识别和形状补全的通用3D形状表示方法。
- 当类别识别的第一个视角不充分时,识别系统还需要找到更优的观察视角。
3.相关工作
- Assembly-based approach
- Smooth interpolation-based approach
- Template-based approach
- Deep learning-based approach
- Next-Best-View problem
4.3D ShapeNets
3D voxel grid的构建可以参考此篇Blog。
Convolutional Deep Belief Network (CDBN)的构建具有以下特点:
- 通过卷积权值共享的方法减少模型参数。
- 不使用任何的池化操作(因为在形状重建的时候会导致很大的不确定性)。
![](/assets/blank.gif)
3D shapeNet的整体架构
Convolutional Deep Belief Network (CDBN)的构建配置:
- 网格大小为30×30×30,在表示形状的时候,要在上下左右空出3个多余的格子,减少卷积边界的误差,所以目标形状的范围是24×24×24。
- 第一层:使用48个大小为6的卷积核,步数为2。
- 第二层:使用160个大小为5的卷积核,步数为2.
- 第三层使用512个大小为4的卷积核。
- 第四层:全连接,有1200个隐藏单元。
- 第五层:全连接,有4000个隐藏单元,输入为multinomial label variables和Bernoulli feature variables(不清楚说的是啥,看图是输入标签和第四层特征)
- 训练的时候采用一层一层的预训练模式,前四层的训练方式为standard Contrastive Divergence,后两层的训练方式为Fast Persistent Contrastive Divergence(FPCD)。
- 微调阶段使用wake sleep algorithm。第一层只学习感知域中非空的信号,还使用了sparsity regularization 。最后,we duplicate the label units 10 times to increase their significance.(不懂,有知道的小伙伴可以在评论区讨论一下)
4. 2.5D Recognition and Reconstruction
4.1 View-based Sampling
在训练完CDBN后,模型学习到了体素数据 x {\mathbf{x}} x和目标类别 y ∈ { 1 , ⋯ , K } y \in \{ 1, \cdots ,K\} y∈{1,⋯,K}的联合分布函数 p ( x , y ) p({\mathbf{x}},y) p(x,y)。尽管模型是在3D形状上训练的,但是能够识别2.5D的深度图。
![](/assets/blank.gif)
View-based 2.5D Object Recognition. (1) 解释如何从3D真实世界的物体拍摄深度图。(2) 展示了从椅子后面拍摄到的深度图,切面用于可视化。(3) 展示了切面的轮廓和不同类型的体素,椅子表面的体素是红色的,遮挡住的体素是蓝色的。(4) 展示了识别和形状补全的结果。
将2.5D深度图转换为体素表示,分成free、surface和occluded三个部分。free和surface被认为是可见的 x o \mathbf{x}_o xo,occluded是不可见的 x u \mathbf{x}_u xu,整体表示为 x = ( x o , x u ) \mathbf{x}=(\mathbf{x}_o,\mathbf{x}_u) x=(xo,xu)。
识别物体类别的任务可以表示为 p ( y ∣ x o ) p(y|{\mathbf{x}_o}) p(y∣xo),通过Gibbs sampling进行求解,具体可以参考此篇Blog。步骤如下:
- 将 x u \mathbf{x}_u xu初始化为随机值,并将数据样 x = ( x o , x u ) \mathbf{x}=(\mathbf{x}_o,\mathbf{x}_u) x=(xo,xu)自底向上传播,以从 p ( y ∣ ( x o , x u ) ) p(y|({\mathbf{x}_o}, {\mathbf{x}_u})) p(y∣(xo,xu))中获取标签 y y y的样本。
- 然后,High level signal向下传播到体素 x \mathbf{x} x的采样。
- 对 x {\mathbf{x}} x中可见的体素 x o {\mathbf{x}_o} xo进行截断,再进行自底向上的传播。
50次上下采样迭代应足以获得补全后的形状 x \mathbf{x} x,以及对应的值 y y y。上述步骤可以并行运行,从而产生与潜在不同类别相对应的各种补全结果。最后一个类别标签对应于采样频率最高的类别。
4.2 Next-Best-View Prediction
只从一个角度进行目标识别不太稳定,会识别出其他的类型,如果能够给定当前视角,模型能够预测下一个视角将会对鉴别目标类别产生巨大作用。
输入:
- 未知目标的单副可见体素 x o {\mathbf{x}_o} xo
- 有限个下一个视角的可选列表 { V i } \{ {{\mathbf{V}}^i}\} {Vi}(相机的旋转和平移)
输出:
- 从列表中选出最优的视图减少识别不稳定性
原始识别不确定度 H H H由 y y y的熵给出,该熵以观测到的 x o \mathbf{x}_o xo为条件:
H = H ( p ( y ∣ x o = x o ) ) = − ∑ k = 1 K p ( y = k ∣ x o = x o ) log p ( y = k ∣ x o = x o ) \begin{aligned} H &=H\left(p\left(y \mid \mathbf{x}_{o}=x_{o}\right)\right) \\ &=-\sum_{k=1}^{K} p\left(y=k \mid \mathbf{x}_{o}=x_{o}\right) \log p\left(y=k \mid \mathbf{x}_{o}=x_{o}\right) \end{aligned} H=H(p(y∣xo=xo))=−k=1∑Kp(y=k∣xo=xo)logp(y=k∣xo=xo)
其中,条件概率 p ( y ∣ x o = x o ) p(y \mid \mathbf{x}_{o}=x_{o}) p(y∣xo=xo)可以通过从 p ( y , x u ∣ x o = x o ) p(y, \mathbf{x}_{u} \mid \mathbf{x}_{o}=x_{o}) p(y,xu∣xo=xo)中取样并将 x u \mathbf{x}_{u} xu边缘化来近似。
当照相机被移动到另一个视图 { V i } \{ {{\mathbf{V}}^i}\} {Vi}时,就会有一些以前未被观察到的体素 x u \mathbf{x}_{u} xu就会根据它的实际形状被观察到。不同的视图 { V i } \{ {{\mathbf{V}}^i}\} {Vi}将导致这些未观察到的体素 x u \mathbf{x}_{u} xu的可见性不同。
![](/assets/blank.gif)
在上图中,以 ( x o , x u ) (\mathbf{x}_o,\mathbf{x}_u) (xo,xu)为条件,可以采样出很多可能的形状,然后根据每一种假设可以获得 { V i } \{ {{\mathbf{V}}^i}\} {Vi}视角下的深度图。通过这种方式,我们可以仿真出不同样本在不同视角下新的深度图。
令 x n i = Render ( x u , x o , V i ) \ x o \mathbf{x}_{n}^{i}=\operatorname{Render}\left(\mathbf{x}_{u}, \mathbf{x}_{o}, \mathbf{V}^{i}\right) \backslash \mathbf{x}_{o} xni=Render(xu,xo,Vi)\xo表示下一个视角下的新的可见体素, x n i ⊆ x u {\mathbf{x}}_n^i \subseteq {{\mathbf{x}}_u} xni⊆xu,是未知变量,将在以下等式中被边缘化。不确定度表示为:
H i = H ( p ( y ∣ x n i , x o = x o ) ) = ∑ x n i p ( x n i ∣ x o = x o ) H ( y ∣ x n i , x o = x o ) \begin{aligned} H_{i} &=H\left(p\left(y \mid \mathbf{x}_{n}^{i}, \mathbf{x}_{o}=x_{o}\right)\right) \\ &=\sum_{\mathbf{x}_{n}^{i}} p\left(\mathbf{x}_{n}^{i} \mid \mathbf{x}_{o}=x_{o}\right) H\left(y \mid \mathbf{x}_{n}^{i}, \mathbf{x}_{o}=x_{o}\right) \end{aligned} Hi=H(p(y∣xni,xo=xo))=xni∑p(xni∣xo=xo)H(y∣xni,xo=xo)
上式中的条件熵可以通过下述步骤计算:
- 从 p ( x u ∣ x o = x o ) p({{\mathbf{x}}_u}|{{\mathbf{x}}_o} = {x_o}) p(xu∣xo=xo)中采样出足够的 x u \mathbf{x}_u xu
- 做3D rendering,得到深度图,从 x u \mathbf{x}_u xu中得到 x n i \mathbf{x}_{n}^{i} xni
- 利用 x n i \mathbf{x}_{n}^{i} xni计算 H ( p ( y ∣ x n i = x n i , x o = x o ) ) H\left(p\left(y \mid \mathbf{x}_{n}^{i}={x}_{n}^{i}, \mathbf{x}_{o}=x_{o}\right)\right) H(p(y∣xni=xni,xo=xo))
根据信息论, H − H i = I ( y ; x n i ∣ x o = x o ) ≥ 0 H-H_{i}=I\left(y ; \mathbf{x}_{n}^{i} \mid \mathbf{x}_{o}=x_{o}\right) \geq 0 H−Hi=I(y;xni∣xo=xo)≥0是以 x o \mathbf{x}_{o} xo为条件, y y y和 x n i \mathbf{x}_{n}^{i} xni之间的相互信息。
因此,视角优化算法便是最大化这个相互信息:
V ∗ = arg max V i I ( y ; x n i ∣ x o = x o ) \mathbf{V}^{*}=\arg \max _{\mathbf{V}^{i}} I\left(y ; \mathbf{x}_{n}^{i} \mid \mathbf{x}_{o}=x_{o}\right) V∗=argVimaxI(y;xni∣xo=xo)
5.ModelNet: A Large-scale 3D CAD Dataset
数据来源:
- 3D Warehouse
- 3D模型搜索引擎 Yobi3D
- SUN database
- Princeton Shape Benchmark
- 打标签工具 Amazon Mechanical Turk
共有660类,151128个3D模型。
6.实验
ModelNet40:40类,每类100个模型
ModelNet10:10类
每个模型沿着重力方向旋转12次(一次30°)
——应对旋转不变性
共有48000 CAD 训练
one Intel XEON E5-2690 CPU
one NVIDIA K40c GPU
训练了两天
6.1Classification and Retrieval
Classification,将第五层看作特征,再加一层线性SVM作为输出层,取每一类的平均值,对比的算法包括Light Field descriptor (LFD, 4,700 dimensions)、Spherical Harmonic descriptor (SPH, 544 dimensions)。
Retrieval,L2 distance被用于两种模型间的相似性。评价指标为recision-recall curve (AUC) 和mean average precision (MAP)。
38,400模型进行训练,9600个模型用于测试。
![](/assets/blank.gif)
![](/assets/blank.gif)
6.2 View-based 2.5D Recognition
NYU RGB-D dataset:10类, 4899个模型
先直接把在ModelNet上训练好的模型用在NYU数据集上
![](/assets/blank.gif)
然后再微调
![](/assets/blank.gif)
6.2Next-Best-View Prediction
主要看形状重建的性能 p ( x u ∣ x o = x o ) p\left(\mathbf{x}_{u} \mid \mathbf{x}_{o}=x_{o}\right) p(xu∣xo=xo)。
![](/assets/blank.gif)
按理说,一个好的视图选择方案应该可以产生更高的识别精度。
![](/assets/blank.gif)
7.总结
所提出的模型既可以识别,又能重建。
【点云处理之狂读论文经典篇1】——3D ShapeNets: A Deep Representation for Volumetric Shapes相关推荐
- pointnet分割自己的点云数据_细嚼慢咽读论文:PointNet论文及代码详细解析
论文标题:PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation 标签:有监督 | 特征学习.点云分类 ...
- 读论文11——Optimizing FPGA-based Accelerator Design for Deep Convolutional Neural Networks
目录 Abstract Introduction Background CNN Basis A Real-Life CNN the Roofline Model Accelerator Design ...
- unix程序员手册_推荐几本实惠电子书,程序员读的经典书都有,比如deep learning...
小编挑了几本大家耳熟能详的经典电子书,希望您能喜欢.四折的价格小编都用红框标注出来喽!!!祝您阅读愉快!以下推荐的9本电子书均由异步社区出品,如需要请移步https://www.epubit.com/ ...
- 深度学习点云语义分割:CVPR2019论文阅读
深度学习点云语义分割:CVPR2019论文阅读 Point Cloud Oversegmentation with Graph-Structured Deep Metric Learning 摘要 本 ...
- 11月14日云栖精选夜读 | 动画+原理+代码,解读十大经典排序算法
排序算法是<数据结构与算法>中最基本的算法之一. 排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过 ...
- 【读论文】点云信息提取研究进展和展望(2017)
[读论文]点云信息提取研究进展和展望(2017) 张继贤,林祥国,梁欣廉 DOI:10.11947/j.AGCS.2017.20170345 文章目录 1.该论文研究了什么? 1.1点云信息提取基元类 ...
- 【读论文】点云智能研究进展与趋势(2019)
[读论文]点云智能研究进展与趋势(2019) 杨必胜 doi: 10.11947/j.AGCS.2019.20190465 文章目录 摘要: 关键词: 点云大数据采集装备 点云场景:从可视化量测到智能 ...
- 4月24日云栖精选夜读 | 阿里云POLARDB如何助力轻松筹打造5亿用户信赖的大病筹款平台?...
[点击订阅云栖夜读周刊] 轻松筹首创了"大病救助"模式,帮助了众多病患在第一时间解決了医疗资金等问题,为了从源头解决了医疗资金问题.而在轻松筹这样全球5.5亿用户信赖的大病筹款平台 ...
- 大咖来信 | 张亚勤@2018:终日“闭关”读论文,思考终极算法
李根 发自 凹非寺 量子位 报道 | 公众号 QbitAI 张亚勤是1998年决定回国的,距今已过20年. 这20年中,技术变革天翻地覆,中国发展也日新月异.他见证了互联网在中国的从弱到强,也看到了 ...
最新文章
- Java Swing 树状组件JTree的使用方法【图】
- 删除git commit 的 UserInterfaceState.xcuserstate 文件
- Java内存模型深度解析:锁--转
- 随机组卷python_关于随机自动组卷的算法,二维数组
- pwa 问题_您真的需要PWA吗? 这里有四个问题可以帮助您做出决定。
- vc6 设置静态文本框透明_微信还能这么玩?半透明的微信背景主题用起来!
- 【蓝桥杯单片机】红外接收及NEC红外通信协议
- linux mysql导出乱码问题_[MYSQL]将数据从5.0版本导入到4.1.7版本中出现乱码问题解决方案...
- 《Algorithms》Comparable 实现希尔排序
- SVNQuery–如何创建更新索引并查询
- 解决fake_useragent报错
- 线性规划的对偶性和最大流最小割定理
- CSS文本框里的字_把网站搬进PPT里是种怎样的体验?
- vue微信公众号开发h5授权登录
- HTML网页设计制作大作业-制作漫画网页设计6个页面(HTML+CSS+JavaScript)
- 服务器怎么使自己的文件夹加密,NAS中如何创建和使用加密文件夹
- 单片机课程设计---篮球记分牌
- java全能速查宝典_Java全能速查宝典_IT教程网
- 成都理工大学计算机考研经历,09计算机考研的小小体会~
- 谈谈客户关系管理系统的应用与发展
热门文章
- 扩展欧几里得算法( 数学问题 + 扩展欧几里得算法 + 裴蜀定理 )
- 闭包的概念,作用,和优缺点
- 散户投资者如何成为“七亏二平一赚”中的一赚?
- 计算机系统监控 PerformanceCounter
- 【APP 测试】APP 性能测试工具:MobileRunner 安装
- python爬虫项目——豆瓣Top250
- Python之父强烈推荐,Python3网络爬虫开发实战,爬虫入门必看书籍,豆瓣评分9.2
- 解决Endnote插入的是{作者,年份}不是序号[1]问题
- JavaScript案例:实现对象的深拷贝
- 功能游戏介绍--欧式几何