Ubuntu20.04+RTX3090复现PointRCNN记录

Ubuntu20.04+RTX3090复现PointRCNN记录

PointRCNN项目简介

  1. 有关PointRCNN介绍可以参考东南大学周威博士的解读,PointRCNN 深度解读
  2. 论文地址
  3. 作者公开的开源代码地址

CUDA+CUDNN环境配置

有关Ubuntu20.04下CUDA及CUDNN的安装及环境配置可以参考Ubuntu20.04下CUDA及CUDNN详细安装与配置过程
需要注意的几个点:

  1. 显卡驱动需要和显卡匹配(已安装适配驱动忽略此条),可以使用指令 lspci | grep -i vga 查看显卡型号,得到显卡的十六进制数字代码,在显卡型号查询查看显卡的具体型号。
    确定显卡的型号之后在NVIDIA的官网NVIDIA显卡驱动查询上查询适配的驱动。

  2. CUDA尽量安装适配pytorch多版本的CUDA及pytorch版本对应关系,11.0尽量不要装。本人在安装CUDA11.0以及pytorch1.7.0之后仍然报错,CUDA kernel failed : no kernel image is available for execution on the device.,存在算力不匹配的问题CUDA算力不匹配

  3. pytorch 不需要安装与原项目中完全一致的版本,选择适配 CUDA 的 pytorch 即可,本人复现环境使用 pytorch1.10 及 CUDA11.3。

  4. CUDA 及 CUDNN 的环境变量配置问题。
    CUDA_HOME一定要设置为 CUDA_HOME=/usr/local/cuda ,否则会出现寻址错误问题。

    export PATH=/usr/local/cuda/bin:$PATH
    export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
    export CUDA_HOME=/usr/local/cuda
    export NUMBAPRO_CUDALIB=/usr/local/cuda/bin
    export NUMBAPRO_NVVM=/usr/local/cuda/nvvm/lib64/libnvvm.soexport
    NUMBAPRO_LIBDEVICE=/usr/local/cuda/nvvm/libdevice/
    
  5. CUDNN查看版本号的指令需要将解压后的cuda/include文件夹下的cudnn_version.h文件复制到usr/local/cuda/include/中。使用 cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2 查看CUDNN版本号的信息。

PointRCNN复现

  1. 需要改动的几个文件,可以在 gitee 上下载直接替换相应的文件。详细教程查看 PointRCNN 文件改动
  2. plane数据集是可选的,复现过程中若未使用plane数据集,需要将lib\datasets\kitti_rcnn_dataset.py 文件里的279~282行注释掉,禁止调用数据增强函数 apply_gt_aug_to_one_scene(...)
  3. 因为版本等原因,将 pointRCNN/lib/config.py 第39行 __C.RPN.USE_INTENSITY 的值由 True 改为 False__C.RPN.USE_INTENSITY = False 。将 pointRCNN/lib/config.py 第187行 yaml.load(f) 改为 yaml.safe_load(f)

可视化

  1. 在Python3.x环境下在安装mayavi时,想要运行成功,则需要PyQt、PySide或者wxPython。

  2. 选择PyQt5组件及依赖安装:
    在配置的环境下输入指令 conda install pyqt5==5.12.0 安装PyQt5。
    系统环境中安装依赖组件。
    输入 sudo apt install pyqt5* 安装pyqt5的依赖项。
    输入 sudo apt install qt5-default qttools5-dev-tools 安装qtdesigner。

  3. 下载可视化项目PointRCNN可视化源码

    git clone 下载或者直接在 GitHub 上下载源码,与 PointRCNN 项目可以不放在同一文件夹下。

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

    cd 到可视化项目的 data 目录下,原教程中指出需要将链接命名为 obj ,但在可视化显示时无法提示文件无法找到,因此选择直接删除可视化项目中的 object 文件,将 PointRCNN 项目下 KITTI 数据集的 object/ 目录直接链接到 data/ 目录下。

    cd kitti_object_vis/data
    ln -s /home/Ubuntu/PointRCNN/data/KITTI/object
    
  4. 可视化显示,使用相应的指令进行可视化显示,在终端界面按回车键显示下一张图。
    只显示 LiDAR 的真值。

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

    显示雷达和 image 的真值。

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

    数据集较大,指定特定某张图的可视化,加 --ind 100 指定图像编号为 000100.txt 。

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

    显示 PointRCNN 的预测值和真值对比,在可视化命令后加 -p 。

    python kitti_object.py --show_lidar_with_depth --img_fov --const_box --vis --show_image_with_boxes --ind 6 -p
    
  5. 可视化显示损失函数。
    进入到 PointRCNN/output/rpn/default 目录下,打开终端,输入指令 tensorboard --logdir tensorboard 查看 RPN 网络训练的损失函数。进入到 PointRCNN/output/rcnn/default 目录下,打开终端,输入指令 tensorboard --logdir tensorboard 查看 RCNN 网络训练的损失函数。需要先安装 tensorflow-gpu,tensorboard,tensorflow-tensorboard,默认安装最高版本即可。

    pip install tensorflow-gpu tensorboard tensorflow-tensorboard
    

致谢

感谢以上各位博主及其他未提到的博主关于 PointRCNN 文章解读以及复现的分享。

猜你喜欢

转载自blog.csdn.net/weixin_43240386/article/details/123241585
今日推荐