用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 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
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