pointrcnn复现+可视化

1.安装anaconda
下载.sh后缀的anaconda,进入目录,运行

./Anaconda3-2020.07-Linux-x86_64.sh

全程yes
检查:
安装完成后输入

which python
which pip
which ipython

若目录是/home/用户名/anaconda3/bin/python则安装正确
若目录是/usr/bin/python则需要

source .bashrc

安装python

conda create -n pointrcnn python=3.6

进入/离开该环境:

conda activate pointrcnn
conda deactivate

换清华源加速/切换成原源/查看通道

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge 
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
conda config --set show_channel_urls yes

conda config --remove-key channels

gedit .condarc

conda指令可以尝试用pip安装,下面是清华镜像

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple 软件包

2.安装cuda和cudnn
百度有教程,此处放一个参考:
https://blog.csdn.net/zhiman_zhong/article/details/91491780

3.环境搭建
3.1创建虚拟环境/进入

conda create -n pointrcnn python=3.6 
#官方要求版本3.6以上
conda activate pointrcnn

3.2安装pytorch 1.0
由于需要科学上网并且conda指令安装经常会因为网络原因失败,这里提供本地安装和pip安装两种方法。
本地安装:进入官网https://anaconda.org/pytorch/pytorch/files?version=1.0.0
选择和python,CUDA,CUDNN对应的ubuntu版本(cuda,cudnn版本查询nvcc -V)放到主目录下

conda install --use-local $PATH_ROOT/XXX.tar.bz2

pip安装(使用清华源):

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple torch==1.0

检查:conda list存在torch即安装完成

pointrcnn复现+可视化_第1张图片

3.3克隆代码(速度太慢可以先导入到gitee再克隆)

git clone --recursive https://github.com/sshaoshuai/PointRCNN.git

3.4安装相关依赖1
easydict 、tqdm、tensorboardX 、fire、numba、pyyaml、scikit-image 、shapely
已测试,上述依赖均可以使用pip安装

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple 依赖名

3.5安装相关依赖2

sh build_and_install.sh

安装pointnet2,iou3d,roipool3d三个依赖

4.下载kitti数据集
按序排列
pointrcnn复现+可视化_第2张图片

5.使用作者预训练模型
放到tools文件夹下(建议使用火狐浏览器科学上网下载,谷歌浏览器无法打开)
在这里插入图片描述
使用预训练模型生成结果:

python eval_rcnn.py --cfg_file cfgs/default.yaml --ckpt PointRCNN.pth --batch_size 1 --eval_mode rcnn --set RPN.LOC_XZ_FINE False

结果存储在:PointRCNN/output/rcnn/default/eval/epoch_no_number/val/final_result

6.自己训练模型
(按照作者的过程来)如果电脑性能不够,运行会报错(类似GPU不够的错误)可以修改减小batch_size参数

python generate_gt_database.py --class_name 'Car' --split train

结果:
在这里插入图片描述

#一阶段
python train_rcnn.py --cfg_file cfgs/default.yaml --batch_size 16 --train_mode rpn --epochs 200

报错
在这里插入图片描述
解决:减小batch_size值
结果:
由于已经训练过了,就偷一张别人的图
在这里插入图片描述

#二阶段
python train_rcnn.py --cfg_file cfgs/default.yaml --batch_size 4 --train_mode rcnn --epochs 70  --ckpt_save_interval 2 --rpn_ckpt ../output/rpn/default/ckpt/checkpoint_epoch_200.pth

同样偷别人的图
在这里插入图片描述
二阶段训练完成后结果会在/home/zz/pointrcnn/PointRCNN/output/rcnn/default/ckpt中,.pth文件代表训练权重。

生成可视化文件(我认为作者在此处提供的参考代码不正确,应该生成二阶段RCNN的可视化文件,并且按照作者提供的指令会出现错误),因此修改指令如下:

python eval_rcnn.py --cfg_file cfgs/default.yaml --ckpt ../output/rcnn/default/ckpt/checkpoint_epoch_70.pth --batch_size 2 --eval_mode rcnn

结果:
在这里插入图片描述
在如图所示的路径下,可以看到作者预训练模型和自己训练模型生成的可视化文件即.txt文件

7.可视化
引用前辈的教程,但是稍作修改,

https://blog.csdn.net/RNG_uzi_/article/details/106521473?ops_request_misc=%7b%22request_id%22:%22159478811219724846438801%22,%22scm%22:%2220140713.130102334.pc_all.%22%7d&request_id=159478811219724846438801&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_ecpm_v3~rank_business_v1-20-106521473.ecpm_v3_rank_business_v1&utm_term=pointRCNN
可视化源码:https://github.com/kuixu/kitti_object_vis

按照readme的引导执行即可
注意:将下图中的步骤变成将kitti目录下的training数据拷贝到/kitti_object_vis/data/object目录下
在这里插入图片描述
如下图所示。
pointrcnn复现+可视化_第3张图片
并且,可视化程序中规定,pred文件夹中直接是.txt文件,中间不能有嵌套文件夹,即:pointrcnn复现+可视化_第4张图片
然后输入

python3 kitti_object.py --show_lidar_with_depth --img_fov --const_box --vis --show_image_with_boxes -p

即可观察到真实值(绿色框)和预测值(红色框)的对比图
终端按回车即可切换下一张图


8.Tensorboard结果可视化
在如下路径下生成了tensorboard文件

~/pointrcnn/PointRCNN/output/rcnn/default/tensorboard

pointrcnn复现+可视化_第5张图片
进入创建的虚拟环境

conda activate pointrcnn

若没有安装过TensorFlow,需要输入以下指令

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple tensorflow-gpu

(大佬说这个需要和cuda和cudnn以及python 的版本对应,但我直接装,未出现问题)

进入到~/pointrcnn/PointRCNN/output/rcnn/default打开终端

tensorboard --logdir tensorboard

在这里插入图片描述
打开最下面一行的http://…链接,即可观察损失函数等曲线图。
pointrcnn复现+可视化_第6张图片

ps:第一次写,如有疏漏,欢迎交流,如有侵权,联系删除。
感谢实验室小宝贝大佬和卞大佬的帮助

你可能感兴趣的:(可视化,python,深度学习)