Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >前沿丨基于深度学习的点云分割网络及点云分割数据集

前沿丨基于深度学习的点云分割网络及点云分割数据集

作者头像
计算机视觉
发布于 2022-05-24 01:08:13
发布于 2022-05-24 01:08:13
6.2K0
举报

众所周知,点云的有效分割是许多应用的前提,例如在三维重建领域,需要对场景内的物体首先进行分类处理,然后才能进行后期的识别和重建。传统的点云分割主要依赖聚类算法和基于随机采样一致性的分割算法,在很多技术上得到了广泛应用,但当点云规模不断增大时,传统的分割算法已经很难满足实际需要,这时就需要结合深度学习进行分割。因此,本文将重点介绍5种前沿的点云分割网络,包括PointNet/PointNet++、PCT、Cylinder以及JSNet网络,最后介绍5中常用的点云分割数据集。

作者丨泡椒味的泡泡糖

“点云分割是根据空间、几何和纹理等特征对点云进行划分,使得同一划分内的点云拥有相似的特征。”

01

PointNet/PointNet++

说起点云分割网络,就不得不介绍PointNet,它来源于CVPR的论文“Deep Learning on Point Sets for 3D Classification and Segmentation”。PointNet是首个输入3D点云输出分割结果的深度学习网络,属于开山之作,成为了后续很多工作的BaseLine,网络的总体结构如图1所示。

图1 PointNet网络

整体的PointNet网络中,除了点云的感知以外,还有T-Net,即3D空间变换矩阵预测网络,这主要是由于点云分类的旋转不变性,当一个N×D在N的维度上随意的打乱之后,其表述的其实是同一个物体,因此针对点云的置换不变性,其设计的网络必须是一个对称的函数。

在PointNet网络中,对于每一个N×3的点云输入,网络先通过一个T-Net将其在空间上对齐(旋转到正面),再通过MLP将其映射到64维的空间上,再进行对齐,最后映射到1024维的空间上。这时对于每一个点,都有一个1024维的向量表征,而这样的向量表征对于一个3维的点云明显是冗余的,因此这个时候引入最大池化操作,将1024维所有通道上都只保留最大的那一个,这样得到的1×1024的向量就是N个点云的全局特征。

PointNet网络在ShapeNet数据集上的实验效果如表1所示,可以看出,大多数分割都取得了SOAT效果。部分分割结果如图2所示,可以看出分割结果相当平稳,并且具有很强的鲁棒性。

表1 PointNet在ShapeNet上的分割效果对比

图2 PointNet部分分割结果

PointNet++主要是为了克服PointNet自身的一些缺点,其中最大的缺点就是缺失局部特征。由于PointNet直接暴力地将所有的点最大池化为一个全局特征,因此局部点与点之间的联系并没有被网络学习到。在分类和物体的Part Segmentation中,这样的问题还可以通过中心化物体的坐标轴部分地解决,但在场景分割中,这就会导致效果变差。

为了克服PointNet的缺点,作者在PointNet++中主要借鉴了CNN的多层感受野的思想。CNN通过分层不断地使用卷积核扫描图像上的像素并做内积,使得越到后面的特征图感受野越大,同时每个像素包含的信息也越多。而PointNet++就是仿照了这样的结构,先通过在整个点云的局部采样并划一个范围,将里面的点作为局部的特征,用PointNet进行一次特征的提取。因此,通过了多次这样的操作以后,原本的点的个数变得越来越少,而每个点都是有上一层更多的点通过PointNet提取出来的局部特征,也就是每个点包含的信息变多了。

PointNet++的网络结构如图3所示,同时作者对比了PointNet和PointNet++的分割效果如图4所示,可见PointNet++的效果全面优于PointNet。

图3 PointNet++网络结构

图4 PointNet++分割结果

02

PCT网络

近年来,NLP领域的Transformer大火,同时也有大量学者将其从NLP领域迁移到图像和点云领域。清华大学将Transformer应用于3D点云分割技术,设计了全新的PCT(Point Cloud Transformer)网络,其网络结构如图5所示。

图5 PCT网络结构

PCT应用Transformer进行点云分割的具体原理如图6所示,其中星号代表Transformer的查询向量,黄色到蓝色代表注意力权重逐渐增加,最后一列代表分割结果。

图6 PCT点云分割原理

为了更好地捕获点云中的local context,作者在最远点采样和最近邻居搜索的支持下增强了输入嵌入,同时Transformer在点云分割领域的成功,也逐渐打通了NLP、图像、点云等不同领域的壁垒,对于“模型大一统”具有重要意义。PCT点云分割与其他分割算法的对比如图7所示,大量的实验表明,PCT在形状分类,part分割和法向量估算任务方面达到了最先进的性能。

