3D点云形状分类简介

3D形状分类主要有三种方法:基于多视图的(multi-view),基于体积的(volumetric-based),基于点的(point-based)。
基于多视图的方法将非结构化的点云投影为2D图像,而基于体积的方法将点云转换为3D体积表示。然后利用2D或3D卷积网络来实现形状分类。相反,基于点的方法直接在原点云图像上运行,不会造成信息丢失,正在逐渐成为主流。

基于多视图的点云分类算法

基于多视图的方法首先将3D形状投影到多个视图中,然后提取视图的特征,融合这些特征以进行准确的形状分类。所以关键在于如何融合这些特征。该方法开创性的工作是15年提出的MVCNN1,如图所示,其中所有分支的CNN1共享权重,它将多视图特征maxpool化为全局描述符。 但是,最大池化只能保留特定视图中的最大元素,从而导致信息丢失。

之后, Yang等人2提出对多视图的关系进行建模,提出了一种关系网络,用两个模块分别提取不同视图间的region关系以及整个示图之间的关系,最终生成3D描述符,如图所示:

Wei等人3提出使用图卷积网络建模多个视图之间的关系,每个视图作为一个图节点,然后将由局部图卷积,non-local消息传递和选择性视图采样组成的核心层应用于构建的图。关于该文章的详细介绍可以参考一篇知乎的讲解4

基于体积的方法

通过体素网格进行学习可以解决多视图表示的主要缺点。体素网格缩小了二维和三维之间的差距,它们是最接近图像的三维表示形式,这使得二维深度学习的概念(比如卷积操作)能够容易地应用于三维情景。

在 2015 年提出的 VoxNet5,是最早在给定体素网格输入的情况下在物体分类任务上取得优异表现的深度学习方法。VoxNet 使用的是概率占用网格,其中的每个体素都包含了该体素在空间中被占用的概率。这样做的一个好处就是,它允许网络区分已知是自由的体素。整个流程如下:

由于体素网格与图像十分相似,它们实际上使用的带步长的卷积和池化运算都是从二维像素的工作方式进行调整迁移到三维体素上来的。卷积算子使用的是 d×d×d×c 的卷积核而不是二维卷积神经网络中使用的 d×d×c,池化运算考虑的是不重叠的三维体素块而不是二维像素块。图中Conv(f,d,s) f表示卷积算子个数,d为卷积核尺寸,以及步长s。

体素的缺点是:需要很高的分辨率才能模拟出一个物体的精准结构。而高分辨率往往意味着大量的内存和计算量。这类方法难以处理密集的3D数据,因为计算量随着分辨率三次方增长。

为了解决这个问题,OctNet6提出,在点云等表示方法中的3D数据本身是稀疏的(空间中有一些地方没没有物体存在),这就导致了在使用3D卷积时的计算资源浪费。所以OCNet使用一组不平衡的八叉树来对空间进行分层划分,更具体地说,以递归方式拆分在其域中包含数据点的八叉树节点,并在树的最佳分辨率停止。也就是说OCNet根据3D结构动态的分布计算和存储,这样可以在高分辨率的时候节省计算和存储。

如图所示,第二行是普通的3D ConvNet,可以看到如果使用高分辨率计算,那么全图都是密集的网格点,代表该处的卷积计算位置,而第三行的OCNet可以根据输入物体的形状,动态调节每个位置的分辨率(通过八叉树实现,关于八叉树可参考:八叉树),从而在使用同等分辨率的时候降低计算量和内存占用。

但是体素网格仍然具有一些缺点。首先,与点云相比,它们丢失了分辨率。因为如果代表复杂结构的不同点距离很近,它们会被被绑定在同一个体素中。与此同时,与稀疏环境中的点云相比,体素网格可能导致不必要的高内存使用率。这是因为它们主动消耗内存来表示自由和未知的空间,而点云只包含已知点。

基于点云的算法

Pointwise MLP

该类方法通过几个MLP建模点与点之间的关系可,然后汇聚成全局特征。先驱代表工作是PointNet7
未完待续…


  1. H. Su, S. Maji, E. Kalogerakis, and E. Learned-Miller, “Multiview convolutional neural networks for 3D shape recognition,” in ICCV, 2015. ↩︎

  2. Z. Yang and L. Wang, “Learning relationships for multi-view 3D object recognition,” in ICCV, 2019 ↩︎

  3. X. Wei, R. Yu, and J. Sun, “View-gcn: View-based graph convolutional network for 3D shape analysis,” in CVPR, 2020. ↩︎

  4. https://zhuanlan.zhihu.com/p/159380196 ↩︎

  5. D. Maturana and S. Scherer, “VoxNet: A 3D convolutional neural network for real-time object recognition,” in IROS, 2015. ↩︎

  6. G. Riegler, A. Osman Ulusoy, and A. Geiger, “OctNet: Learning deep 3D representations at high resolutions,” in CVPR, 2017. ↩︎

  7. C. R. Qi, H. Su, K. Mo, and L. J. Guibas, “PointNet: Deep learning on point sets for 3D classification and segmentation,” in CVPR, 2017. ↩︎

