CLOCs安装与运行

CLOCs项目地址:GitHub - pangsu0613/CLOCs: CLOCs: Camera-LiDAR Object Candidates Fusion for 3D Object Detection

  1. 安装CUDA 9.2。CUDA安装教程:非root用户在Linux系统下安装cuda
  2. 创建conda环境
conda create --name CLOCs python=3.6 pytorch=1.1 cudatoolkit=9.2 torchvision --channel=pytorch
conda activate CLOCs
  1. 检查Pytorch调用CUDA
python
import torch
torch.cuda.is_available()
quit()
  1. 下载CLOCs
git clone https://github.com/pangsu0613/CLOCs.git
mkdir CLOCs/d2_detection_data
mkdir CLOCs/model_dir
  1. 配置SECOND运行环境
conda install scikit-image scipy numba pillow matplotlib shapely cmake
pip install fire tensorboardX protobuf opencv-python pccm
  1. 下载、编译和安装Spconv1.0(8da6f96)
conda install cudnn boost cmake
git clone https://github.com/traveller59/spconv spconv_8da6f96 --recursive
cd spconv_8da6f96
git checkout 8da6f967fb9a054d8870c3515b1b44eca2103634
cd third_party/
git clone https://github.com/pybind/pybind11.git
cd pybind11/
git checkout 085a294
cd ../..
python setup.py bdist_wheel
python -m pip install dist/*.whl

Spconv1.0安装参考教程:复现CLOCs中spconv v1.0 (commit 8da6f96)踩坑记录

  1. Python编译安装apex(因为系统默认使用NVIDIA驱动与conda环境显卡驱动版本不一致)
cd ..
git clone https://github.com/NVIDIA/apex
cd apex
pip install -v --disable-pip-version-check --no-cache-dir ./
  1. 设置用于numba的CUDA文件路径和SECOND的运行路径
echo "export NUMBAPRO_CUDA_DRIVER=/usr/lib/x86_64-linux-gnu/libcuda.so" >> ~/.bashrc
echo "export NUMBAPRO_NVVM=/usr/local/cuda/nvvm/lib64/libnvvm.so" >> ~/.bashrc
echo "export NUMBAPRO_LIBDEVICE=/usr/local/cuda/nvvm/libdevice" >> ~/.bashrc
echo "export PYTHONPATH=$PYTHONPATH:/data1/fengyarong/CLOCs_env/CLOCs/" >> ~/.bashrc
source ~/.bashrc
  1. 构建KITTI数据集路径
└── KITTI_DATASET_ROOT
       ├── training    <-- 7481 train data
       |   ├── image_2 <-- for visualization
       |   ├── calib
       |   ├── label_2
       |   ├── velodyne
       |   └── velodyne_reduced <-- empty directory
       └── testing     <-- 7518 test data
       |   ├── image_2 <-- for visualization
       |   ├── calib
       |   ├── velodyne
       |   └── velodyne_reduced <-- empty directory
       └── kitti_dbinfos_train.pkl
       ├── kitti_infos_train.pkl
       ├── kitti_infos_test.pkl
       ├── kitti_infos_val.pkl
       └── kitti_infos_trainval.pkl

以下代码不具有参考性:根据自己已有的KITTI数据文件夹,通过软连接的方式避免文件重复构建数据集。

mkdir -p KITTI_DATASET/training
mkdir -p KITTI_DATASET/testing
cd KITTI_DATASET/training
ln -s /data/user_name/kitti_data/data_object_image_2/training/image_2 KITTI_DATASET/training/image_2
ln -s /data/user_name/kitti_data/data_object_calib/training/calib KITTI_DATASET/training/calib
ln -s /data/user_name/kitti_data/data_object_label_2/training/label_2 KITTI_DATASET/training/label_2
ln -s /data/user_name/kitti_data/data_object_velodyne/training/velodyne KITTI_DATASET/training/velodyne
mkdir -p KITTI_DATASET/training/velodyne_reduced
ln -s/data/user_name/kitti_data/data_object_image_2/testing/image_2 KITTI_DATASET/testing/image_2
ln -s/data/user_name/kitti_data/data_object_calib/testing/calib KITTI_DATASET/testing/calib
ln -s/data/user_name/kitti_data/data_object_velodyne/testing/velodyne KITTI_DATASET/testing/velodyne
mkdir -p KITTI_DATASET/testing/velodyne_reduced
  1. 初始化数据集索引
cd CLOCs/second
python create_data.py create_kitti_info_file --data_path=../../KITTI_DATASET
python create_data.py create_reduced_point_cloud --data_path=../../KITTI_DATASET
python create_data.py create_groundtruth_database --data_path=../../KITTI_DATASET
  1. 导入作者提供的二维目标检测预训练模型与Cascade-RCNN三维目标检测结果
    下载作者提供的三维目标检测预训练模型second_model.zip和二维目标检测结果cascade_rcnn_sigmoid_dataGoogle云盘地址
  2. CLOCs运行配置
    修改训练配置文件CLOCs/second/configs/car.fhd.config
train_input_reader: {
  ...
  database_sampler {
    database_info_path: "/dir/to/your/kitti_dbinfos_train.pkl"
    ...
  }
  kitti_info_path: "/dir/to/your/kitti_infos_train.pkl"
  kitti_root_path: "/dir/to/your/KITTI_DATASET_ROOT"
}
...
train_config: {
  ...
  detection_2d_path: "/dir/to/2d_detection/data"
}
...
eval_input_reader: {
  ...
  kitti_info_path: "/dir/to/your/kitti_infos_val.pkl"
  kitti_root_path: "/dir/to/your/KITTI_DATASET_ROOT"
}
  1. 运行CLOCs模型算法,进行训练
python ./pytorch/train.py train --config_path=./configs/car.fhd.config --model_dir=../model_dir

如果提示CUDA版本与当前conda环境的cudatoolkit不符,则使用如下命令

CUDA_ROOT=/path/to/your/current/cuda/ python ./pytorch/train.py train --config_path=./configs/car.fhd.config --model_dir=../model_dir
  1. 评估CLOCs模型算法训练结果
python ./pytorch/train.py evaluate --config_path=./configs/car.fhd.config --model_dir=../model_dir --measure_time=True --batch_size=1

如果提示CUDA版本与当前conda环境的cudatoolkit不符,则使用如下命令

CUDA_ROOT=/path/to/your/current/cuda/ python ./pytorch/train.py evaluate --config_path=./configs/car.fhd.config --model_dir=../model_dir --measure_time=True --batch_size=1
  1. 输出测试集预测结果
    修改训练配置文件CLOCs/second/configs/car.fhd.config
eval_input_reader: {
  ...
  kitti_info_path: "/dir/to/your/kitti_infos_test.pkl"
}
CUDA_ROOT=/path/to/your/current/cuda/ python ./pytorch/train.py evaluate --config_path=./configs/car.fhd.config --model_dir=../model_dir --measure_time=True --batch_size=1 --pickle_result=False --predict_test=True

注意:

  • 运行过程中提示过多NumbaWarning,可在CLOCs/second/pytorch/train.py开头添加如下代码,屏蔽报错
from numba.core.errors import NumbaDeprecationWarning, NumbaPendingDeprecationWarning,NumbaPerformanceWarning,NumbaWarning
import warnings
warnings.simplefilter('ignore', category=NumbaDeprecationWarning)
warnings.simplefilter('ignore', category=NumbaPendingDeprecationWarning)
warnings.simplefilter('ignore', category=NumbaPerformanceWarning)
warnings.simplefilter('ignore', category=NumbaWarning)
warnings.simplefilter('ignore')
warnings.filterwarnings('ignore')
  • 5
    点赞
  • 60
    收藏
    觉得还不错? 一键收藏
  • 64
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值