Ubuntu18.04复现RandLA-Net(SemanticKITTI数据集)----2.代码复现

接着上一篇文章:

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

结果的可视化命令:

# 可视化指定区域  区域可设置为 08, 11,12,13,14,15,16,17,18,19,20,21
python main_SemanticKITTI.py --gpu 0 --mode VIS --test_area 16

# 随机区域可视化
python main_SemanticKITTI.py --gpu 0 --mode VIS
  • 终端命令: 

  • 可视化结果(随机选取的几个图片结果):

注意:鼠标定位在可视化结果界面,按H键,在终端显示帮助信息

 

pycharm安装:

安装pycharm去管理这个项目。

在Ubuntu Software中,搜索pycharm,安装社区版本,这个版本是免费的。

安装完成后,打开项目,进行管理。

参考:

环境感知算法——1.简介与GPU驱动、CUDA和cudnn配置_环境感知需要哪些算法-CSDN博客

环境感知算法——4.RandLA-Net基于SemanticKITTI训练-CSDN博客

  • 2
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 26
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 26
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值