3D点云形状分类简介相关推荐

  1. 汇总|基于3D点云的深度学习方法

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达本文转自|计算机视觉工坊 前言 三维数据通常可以用不同的格式表示,包 ...

  2. 【3D点云】弱监督点云分割(论文解读 CVPR2020)

    文章目录 一.摘要 1.Introduction 2.四点贡献 二.相关工作 1.不完全(半监督)学习 2.不准确注释 3.点云分析 三.方法论 1.点云编码网络(encoder) 2.不完整的监督分 ...

  3. Deep Learning for 3D Point Clouds: A Survey - 3D点云的深度学习:一项调查 (IEEE TPAMI 2020)

    Deep Learning for 3D Point Clouds: A Survey - 3D点云的深度学习:一项调查(IEEE TPAMI 2020) 摘要 1. 引言 2. 背景 2.1 数据集 ...

  4. 3D点云点云分割、目标检测、分类

    3D点云点云分割.目标检测.分类 原标题Deep Learning for 3D Point Clouds: A Survey 作者Yulan Guo, Hanyun Wang, Qingyong H ...

  5. 综述:基于点云的自动驾驶3D目标检测和分类方法

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 参考论文:Point-Cloud based 3D Object ...

  6. 清华大学提出点云Transformer!在3D点云分类、分割上表现优秀,核心代码已开源!...

    点击上方,选择星标或置顶,不定期资源大放送! 阅读大概需要5分钟 Follow小博主,每天更新前沿干货 转载自:量子位 当Transformer遇上3D点云,效果会怎么样? 一个是当下最热门的模型(N ...

  7. 分割点云数据_3D点云深度学习综述:三维形状分类、目标检测与跟踪、点云分割等...

    3D点云学习( Point Clouds)作为近年来的研究热点之一,受到了广泛关注,每年在各大会议上都有大量的相关文章发表.当前,点云上的深度学习变得越来越流行,人们提出了许多方法来解决这一领域的不同 ...

  8. 【论文阅读】用于代表单个树木的机载LiDAR 3D点云针叶树/落叶分类的深度学习

    Deep learning for conifer/deciduous classification of airborne LiDAR 3D point clouds representing in ...

  9. tof相机简介及三维坐标转化,plotly画3D点云

    最近在做TOF相机相关的软件,近年来tof相机开始在手机,车载设备,VR等应用开始增多,产业也开始量化,是一个不错的3维相机的方向. 简单介绍一下tof相机吧:TOF是Time of flight的简 ...

最新文章

  1. NYOJ——街区最短路径问题
  2. java适配器各三种_适配器三种
  3. 祝大家七夕快乐,邀你源码共读,顺带发点红包
  4. JSP学习笔记(六十二):struts2中的Lambda表达式
  5. 小小在线教授何为BTC跳矿(教授如何在线扩大收益)
  6. 自动化测试基础篇--Selenium弹出框alert
  7. excel2016html,excel2016打开不显示内容《2016版本的excel表格》
  8. 全国31省份实体经济发展水平数据 (2004-2017年)
  9. 和风OUC-Systeminfo获取客户端基本系统信息
  10. 贪心法找钱python_python找钱?
  11. circos 作图简介
  12. android使用fir.im实现版本更新
  13. java为什么有基本类型_你了解Java数据类型吗?
  14. C 程序设计语言——第四章练习题
  15. 【bypass】403绕过
  16. 移动领导驾驶舱如何制作?移动驾驶舱app
  17. Shell之计算命令、流程控制、函数
  18. Linux启动过程学习
  19. 嵌入式数据库之SQLite 3
  20. 立创EDA仿真入门2 实战全桥整流

热门文章

  1. 字节跳动资深面试官亲述:java淘宝客教程视频
  2. 中国软件企业上市透析(下)
  3. C语言之linux内核实现平方根计算算法
  4. 2021-2025年中国防火门行业市场供需与战略研究报告
  5. 生信脚本练习(5)求fastq文件的cg含量
  6. STM32串口通信串口助手收不到数据
  7. 中国疾控中心:全国冬春季流感病毒主要为甲型H1N1
  8. 车联网的2020:商业落地、技术支柱、生态溢出
  9. 苹果短信html和华为csv,【花粉首帖】Iphone 短信 导入 华为 mate10 pro 的业余 教程!...
  10. 2021-7-26 汇编语言 高屋建瓴:栈,段的理解(炉边小坐)