ICCV 2021 | 表现SOTA!CurveNet:面向点云几何形状的长距离特征提取网络

点击下方卡片,关注“CVer”公众号

AI/CV重磅干货,第一时间送达

Walk in the Cloud: Learning Curves for Point Clouds Shape Analysis

ee979d4affc2160ace831deb99bfe3b8.png

作者单位:悉尼大学,新南威尔士大学

项目网页:https://curvenet.github.io/

代码:https://github.com/tiangexiang/CurveNet

论文:https://arxiv.org/abs/2105.01288

导读:

点云处理一直以来是计算机视觉领域中的一项具有挑战性的任务。与传统2D图像不同,点云在3D空间中稀疏的表示,使得其很难像图像那样被提取语义特征。基于此,近年来有很多工作设计了高效的点云特征提取算子,对局部和全局的模式进行响应。然而却鲜有方法专注于捕获点云物体的形状和几何特征。隐示的几何特征表达有助于完善整个点云物体的表征,使得在下游基础任务中达到更精确的效果。

本文提出了一种长距离的点云特征提取算子,通过在与点云同构图(isomorphic graph)上进行有导向的游走(guided walk),聚集出一系列固定数量和长度的弧线(curve),来对点云整体特征补充额外的几何信息。

95e29658e826aec979e268f62feee95c.png

方法简介:

首先作者定义出在3D点云上Curve的概念:

并随后设计出一种Curve Grouping模块,在特征空间中对输入的点云提取curves。具体而言,作者依赖于MLP来作为可学习的walk policy,在点云上临近节点间进行转移,并将整个转移轨迹收集起来作为一个curve。

eda6387237d8bfba0bfc4bbe053407cb.png

然而不同于随机游走(random walk),有导向的游走极有可能陷入各种各样的循环,使得curve携带多余的重复信息,对几何的表征能力大大降低。下图列出了四种潜在的循环,在curve grouping时应该完全避免:

582403e9842a07e266a5d3996b0df905.png

基于此,作者用了一种简单的动态动量(dynamic momentum)的编码方法,使得每次节点转移时考虑到当前整体的curve进度,进而避免重复的游走规律。

除了应该完全避免的循环外,作者认为在curve grouping过程中仍然会遭遇交叉(crossover)。适量的交叉可能会携带有效的模式,因此不应该被完全避免,只需要相应的抑制。作者通过研究当前curve的前进方向(heading direction)对偏离直线前进的节点选择进行抑制,具体流程如下图:

835a83f9d131e49191c5dead75f9b368.png

将固定数量和长度的curve按上述方法聚集之后,作者提出一种Curve Aggregation模块,通过attention的方式,对inter-curve和intra-curve的信息进行分开建模,并最终聚合到各个点特征上。

为了验证所提出方法的有效性,作者将Curve Grouping和Curve Aggregation模块融入到一个简单的ResNet-style的网络中,命名为CurveNet,来进行基础的点云形状分析任务,具体的网络结构如下图:

b786d2ca0857e544574285386487c153.png

实验结果:

CurveNet在三大基础的点云形状分析任务(ModelNet40分类,ShapeNet Part部分分割,ModelNet40法线预测)上均达到了SOTA效果:

2ade8564e521188aa7d62c88687a85a1.png

作者通过额外的可视化和消融实现,对提出的curve进行了分析:

b7543422afa0a1a321810139a4be1991.png

e89edd2689575294f5fd599477954d30.png

验证了本文提出方法的有效性。

ICCV和CVPR 2021论文和代码下载

后台回复:CVPR2021,即可下载CVPR 2021论文和代码开源的论文合集

后台回复:ICCV2021,即可下载ICCV 2021论文和代码开源的论文合集

后台回复:Transformer综述,即可下载最新的两篇Transformer综述PDF

重磅!3D点云交流群成立

扫码添加CVer助手,可申请加入CVer-3D点云微信交流群,方向已涵盖:目标检测、图像分割、目标跟踪、人脸检测&识别、OCR、姿态估计、超分辨率、SLAM、医疗影像、Re-ID、GAN、NAS、深度估计、自动驾驶、强化学习、车道线检测、模型剪枝&压缩、去噪、去雾、去雨、风格迁移、遥感图像、行为识别、视频理解、图像融合、图像检索、论文投稿&交流、PyTorch和TensorFlow等群。

一定要备注:研究方向+地点+学校/公司+昵称(如3D点云+上海+上交+卡卡),根据格式备注,可更快被通过且邀请进群

ce009eba4a11f6c92542105033d5569f.png

▲长按加小助手微信,进交流群

