原代码论文主要贡献:提出更快的点云语义分割模型。
- 对比现有的采样方法,发现随机采样最好。
- 为了减小随机采样丢失的信息,提出局部特征采样器,包括 Local Spatial Encoding (LocSE) 和 Attentive Pooling。
下为此代码对应文献信息。
@article{hu2019randla,
title={RandLA-Net: Efficient Semantic Segmentation of Large-Scale Point Clouds},
author={Hu, Qingyong and Yang, Bo and Xie, Linhai and Rosa, Stefano and Guo, Yulan and Wang, Zhihua and Trigoni, Niki and Markham, Andrew},
journal={Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition},
year={2020}
}
此代码基于https://github.com/QingyongHu/RandLA-Net优化
优化参与人员:@Junqi Diao, @Chuanqing Zhuang,@Guangtian Shi, @Yidi Li,@Chongqing Huang
文件 | 作用 |
---|---|
helper_tf_util.py | 封装了一些卷积池化操作代码 |
helper_tool.py | 有训练时各个数据集所用到的一些参数信息,还有一些预处理数据时的一些模块。 |
main_SemanticKITTI.py | 训练对应数据的主文件 |
RandLANet.py | 定义网络的主题结构 |
tester_SemanticKITTI.py | 测试对应数据的文件,该文件在main_SemanticKITTI.py中被调用 |
utils | 该文件夹里面有对数据集预处理的模块以及KNN模块。 |
jobs_test_semantickitti.sh
在测试集上评估时,会在result文件夹中日期最近的文件夹内根据checkpoint记录寻找模型参数文件
压缩包下面有四个文件夹分别对应报告中第三部分的四处尝试优化点,下表为不同文件夹对应的优化点:
文件夹 | 优化点 |
---|---|
RandLA-Net-[4,4,4,2,2] | 使用五层网络的下采样优化 |
RandLA-Net-[4,4,4,4,2] | 使用五层网络的下采样优化 |
RandLA-Net-normals | 增添法向量估计 |
RandLA-Net-square | 使用内积替换欧式距离 |
下面代码安装和运行方式步骤中,1-3步为通用步骤,4-6步进入每个文件夹下都要对应执行一次。
配置环境:Python 3.5, Tensorflow 1.11, CUDA 9.0 and cuDNN 7.3.1 on Ubuntu 16.04.
git clone --depth=1 https://github.com/HuangCongQing/RandLA-Net-Enhanced && cd RandLA-Net-Enhanced
conda create -n randlanet python=3.5
source activate randlanet
conda install cudatoolkit=9.0 cudnn=7.3.1
pip install -r helper_requirements.txt
sh compile_op.sh
pip install tensorflow-gpu==1.11
下载链接:http://semantic-kitti.org/dataset.html#download
下载内容包含下图中4个文件包。下载完成后,并将其解压至/data/semantic_kitti/dataset
python utils/data_prepare_semantickitti.py
python main_SemanticKITTI.py --mode train --gpu 0
sh jobs_test_semantickitti.sh