(ICPR 20) DIP: Distinctive 3D local deep descriptors

本文详细介绍了一种基于PointNet的点云特征提取器DIP的设计与实现过程,包括数据预处理、特征提取网络结构及损失函数设计等内容。

在这里插入图片描述
DIP[1]属于一种基于PointNet[2]网络的比较简洁的two-stage点云特征提取器,因此文章的重点并不在网络设计上面,而在输入数据local patches的准备上。因此生成正确的local patches以使用PointNet进行特征提取成为DIP的关键。

Dataset Preparation

按照DIP的格式要求,于作者提供的google drive中下载好3DMatch_train.zip3DMatch_test.zip,解压后数据组织形式如下:
├── 3DMatch_train
│ ├── 7-scenes-chess/
│ ├── 7-scenes-fire/
│ ├── …
├── 3DMatch_test
│ ├── 7-scenes-redkitchen/
│ ├── sun3d-home_md-home_md_scan9_2012_sep_30/
│ ├── …
在训练集中,在每个scene下都在folder 01_data下保存有每个点云fragment的cloud_bin_.ply文件,其次是将每个fragment对齐至全局坐标系下的pose信息,存储于cloud_bin_.info.txt中。同时folder Correspondences中存储着这个scene下,所有对应pair的correspondences indices信息。(按照作者的说法,这里的correspondences信息均是在19年的3DSN[3]中计算得到的,这些信息在这里的主要作用主要是提供哪些fragment之间构成pair,而其中具体的correspondences indices并不使用,DIP选择重新计算这些indices)
在测试集中,每个scene下同样有folder 01_data保存*.ply,同时在folder 02_T中将gt transformation存储于*_*.pkl中。
接着便是最繁琐的对输入local patches的pre-computing部分,首先给出处理完后的数据组成:
├── 3DMatch_train_pre
│ ├── correspondences/
│ ├── lrfs/
│ ├── patches_lrf/
│ ├── points_lrf/
│ ├── rotations_lrf/
├── 3DMatch_test_pre
│ ├── lrfs/
│ ├── points_lrf/
│ ├── patches_lrf/
│ ├── 7-scenes-redkitchen.hdf5
│ ├── …
preprocess_3dmatch_correspondences_train/test.py
核心作用是利用folder Correspondences下保存的pair信息,以及gt transform信息,利用open3d[4]中的ICP API重新计算correspondence,并保存于3DMatch_train_pre/correspondences/scene_name.hdf5中。
preprocess_3dmatch_lrf_train/test.py
这一步主要在完成以下步骤,即corresponding local patches的预计算,即离线计算训练所需数据,加速网络训练过程。
在这里插入图片描述
这里用pcd1、pcd2代表point cloud 1,point cloud 2. 按照图中的逻辑,overlap region的寻找已经由上一步:correspondences的计算中得到,这是由于只有处于overlap region中的点才有可能找到correspondences. 这里使用pcd1_corr以及pcd2_corr代表两点云中处于overlap region中的部分。接着对pcd1与pcd2进行voxel_size=0.01的down sampling,得到pcd1_down, pcd2_down. 接着对pcd1_corr与pcd2_corr进行FPS采样,分别采得256个centroids,再接下来以这些centriods为球心,在pcd1_down以及pcd2_down中构造点数为256的local patch,并用3DSN中的方法计算Local Reference Frame(LRF),将patch内的点x、y、z轴与LRF对齐以形成canonical representation.接着保存:

  1. local patches于folder patches_lrf
  2. LRFs于folder lrfs
  3. centroids于folder points_lrf
  4. gt transform于folder rotations_lrf

至此,数据pre-computing阶段已完成,接着便是对patch进行特征提取的步骤。

Feature Extractor

首先给出网络结构图:

评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值