▲点击上方卡片,关注CVer公众号

整理不易,请点赞和在看f7c9d6ad98906d2ae49be6cfb047fbdc.gif

### 回答1: 点云特征提取是指从点云数据中提取出一些能够描述点云特征的属性或者特征。在计算机视觉和三维重建领域中,点云特征提取是非常重要的任务,可以用于目标检测、点云配准、点云分割等应用中。 在Python中,有一些常用的库和工具可以用于点云特征提取,例如Open3D、PCL、pyntcloud等。这些库提供了一系列的函数和工具,能够帮助我们对点云数据进行特征提取和分析。 点云特征提取的方法有很多,常用的包括形状描述符、法线估计、曲率估计、特征点检测等。以Open3D为例,可以使用它的compute_point_cloud_normals函数计算点云的法线向量,然后使用estimate_normals函数对法线向量进行估计。这样就可以得到每个点的法线信息,从而进行后续的特征提取。 除了法线估计,Open3D还提供了其他的特征提取方法,比如使用FPFH、SHOT等算法计算点云的局部特征。使用它的compute_fpfh_feature函数,可以计算点云每个点的FPFH特征向量,用于描述点云的局部特征。 总的来说,点云特征提取是一项复杂的任务,需要根据具体的应用场景选择合适的方法和工具。在Python中,Open3D是一个非常强大和方便的库,可以用于点云的处理和特征提取。通过熟练掌握其提供的函数和工具,可以实现高效的点云特征提取操作。 ### 回答2: 点云特征提取是指从点云数据中提取出代表该点云特征的信息。在Python中,我们可以使用一些库和工具来实现点云特征提取。 首先,我们可以使用开源库如Open3D、Pyntcloud和PCL等来加载和处理点云数据。这些库提供了一系列函数和算法来对点云数据进行处理和分析。 其次,我们可以使用这些库中的函数和算法来提取点云的特征。例如,我们可以使用体素网格化方法将点云数据转换为三维网格,然后使用体素内部的点云属性来描述该体素的特征。另外,我们还可以使用曲率、法线、表面法向量等几何特征来描述点云数据。这些库提供了相应的函数来计算这些特征。 另外,我们可以使用机器学习算法来提取点云的特征。例如,我们可以使用自动编码器来学习点云数据的高维表示,然后使用该表示来提取点云的特征。另外,我们还可以使用卷积神经网络深度学习算法来从点云数据中提取特征。 最后,我们可以将提取到的点云特征用于点云分类、分割、配准等任务。这些任务在计算机视觉、机器人和自动驾驶等领域有广泛的应用。 总结起来,点云特征提取在Python中可以使用一些开源库和工具来实现。我们可以使用这些库中的函数和算法来提取点云几何特征和学习点云的高维表示。通过点云特征提取,我们可以进一步分析和处理点云数据,应用于各种领域的任务和应用中。 ### 回答3: 点云特征提取是将点云数据中的特征提取出来的过程。点云数据是通过激光或者其他传感器获取的一系列点的集合,用于表示三维空间中的物体或环境。 在Python中,有一些常用的库用于点云特征提取,如Open3D、PCL等。以下是一个基于Open3D库的点云特征提取的示例: 1. 导入必要的库和模块: ``` import open3d as o3d import numpy as np ``` 2. 读取并可视化点云数据: ``` point_cloud = o3d.io.read_point_cloud("point_cloud.pcd") o3d.visualization.draw_geometries([point_cloud]) ``` 3. 下采样(可选):点云数据中的点数可能很大,为了加速特征提取过程,可以对点云进行下采样。 ``` downsampled_cloud = point_cloud.voxel_down_sample(voxel_size=0.01) # 设置下采样体素大小 o3d.visualization.draw_geometries([downsampled_cloud]) ``` 4. 特征提取:使用Open3D的特征提取算法,提取点云数据的特征。 ``` keypoints = downsampled_cloud.uniform_down_sample(every_k_points=100) # 均匀采样关键点 # 计算法线特征 normal_radius = 0.03 # 设置法线估计半径 o3d.geometry.estimate_normals(downsampled_cloud, search_param=o3d.geometry.KDTreeSearchParamHybrid(radius=normal_radius)) ``` 5. 可视化特征: ``` o3d.visualization.draw_geometries([downsampled_cloud, keypoints]) # 可视化采样点和关键点 ``` 以上是一个简单的点云特征提取的示例,通过使用Open3D库中的函数和方法,能够完成点云的下采样和特征提取,并可视化结果。当然,特征提取的方法和参数设置还有很多,根据具体的应用场景和需求,可以选择不同的特征提取算法和参数。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值