1.环境配置
LIDAR-MOS是一个用于分割激光雷达动态点的网络(Moving Object Segmentation-MOS)。
主要是使用基于projection的rangeimage方法将雷达点云投影至二维平面并进行分割,再通过residual image进行动态点云分割。
本文配置salsanext环境,环境为CUDA11,过程参考下篇链接:Lidar-MOS 安装与使用_salsanext_敢敢のwings的博客-CSDN博客
首先创建环境并激活,本篇使用SalsaNext为baseline。
conda create --n lidar-mos python=3.7
conda activate lidar-mos
之后安装pytorch1.7 (建议这样安装,否则会报错undefined symbol: free_gemm_select, version libcublasLt.so.11),其余torch版本未尝试。
pip install torch==1.7.0+cu110 torchvision==0.8.0 torchaudio==0.7.0 -f https://download.pytorch.org/whl/torch_stable.html
随后按照requirements.txt进行安装,选择tensorflow 2.5.0版本,否则会因为cuda版本报错如下:
Could not load dynamic library 'libcusolver.so.10'; dlerror: libcusolver.so.10: cannot open shared object file: No such file or directory; LD_LIBRARY_PATH:/usr/local/cuda-11.6
absl-py==0.15.0
astor==0.8.0
cycler==0.10.0
grpcio==1.34.0
h5py==3.1.0
kiwisolver==1.1.0
matplotlib==2.2.3
mock==3.0.5
numpy==1.19.2
opencv-contrib-python==4.1.0.25
opencv-python==4.1.0.25
pillow==6.1.0
protobuf==3.10.0
pyparsing==2.4.2
python-dateutil==2.8.0
pytz==2019.2
pyyaml==5.1.1
scipy==1.4.1
tensorflow==2.5.0 #为了适配cuda11,如果报冲突更换2.4.0或调整其他冲突版本
termcolor==1.1.0
#torch==1.7.0+cu110
#torchaudio==0.7.0
#torchvision==0.8.0
vispy==0.12.1
PyQt5
pyqt5-tools
tqdm
#Python3.8的环境如下 OpenCV和matplotlib、pillow版本要更改
absl-py==0.15.0
astor==0.8.0
cycler==0.10.0
grpcio==1.34.0
h5py==3.1.0
kiwisolver==1.1.0
#matplotlib==3.4.3
mock==3.0.5
numpy==1.19.2
opencv-contrib-python==4.1.2.30
opencv-python==4.1.2.30
pillow==6.2.0
protobuf==3.10.0
pyparsing==2.4.2
python-dateutil==2.8.0
pytz==2019.2
pyyaml==5.1.1
scipy==1.4.1
tensorflow==2.5.0 #为了适配cuda11,如果报冲突更换2.4.0或调整其他冲突版本
termcolor==1.1.0
#torch==1.7.0+cu110
#torchaudio==0.7.0
#torchvision==0.8.0
vispy==0.12.1
PyQt5
pyqt5-tools
tqdm
2.训练数据准备(生成residual_image)
python3 utils/gen_residual_images.py
此处需要调整config/data_preparing.yaml,根据路径依次调整不同序列如下图
依次运行,将00 01 02 03 04 05 06 07 09 10residual_image准备好。
完成后每个序列文件夹应如下排列
3.训练
cd mos_SalsaNext/train/tasks/semantic
./train.sh -d path/to/kitti/dataset -a salsanext_mos.yml -l path/to/log -c 0
-d后 填写数据集路径(路径写至sequence上一层(包含sequence,但不进入sequence))
-a后 salsanext_mos.yml 可以调整batch_size等设置
-l后 模型输出地址
-c后 选择显卡
注意是train.sh 而不是进入task中找.py。
随后,训练开始(自己笔记本上测试环境配置,速度极慢)。