接着上一篇文章:
Ubuntu18.04复现RandLA-Net(SemanticKITTTI数据集)----1.环境配置_努力弹琴的大风天的博客-CSDN博客
1.RandLA项目和SemanticKITTI数据集下载
1.1RandLA-Net项目下载
RandLA-Net项目链接:
https://github.com/QingyongHu/RandLA-Net/tree/master
进入项目直接点击code下面的Download ZIP
下载完成之后,解压放到桌面上,以下是这个项目包含的内容:
1.2 SemanticKITTI数据集下载
下载链接:SemanticKITTI - A Dataset for LiDAR-based Semantic Scene Understanding
直接拉到网页最下面Download为止,下载Velodyne point clouds、calibration data和labeldata三个包。
下载完成后,是3个以data开头的压缩文件:
1.3数据集文件夹结构
在项目中创建RandLA-Net-master/data/semantic_kitti/dataset/sequences文件夹。
将前述KITTI Odometry Benchmark Velodyne point clouds (80 GB), KITTI Odometry Benchmark calibration data (1 MB) 和 SemanticKITTI label data (179MB)等数据集整理为如下结构形式:
dataset
├── sequences
│ ├── 00
│ │ ├── velodyne
│ │ │ ├── 000000.bin
│ │ │ ├── 000001.bin
│ │ │ └── ...
│ │ ├── labels
│ │ │ ├── 000000.label
│ │ │ ├── 000001.label
│ │ │ └── ...
│ │ ├── calib.txt
│ │ ├── poses.txt
│ │ └── times.txt
│ ├── 01
│ │ ├── velodyne
│ │ ├── labels
│ │ ├── calib.txt
│ │ ├── poses.txt
│ │ └── times.txt
│ └── ...
下图是我项目中整理好的结果:
2.复现
上一篇文章中已经创建好环境,现在开始安装项目需要的包。
首先,激活创建好的环境:
conda activate randlanet
激活之后,进入到环境中:
RandLA-Net-master中有一个helper_requirements.txt是项目需要的包,按照下面内容进行修改。
numpy
h5py==2.10.0
cython==0.29.15
open3d-python==0.3.0
pandas==0.25.3
scikit-learn==0.21.3
scipy==1.4.1
PyYAML
在终端运行安装命令,安装这些包:
pip install -r helper_requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple --timeout=120
安装完成之后,编译一下:
sh compile_op.sh
然后,直接在RandLA-Net-master中运行项目:
- Preparing the dataset:
打开RandLA-Net-master项目中utils/data_prepare_semantickitti.py文件,在第20和21行,路径/data前面加一个.表示当前文件夹下:
- 00~21总共22个序列,处理时间视计算机性能而定,半个小时到一个小时左右
运行:
python utils/data_prepare_semantickitti.py
运行之后会一直准备数据,占用内存比较大,装系统的时候提前分配大一点的内存给/home。utils/data_prepare_semantickitti.py文件第20行和21行分别是SemanticKITTI源数据集和输出数据集路径。准备数据就是将原始数据体素化,体素化将三维空间划分为一系列的体素,类似于二维图像的像素,体素是三维空间中的像素,通过体素化简化点云数据的处理难度(处理每个体素数据比直接处理电云数据要简单的多)。grid_size=0.06意味着每个体素大小是0.06m x 0.06m x 0.06m,每个体素的边长是0.06米。
体素化完成后,会在RandLA-Net-master/data/semantic_kitti/dataset文件夹下形成一个178.7G左右的文件夹sequences_0.06。
- Start training:
python main_SemanticKITTI.py --mode train --gpu 0
训练过程中,数据量很大,分成不同的batch依次放入网络中进行训练;一个epoch,即整个训练集训练一遍,需要4750个batch。训练完成后,代码会自动进行一次评估,显示mIoU(平均交并比)和平均准确率(eval accuracy)以及每一类的交并比。(注意:使用GPU训练,速度是非比cpu训练快的,我3060显卡,batch_size=4。一个小时2个epoch.如果训练速度很慢,说明你环境没有配置好,是在用cpu训练)
训练过程中,查看gpu占用情况:
watch -n 2 nvidia-smi
可以看到使用GPU训练,显卡占用是很大的。我用的是3060的显卡,总共训练99个epoch(在RandLA-Net-master/helper_tool.py中,显示有训练的最大epoch数)。
训练一遍用了54个小时左右,训练结束后,会自动停止:
- Evaluation:
使用如下命令:
sh jobs_test_semantickitti.sh
评估过程会将训练时,形成的results/Log*/snapshots/*文件夹中恢复数据进行评估:
- Vision
结果的可视化命令:
# 可视化指定区域
python main_SemanticKITTI.py --gpu 0 --mode VIS --test_area 16
# 随机区域可视化
python main_SemanticKITTI.py --gpu 0 --mode VIS
可视化结果(随机选取的几个图片结果):
pycharm安装:
安装pycharm去管理这个项目。
在Ubuntu Software中,搜索pycharm,安装社区版本,这个版本是免费的。
安装完成后,打开项目,进行管理。
参考:
环境感知算法——1.简介与GPU驱动、CUDA和cudnn配置_环境感知需要哪些算法-CSDN博客文章来源:https://www.toymoban.com/news/detail-820548.html
环境感知算法——4.RandLA-Net基于SemanticKITTI训练-CSDN博客文章来源地址https://www.toymoban.com/news/detail-820548.html
到了这里,关于Ubuntu18.04复现RandLA-Net(SemanticKITTI数据集)----2.代码复现的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!