图6 PCT点云分割效果与其他算法对比

03

Cylinder网络

Cylinder网络来源于CVPR论文“Cylindrical and Asymmetrical 3D Convolution Networks for LiDAR Segmentation”,Cylinder网络结构如图7所示。Cylinder网络由圆柱坐标体素划分和非对称3D卷积网络组成,作者认为圆柱分割可以有效提高分割精度,此外作者还引入了一个point-wise模块来改进体素块输出,提高辨识精度。

图7 Cylinder网络结构

作者认为基于柱坐标的voxel的划分,可以与激光雷达扫描过程保持一致。进而有效地减少空voxel的比率。此外,作者将Cylinder网络在两个大型室外场景数据集(SemanticKITTI和nuScenes)上进行了评估,评估效果对比如表2和表3所示。评估显示,在SemanticKITTI数据集上,Cylinder网络排名第一。在nuScenes数据集上,新方法的表现也大大超过了之前的方法。

表2 Cylinder网络在SemanticKITTI数据集上的对比效果

表3 Cylinder网络在nuScenes数据集上的对比效果

04

JSNet网络

JSNet来源于AAAI论文“JSNet: Joint Instance and Semantic Segmentation of 3D Point Clouds”,JSNet可以同时解决3D点云的实例和语义分割问题,其网络结构如图8所示。

图8 JSNet网络结构

JSNet首先建立有效的骨干网络,以从原始点云数据中提取鲁棒的特征。其次为了获得更多的判别特征,提出了一种点云特征融合模块来融合骨干网的不同层特征。此外,JSNet开发了联合实例语义分割模块以将语义特征转换为实例嵌入空间,然后将转换后的特征进一步与实例特征融合以促进实例分割。同时,该模块还将实例特征聚合到语义特征空间中,以促进语义分割。最后,JSNet通过对实例嵌入应用简单的均值漂移聚类来生成实例预测。

如表4和表5所示是JSNet网络在大型3D室内点云数据集S3DIS上的评估结果,图9是JSNet网络的分割效果。实验结果表明,JSNet网络在3D实例分割中的性能优于最新方法,在3D语义预测方面有重大改进,同时有利于零件分割。

表4 JSNet网络在S3DIS数据集上的实例分割结果

表5 JSNet网络在S3DIS数据集上的语义分割结果

图9 JSNet网络的分割效果

05

点云分割数据集

深度神经网络的训练往往需要大量的数据集,同时深度神经网络性能的优劣也往往是在公开数据集上进行评估,因此选择合适的数据集至关重要。常用的点云分割数据集主要有如下几个:

5.1 Semantic3D

经典的大型室外场景点云分割数据集,由激光雷达扫描周围场景得到。Semantic3D提供了一个带有大标签的自然场景的3D点云数据集,总计超过40亿个点,8个类别标签。

数据集包含了各种城市和乡村场景,如农场,市政厅,运动场,城堡和广场。该数据集包含15个训练数据集和15个测试数据集,另外还包括4个缩减了的测试数据集。数据集中的点都含有RGB和深度信息,并被标记为8个语义类别,分别是1:人造地形;2:自然地形;3:高植被;4:低植被;5:建筑物;6:硬景观;7:扫描人工制品,8:汽车,附加标签0:未标记点,标记没有地面真值的点。

数据集地址:http://www.semantic3d.net/

5.2 S3DIS

S3DIS数据集是斯坦福大学开发的带有像素级语义标注的语义数据集,是常用的室内场景分割数据集,使用Matterport相机收集数据,包含6个Area,13个语义元素,11种场景。

其中13个语义元素分别包括:天花板ceiling、地板floor、墙壁wall、梁beam、柱column、窗window、门door、桌子table、椅子chair、沙发sofa、书柜bookcase、板board、混杂元素(其他)clutter;11种场景分别包括办公室office、会议室conference room、走廊hallway、礼堂auditorium、开放空间open space、大堂lobby、休息室lounge、储藏室pantry、复印室copy room、储藏室storage和卫生间WC。

数据集地址:http://buildingparser.stanford.edu/dataset.html

5.3 SemanticKITTI

