Xavier 运行 SECOND点云目标检测网络(一)

太难了

在Xavier上编译各种东西实在是太难了!!!!

记录一下吧:
首先说一下搭建成功的环境:
Ubuntu 18.04
Pytorch 1.3.0
python 3.6.9
numpy 1.17.4
numba 0.44…1
llvmlite 0.29.0
Cmake 3.13.2
CUDA: 10.0
cuDNN:7.5

Second.pytorch GIT地址

安装步骤:

在给Xavier刷完机之后,首先是安装Cmake,要进行源安装,然后运行./boostrad那个,然后sudo make && make install。
需要将你的cmake路径添加到环境变量中去

export PATH=$PATH:/your_camke_path/

Pytorch和Torchvision,但是torch貌似需要numpy。
这里先做的是按准个pip,我使用的是pip3,因为我的python是3.6.9。
然后我们就可以pip3来安装各种东西了,但是大家注意,有很多东西pip3安装不了,那我们就可以用apt-get 来安装,在使用PIP的时候我们可以制定pip的源:
如下:

阿里源
pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
豆瓣
pip install -r requirements.txt -i https://pypi.douban.com/simple/
清华大学
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/

需要pip安装的东西:
在安装numba前要安装一些依赖:

sudo apt-get install llvm-7

查看llvm的路径(执行下面命令后会在终端显示llvm的安装路径):

which llvm-config-7

执行以下命令:

export LLVM_CONFIG=/usr/bin/llvm-config-7
pip3 install llvmlite==0.29.0
pip3  install numba==0.44.1

到此,如果安装没问题的话,在python环境下看能否import numba成功,可以的话说明已经安装成功,接下来在.bashrc下面添加导出路径。

export NUMBAPRO_CUDA_DRIVER=/usr/lib/aarch64-linux-gnu/libcuda.so   # (set your Xavier cuda lib path)
export NUMBAPRO_NVVM=/usr/local/cuda/nvvm/lib64/libnvvm.so # set your libnvvm path
export NUMBAPRO_LIBDEVICE=/usr/local/cuda/nvvm/libdevice 
sudo apt-get install libboost-all-dev 
pip3 install scikit-image scipy numba pillow==6.2.2 matplotlib fire tensorboardX protobuf -i https://pypi.tuna.tsinghua.edu.cn/simple
pip3 install numpy==1.17.4 -i https://pypi.tuna.tsinghua.edu.cn/simple
pip3 install seaborn -i https://pypi.tuna.tsinghua.edu.cn/simple
pip3 install psutil -i https://pypi.tuna.tsinghua.edu.cn/simple
pip3 install flask flask_cors -i https://pypi.tuna.tsinghua.edu.cn/simple
pip3 install shapely -i https://pypi.tuna.tsinghua.edu.cn/simple
pip3 install pyqt5 -i https://pypi.tuna.tsinghua.edu.cn/simple
pip3 install pyqtgraph -i https://pypi.tuna.tsinghua.edu.cn/simple
easy_install pyopengl -i https://pypi.tuna.tsinghua.edu.cn/simple

注意如果pip安装不上就用apt-get,比如安装scipy:

sudo apt-get install python3-scipy python3-matplotlib python3-pandas

2. 安装pytorch和torchvision

Xavier 安装pytotrch刚开始不太容易,因为没有直接安装的脚本,幸好有这个Xavier Pytorch 安装whl
按照里面的安装就可以,然后就可以按抓给你对应的torchvision版本。

安装验证
import torch
print(torch.__version__)

3. 安装spconv

在这部分花的时间也不少,因为编译不过。
这里使用的是Spconv 1.1

 git clone https://github.com/traveller59/spconv  --recursive

大家要检查一下,third-party里面的pybind11 是否下载完整,否则容易出错。
编译完成后会在dist文件夹下有 spconv 1.1的whl 文件,然后 pip3 install 安装就可以。

安装过后,将添加second.pytorch环境变量

sudo gedit ~/.bashrc
export  PYTHONPATH=$PYTHONPATH:/your_second.pytorch_path/ 

下载KITTI数据按照格式储存

└── 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
python3 create_data.py kitti_data_prep --root_path=data/KITTI_DATASET_ROOT

(这里的我是将KITTI_DATASET_ROOT文件夹放在second.pytorch/second的data下)

修改配置参数


train_input_reader: {
  ...
  database_sampler {
    database_info_path: "/path/to/dataset_dbinfos_train.pkl"
    ...
  }
  dataset: {
    dataset_class_name: "DATASET_NAME"
    kitti_info_path: "/path/to/dataset_infos_train.pkl"
    kitti_root_path: "DATASET_ROOT"
  }
}
...
eval_input_reader: {
  ...
  dataset: {
    dataset_class_name: "DATASET_NAME"
    kitti_info_path: "/path/to/dataset_infos_val.pkl"
    kitti_root_path: "DATASET_ROOT"
  }
}

这里的class_name 不用变,下面的两个路径写成绝对路径。
运行训练命令:

python3 ./pytorch/train.py train --config_path=./configs/car.fhd.config --model_dir=/path/to/model_dir

运行评估命令:

python3 ./pytorch/train.py evaluate --config_path=./configs/car.fhd.config --model_dir=./config/car_lite --measure_time=True --batch_size=1

出现的问题:
1.No module named ‘second’
但是亲测在程序中增加:

import sys
sys.path.append(r"/media/buaa/MyPassport/Deeplidar/second.pytorch")

更加靠谱,增加的是second.pytorch的绝对路径。
2.在编译spconv有时会出现CMAKE_CUDA_COMPILER could be found
这个办法可能不是很好,有个在文件里面增加命令语句的,那个亲测有效。
set(CMAKE_CUDA_COMPILER “/usr/local/cuda/bin/nvcc”)
增加
至可视化,看下面的链接吧,有效。

参考链接:
1.NVIDIA_Jetson_Xavier安装second.pytorch环境
2.second.pytorch环境配置记录
3.second.pytorch环境配置及训练运行折腾史–可视化
4.使用卷积神经网络进行激光雷达点云目标检测——SECOND

你可能感兴趣的:(Xavier)