复现PointRcnn时,安装 sh build_and_install.sh时出现Fatal error: cuda.h, No such file or directory,以下方法解决。
1.在~/.bashrc
中设置环境变量
export CUDA_HOME=/home/usr/local/cuda-10.0
export PATH=$CUDA_HOME/bin:$PATH
export LD_LIBRARY_PATH=$CUDA_HOME/lib64:$LD_LIBRARY_PATH
2.查看makefile文件是否对cuda的地址是/usr/local/cuda-10.0 有的默认是/usr/local/cuda
ln -s /usr/local/cuda-10.0 /usr/local/cuda
3.如果以上情况都不是,并且locate cuda.h 能找到正确位置,在terminal中如下操作
sudo apt-get install nvidia-cuda-toolkit
4.重启reboot。
将lib\datasets\kitti_rcnn_dataset.py
文件里的279~282行注释掉了,不让他调用数据增强函数apply_gt_aug_to_one_scene(...)
。plane数据集也是可选的。
减小减小batch_size值。
pointRCNN原理与复现、pointrcnn复现+可视化、
conda create -n pointrcnn python=3.6
#官方要求版本3.6以上
conda activate pointrcnn
conda install pytorch==1.0.0 torchvision==0.2.1 cuda100 -c pytorch
打开python,并运行:import torch
载入该模块,未报错则成功。
检查:conda list
存在torch即安装完成
git clone --recursive https://github.com/sshaoshuai/PointRCNN.git
conda install easydict
conda install tqdm
conda install tensorboardX
conda install scipy
#还有fire,skimage(报超时错误,解决:https://blog.csdn.net/weixin_43051346/article/details/103823493。),numba,yaml(conda install pyyaml)
sh build_and_install.sh
安装pointnet2,iou3d,roipool3d三个依赖。
出警告如下:未理会。
python generate_gt_database.py --class_name 'Car' --split train
CUDA_VISIBLE_DEVICES=1,2 python train_rcnn.py --cfg_file cfgs/default.yaml --batch_size 16 --train_mode rpn --epochs 200
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/way/PointRCNN/output/rcnn/default/ckpt
中,.pth文件代表训练权重。
python eval_rcnn.py --cfg_file cfgs/default.yaml --ckpt ../output/rcnn/default/ckpt/checkpoint_epoch_70.pth --batch_size 2 --eval_mode rcnn
PointRCNN/output/rcnn/default/eval/epoch_70/val/final_result
pointRCNN 结果可视化
把整个结果文件夹复制到kitti数据集的training目录,文件夹命名pred
数据组织结构如下:(注意,这里的training里面是全部7481张图,不然会报错没有000000.txt)
kitti
object
testing
calib
image_2
velodyne
training
calib
image_2
label_2
velodyne
pred # 这个是需要自己复制过来的
conda create -n kitti_vis python=3.7 # vtk does not support python 3.8
conda activate kitti_vis
git clone https://github.com/kuixu/kitti_object_vis
pip install opencv-python pillow scipy matplotlib
conda install mayavi -c conda-forge
安装conda install mayavi -c conda-forge有warning,无需理会。
cd kitti_object_vis/data
ln -s /home/way/PointRCNN/data/KITTI/object object
解决方法:删除原有object,重新link。
cd kitti_object_vis
python kitti_object.py --show_lidar_with_depth --img_fov --const_box --vis --show_image_with_boxes
# 终端按回车键进行下一张图
并且,可视化程序中规定,pred文件夹中直接是.txt文件,中间不能有嵌套文件夹,即:
python3 kitti_object.py --show_lidar_with_depth --img_fov --const_box --vis --show_image_with_boxes -p
即可观察到真实值(绿色框)和预测值(红色框)的对比图
终端按回车即可切换下一张图
解决:在源文件中加入代码。
import sys
sys.path.remove('/opt/ros/kinetic/lib/python2.7/dist-packages')
anaconda后安装ROS运行:undefined symbol: PyCObject_Type
【代码阅读】PointRCNN网络可视化,代码详解