1. 程式人生 > 實用技巧 >用RandLA-Net 訓練Semantic3D

用RandLA-Net 訓練Semantic3D

顯示卡: NVIDA TITAN Xp

訓練次數: 100個epoch, 每個epoch 500 steps, batch_size ==4

learning_rate: 1e-2

optimizer: Adam

訓練時間: 8h

1. 下載資料並放置在合適位置

使用sh utils/download_semantic3d.sh 下載 或者去官網下載.

下載的原始資料放置在data/semantic3d/original_data資料夾下

2. 資料預處理

python utils/data_prepare_semantic3d.py

這一步是對原始點雲資料進行網格取樣, 包含0.01 和0.06 兩次, 最終用於訓練的資料是0.06取樣後的點雲.

3. 訓練

python main_Semantic3D.py --mode train --gpu 0

訓練結果:

只有下一個epoch的訓練結果(Mean IoU)好於當前epoch,才會儲存模型訓練結果. 最後一個epoch的模型並不一定是最優模型.

訓練儲存的模型檔案在results裡面

38501/500 ~= 77 (epoch 從0開始計數,也就是epoch==76時)

最優epoch所對應的訓練日誌:

****EPOCH 76****
Step 00038050 L_out=1.568 Acc=0.95 --- 603.29 ms/batch
Step 00038100 L_out=1.141 Acc=0.95 --- 591.83 ms/batch

Step 00038150 L_out=0.868 Acc=0.96 --- 582.45 ms/batch
Step 00038200 L_out=0.822 Acc=0.96 --- 594.24 ms/batch
Step 00038250 L_out=0.673 Acc=0.95 --- 591.06 ms/batch
Step 00038300 L_out=1.119 Acc=0.97 --- 595.11 ms/batch
Step 00038350 L_out=1.058 Acc=0.96 --- 601.45 ms/batch
Step 00038400 L_out=1.346 Acc=0.96 --- 615.70 ms/batch
Step 00038450 L_out=0.771 Acc=0.97 --- 597.55 ms/batch
Step 00038500 L_out=0.634 Acc=0.94 --- 706.30 ms/batch
eval accuracy: 0.9015642582695459
mean IOU:0.697714954433361
Mean IoU = 69.8%
--------------------------------------------------------
69.77 | 95.32 84.13 82.35 32.68 85.45 24.94 61.43 91.88
--------------------------------------------------------

Best m_IoU is: 69.771

4. 測試:

python main_Semantic3D.py --mode test --gpu 0

測試檔案:

測試結果(reduce-8):

使用open3d畫圖顯示. (展示動畫:https://www.bilibili.com/video/av328567728/)

場景1: MarketplaceFeldkirch_Station4_rgb_intensity-reduced(上:原圖;下圖:預測結果)

場景2 : sg27_station10_rgb_intensity-reduced