复现PointRCNN环境配置+可视化

注:本环境都是在Linux系统下进行配置的。

1、安装anacaonda

  • 官网下载anaconda安装包
    (1)进入文件下载目录
cd ~/software

(2)运行安装包

bash Anaconda3-2020.07-Linux-x86_64.sh 

(3)回车键,进入注册信息页面
(4)按q跳过阅读,yes
(5) 默认安装在用户目录下,直接回车即可安装;若想自定义安装目录,直接输入安装目录,回车即可。
(6)Do you wish the installer to initialize Anaconda3 by running conda init ? 输入 no,回车

  • 修改环境变量
 vim ~/.bashrc
 # 不会用vim或者用不习惯的可以用linux自带的编辑器
 gedit ~/.bashrc

添加以下内容

# 2.在.bashrc文件底部添加  
 # 为了避免与其他服务器用户产生命令冲突,使用自己的英文名+Python替代python 
alias fortunePython='/root/anaconda3/bin/python'   
#这里写anaconda的安装路径
export PATH="/root/anaconda3/bin:$PATH
  • 检查是否安装成功
conda --version
出现conda的版本号即为安装成功

2、安装pytorch和CUDA

  1. 创建环境,选择python 3.6版本
conda create -n pointrcnn python=3.6
  1. 进入环境
conda activate pointrcnn
  1. 添加清华源(可选),如果你用的外网并且网速还行的话可以不用换源。
# 直接在终端运行
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/menpo/

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/

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/pkgs/main/

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/

conda config --set show_channel_urls yes

#最后一句是设置安装路径可见。可输入cat ~/.condarc查看是否成功。
#补充:.condarc文件在Home文件中,是隐藏文件,可按Ctrl+H将其显示。
  1. pytorch官网,按照自己的配置选择(我电脑显卡是3060,安装的是pytorch2.0, CUDA 11.7),复制指令到终端进行安装,注意将 -c pytorch 删除,这样下载的路径才是清华源。

在这里插入图片描述

  1. 检验是否安装成功
    打开新的终端,输入python,再输入import torch,没有报错;
    再输入import torchvision,也没有报错,如图所示。此时即安装成功。

3、数据集准备

  1. 下载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

下载四个数据集image、velodyne、label、calib,解压,并按照如下结构放置:

PointRCNN
├── data
│   ├── KITTI
│   │   ├── ImageSets
│   │   ├── object
│   │   │   ├──training
│   │   │      ├──calib & velodyne & label_2 & image_2 & (optional: planes)
│   │   │   ├──testing
│   │   │      ├──calib & velodyne & image_2
├── lib
├── pointnet2_lib
├── tools
  1. 添加软链接
    添加软链接的目的是为了避免又重新复制一份数据,毕竟KITTI数据集还是挺大的(当然也可以把KITTI数据集中的object直接复制过来)。在PointRCNN的data/KITTI文件夹下:
ln -s (你解压的KITTI数据集object的路径) object

4. 开始训练(若是用作者的模型可以跳过这个阶段)

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 #生成可视化

可能遇到的错误1

请添加图片描述

解决办法:

进入以下目录:
~/pointnet2_lib/pointnet2/src/ ----->将文件中所有cpp文件的的THCState_getCurrensStream(state) 全部改为 c10::cuda::getCurrentCUDAStream()

~/lib/utils/iou3d/src/ -----> 将iou3d.cpp中的THCState_getCurrensStream(state) 全部改为 c10::cuda::getCurrentCUDAStream()

~/lib/utils/roipool3d/src/ -----> 将roipool3d.cpp中的THCState_getCurrensStream(state) 全部改为 c10::cuda::getCurrentCUDAStream()

可能遇到的错误2

请添加图片描述

解决办法:

进入以下目录:
~/pointnet2_lib/pointnet2/src/ ----->将文件中所有cpp文件的的将文件中的AT_CHECK全部改为 TORCH_CHECK

~/lib/utils/iou3d/src/ -----> 将iou3d.cpp中的AT_CHECK全部改为 TORCH_CHECK

~/lib/utils/roipool3d/src/ -----> 将roipool3d.cpp中的AT_CHECK全部改为 TORCH_CHECK

可能遇到的错误3

请添加图片描述

解决办法:

安装PyQT5

pip install PyQT5

5. 可视化

克隆可视化工具代码:

git clone https://github.com/kuixu/kitti_object_vis.git

克隆后在kitti_object_vis/data文件夹中设置一个软连接,这个软连接链接到KITTI数据的object

ln -s (你解压的KITTI数据集object的路径) object

然后使用conda来安装mayavi

conda install mayavi

然后在kitti_object_vis文件中打开终端:

(1)仅显示 LiDAR:

python kitti_object.py --show_lidar_with_depth --img_fov --const_box --vis

可能会出现以下错误:

错误1:ModuleNotFoundError: No module named ‘vtkIOParallelPython’
解决办法:

conda install jsoncpp=1.8.3
pip install pyface==7.3.0

然后继续我们的代码出现一下界面:终端按一次回车就可以查看下一张图

(2)显示 LiDAR 和图像

python kitti_object.py --show_lidar_with_depth --img_fov --const_box --vis --show_image_with_boxes

(3)显示具有特定索引的 LiDAR 和图像

python kitti_object.py --show_lidar_with_depth --img_fov --const_box --vis --show_image_with_boxes --ind 1 

(4)显示带有modified LiDAR file附加点云标签/标记的 LiDAR 作为第 5 维

python kitti_object.py --show_lidar_with_depth --img_fov --const_box --vis --pc_label

参考文章:复现PointRCNN代码,并实现PointRCNN3D目标检测可视化,包含预训练权重下载链接(从0开始以及各种报错的解决方法)

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值