Geo-CNN的三维点云

Modeling Local Geometric Structure of 3D Point Clouds using Geo-CNN

摘要

深度卷积神经网络(CNNs)的最新进展促使研究人员采用CNNs直接对三维点云中的点进行建模。局部结构的建模已经被证明是卷积结构成功的关键,研究人员在特征提取层次中开发了局部点集的建模。对于局部区域内点间几何结构的显式建模研究却很少。提出GeoCNN,它对每个点及其局部邻域应用一种称为GeoConv的类卷积运算。在提取中心点与相邻点的边缘特征时,捕捉点之间的局部几何关系。将边缘特征提取过程分解为三个正交基,根据边缘向量与基之间的夹角对提取的特征进行聚合。在整个特征提取层次中保持欧几里德空间中的几何结构。GeoConv是一种通用且高效的操作,可轻松集成到多个应用程序的三维点云分析管道中。在ModelNet40和KITTI上评估Geo-CNN,并获得最先进的性能。

创新点

为了解决这些问题,提出了一种新的卷积式操作GeoConv,在特征提取的整个层次中,显式地建模点之间的几何结构。GeoConv应用于每个点及其由半径确定的局部球面邻域。如图1所示,表示两点间几何结构的向量p~q可以分解为三个正交基。通过将边缘特征提取过程分解为三个正交方向,减少点云绝对坐标的方差,鼓励网络沿着每个基独立学习边缘特征;根据边缘向量与基之间的几何关系聚合特征,显式地建立点之间的几何结构模型。这种学习方式在保留几何信息的同时,将复杂的几何结构学习问题分解为简单的几何结构学习问题。最后,为了提取中心点的局部特征,基于p~q范数对局部邻域中所有点的边缘特征进行加权,GeoConv的另一个优点是能够实现特征级的多视图增强。分解聚合方法可以通过操纵角度来重新加权特征,从而在特征层近似点云的旋转。

通过将多层GeoConv与越来越大的邻域进行叠加,构建Geo CNN,通过增加接收域来分层提取特征。通过通道最大值池来聚合所有点的特征,以保持置换不变性。GeoConv是对点的局部几何结构进行建模的通用模块。可以很容易地集成到不同的管道中进行三维点云分析,例如三维形状分类、分割和目标检测。对Geo-CNN的ModelNet40[51]和KITTI[17]进行了评估,并获得了最佳性能状态。

以一组三维点为输入,通过对每个点及其局部邻域应用卷积类运算(GeoConv)来开发局部几何结构。通过增加邻域大小来叠加多个GeoConv层来构建Geo-CNN。逐步扩大卷积的接受域,并抽象出越来越大的局部区域,以分层提取特征并保持沿层次的点的几何结构(如图2的(a)所示)。

B = {(1,0,0),(−1,0,0),(0,1,0), (0,−1,0),(0,0,1),(0,0,−1)}

如图2的(c)所示,六个基将空间分成8个象限,特定象限中的任何矢量都可以由B之外的三个基组成。给定一个相邻点q,定位它所处的象限(将p设为原点来考虑相对坐标系)。将矢量p~q投影到该象限的三个基上,计算p~q与各基之间的夹角(如图2(d)所示)。

表1显示了Geo-CNN和以前的方法之间的比较。Geo CNN在对象分类任务中使用ModelNet401的两个评估指标实现了最新的性能。本文使用最先进的PointNet++[35]实现了类似的性能。

用GeoConv代替v1分割网络中的点网特征提取模块,GeoCNN的截头台性能优于v1和v2截头台。根据[32]发布的代码评估验证集上的截头台v1和v2的性能,它与[32]中报告的性能非常相似。在图4的二维和三维图像上用Geo-CNN可视化截头台的检测结果。

表2显示了KITTI 3D目标检测的评估结果。检测管道的实现基于截锥点网v1,涉及到2D对象检测中的对象建议[36、18、59、26、58]。v1的性能被更复杂体系结构的截头体PointNet v2超越。

如表3所示,直接学习点之间的几何结构或系数以从三维坐标中聚合分解的特征没有帮助。

评估了特征级多视图增强的效果。一种将多视图信息融合到网络学习过程中的简单方法,训练时随机旋转输入点云作为数据增强。在GeoConv中提出的分解-聚集方法,使我们能够在特征层近似三维多视图增强。表5显示了ModelNet40数据集上输入级多视图增强和特征级近似的性能。观察到输入级多视图数据增强导致基线法和Geo-CNN的性能下降。一个可能的原因是,输入级数据的增加会导致不同视图之间的差异很大,而这种差异不能用单一的紧凑模型来正确地学习。另一种可能的解决方案是学习具有不同视图的单独模型,然后将其聚合。多网络模型的复杂性,其灵活性和可扩展性较差。

