3D点云点云分割、目标检测、分类
3D点云点云分割、目标检测、分类
原标题Deep Learning for 3D Point Clouds: A Survey
作者Yulan Guo, Hanyun Wang, Qingyong Hu, Hao Liu, Li Liu, and Mohammed Bennamoun
原文参考链接:https://arxiv.org/abs/1912.12033
导读
3D点云学*( Point Clouds)作为*年来的研究热点之一,受到了广泛关注,每年在各大会议上都有大量的相关文章发表。当前,点云上的深度学*变得越来越流行,人们提出了许多方法来解决这一领域的不同问题。国防科技大学郭裕兰老师课题组新出的这篇论文对*几年点云深度学*方法进行了全面综述,是第一篇全面涵盖多个重要点云相关任务的深度学*方法的综述论文,包括三维形状分类、三维目标检测与跟踪、三维点云分割等,并对点云深度学*的机制和策略进行全面的归纳和解读,帮助读者更好地了解当前的研究现状和思路。也提供了现有方法在几个可公开获得的数据集上的全面比较,最后也介绍了未来的研究方向。
对于3D点云,数据正在迅速增长。大有从2D向3D发展的趋势,比如在opencv中就已经慢慢包含了3D点云的处理的相关模块,在数据方面点云的获取也是有多种渠道, 无论是源于CAD模型还是来自LiDAR传感器或RGBD相机的扫描点云,无处不在。 另外,大多数系统直接获取3D点云而不是拍摄图像并进行处理。因此,在深度学*大火的年代,应该如何应用这些令人惊叹的深度学*工具,在3D点云上的处理上达到对二维图像那样起到很好的作用呢?
3D点云应用深度学*面临的挑战。首先在神经网络上面临的挑战:
(1)非结构化数据(无网格):点云是分布在空间中的XYZ点。 没有结构化的网格来帮助CNN滤波器。
(2)不变性排列:点云本质上是一长串点(nx3矩阵,其中n是点数)。 在几何上,点的顺序不影响它在底层矩阵结构中的表示方式,例如,
相同的点云可以由两个完全不同的矩阵表示。 如下图所示:
(3)点云数量上的变化:在图像中,像素的数量是一个给定的常数,取决于相机。
然而,点云的数量可能会有很大的变化,这取决于各种传感器。
在点云数据方面的挑战:
(1)缺少数据:扫描的模型通常被遮挡,部分数据丢失。
(2)噪音:所有传感器都是嘈杂的。
有几种类型的噪声,包括点云扰动和异常值。 这意味着一个点有一定的概率位于它被采样的地方(扰动)附*的某一半径范围内,或者它可能出现在空间的任意位置(异常值)。
(3)旋转:一辆车向左转,同一辆车向右转,会有不同的点云代表同一辆车。
摘要
点云学**年来受到越来越多的关注,因为它在许多领域都有广泛的应用,比如计算机视觉、自动驾驶和机器人技术。作为人工智能的主要技术之一,深度学*已经成功地用于解决各种二维视觉问题。然而,由于使用深度神经网络处理点云所面临的独特挑战,对点云的深度学*仍处于起步阶段。最*,点云上的深度学*变得越来越流行,人们提出了许多方法来解决这一领域的不同问题。为了激发未来的研究,本文对点云深度学*方法的最新进展进行了综述。它涵盖了三个主要任务,包括三维形状分类,三维目标检测和跟踪以及三维点云分割。我们还提供了一些可公开获得的数据集的比较结果,以及有见地的观察和启发性的未来研究方向。
引 言
3D数据在不同的领域有许多应用,包括自动驾驶、机器人、遥感、医疗和设计行业[4]。*年来,深度学*技术在计算机视觉、语音识别、自然语言处理(NLP)、生物信息学等研究领域占据主导地位。但是,在三维点云上进行深度学*仍然面临数个重大挑战[5],例如数据集规模小,维数高和三维点云的非结构化性质。在此基础上,本文重点分析了用于处理三维点云的深度学*方法。
一些公开的数据集也被发布,例如ModelNet [6],ShapeNet
[7],ScanNet [8],Semantic3D [9]和KITTI Vision Benchmark Suite [10]。这些数据集进一步推动了对三维点云的深度学*研究,提出了越来越多的方法来解决与点云处理相关的各种问题,包括三维形状分类、三维目标检测与跟踪、三维点云分割等。
这篇论文是第一个专门针对点云的深度学*方法的综述。此外,论文全面涵盖了分类,检测,跟踪和分割等不同应用。图1显示了三维点云的现有深度学*方法的分类。
图1:三维点云深度学*方法分类。
这项工作的主要贡献可以概括如下:
·
1)据我们所知,这是第一篇全面涵盖多个重要点云相关任务的深度学*方法的综述论文,包括三维形状分类、三维目标检测与跟踪、三维点云分割等。
·
2)相对于已有的综述[11],[12],我们特别关注三维点云的深度学*方法,而不是所有类型的三维数据。
·
3)本文介绍了点云深度学*的最新进展。因此,它为读者提供了最先进的方法。
·
4)提供了现有方法在几个可公开获得的数据集上的全面比较(例如,表1、2、3、4),并提供了简要的总结和深入的讨论。
本文的结构如下。第2节回顾了三维形状分类的方法。第3节概述了现有的三维目标检测和跟踪方法。第4节介绍了点云分割的方法,包括语义分割、实例分割和部件分割。最后,第5节总结了论文。
论文还在以下网址上提供了定期更新的项目页面:
https://github.com/QingyongHu/SoTA-Point-Cloud
图2:三维形状分类网络的时间顺序概览。
图3:PointNet的体系结构。
图4:点的局部邻居的连续和离散卷积的图解。(a)代表一个局部邻居;(b)和(c)分别表示三维连续卷积和离散卷积。
图5:基于图的网络的图解。
表1:在ModelNet10/40基准上比较三维形状分类结果。这里,我们只关注基于点的网络,“#params”表示相应模型的参数数量。“OA”表示总体精度,“mAcc”表示表中的平均精度。符号“-”表示结果不可用。
图6:按时间顺序概述的最相关的基于深度学*的三维目标检测方法。
图7:三类三维目标检测方法的典型网络。从上到下:(a)基于多视图,(b)基于分割,(c)基于视锥的方法。
表2:在KITTI测试三维检测基准上的三维目标检测结果对比。
表3:在KITTI test BEV检测基准上三维目标检测结果对比。
图8:按时间顺序概述了一些最相关的基于深度学*的点云语义分割方法。
图9:基于投影方法的中间表示图。
图10:PointNet++[27]框架的示意图。
图11:有代表性的三维点云实例分割方法的年代概述。
未来方向
表4展示了现有方法在公共基准测试上的结果,包括S3DIS[176]、Semantic3D[9]、ScanNet[102]、SemanticKITTI[177]。需要进一步研究的问题有:
·
基于点的网络是最常被研究的方法。然而,点表示自然不具有显式的邻*信息,现有的大多数基于点的方法不得不借助于昂贵的邻*搜索机制(如KNN[52]或ball query
[27])。这从本质上限制了这些方法的效率,因为邻居搜索机制既需要很高的计算成本,又需要不规则的内存访问[214]。
·
从不平衡数据中学*仍然是点云分割中一个具有挑战性的问题。虽然有几种的方法取得了显著的综合成绩[42]、[170]、[182],但它们在类标很少的情况下表现仍然有限。例如,RandLA-Net[95]在Semantic3D的reduced-8子集上获得了76.0%的整体IoU,而在hardscape类上获得了41.1%的非常低的IoU。
·
大多数现有的方法[5]、[27]、[52]、[170]、[171]都适用于小点云(如1m*1m,共4096个点)。在实际中,深度传感器获取的点云通常是巨大的、大规模的。因此,有必要进一步研究大规模点云的有效分割问题。
·
已有少数文献[145]、[146]、[167]开始研究动态点云的时空信息。预期时空信息可以帮助提高后续任务的性能,如三维目标识别、分割和完成。
表4:S3DIS(包括Area5和6-fold
cross validation)[176]、Semantic3D(包括semantic-8和reduced-8子集)[9]、ScanNet[8]和SemanticKITTI[177]数据集的语义分割结果对比。
结论
本文介绍了最先进的三维理解方法,包括三维形状分类,三维目标检测和跟踪,以及三维场景和目标分割。对这些方法进行了全面的分类和性能比较。介绍了各种方法的优缺点,并提出了今后的研究方向。
3D点云点云分割、目标检测、分类的更多相关文章
- 转载:点云上实时三维目标检测的欧拉区域方案 ----Complex-YOLO
感觉是机器翻译,好多地方不通顺,凑合看看 原文名称:Complex-YOLO: An Euler-Region-Proposal for Real-time 3D Object Detection ...
- 多目标检测分类 RCNN到Mask R-CNN
最近做目标检测需要用到Mask R-CNN,之前研究过CNN,R-CNN:通过论文的阅读以及下边三篇博客大概弄懂了Mask R-CNN神经网络.想要改进还得努力啊... 目标检测的经典网络结构,顺序大 ...
- CVPR2020论文解读:3D Object Detection三维目标检测
CVPR2020论文解读:3D Object Detection三维目标检测 PV-RCNN:Point-Voxel Feature Se tAbstraction for 3D Object Det ...
- Comparison of SIFT Encoded and Deep Learning Features for the Classification and Detection of Esca Disease in Bordeaux Vineyards(分类MobileNet,目标检测 RetinaNet)
识别葡萄的一种虫害,比较了传统SIFT和深度学习分类,最后还做了目标检测 分类用的 MobileNet,目标检测 RetinaNet MobileNet 是将传统深度可分离卷积分成了两步,深度卷积和逐 ...
- ICCV2019论文点评:3D Object Detect疏密度点云三维目标检测
ICCV2019论文点评:3D Object Detect疏密度点云三维目标检测 STD: Sparse-to-Dense 3D Object Detector for Point Cloud 论文链 ...
- 点云3D 目标检测
点云 点云是雷达采集到的信息. 关于点云基本介绍参考https://zhuanlan.zhihu.com/p/22581673 ros中的点云消息结构:http://docs.ros.org/jade ...
- CVPR2020论文介绍: 3D 目标检测高效算法
CVPR2020论文介绍: 3D 目标检测高效算法 CVPR 2020: Structure Aware Single-Stage 3D Object Detection from Point Clo ...
- CVPR2020:三维实例分割与目标检测
CVPR2020:三维实例分割与目标检测 Joint 3D Instance Segmentation and Object Detection for Autonomous Driving 论文地址 ...
- CVPR2020|3D-VID:基于LiDar Video信息的3D目标检测框架
作者:蒋天园 Date:2020-04-18 来源:3D-VID:基于LiDar Video信息的3D目标检测框架|CVPR2020 Brief paper地址:https://arxiv.org/p ...
随机推荐
- Vue学习(二)-Vue中组件间传值常用的几种方式
版本说明:vue-cli:3.0 主要分为两类: 1.父子组件间的传值 2.非父子组件间的传值 1.父子组件间传值 父组件向子组件传值 第一种方式: props 父组件嵌套的子组件中,使用v-bind ...
- hdu4807枚举费用流
题意: 给你一个有向图,每条边上都有每一时刻的最大流量,有k个人在点0,他们要去点n-1,问你最晚到达的那个人最快要多久. 思路: 这个题目做了很多次,用过费用流,也用过最大流,结 ...
- AliCrackme_2题的分析
作者:Fly2015 AliCrackme_2.apk运行起来的注册界面,如图. 首先使用Android反编译利器Jeb对AliCrackme_2.apk的Java层代码进行分析. 很幸运,就找到了该 ...
- 基于Xposed Hook实现的Android App的协议算法分析小工具-CryptoFucker
本文博客地址:https://blog.csdn.net/QQ1084283172/article/details/80962121 在进行Android应用的网络协议分析的时候,不可避免涉及到网络传 ...
- [CTF]当铺密码
[CTF]当铺密码 --------------------- 作者:adversity` 来源:CSDN 原文:https://blog.csdn.net/qq_40836553/articl ...
- 教你用SQL实现统计排名
前言: 在某些应用场景中,我们经常会遇到一些排名的问题,比如按成绩或年龄排名.排名也有多种排名方式,如直接排名.分组排名,排名有间隔或排名无间隔等等,这篇文章将总结几种MySQL中常见的排名问题. 创 ...
- 04.06 UCF Local Programming Contest 2017
A.Electric Bill 题意:简单计算题,超过1000部分额外算 1 #include<stdio.h> 2 int main(){ 3 int money1,money2; 4 ...
- React中diff算法的理解
React中diff算法的理解 diff算法用来计算出Virtual DOM中改变的部分,然后针对该部分进行DOM操作,而不用重新渲染整个页面,渲染整个DOM结构的过程中开销是很大的,需要浏览器对DO ...
- C++ primer plus读书笔记——第4章 复合类型
第4章 复合类型 1. 如果将sizeof运算符用于数组名,得到的将是整个数组中的字节数. 2. 如果对数组的一部分进行初始化,则编译器把其他元素设置为0.因此,将数组中的所有元素初始化为0,只要显式 ...
- qsort和sort学习与比较
阅读另一篇博文Uva 642 - Word Amalgamation sort qsort 1.qsort函数: 原 型: void qsort(void *base, int nelem, int ...