点云数据集
一、ModelNet40(點云分類)
普林斯頓ModelNet項目的目標是為計算機視覺、計算機圖形學、機器人和認知科學領域的研究者們提供一個全面、干凈的三維CAD模型集合, 該數據的主頁地址https://modelnet.cs.princeton.edu, 數據最早發布在論文3D ShapeNets: A Deep Representation for Volumetric Shapes?[CVPR 2015]上.
相關工作人員從數據中選擇了常見的40類和10類構成數組子集, 分別表示為ModelNet40和ModelNet10, 且兩個數據集都有orientation aligned的版本。實驗中數據用到比較多的是ModelNet40, 有如下三種數據形式:
| 文件大小 | 1.71G | 435M | 2.04G |
| 內容 | point: x, y, z, normal_x, normal_y, normal_z; shape: 10k points | point: x, y, z; normal_x, normal_y, normal_z; shape: 2048 points | off格式, 具體參考這里 |
| 訓練集 / 測試集 | 9843 / 2468 | 9840 / 2468 | 9844 / 2468 |
| 下載地址 | modelnet40_normal_resampled.zip | modelnet40_ply_hdf5_2048.zip | ModelNet40.zip |
二、ShapeNet Part(點云分割)
?ShapeNet數據集是一個有豐富標注的、大規模的3D圖像數據集, 發布于ShapeNet: An Information-Rich 3D Model Repository?[arXiv 2015], 它是普林斯頓大學、斯坦福大學和TTIC研究人員共同努力的結果, 官方主頁為shapenet.org.ShapeNet包括ShapeNetCore和ShapeNetSem子數據集.
ShapeNet Part是從ShapeNetCore數據集選擇了16類并進行語義信息標注的數據集, 用于點云的語義分割任務, 其數據集發表于A Scalable Active Framework for Region Annotation in 3D Shape Collections?[SIGGRAPH Asia 2016], 官方主頁為?ShapeNet Part. 數據包含幾個不同的版本, 其下載鏈接分別為shapenetcore_partanno_v0.zip?(1.08G)和shapenetcore_partanno_segmentation_benchmark_v0.zip(635M). 下面就第2個數據集segmentation benchmark進行介紹:
從下面表格可以看出, ShapeNet Part總共有16類, 50個parts,總共包括16846個樣本。該數據集中樣本呈現出不均衡特性,比如Table包括5263個, 而Earphone只有69個。每個樣本包含2000多個點, 屬于小數據集。該數據集中訓練集12137個,?驗證集1870個,?測試集2874個,?總計16881個。[注意, 這里和下面表格統計的(16846)并不一樣, 后來發現是訓練集、驗證集和測試集有35個重復的樣本]
| Airplane | 4 | 2690 | 2577 |
| Bag | 2 | 76 | 2749 |
| Cap | 2 | 55 | 2631 |
| Car | 4 | 898 | 2763 |
| Chair | 4 | 3746 | 2705 |
| Earphone | 3 | 69 | 2496 |
| Guitar | 3 | 787 | 2353 |
| Knife | 2 | 392 | 2156 |
| Lamp | 4 | 1546 | 2198 |
| Laptop | 2 | 445 | 2757 |
| Motorbike | 6 | 202 | 2735 |
| Mug | 2 | 184 | 2816 |
| Pistol | 3 | 275 | 2654 |
| Rocket | 3 | 66 | 2358 |
| Skateboard | 3 | 152 | 2529 |
| Table | 3 | 5263 | 2722 |
| Total | 50 | 16846 | 2616 |
三、S3DIS(語義分割)
S3DIS是3D室內場景的數據集, 主要用于點云的語義分割任務。主頁http://buildingparser.stanford.edu/dataset.html. 關于S3DIS的論文是Joint 2D-3D-Semantic Data for Indoor Scene Understanding?[arXiv 2017]和3D Semantic Parsing of Large-Scale Indoor Spaces?[CVPR 2016]. S3DIS從3個building的6個Area采集得到, Area1, Area3, Area6屬于buidling1, Area2和Area4屬于building 2, Area5屬于building 3. 常用的數據下載格式包括如下三種:
- Stanford3dDataset_v1.2_Aligned_Version.zip, 比如:?RandLA-Net
- Stanford3dDataset_v1.2.zip, 比如:?CloserLook3D
- indoor3d_sem_seg_hdf5_data.zip, 比如:?PointNet
其中Stanford3dDataset_v1.2_Aligned_Version.zip和Stanford3dDataset_v1.2.zip都是完整場景的數據集, 每個點對應6個維度(x, y, z, r, g, b), 而indoor3d_sem_seg_hdf5_data.zip是對原始數據場景的切割,把大場景切割成1m x 1m的block: 完整數據集被切割成了23585個block, 每個block是4096個點, 每個點對應9個維度: 除了x, y, z, r, g, b信息外,剩余的3維是相對于所在大場景的位置(歸一化坐標).
下面是由Stanford3dDataset_v1.2.zip數據統計得到的關于S3DIS的信息, 可能和論文中一些結果不太一致。S3DIS數據集由以上6個Area采集得到, 共包含272個場景, 可分為11種不同的場景(括號內為場景數量, 場景大小(點的數量)): office(156, 87w), conference room(11, 142w), hallway(61, 122w), auditorium(2, 817w), open space(1, 197w), lobby(3, 242w), lounge(3, 146w), pantry(3, 58w), copy room(2, 52w), storage(19, 35w) and WC(11, 70w). 根據語義信息, 上述場景被分成14個類別, 如下表所示. 可以看到不同的類別也是不均衡的, 比如wall有1547個, 但sofa只有55個.
| 9833 | 254 | 3882 | 1363 | 168 | 159 | 284 | 1547 | 385 | 543 | 584 | 137 | 455 | 55 | 17 |
四、3DMatch數據集(關鍵點、特征描述子、點云配準等)
3DMatch數據集收集了來自于62個場景的數據,其中54個場景的數據用于訓練,8個場景的數據用于評估,其具體名稱查看train.txt和test.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。
?下面介紹3DMatch的訓練集,包括FCGF和D3Feat處理的訓練集。
1、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對點云。
2、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)的可視化結果。
3、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+000 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實現。
| 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 |
五、3DMatch數據集的評估指標
評估指標主要基于FCGF?[ICCV 2019],評估代碼請參考https://github.com/chrischoy/FCGF/blob/master/scripts/benchmark_3dmatch.py。但Registration Recall的實現我感覺有問題,待日后再做補充吧。
- ?Feature-match Recall
?
?M表示pairs點云對的數量,1 表示指示函數,是第s 個pair的correspondences,表當前pair點云的G.T.的R,t變換。是在中選擇的Feature Distance最小的點,即,。和是兩個超參數,常取值,?。
簡單的說,就是有M個點云對,對每一個點云對做一個是特征好/壞的判斷: 在真實R,t的情況下,計算距離小于的比例r,如果r大于,則表示這個點云特征好,否則特征是壞的。
- ?Registration Recall
?
?表示點云對中correspondences的數量,表示G.T.的pair,表示基于點云對預測的R,t變換。
對于具有至少30% overlap的點云對,如果,則表示這是一個正確的點云對。
總結
- 上一篇: linux-3.4.2移植到FL2440
- 下一篇: POJ-3154-Graveyard