在已经搭建cuda10.2 cudnn8.0 的基础上,选择anaconda 3 python 3.6 作为深度学习虚拟环境的搭建
0. python 版本的选择
在liunx 下一般有两个版本的python,再加上新的anaconda 3 python 3.6 一共有三个,为方便使用,此处一定要可选择
1>在文件 ~/.bashrc 中 添加(使python2.7 和 anaconda3 中 python 3.6 切换)
export PATH="/home/usr/anaconda3/bin:$PATH"
export PATH="~/miniconda3/bin:$PATH"
. /home/usr/anaconda3/etc/profile.d/conda.sh
export PYTHONPATH="/home/usr/anaconda3/lib/python3.6/site-packages:$PYTHONPATH"
需要用系统python2.7 时需要注释掉这些行
2>用工具update-altrenatives 改变(切换系统中的python2.7 和python3.5)
sudo update-alternatives --install /home/usr/bin/python2.7 python /home/usr/bin/python2.7 2
sudo update-alternatives --install /home/usr/bin/python3.5 python /home/usr/bin/python3.5 1
sudo update-alternatvies --config python
1. 安装anaconda3
2. 在anaconda 3 采用 conda 安装torch
1> 激活环境
conda activate
2>在环境下安装torch
conda create -n pointrcnn --clone base
3>建立内核
conda install ipykernel
4>安装ipython 工具
conda install ipython
5>安装 pytorch
在conda 里添加清华的源
conda install pytorch==1.0.0 torchvision==0.2.1 cuda100
安装后可能框架不全,需要自己继续安装
conda search <包名> ##conda search torchvision
conda install <包名>
安装其他依赖库
pip install easydict
pip install tqdm
pip install tensorboardX
pip install scipy
pip install fire
pip install skimage
pip install numba
pip install yaml
6>下载源代码+数据集
git clone --recursive https://github.com/sshaoshuai/PointRCNN.git
拷贝代码时 pointnet2_lib 需要在https://github.com/sshaoshuai/Pointnet2.PyTorch/需要重新下载,然后放进去
下载源代码后,在该文件下打开终端,输入下面的代码,安装依赖库
sh build_and_install.sh
下载KITTI数据集(此处推荐用迅雷下,特别快)
https://blog.csdn.net/weixin_44003563/article/details/105384659?ops_request_misc=&request_id=&biz_id=102&utm_term=KITTI%E6%95%B0%E6%8D%AE%E9%9B%86%20%E8%BF%85%E9%9B%B7%E4%B8%8B&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-0-105384659.pc_search_result_control_group&spm=1018.2226.3001.4187
下好后,按照下图中(object中的文件夹位置排列)
7>配置conda
添加软链接
sudo ln -s /usr/local/cuda-10.2 /usr/local/cuda
在./bashrc 中添加
export NUMBAPRO_NVVM="/usr/local/cuda/nvvm/lib64/libnvvm.so"
export NUMBAPRO_LIBDEVICE="/usr/local/cuda/nvvm/libdevice/"
export PATH="$PATH:/usr/local/cuda/bin"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda/lib64/"
export LIBRARY_PATH="$LIBRARY_PATH:/usr/local/cuda/lib64"
8>训练开始
python generate_gt_database.py --class_name 'Car' --split train
python train_rcnn.py --cfg_file cfgs/default.yaml --batch_size 1 --train_mode rpn --epochs 200 #训练模型
python train_rcnn.py --cfg_file cfgs/default.yaml --batch_size 1 --train_mode rcnn --epochs 70 --ckpt_save_interval 2 --rpn_ckpt ../output/rpn/default/ckpt/checkpoint_epoch_200.pth #第二阶段
python eval_rcnn.py --cfg_file cfgs/default.yaml --ckpt ../output/rcnn/default/ckpt/checkpoint_epoch_70.pth --batch_size 1 --eval_mode rcnn #生成可视化
此外,代码中的README.txt 中有多线程跑的命令,合适的工作站可以考虑跑一下啊
9>可视化
下载代码
git clone https://github.com/kuixu/kitti_object_vis
安装库(在同一个conda 构建的空间里)
pip install opencv-python #pillow scipy matplotlib 由于是复制的环境,这几个都有,所以不需要,如果没有还是要安装的
conda install mayavi -c conda-forge
建造软链接
cd /home/usr/wokespace/pointrcnn_ws/PointRCNN/data/KITTI/object/training
ln -s /home/usr/wokespace/PointRCNN/output/rcnn/default/eval/epoch_70/val/final_result/data pred #将训练后保存的数据链接过来
cd /home/usr/wokespace/kitti_object_vis/data
ln -s /home/usr/wokespace/PointRCNN/data/KITTI/object object
注释掉./bashrc文件中的ROS 路径代码
sudo gedit ~/.bashrc
source ~/.bashrc
对真值(绿色)和预测值(红色)进行对比
python kitti_object.py --show_lidar_with_depth --img_fov --const_box --vis -p