关于

  • 更多点云资源点击这里,包括250篇近几年的点云论文数据集,包括点云配准、点云分割、点云检测、点云补全、无监督学习等方向。
  • 下述3DMatch数据集的统计分析的代码均可在这里访问。

一、3DMatch数据集简介

3DMatch数据集收集了来自于62个场景的数据,其中54个场景的数据用于训练,8个场景的数据用于评估,其具体名称查看train.txttest.txt。3DMatch数据常用于3D点云的关键点,特征描述子,点云配准等任务。

官方主页 | 3DMatch: Learning Local Geometric Descriptors from RGB-D Reconstructions [CVPR 2017]

3DMatch原始数据集: 下载地址,共包括64个.zip文件。

以其中一个场景7-scenes-stairs为例,介绍其数据格式,如下截图所示,原始的3DMatch数据集包括两个.txt文件,多个seq文件夹,每个seq文件夹下包括多帧的.color.png, .depth.png, .pose.txt,可以看到,
其本身是不包括点云数据的,但是可以由这些数据生成点云数据(ply),一般是50帧-100帧生成一个点云数据,生成点云的代码可以参考fuse_fragments_3DMatch.py

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VZwEwdzs-1606525910251)(./images/7-scenes-stairs.png)]

下面介绍3DMatch的训练集,包括FCGF和D3Feat处理的训练集。

二、3DMatch的训练集(FCGF)

3DMatch训练集来自54个场景,详细类别名称参见train.txt。每个场景均由1个seq或者多个seq的数据组成。这里以FCGF
网络使用的数据格式为例介绍3DMatch数据集。

首先,从这里下载训练集,下载解压后可以得到401个txt文件和2189个npz文件。2189个npz对应每个点云数据,包括(x, y, z)及对应的(r, g, b)信息,其中命名规则是场景@seqid-id,例如7-scenes-chess@seq-01_000.npz,表示此数据来自7-scenes-chess场景的seq-01,编号为000。401个txt表示这些npz的点云数据是如何关联的,其命名规则为场景@seqid-overlap,如7-scenes-chess@seq-01-0.30.txt表示7-scenes-chess场景的seq-01下的overlap大于0.30的数据,打开此文件后,可以看到如下信息:

7-scenes-chess@seq-01_000.npz 7-scenes-chess@seq-01_001.npz 0.886878
7-scenes-chess@seq-01_000.npz 7-scenes-chess@seq-01_002.npz 0.636459
7-scenes-chess@seq-01_000.npz 7-scenes-chess@seq-01_003.npz 0.825012
7-scenes-chess@seq-01_000.npz 7-scenes-chess@seq-01_004.npz 0.783642

每一行表示点云之间的对应关系,如第一行表示点云7-scenes-chess@seq-01_000.npz和7-scenes-chess@seq-01_001.npz具有0.886878的overlap。可视化结果如下,第一个图中的红色的点云是7-scenes-chess@seq-01_000.npz,蓝色的点云是7-scenes-chess@seq-01_001.npz,可以看到两者是对齐的;第二个图是这两个点云的rgb信息的可视化。

统计了一下,54个场景总共提供了7960对点云。

上述的统计信息的相关代码在trainset_fcgf.py

三、3DMatch训练集(D3Feat)

下载D3Feat训练使用的3DMatch数据集,解压后是6个.pkl文件,分别是
3DMatch_train_0.030_keypts.pkl, 3DMatch_train_0.030_overlap.pkl, 3DMatch_train_0.030_points.pkl, 3DMatch_val_0.030_keypts.pkl, 3DMatch_val_0.030_overlap.pkl
3DMatch_val_0.030_points.pkl,可以通过这里查看这些.pkl文件是如何产生的。

  • 3DMatch_train_0.030_keypts.pkl存储了什么信息 ?

    点云名(str, 如sun3d-brown_bm_1-brown_bm_1/seq-01/cloud_bin_0) -> 点云(ndarray, n x 3)

    总共有3933个点云数据,点云点最少的是850个,点云点最多的是197343,平均点云点数量是27127

  • 3DMatch_train_0.030_overlap.pkl存储了什么信息 ?

    点云对(str, 如7-scenes-pumpkin/seq-07/cloud_bin_11@7-scenes-pumpkin/seq-08/cloud_bin_2) -> overlap值(float)

    总共有35297个点云对,overlap的最小值为0.30,最大值0.995,平均值为0.515

  • 3DMatch_train_0.030_points.pkl存储了什么信息 ?

    点云对(str, 如analysis-by-synthesis-office2-5b/seq-01/cloud_bin_34@analysis-by-synthesis-office2-5b/seq-01/cloud_bin_35) -> 映射关系(ndarray, m x 2)

  • 可视化pairs中的点云和对应关键点

左图为两个具有overlap的点云的可视化,中间和右边的可视化是分别在红色和绿色点云上添加了对应点(蓝色区域)(来自于3DMatch_train_0.030_points.pkl)的可视化结果。