SemanticKITTI数据集是一个基于KITTI Vision Benchmark里程计数据集的大型户外点云数据集,显示了市中心的交通、住宅区,以及德国卡尔斯鲁厄周围的高速公路场景和乡村道路。原始里程计数据集由22个序列组成,作者将序列00到10拆分为训练集,将11到21拆分为测试集,并且为了与原始基准保持一致,作者对训练和测试集采用相同的划分,采用和KITTI数据集相同的标定方法,这使得该数据集和KITTI数据集等数据集可以通用。

SemanticKITTI数据集作者提供了精确的序列扫描注释,并且在点注释中显示了前所未有的细节,包含28个类,确保了类与Mapillary Visiotas数据集和Cityscapes数据集有很大的重叠,并在必要时进行了修改,以考虑稀疏性和垂直视野。

数据集地址:http://www.semantic-kitti.org/index.html

5.4 ShapeNet

ShapeNet数据集是一个由对象的三维CAD模型表示的形状存储库,注释丰富,规模较大。ShapeNet包含来自多种语义类别的3D模型,并按照WordNet分类法组织,能够完成部件分割任务,即不仅知道这个点云数据大的分割,还要将它的小部件进行分割。它总共包括十六个大的类别,每个大的类别有可以分成若干个小类别,十六个类别具体包括:飞机Airplane、包Bag、帽子Cap、汽车Car、椅子Chair、耳机Earphone、吉他Guitar、刀Knife、灯Lamp、电脑Laptop、摩托车Motorbike、杯子Mug、手枪Pistol、火箭Rocket、滑板Skateboard、桌子Table。

数据集地址:https://www.shapenet.org/

5.5 PartNet

PartNet数据集是用于细粒度和分层零件级3D对象理解的大规模基准。数据集包含573585个零件实例,涵盖26671个3D模型,涵盖24个对象类别。PartNet数据集启用并充当许多任务的催化剂,例如形状分析,动态3D场景建模和仿真,可负担性分析等。数据集建立了用于评估3D零件识别的三个基准测试任务:细粒度语义分割,分层语义分割和实例分割。

数据集地址:https://shapenet.org/download/parts

06

结论

近年来,随着自动驾驶和三维重建技术的不断发展,需要处理的点云规模越来越庞大,传统的聚类算法和基于随机采样一致性的分割算法较难满足实时性和精度要求。而基于深度学习的点云分割网络较好地解决了上述问题,本文重点介绍了几种前沿的点云分割网络,包括PointNet/PointNet++、PCT、Cylinder以及JSNet网络,并介绍了5种常用的点云分割数据集。读者在应用深度学习进行点云分割或设计点云分割网络时,要根据自身需求和实际工况,有针对地选择合适的点云分割网络和数据集。

本文仅做学术分享,如有侵权,请联系删文。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-05-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 计算机视觉工坊 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Vue2+VueRouter2+webpack 构建项目实战(三)配置路由,整俩页面先
2016年,我写了一系列的 VUE 入门教程,当时写这一系列博文的时候,我也只是一个菜鸟,甚至在写的过程中关闭了代码审查,否则通不过校验。
FungLeo
2022/05/05
5700
Vue2+VueRouter2+webpack 构建项目实战(三)配置路由,整俩页面先
vue嵌套路由
  在实际项目中,多个前端页面由于需求而通常由多层嵌套的组件组合而成,尤其是多导航界面。此时,路由嵌套(vue-router)的优点则表现了出来。嵌套路由就是在一个被路由过来的页面下,可以继续使用路由来加载新的组件。所谓嵌套,也可以理解成父子路由。