Geo-CNN的三维点云的更多相关文章

  1. CVPR2020:训练多视图三维点云配准

    CVPR2020:训练多视图三维点云配准 Learning Multiview 3D Point Cloud Registration 源代码和预训练模型:https://github.com/zgo ...

  2. CVPR2020:端到端学习三维点云的局部多视图描述符

    CVPR2020:端到端学习三维点云的局部多视图描述符 End-to-End Learning Local Multi-View Descriptors for 3D Point Clouds 论文地 ...

  3. CVPR2020:三维点云无监督表示学习的全局局部双向推理

    CVPR2020:三维点云无监督表示学习的全局局部双向推理 Global-Local Bidirectional Reasoning for Unsupervised Representation L ...

  4. 第一周:读取XML深度数据并将其重建为三维点云

    本周主要任务:学习PCL点云库,掌握利用PCL对点云处理的方法 任务时间:2014年9月1日-2014年9月7日 任务完成情况:完成了读取单幅xml深度数据,并重建三维点云并显示 任务涉及基本方法: ...

  5. python读取三维点云球坐标数据并动态生成三维图像与着色

    关键步骤: 1.首先通过读取.txt文本数据并进行一系列字符串处理,提取显示所需要的相关数据矩阵 2.然后利用python的matplotlib库来进行动态三维显示 备注:matplotlib在显示2 ...

  6. Dlib三维点云示例

    Dlib三维点云示例 源代码来自Dlib的示例代码http://dlib.net/3d_point_cloud_ex.cpp.html 在windows下需要链接winmm``comctl32``gd ...

  7. Matlab给三维点云添加高斯噪声和随机噪声

    写在前面 在我们进行点云配准一类的模拟实验时,第一步就是对原始点云进行适当的RT变换,并添加一定的噪声,得到测量点云,然后才可以用我们的算法去进行后面的配准操作.在添加噪声这一块,matlab里并没有 ...

  8. 三维点云去噪无监督学习:ICCV2019论文分析

    三维点云去噪无监督学习:ICCV2019论文分析 Total Denoising: Unsupervised Learning of 3D Point Cloud Cleaning 论文链接: htt ...

  9. python处理点云数据并生成三维点云模型

    1.python代码: 1 import numpy as np 2 import matplotlib.pyplot as plt 3 from mpl_toolkits.mplot3d impor ...

随机推荐

  1. Linux系统中stat查看文件的相关时间

    目录 对于文件来说 对于目录来说 利用touch命令修改时间 在Linux下,对于一个文件有很多个时间戳属性,文件的创建时间,文件的修改时间,文件的读取时间.我们用stat来查看文件的相关时间属性. ...

  2. Windows Pe 第三章 PE头文件(上)

    第三章  PE头文件 本章是全书重点,所以要好好理解,概念比较多,但是非常重要. PE头文件记录了PE文件中所有的数据的组织方式,它类似于一本书的目录,通过目录我们可以快速定位到某个具体的章节:通过P ...

  3. MetInfo Password Reset Poisoning By Host Header Attack

    if we know some user's email, the we will can reset the user's email by host header attack. The atta ...

  4. 【pytest系列】- mark标记功能详细介绍

    如果想从头学起pytest,可以去看看这个系列的文章! https://www.cnblogs.com/miki-peng/category/1960108.html mark标记 ​ 在实际工作中, ...

  5. Cannot read property 'style' of null

    代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8& ...

  6. vue.js在html页面中的使用

    1.加载vue.js,然后 var app = new Vue({ //vue代码})2.截图如下:

  7. Spring Cloud 升级之路 - 2020.0.x - 4. 使用 Eureka 作为注册中心

    Eureka 目前的状态:Eureka 目前 1.x 版本还在更新,但是应该不会更新新的功能了,只是对现有功能进行维护,升级并兼容所需的依赖. Eureka 2.x 已经胎死腹中了.但是,这也不代表 ...

  8. MySQL字段默认值设置详解

    前言: 在 MySQL 中,我们可以为表字段设置默认值,在表中插入一条新记录时,如果没有为某个字段赋值,系统就会自动为这个字段插入默认值.关于默认值,有些知识还是需要了解的,本篇文章我们一起来学习下字 ...

  9. js EventSource 长链接

    有这么一个场景:服务端处理数据,响应比较慢,为了不让用户体会到网页没有反应,服务端需要把处理的每一步操作返回给前端,前端实时进行打印. 1.ajax 轮询 <script> setInte ...

  10. Flink使用二次聚合实现TopN计算

    一.背景说明: 有需求需要对数据进行统计,要求每隔5分钟输出最近1小时内点击量最多的前N个商品,数据格式预览如下: 543462,1715,1464116,pv,1511658000 662867,2 ...