上述相关代码在trainset_d3feat.py。(为什么D3Feat的训练集中点云和点云对数量比FCGF中的点云和点云对数量多这么多 ?还待验证。)

四、3DMatch的测试集

3DMatch的测试集包括以下8个场景,其中每个场景对应两个文件夹。以7-scenes-redkitchen为例,它包括7-scenes-redkitchen和7-scenes-redkitchen-evaluation两个文件夹,7-scenes-redkitchen文件夹下存放的是点云数据,命名格式均为cloud_bin_*.ply,共包括60个点云数据;7-scenes-redkitchen-evaluation/gt.log存放了correspondences点云对,组织格式为:

0    1   609.96926560e-01   6.68735757e-02     -4.06664421e-02     -1.15576939e-01
-6.61289946e-02   9.97617877e-01      1.94008687e-02     -3.87705398e-024.18675510e-02  -1.66517807e-02      9.98977765e-01      1.14874890e-010.00000000e+00   0.00000000e+00      0.00000000e+00      1.00000000e+00
0    2   609.54999224e-01   1.08859481e-01     -2.75869135e-01     -3.41060560e-01
-9.89491703e-02   9.93843326e-01      4.96360476e-02     -1.78254668e-012.79581388e-01  -2.01060700e-02      9.59896612e-01      3.54627338e-010.00000000e+00   0.00000000e+00      0.00000000e+00      1.00000000e+00

0 1 60中的0和1表示cloud_bin_0.ply和cloud_bin_1.ply点云是成对的,60表示总共包括有60个点云数据(前面也提到过),下面四列表示cloud_bin_1.ply -> cloud_bin_0.ply的变换矩阵。

可视化变换后的点云,红色的表示cloud_bin_0.ply点云,蓝色的表示对cloud_bin_1.ply变换后的点云,可视化结果显示两者基本重叠:

其它场景的统计数据如下,可视化和统计信息的代码均可通过test_set.py实现。

名称 点云数量 Pairs数量
7-scenes-redkitchen 60 506
sun3d-home_at-home_at_scan1_2013_jan_1 60 156
sun3d-home_md-home_md_scan9_2012_sep_30 60 208
sun3d-hotel_uc-scan3 55 226
sun3d-hotel_umd-maryland_hotel1 57 104
sun3d-hotel_umd-maryland_hotel3 37 54
sun3d-mit_76_studyroom-76-1studyroom2 66 292
sun3d-mit_lab_hj-lab_hj_tea_nov_2_2012_scan1_erika 38 77
总计 433 1623

上述的统计信息的相关代码在test_set.py

五、3DMatch数据集的评估指标

评估指标主要基于FCGF [ICCV 2019],评估代码请参考https://github.com/chrischoy/FCGF/blob/master/scripts/benchmark_3dmatch.py。但Registration Recall的实现我感觉有问题,待日后再做补充吧。

  • Feature-match Recall

    R=1MΣs=1M1([1∣Ωs∣Σ(i,j)∈Ωs1(∣∣T∗xi−yj∣∣<τ1)]>τ2)R = \frac{1}{M} \Sigma_{s=1}^M 1([\frac{1}{|\Omega_s|}\Sigma_{(i, j) \in \Omega_s}1(||T^* \text{x}_i - \text{y}_j|| < \tau_1) ] > \tau_2)R=M1​Σs=1M​1([∣Ωs​∣1​Σ(i,j)∈Ωs​​1(∣∣T∗xi​−yj​∣∣<τ1​)]>τ2​)

    MMM表示pairs点云对的数量,111表示指示函数,Ωs\Omega_sΩs​是第sss个pair的correspondences,T∗T^*T∗表当前pair点云的G.T.的R,t变换。yj\text{y}_jyj​是xi\text{x}_ixi​在YYY中选择的Feature Distance最小的点,即yj=arg⁡min⁡yj∣∣Fxi−Fyj∣∣,yj∈Y\text{y}_j = \arg \min_{\text{y}_j} ||F_{\text{x}_i} - F_{\text{y}_j}||, \text{y}_j \in Yyj​=argminyj​​∣∣Fxi​​−Fyj​​∣∣,yj​∈Y。τ1\tau_1τ1​和τ2\tau_2τ2​是两个超参数,常取值τ1=0.1\tau_1 = 0.1τ1​=0.1,τ2=0.05\tau_2 = 0.05τ2​=0.05。

    简单的说,就是有M个点云对,对每一个点云对做一个是特征好/坏的判断: 在真实R,t的情况下,计算(xi,yj)(\text{x}_i, \text{y}_j)(xi​,yj​)距离小于τ1\tau_1τ1​的比例r,如果r大于τ2\tau_2τ2​,则表示这个点云特征好,否则特征是坏的。

  • Registration Recall

    ERMSE=1Ω∗Σ(x∗,y∗)∈Ω∗∣∣T^i,jx∗−y∗∣∣2E_{\text{RMSE}} = \sqrt {\frac{1}{\Omega_*}\Sigma_{(\text{x}^*, \text{y}^*) \in \Omega_*} ||\hat T_{i, j}\text{x}^* - \text{y}^*||^2}ERMSE​=Ω∗​1​Σ(x∗,y∗)∈Ω∗​​∣∣T^i,j​x∗−y∗∣∣2​

    Ω∗\Omega_*Ω∗​表示(i,j)(i, j)(i,j)点云对中correspondences的数量,(x∗,y∗)(\text{x}^*, \text{y}^*)(x∗,y∗)表示G.T.的pair,T^i,j\hat T_{i, j}T^i,j​表示基于(i,j)(i, j)(i,j)点云对预测的R,t变换。

    对于具有至少30% overlap的点云对,如果ERMSE<0.2E_\text{RMSE} < 0.2ERMSE​<0.2,则表示这是一个正确的点云对。

