以下内容主要参考博客文章:深度学习(七):RangeNet++代码运行与学习-CSDN博客
GitHub链接:GitHub - PRBonn/rangenet_lib: Inference module for RangeNet++ (milioto2019iros, chen2019iros)
1 设备
设备:Ubuntu 20.04 NVIDIA RTX A6000 CUDA 11.0 Cudnn 8.0
2 配置依赖项
1 conda创建Python3.6的虚拟环境,命名为RangeNet++
conda create -n RangeNet++ python=3.6
2 装依赖包
-
安装torch及其相应的包,这里注意官网给的指令为torchvision==0.8.0+cu110,但此处需要将“+cu110”删掉,不然会报错。
进入此页面:Previous PyTorch Versions | PyTorch,找到对应的安装版本。
pip install torch==1.7.0+cu110 torchvision==0.8.0 torchaudio==0.7.0 -f https://download.pytorch.org/whl/torch_stable.html
-
再安装其他的依赖包,具体如下:
numpy==1.14.5 scipy==0.19.1 tensorflow==1.13.1 vispy==0.5.3 opencv_contrib_python==4.1.0.25 matplotlib==2.2.3 Pillow==6.1.0 PyYAML==5.1.1 PyQt5 pyqt5-tools
统一用指令:
pip install 包名==版本号 -i 镜像源(推荐用清华的)
3 在GitHub上下载相关的开源代码
git clone https://github.com/PRBonn/lidar-bonnetal.git cd lidar-bonnetal
4 配置KITTI数据集
详细见参考文章:深度学习(七):RangeNet++代码运行与学习-CSDN博客
3 训练与测试
5 可视化 (此处以00序列为例)
./visualize.py -d ~/lidar-bonnetal/train/tasks/semantic/dataset -s 00
效果如下:通过键盘B/N控制上下帧,Q退出程序。
6 训练
./train.py -d ~/lidar-bonnetal/train/tasks/semantic/dataset -ac ~/lidar-bonnetal/train/tasks/semantic/config/arch/darknet21.yaml -l ~/lidar-bonnetal/train/tasks/semantic/log
本人电脑使用Xshell远程终端出现问题,训练完一个epoch会自动停止,具体原因未知。
直接使用服务器训练,epoch设置为50次,使用darknet21,没有CRF或KNN的后处理。batchsize为4。结果如下所示:
7 使用训练模型进行预测
在预测到序列19时报错,显示为numpy数组索引问题,但至少前面19个序列是完整预测了的。
8 定性比较
下面可视化00序列
真值
预测效果,可以发现误差挺大的。
对比效果:左边真值,右边预测值
9 定量测试:默认以08序列为主
总体IoU测试:
边缘IoU测试
另外,本博客按照参考文章步骤进行了复现,只展示了最基础的部分,其余结果没有展示,具体请参考参考文章,个人认为讲得很好,很详细。