前言:
废话就不多说了,记录以下,使用的工具包版本:
anaconda3-5.3.0.sh
pointpillars 连接 :
https://gitee.com/luogyu/second.pytorch
这个仓库是从 原原原github code 拉取转存的。不要用别的修改的仓库代码,并不好用。直接按照原文给的步骤一步一步来。
1.使用git clone 代码 到 ubuntu 制定文件夹,这里文件夹为 pointpillars3666
2. 依照下列步骤 以此 创建 虚拟环境,激活环境,以及三个第三方包。
注: 虚拟环境创建一定要在3.7 或3.7以上。并不是pointpillars代码需要这个python版本,而是后面的spconv包需要3.7以上,后面会说到。
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
3. 安装 spconv 包。它是稀疏卷积包的一种,注意:他和SparseConvnet不是一回事。他们分别是稀疏卷积包的一种。
拉取spconv代码到 目录./second.pytorch/second/目录下,即拉取后的目录为“./second.pytorch/second/spconv/”
拉取spconv代码地址:
https://gitee.com/luogyu/spconv.git
目录形式为:
进入目录执行命令:
pip install pccm cumm wheel
python setup.py bdist_wheel
cd dists/
pip install xxx.whl
(python 的 3.7版本 就是 应对 spconv 2.x版本文件要求的)
4. 安装 SparseConvnet
拉取代码地址:
https://gitee.com/luogyu/leftlink_-sparse-conv-net.git
拉取地址后,./second.pytorch/second/目录下是这种形式:
进入SparseConvnet目录下 :
执行bash build.sh
5. 数据组织:
KITTI数据按照
https://gitee.com/luogyu/second.pytorch
中给出的样子:
└── 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. 创建kitti infos ,创建 reduced point cloud,创建 groundtruth-database infos:
依次执行命令如下:
python create_data.py create_kitti_info_file --data_path=KITTI_DATASET_ROOT
python create_data.py create_reduced_point_cloud --data_path=KITTI_DATASET_ROOT
python create_data.py create_groundtruth_database --data_path=KITTI_DATASET_ROOT
其中KITTI_DATASET_ROOT是自己 KITTI数据集根目录,我的为:
/media/l1/disk/home/l1/data/sets/kitti_second/
这三个命令执行结束需要一段时间。
7.修改config 文件路径:
需要指定.config/pointpillars/car/下.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" }
将path/to/ 更换为/media/l1/disk/home/l1/data/sets/kitti_second/
7.训练时报错
在
second.pytorch\second\pytorch\models
文件夹下的voxelnet.py
的911行:
opp_labels = (box_preds[..., -1] > 0) ^ dir_labels.byte()
# 换成如下
opp_labels = (box_preds[..., -1] > 0) ^ dir_labels.bool()
numpy 版本 需要 换成1.17.2:
conda uninstall numpy==1.19.2
conda install numpy==1.17.2
7. 训练数据
执行命令:
python ./pytorch/train.py train --config_path=./configs/pointpillars/car/xyres_16.proto --model_dir=/path/to/model_dir
状态:
8.前端调试