3DMatch数据集相关推荐

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

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

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

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

  3. 基于深度学习的点云配准Benchmark

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨千百度@知乎 来源丨https://zhuanlan.zhihu.com/p/289620126 ...

  4. 点云配准 PointNet + Concat + FC

    原文: https://yongqi.blog.csdn.net/article/details/109759708 这个推荐有几个: https://zhuanlan.zhihu.com/p/107 ...

  5. Learning Multiview 3D point Cloud Registration论文阅读笔记

    Learning multiview 3D point cloud registration Abstract 提出了一种全新的,端到端的,可学习的多视角三维点云配准算法. 多视角配准往往需要两个阶段 ...

  6. Transformer在3D点云中的应用综述(检测/跟踪/分割/降噪/补全)

    1 摘要 Transformer 一直是自然语言处理 (NLP) 和计算机视觉 (CV) 的核心.NLP 和 CV 的巨大成功激发了研究者对 Transformer 在点云处理中的使用的探索.但是,T ...

  7. [CVPR2020] Deep Global Registration

    零.概要 论文: Deep Global Registration tag: CVPR 2020; Registration 代码: https://github.com/chrischoy/Deep ...

  8. 多视图点云配准算法综述

    作者:杨佳琪,张世坤,范世超等 转载自:华中科技大学学报(自然科学版) 编辑:东岸因为@一点人工一点智能 原文:​​多视图点云配准算法综述​​ 摘要:以多视图点云配准为研究对象,对近二十余年的多视图点 ...

  9. 论文阅读(17)---2022 CVPR SC2-PCR二阶相似性测度

    原作者公众号分享 参考链接 研究背景 当前最常用的方法通过两步法进行点云配准:1.先为点云中的每个点提取局部特征描述子,建立初始的匹配对:2.通过稳健的模型估计算法,滤除错误的匹配对,寻找正确匹配(内 ...

最新文章

  1. ios 上传图片失败 小程序_小程序图片自动压缩配置
  2. asp.net服务器控件button先执行js再执行后台的方法
  3. coroutine协程详解
  4. exls导入数据库 php_PHP Excel导入数据到MySQL数据库
  5. Linux下V4L2编程小结
  6. JavaWeb --第四章Maven详解
  7. Android学习小记-----监听并保存传感器数据,让service后台运行(保持CPU运转
  8. 绕过AppLocker系列之MSBuild的利用
  9. rtsp视频解码-分析-转发http-flv ws-flv webrtc
  10. CentOS 6.7 x64 使用pptpd搭建***服务器
  11. Java api监控_网站api监控、api监控教程详解
  12. CC1310F128RGZR 无线收发器 微控制器
  13. 计算机组成原理区分正负数实验,计算机组成原理实验报告(4个).doc
  14. 科学计算机统计说明书,科学计算器的使用方法
  15. sparksql mysql_使用SparkSQL操作MySQL - Spark入门教程
  16. 未来教育安装后打不开
  17. 表面等离子体共振新进展!
  18. SNAT实现共享上网(1)
  19. 这10款数据可视化软件工具免费好用
  20. 基于DE2-115 FPGA开发板的VGA显示

热门文章

  1. CaEGCN: Cross-Attention Fusion based Enhanced Graph Convolutional Network for Clustering 2021
  2. dlg.DoModal()介绍
  3. 按键精灵 百度文字识别(百度ocr)OCRSpace文字识别
  4. DDoS 攻击与防护(一):如何识别 DDoS 攻击?DDoS 防护 ADS 服务有哪些?
  5. 基于图神经网络的推荐系统,图神经网络算法分类
  6. 世上最污技术解读,我竟然秒懂了
  7. c语言将字符串写入文件
  8. 零基础深度学习对金县房价预测
  9. 先做接口测试还是功能测试
  10. piv图像处理文献综述_体视2D-3cPIV相机标定方法研究