流眸
2019/08/12
1.3K0
vue嵌套路由
Vue2+VueRouter2+webpack 构建项目实战(四)接通api,先渲染个列表
2016年,我写了一系列的 VUE 入门教程,当时写这一系列博文的时候,我也只是一个菜鸟,甚至在写的过程中关闭了代码审查,否则通不过校验。
FungLeo
2022/05/05
4510
Vue2+VueRouter2+webpack 构建项目实战(四)接通api,先渲染个列表
Vue2+VueRouter2+webpack 构建项目实战(一)准备工作
2016年,我写了一系列的 VUE 入门教程,当时写这一系列博文的时候,我也只是一个菜鸟,甚至在写的过程中关闭了代码审查,否则通不过校验。
FungLeo
2022/05/05
2740
Vue2+VueRouter2+webpack 构建项目实战(一)准备工作
Vue2+VueRouter2+Webpack+Axios 构建项目实战2017重制版(九)再把内容页面渲染出来
本文介绍了如何利用 Vue2+VueRouter2+Webpack+Axios 框架实现一个完整的前端项目,包括列表页面、详情页面、登录页面以及登录逻辑和权限控制。通过实际项目,介绍了如何在实际开发中利用 Vue 及其生态系统,提高开发效率,解决实际问题。
FungLeo
2018/01/08
7440
Vue2+VueRouter2+Webpack+Axios 构建项目实战2017重制版(九)再把内容页面渲染出来
Vue2+VueRouter2+webpack 构建项目实战(二)目录以及文件结构
2016年,我写了一系列的 VUE 入门教程,当时写这一系列博文的时候,我也只是一个菜鸟,甚至在写的过程中关闭了代码审查,否则通不过校验。
FungLeo
2022/05/05
3100
Vue2+VueRouter2+webpack 构建项目实战(二)目录以及文件结构
Vue2+VueRouter2+Webpack+Axios 构建项目实战2017重制版(三)认识项目所有文件
Vue2+VueRouter2+Webpack+Axios 构建项目实战2017重制版(三)认识项目所有文件 在《Vue2+VueRouter2+Webpack+Axios 构建项目实战2017重制版
FungLeo
2018/01/08
7700
Vue2+VueRouter2+Webpack+Axios 构建项目实战2017重制版(四)调整 App.vue 和 router 路由
摘要总结:本篇文章主要介绍了如何通过Vue2+VueRouter2+Webpack+Axios构建项目实战2017重制版,包括项目的目录结构、Vue和VueRouter的配置、Webpack的配置、Axios的配置以及如何在项目中使用axios进行http请求的操作,最后还介绍了如何自定义Vue组件以及如何使用Vue2和VueRouter2实现动态路由和组件显示的切换。
FungLeo
2018/01/08
8680
Vue2+VueRouter2+Webpack+Axios 构建项目实战2017重制版(四)调整 App.vue 和 router 路由
Vue2+VueRouter2+Webpack+Axios 构建项目实战2017重制版(八)渲染一个列表出来先
Vue2+VueRouter2+Webpack+Axios 构建项目实战2017重制版(八)渲染一个列表出来先 前情回顾 在上一篇博文《Vue2+VueRouter2+Webpack+Axios 构建
FungLeo
2018/01/08
9820
Vue2+VueRouter2+Webpack+Axios 构建项目实战2017重制版(八)渲染一个列表出来先
Vue2+VueRouter2+webpack 构建项目实战(六)修复代码并通过验证,另发布代码
2016年,我写了一系列的 VUE 入门教程,当时写这一系列博文的时候,我也只是一个菜鸟,甚至在写的过程中关闭了代码审查,否则通不过校验。
FungLeo
2022/05/05
2800
Vue2+VueRouter2+webpack 构建项目实战(六)修复代码并通过验证,另发布代码
Vue2+VueRouter2+Webpack+Axios 构建项目实战2017重制版(十一)阶段性小结
FungLeo
2018/01/08
9270
Vue2+VueRouter2+Webpack+Axios 构建项目实战2017重制版(一)基础知识概述
本文主要讲解了如何利用 Vue.js 以及 Element UI 实现一个搜索框,并介绍了如何实现搜索后根据匹配到的结果展示对应的内容。同时,也介绍了一些用于富文本编辑的常用插件和工具,如 codemirror、ueditor 和 draft.js。此外,还介绍了一款用于代码编辑器的插件,即 vscode-icons。
FungLeo
2018/01/08
1K0
Vue2+VueRouter2+Webpack+Axios 构建项目实战2017重制版(五)配置 Axios api 接口调用文件
Vue2+VueRouter2+Webpack+Axios 构建项目实战2017重制版(五)配置 Axios api 接口调用文件 前情回顾 在上一篇《Vue2+VueRouter2+Web
FungLeo
2018/01/08
1.1K0
Vue2+VueRouter2+Webpack+Axios 构建项目实战2017重制版(五)配置 Axios api 接口调用文件
Vue2+VueRouter2+Webpack+Axios 构建项目实战2017重制版(七)初识 *.vue 文件
FungLeo
2018/01/08
6500
17、webpack从0到1-构建vue项目
讲下webpack中的对于vue配置,其实vue官方就提供了一套模板vue-webpack-template,我们学习学习,然后基于当前自己的项目来配置下。 git仓库:webpack-demo 1、处理vue 对于.vue这种文件,webpack肯定是不认识的,所以我们需要相应的loader来处理它,通过查阅文档我们发现需要安装这两个东西: $ npm install vue-loader vue-template-compiler --save-dev 然后安装文档上面的教程,照猫画虎搞一下。这
Ewall
2020/03/25
5960
Vue2+VueRouter2+Webpack+Axios 构建项目实战2017重制版(十四)在项目中使用 jQuery
摘要总结:本文介绍了如何在 Vue 2 项目中引入 jQuery,并提供了两种方法来引入,一种是直接引入静态文件,另一种是在项目中使用 NPM 安装。同时,还提供了一种用于测试 jQuery 是否可以正常运行的简单方法。
FungLeo
2018/01/08
1.1K0
Vue2+VueRouter2+Webpack+Axios 构建项目实战2017重制版(十四)在项目中使用 jQuery
Vue2+VueRouter2+Webpack+Axios 构建项目实战2017重制版(六)将接口用 webpack 代理到本地
FungLeo
2018/01/08
9280
Vue2+VueRouter2+Webpack+Axios 构建项目实战2017重制版(六)将接口用 webpack 代理到本地
Vue2+VueRouter2+webpack+Axios 构建项目实战(七)重构API文件为使用axios
FungLeo
2018/01/08
1K0
Vue2+VueRouter2+Webpack+Axios 构建项目实战2017重制版(十二)打包项目图片等资源的处理
摘要总结:本篇文章主要介绍了在Vue2+VueRouter2+Webpack+Axios项目中如何打包项目图片等资源的处理。首先介绍了如何在vue文件中使用图片,然后介绍了在css文件中引用图片的处理方式,最后还介绍了字体图标、js文件等资源的引用方式。在开发模式中,要注意路径的相对性,以避免路径错误。通过在根目录打包项目,可以方便地引用各种资源,从而提高项目的开发效率。
FungLeo
2018/01/08
8340
基于 Webpack & Vue & Vue-Router 的 SPA 初体验
最近这几年的前端圈子,由于戏台一般精彩纷呈,从 MVC 到 MVVM,你刚唱罢我登场。 backbone,angularjs 已成昨日黄花,reactjs 如日中天,同时另一更轻量的 vue 发展势头更猛,尤其是即将 release 的2.0版本,号称兼具了 angularjs 和 reactjs 的两者优点。不过现在的官方版本还是1.0 ,下面就是基于1.0版本的初体验。 1. 为什么要 SPA? SPA: 就是俗称的单页应用(Single Page Web Application)。 在移动端,特别是
腾讯Bugly
2018/03/23
2.2K0
推荐阅读
Vue2+VueRouter2+webpack 构建项目实战(三)配置路由,整俩页面先
5700
vue嵌套路由
1.3K0
Vue2+VueRouter2+webpack 构建项目实战(四)接通api,先渲染个列表
4510
Vue2+VueRouter2+webpack 构建项目实战(一)准备工作
2740
Vue2+VueRouter2+Webpack+Axios 构建项目实战2017重制版(九)再把内容页面渲染出来
7440
Vue2+VueRouter2+webpack 构建项目实战(二)目录以及文件结构
3100
Vue2+VueRouter2+Webpack+Axios 构建项目实战2017重制版(三)认识项目所有文件
7700
Vue2+VueRouter2+Webpack+Axios 构建项目实战2017重制版(四)调整 App.vue 和 router 路由
8680
Vue2+VueRouter2+Webpack+Axios 构建项目实战2017重制版(八)渲染一个列表出来先
9820
Vue2+VueRouter2+webpack 构建项目实战(六)修复代码并通过验证,另发布代码
2800
Vue2+VueRouter2+Webpack+Axios 构建项目实战2017重制版(十一)阶段性小结
9270
Vue2+VueRouter2+Webpack+Axios 构建项目实战2017重制版(一)基础知识概述
1K0
Vue2+VueRouter2+Webpack+Axios 构建项目实战2017重制版(五)配置 Axios api 接口调用文件
1.1K0
Vue2+VueRouter2+Webpack+Axios 构建项目实战2017重制版(七)初识 *.vue 文件
6500
17、webpack从0到1-构建vue项目
5960
Vue2+VueRouter2+Webpack+Axios 构建项目实战2017重制版(十四)在项目中使用 jQuery
1.1K0
Vue2+VueRouter2+Webpack+Axios 构建项目实战2017重制版(六)将接口用 webpack 代理到本地
9280
Vue2+VueRouter2+webpack+Axios 构建项目实战(七)重构API文件为使用axios
1K0
Vue2+VueRouter2+Webpack+Axios 构建项目实战2017重制版(十二)打包项目图片等资源的处理
8340
基于 Webpack & Vue & Vue-Router 的 SPA 初体验
2.2K0
相关推荐
Vue2+VueRouter2+webpack 构建项目实战(三)配置路由,整俩页面先
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档