1.基本环境配置
参考官方的README.MD和csdn里的帖子
环境配置:cuda_11.7+python 3.7+Pytorch 1.12.0
2.代码下载
git clone https://github.com/nutonomy/second.pytorch.git
2.1 github网站无法登陆
github需要梯子,但我的梯子的安装包是.exe 找不到可以安装在ubuntu系统上的版本。没有梯子一个是打不开网站,偶尔人少的时候进去的话也会下载速度很慢。
解决方案:在另外的电脑上下载用u盘拷贝(用同一个以太网的话可以直接传输,但ubuntu系统连着有线网,笔记本是wifi)
2.2 要下载pointpillars +second 两个代码
官方给的代码不全,我就直接在csdn里给的连接里分别下了这两个代码。
pointpillars:mirrors / nutonomy / second.pytorch · GitCode
second:mirrors / traveller59 / second.pytorch · GitCode
3.安装python依赖包
按照readme里直接下载基本不会有错误
conda create -n pointpillars python=3.7 anaconda 创建环境
source activate pointpillars 一定要进入环境才能安装以下的包
conda install shapely pybind11 protobuf scikit-image numba pillow
conda install pytorch torchvision -c pytorch
conda install google-sparsehash -c bioconda
(剩下三行命令直接复制粘贴即可)
cd SparseConvNet/ 进入SparseConvNet ,本代码是进入SparseConvNet-main
bash build.sh
(编译成功的话终端上会出现一大堆矩阵.)
sudo apt-get install libboost-all-dev
4.为CUDA设置numba
添加环境变量:
//打开一个终端运行第一行,然后把第二、三、四行复制进去保存退出,再执行第五行source一下.bashrc就可以了
vim ~/.bashrc
export NUMBAPRO_CUDA_DRIVER=/usr/lib/x86_64-linux-gnu/libcuda.so
export NUMBAPRO_NVVM=/usr/local/cuda/nvvm/lib64/libnvvm.so
export NUMBAPRO_LIBDEVICE=/usr/local/cuda/nvvm/libdevice
source ~/.bashrc
如何保存:
如果是vi,则:Esc 退出编辑模式,输入以下命令:
:wq 保存后退出vi,若为 :wq! 则为强制储存后退出(常用)
:w 保存但不退出(常用)
:w! 若文件属性为『只读』时,强制写入该档案
:q 离开 vi (常用)
:q! 若曾修改过档案,又不想储存,使用 ! 为强制离开不储存档案。
:e! 将档案还原到最原始的状态!
5.将 second.pytorch加入到PYTHONPATH中
// 打开终端运行第一行,然后把第二行复制进去保存退出,再执行第三行source一下.bashrc就可以了
vim ~/.bashrc
export PYTHONPATH=$PYTHONPATH:/home/yiaia/code/pointpillar/second.pytorch //改成second.pytorch文件夹的绝对路径
source ~/.bashrc
6.数据预处理
6.1 empty directory 的目录需要自己建立文件夹
└── KITTI_DATASET_ROOT
├── training <-- 7481 train data
| ├── image_2 <-- for visualization
| ├── calib
| ├── label_2
| ├── velodyne
| └── velodyne_reduced <-- empty directory
└── testing <-- 7580 test data
├── image_2 <-- for visualization
├── calib
├── velodyne
└── velodyne_reduced <-- empty directory
6.2 创建info数据 路径相关出错
python create_data.py create_kitti_info_file --data_path=KITTI_DATASET_ROOT
报错:
python: can't open file 'create_data.py': [Errno 2] No such file or directory
别忽略给的路径:Note: PointPillar's protos use KITTI_DATASET_ROOT=/data/sets/kitti_second/
.
在给定路径创建KITTI_DATASET_ROOT
解决方案
这条语句的意思是 在工程根目录下cd 进create_data.py所在目录下,通过下面几条命令创建info数据:
python create_data.py create_kitti_info_file --data_path=KITTI_DATASET_ROOT
代码解释:--在KITTI_DATASET_ROOT目录下创建kitti_infos_train.pkl、kitti_infos_val.pkl、kitti_infos_trainval.pkl、kitti_infos_test.pkl四个bin文件,每个bin文件包含了图片的路径、calib中camera和lidar的标定参数等。
具体操作:
1.找到create_data.py所在目录:
2. cd second
3.修改KITTI_DATASET_ROOT
的绝对路径
python create_data.py create_kitti_info_file --data_path /home/yiaia/code/pointpillar/second.pytorch-master/second/data/
剩下的代码同理:
python create_data.py create_reduced_point_cloud --data_path=KITTI_DATASET_ROOT
修改为:python create_data.py create_reduced_point_cloud --data_path=./data
python create_data.py create_groundtruth_database --data_path=KITTI_DATASET_ROOT
修改为:ython create_data.py create_reduced_point_cloud --data_path=./data
报错一
解决方案:
../cc/nms/nms_cpu.h
找到该文件,打开,按照缺少的东西添加进去。
#include <iostream>
即使保存即可解决。
6.3 更改相关配置文件的数据集路径
训练和测试涉及到的文件都需要更改数据集的绝对路径。
比如:
cd ~/second.pytorch/second
python ./pytorch/train.py train --config_path=./configs/pointpillars/car/xyres_16.proto --model_dir=/path/to/model_dir
找到 xyres_16.proto这个文件,修改其中包含的路径
train_input_reader: {
...
database_sampler {
database_info_path: "/path/to/kitti_dbinfos_train.pkl"
...
}
kitti_info_path: "/path/to/kitti_infos_train.pkl"
kitti_root_path: "KITTI_DATASET_ROOT"
}
...
eval_input_reader: {
...
kitti_info_path: "/path/to/kitti_infos_val.pkl"
kitti_root_path: "KITTI_DATASET_ROOT"
}
在xyres_16.proto改成:
7.训练模型
linux的路径相关知识:
想要进入目标文件夹路径:在目标文件夹下,按Ctrl+l此文件的路径会被选中之后Ctrl+c复制。
cd.. 退回上一级目录
cd / 退回根目录
bash build.sh
这句代码的意思表示:
修改~/.bashrc:这一步用到的操作:
师兄来的步骤记录:
conda env list
conda activate pointpillars
pwd
ls