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即安装完成
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三个依赖
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目录下
如下图所示。
并且,可视化程序中规定,pred文件夹中直接是.txt文件,中间不能有嵌套文件夹,即:
然后输入
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
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://…链接,即可观察损失函数等曲线图。
ps:第一次写,如有疏漏,欢迎交流,如有侵权,联系删除。
感谢实验室小宝贝大佬和卞大佬的帮助