用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文件夹下

用RandLA-Net 训练Semantic3D

2. 数据预处理

python utils/data_prepare_semantic3d.py

这一步是对原始点云数据进行网格采样, 包含0.01 和0.06 两次, 最终用于训练的数据是0.06采样后的点云.

3. 训练

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

训练结果:

用RandLA-Net 训练Semantic3D

只有下一个epoch的训练结果(Mean IoU)好于当前epoch,才会保存模型训练结果. 最后一个epoch的模型并不一定是最优模型.

训练保存的模型文件在results里面

用RandLA-Net 训练Semantic3D

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

测试文件:

用RandLA-Net 训练Semantic3D

 

测试结果(reduce-8):

 

使用open3d画图显示. (展示动画:https://www.bilibili.com/video/av328567728/)

场景1: MarketplaceFeldkirch_Station4_rgb_intensity-reduced(上:原图;下图:预测结果)

用RandLA-Net 训练Semantic3D

用RandLA-Net 训练Semantic3D

场景2 : sg27_station10_rgb_intensity-reduced

用RandLA-Net 训练Semantic3D

用RandLA-Net 训练Semantic3D