论文笔记:KD-Net
Escape from Cells: Deep Kd-Networks for the Recognition of 3D Point Cloud Models
1、四个问题
- 要解决什么问题?
- 3D点云识别任务。
- 用了什么方法解决?
- 参考KD树的结构,提出了一种新的树形结构的神经网络,用来处理不规则的点云数据。
- 效果如何?
- 在形状分类任务、形状检索任务以及形状部件分割任务中都取得了领先的效果。
- 还存在什么问题?
- 如果点云存在旋转,那么KD树在X/Y/Z轴方向进行切分时会得到不同的结果,影响最终的效果。
- 每次网络做前向操作时,都需要先将输入的点云转为KD树,预处理时必须要占用一定时间。
2、论文概述
2.1、简介
- 我们都知道,由于点云是非欧式结构的数据,无法对其直接应用CNN。常用的思路是将其转换为体素网格,但是这样会带来额外的内存消耗和很大的计算量。
- 作者认为:诸如KD树、八叉树等数据结构常被用于表示不规则的数据。那么,是否能将这些数据结构扩展到深度神经网络中呢?这样的网络结构也就能够处理那些不规则结构的数据。
- 由此,作者提出了KD网络,主要是模仿卷积神经网络的思想,但是又使用KD树的结构来构建计算图。
2.2、KD-Networks
- 图1是KD-Netwoks的示意图。图中只考虑二维的情况。
- 在一个有8个点的点云上建立KD树,在每一层都从X/Y轴选择一个维度进行划分。
- 从根节点到叶节点对KD树的每个节点进行编号,根节点编号为0,往后递增。
- KD数最左边的8到15号节点实际就是原始点云,右边的0号节点可以看做输出的类别预测v0v_0v0。
- 从左到右,可以看做这个KD-Network的特征前向传播的方向。
- 图中的圆圈表示的是特征传播并聚合的过程,对应卷积核,其参数是可学习的。相同的颜色表示共享参数,即如果是在相同维度对点集进行划分,认为其卷积参数也应该共享。
2.2.1、输入
- 由于KD-Network每次都要从3D点云构建KD树,而KD树的节点数是N=2DN=2^{D}N=2D,因此点云的点数也必须是2D2^{D}2D。如果点云的点数不同,还需要对其做上采样或者下采样。
- 构建KD树时,我们以自顶向下的方式递归地生成每个树节点。每次都选取能最好地分割整个点集的坐标轴作为划分标准,将点集划分为两个一样大的子集,然后递归生成。
- 一个深度为DDD的平衡KD树包含有N−1=2D−1N-1=2^{D}-1N−1=2D−1个非叶节点。
- 每个非叶节点Vi∈TV_{i} \in \mathcal{T}Vi∈T都与三个划分方向did_idi(X/Y/Z轴,di∈{X,Y,Z}d_i \in \{X, Y, Z\}di∈{X,Y,Z})以及划分位置ti\mathcal{t}_iti有关。
- KD树上的节点还与层数li∈{1,…,D−1}l_{i} \in\{1, \ldots, D-1\}li∈{1,…,D−1}有关,li=1l_{i}=1li=1是根节点,li=Dl_{i}=Dli=D是叶节点,也对应着3D点云上的点。
- 假设KD树是平衡树,那么第iii号节点的子节点的编号分别是c1(i)=2ic_{1}(i)=2 ic1(i)=2i和c2(i)=2i+1c_{2}(i)=2 i + 1c2(i)=2i+1。
2.2.2、KD-Networks的数据处理
- 给定一个输入的KD树T\mathcal{T}T,KD-Network会计算KD树的每个节点上的特征向量vi\mathbf{v}_ivi。
- 叶节点即输入是一个kkk维向量,由输入点云的维度确定。
- 第l(i)l(i)l(i)层上的非叶节点iii,其子节点c1(i)c_1(i)c1(i)和c2(i)c_2(i)c2(i)在第l(i)+1l(i) + 1l(i)+1层,其特征向量vc1(i)\mathbf{v}_{c_{1}(i)}vc1(i)和vc1(i)\mathbf{v}_{c_{1}(i)}vc1(i)已经计算好了。那么当前节点iii的特征向量vi\mathbf{v}_ivi的计算公式如下:
- vi={ϕ(Wxli[vc1(i);vc2(i)]+bxli),ifdi=xϕ(Wyli[vc1(i);vc2(i)]+byli),ifdi=yϕ(Wzli[vc1(i);vc2(i)]+bzli),ifdi=z\mathbf{v}_{i}=\left\{\begin{array}{l}{\phi\left(W_{\mathrm{x}}^{l_{i}}\left[\mathbf{v}_{c_{1}(i)} ; \mathbf{v}_{c_{2}(i)}\right]+\mathbf{b}_{\mathrm{x}}^{l_{i}}\right)}, if \ d_i = x \\ {\phi\left(W_{\mathrm{y}}^{l_{i}}\left[\mathbf{v}_{c_{1}(i)} ; \mathbf{v}_{c_{2}(i)}\right]+\mathbf{b}_{\mathrm{y}}^{l_{i}}\right)}, if \ d_i = y \\ {\phi\left(W_{\mathrm{z}}^{l_{i}}\left[\mathbf{v}_{c_{1}(i)} ; \mathbf{v}_{c_{2}(i)}\right]+\mathbf{b}_{z}^{l_{i}}\right)}, if \ d_i = z \end{array}\right.vi=⎩⎨⎧ϕ(Wxli[vc1(i);vc2(i)]+bxli),if di=xϕ(Wyli[vc1(i);vc2(i)]+byli),if di=yϕ(Wzli[vc1(i);vc2(i)]+bzli),if di=z
- 或简写为:vi=ϕ(Wdili[vc1(i);vc2(i)]+bdili)\mathbf{v}_{i}=\phi\left(W_{d_{i}}^{l_{i}}\left[\mathbf{v}_{c_{1}(i)} ; \mathbf{v}_{c_{2}(i)}\right]+\mathbf{b}_{d_{i}}^{l_{i}}\right)vi=ϕ(Wdili[vc1(i);vc2(i)]+bdili)
- ϕ(⋅)\phi(\cdot)ϕ(⋅)是非线性单元(ReLU)。
- 第lil_ili层的可学习的参数是{Wxli,Wyli,Wzli,bxli,byli,bzli}\left\{W_{\mathrm{x}}^{l_{i}}, W_{\mathrm{y}}^{l_{i}}, W_{\mathrm{z}}^{l_{i}}, \mathbf{b}_{\mathrm{x}}^{l_{i}}, \mathbf{b}_{\mathrm{y}}^{l_{i}}, \mathbf{b}_{\mathrm{z}}^{l_{i}}\right\}{Wxli,Wyli,Wzli,bxli,byli,bzli}。
- 根据KD树的划分方向did_idi,选取上面三组参数中的一组进行计算。
- 每层的矩阵WWW和bbb的维度为m1,m2,…,mDm^{1}, m^{2}, \ldots, m^{D}m1,m2,…,mD。
- 第lll层的WxlW_{\mathrm{x}}^{l}Wxl、WylW_{\mathrm{y}}^{l}Wyl、WzlW_{\mathrm{z}}^{l}Wzl维度是ml×2ml+1m^{l} \times 2 m^{l+1}ml×2ml+1(因为每个非叶节点有两个子节点),而bxl\mathbf{b}_{\mathrm{x}}^{l}bxl、byl\mathbf{b}_{\mathrm{y}}^{l}byl、bzl\mathbf{b}_{\mathrm{z}}^{l}bzl的维度是mlm^lml。
2.2.3、分类网络结构
- 对于分类网络来说,只要让根节点输出的特征向量的维度数为类别数,即可得到分类结果。
- v0(T)=W0v1(T)+b0\mathbf{v}_{0}(\mathcal{T})=W^{0} \mathbf{v}_{1}(\mathcal{T})+\mathbf{b}^{0}v0(T)=W0v1(T)+b0
- W0W^0W0和b0\mathbf{b}^{0}b0是最后的分类层的参数。
2.2.4、形状检索网络结构
- 与分类网络类似,但是最后的根节点输出的不是分类预测结果而是一个描述子(特征向量)。训练时加上度量学习的损失函数:histogram loss,siamese loss,triplet loss等,来约束输出的特征向量,使得同类形状的特征向量之间距离更小,不同类的特征向量之间距离更大。
2.2.5、分割网络结构
- 在部件分割任务上,KD-Network参考了卷积神经网络对结构进行了更改,也使用了编码器-解码器(encoder-decoder)的结构,并加入了跳跃连接(skip connections)。
- 上图是分割网络的示意图。
- 这里的分割网络可以看成是将两个KD树拼接在了一起,左半边与分类网络和检索网络结构一样,是encoder;右半边是decoder,也就是倒过来的KD树,将根节点的特征传播到所有的叶节点上。
- 设右半部分的KD树的根节点为v1\mathbf{v}_{1}v1,而节点iii上的特征向量为vi\mathbf{v}_{i}vi。
- 特征传播时的更新公式如下:
- v~c1(i)=ϕ([W~dc1(i)liv~i+b~dc1(i)li;Slivc1(i)+tli])v~c2(i)=ϕ([W~dc2(i)liv~i+b~dc2(i)li;Slivc2(i)+tli])\begin{aligned} \tilde{\mathbf{v}}_{c_{1}(i)} &=\phi\left(\left[\tilde{W}_{d_{c_{1}(i)}}^{l_{i}} \tilde{\mathbf{v}}_{i}+\tilde{\mathbf{b}}_{d_{c_{1}(i)}}^{l_{i}} ; S^{l_{i}} \mathbf{v}_{c_{1}(i)}+\mathbf{t}^{l_{i}}\right]\right) \\ \tilde{\mathbf{v}}_{c_{2}(i)} &=\phi\left(\left[\tilde{W}_{d_{c_{2}(i)}}^{l_{i}} \tilde{\mathbf{v}}_{i}+\tilde{\mathbf{b}}_{d_{c_{2}(i)}}^{l_{i}} ; S^{l_{i}} \mathbf{v}_{c_{2}(i)}+\mathbf{t}^{l_{i}}\right]\right) \end{aligned}v~c1(i)v~c2(i)=ϕ([W~dc1(i)liv~i+b~dc1(i)li;Slivc1(i)+tli])=ϕ([W~dc2(i)liv~i+b~dc2(i)li;Slivc2(i)+tli])
- W~dc∗(i)li\tilde{W}_{d_{c *(i)}^{l_{i}}}W~dc∗(i)li和b~dc,(i)li\tilde{\mathbf{b}}_{d_{c,(i)}}^{l_{i}}b~dc,(i)li分别是网络中的权重和偏置参数。
- SliS^{l_{i}}Sli和tlit^{l_{i}}tli分别是跳跃连接上的权重和偏置参数。
- 整个网络的结构类似U-Net,在encoder-decoder结构的基础之上加入了shortcut,避免一些信息的损失。
2.2.6、实现细节
- 预处理,所有点云都事先归一化到[−1;1]3[-1 ; 1]^{3}[−1;1]3。
2.3、实验
3、参考资料
- Escape from Cells: Deep Kd-Networks for the Recognition of 3D Point Cloud Models
论文笔记:KD-Net相关推荐
- 论文笔记目录(ver2.0)
1 时间序列 1.1 时间序列预测 论文名称 来源 主要内容 论文笔记:DCRNN (Diffusion Convolutional Recurrent Neural Network: Data-Dr ...
- 论文笔记(十四):PoseRBPF: A Rao–Blackwellized Particle Filter for 6-D Object Pose Tracking
PoseRBPF: A Rao–Blackwellized Particle Filter for 6-D Object Pose Tracking 文章概括 摘要 1. 介绍 2. 相关工作 3. ...
- 【论文笔记】3D LiDAR-Based Global Localization Using Siamese Neural Network
[论文笔记]3D LiDAR-Based Global Localization Using Siamese Neural Network ~~~ ~~~~ 在本文基于从神经网络中学习到的 ...
- [论文笔记] Line-CNN: End-to-End Traffic Line Detection With Line Proposal Unit
[论文笔记] Line-CNN: End-to-End Traffic Line Detection With Line Proposal Unit IEEE TITS 2019 YangJian 简 ...
- [论文笔记]AAAI-2021-Continual Learning for Named Entity Recognition
[论文笔记] 2021-AAAI-Continual Learning for Named Entity Recognition 0 写在前面 什么是持续学习? 我们人类有能够将一个任务的知识用到另一 ...
- ORB-SLAM3 论文笔记
ORB-SLAM3 论文笔记 这篇博客 ORB-SLAM3系统 相机模型的抽象(Camera Model) 重定位的问题 图片矫正的问题 视觉惯性SLAM的工作原理 相关公式 IMU初始化 跟踪和建图 ...
- 【论文笔记】 LSTM-BASED DEEP LEARNING MODELS FOR NONFACTOID ANSWER SELECTION
一.简介 这篇论文由IBM Watson发表在2016 ICLR,目前引用量92.这篇论文的研究主题是answer selection,作者在这篇论文基础上[Applying Deep Learnin ...
- 最新图神经网络论文笔记汇总(附pdf下载)
点击上方,选择星标或置顶,不定期资源大放送! 阅读大概需要15分钟 Follow小博主,每天更新前沿干货 [导读]近年来,图神经网络变得非常火热,每年顶会在该领域内都会出现大量的研究论文,本文为大家提 ...
- [论文笔记] Fast Quality Driven Selection of Composite Web Services (ECOWS, 2006)
Time: 4.0 hours Jae-Ho Jang, Dong-Hoon Shin, Kyong-Ho Lee, "Fast Quality Driven Selection of Co ...
- 论文笔记之:Action-Decision Networks for Visual Tracking with Deep Reinforcement Learning
论文笔记之:Action-Decision Networks for Visual Tracking with Deep Reinforcement Learning 2017-06-06 21: ...
最新文章
- 把三千行代码重构为15行
- 程序员的疯狂:打工与创业的残酷区别
- 用Delphi设计能携带附件的EMail
- Gradle学习网站
- Vue全家桶实战01_【从入门到放弃系列】
- 阿里云CDN技术掌舵人文景:相爱相杀一路狂奔的这十年
- excel文件修复工具_win10上使用SFC工具修复损坏的系统文件,安全高效,维修电脑必会...
- bm算法java,图解 BM 算法
- 大平房到朝阳环路时间表_冰蓄冷系统设计计算10大要点
- svnadmin hotcopy
- 基于单片机的水温液位自动控制系统设计
- matlab 脉冲频域压缩,大作业-雷达线性调频脉冲压缩的原理及其MATLAB仿真.doc
- 6.2 Characteristic Values
- vue3运行npm run serve报错ERROR Error: Cannot find module ‘babel-plugin-import‘ Require stack:
- 疫情居家想做点副业?推荐五个居家兼职,总有一个适合你
- 云计算、社交网络和移动互联网------转自月光博客
- 拼多多2021校招2020.9.1笔试题 T2 and T4
- 信号强度从百分比到分贝的转换
- SQP质量验厂有哪些要求?
- qt vs tools
热门文章
- 浏览器直接连接mysql_在IE中直接连接SQL数据库_MySQL
- 简单的复数运算(类和对象)_JAVA
- 【C++】41. std::copy和assign的用法
- 做俯卧撑的10个技巧
- 简单提升编译速度的一个方法
- 程序员面试题精选100题(02)-设计包含min函数的栈[数据结构]
- 不知道被谁删了微信好友?用 Python 来帮忙呀
- (EM算法)The EM Algorithm
- Git与GitHub的使用
- 防火墙如可禁止tracert但允许ping