从零搭建PointRCNN:Linux环境配置与3D检测可视化实战
1. 环境准备从零搭建Linux深度学习工作站第一次在Linux系统上配置深度学习环境时我盯着命令行界面手足无措的样子还历历在目。现在回想起来其实只要掌握几个关键步骤就能快速搭建好PointRCNN所需的运行环境。我们以配备NVIDIA RTX 3060显卡的机器为例手把手带你走完全流程。1.1 Anaconda安装与配置避坑指南很多教程会告诉你直接运行Anaconda安装包但有几个细节决定了后续使用的便利性。首先建议下载2020年左右的版本如Anaconda3-2020.07这个版本既不会太老导致兼容性问题又不会太新带来不必要的依赖冲突。安装时有个关键选择当安装程序询问Do you wish the installer to initialize Anaconda3 by running conda init?时建议选择no。这样可以避免conda自动激活base环境防止后续开发中出现环境混乱。安装完成后需要手动配置环境变量。用vim或gedit打开~/.bashrc文件在末尾添加export PATH/root/anaconda3/bin:$PATH alias mypython/root/anaconda3/bin/python这个小技巧可以避免与其他用户的Python环境冲突。保存后执行source ~/.bashrc使配置生效然后通过conda --version验证安装是否成功。1.2 PyTorch与CUDA的版本搭配艺术PointRCNN对PyTorch版本比较敏感经过多次测试我推荐使用PyTorch 1.8CUDA 11.1的组合。虽然RTX 3060支持更新的CUDA版本但考虑到兼容性这个组合最为稳妥。创建环境时使用conda create -n pointrcnn python3.6 -y conda activate pointrcnn国内用户建议立即配置清华源加速下载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/conda-forge/ conda config --set show_channel_urls yes安装PyTorch时要去掉官方的-c pytorch参数这样才能从镜像源下载conda install pytorch1.8.0 torchvision0.9.0 torchaudio0.8.0 cudatoolkit11.1 -y验证安装时除了常规的import torch检查外我建议多做一个CUDA可用性测试import torch print(torch.cuda.is_available()) # 应该返回True print(torch.version.cuda) # 应该显示11.12. 数据集准备与工程结构搭建2.1 KITTI数据集的正确打开方式下载KITTI数据集时很多新手会卡在庞大的数据量上。我的经验是优先下载object开发包约12GB包含训练和测试所需的核心数据。如果使用迅雷下载速度可以提升3-5倍。解压后你会得到以下文件夹image_2左侧相机图像velodyne激光雷达点云数据label_23D标注文件calib相机校准参数关键是要按照特定结构组织这些数据。我建议先在home目录创建PointRCNN项目文件夹然后建立如下结构PointRCNN ├── data │ ├── KITTI │ │ ├── ImageSets │ │ └── object │ │ ├── training │ │ │ ├── calib │ │ │ ├── image_2 │ │ │ ├── label_2 │ │ │ └── velodyne │ │ └── testing │ │ ├── calib │ │ ├── image_2 │ │ └── velodyne ├── lib ├── pointnet2_lib └── tools2.2 软链接技巧节省空间的正确姿势与其复制整个数据集会占用双倍空间不如使用Linux的软链接功能。在PointRCNN/data/KITTI目录下执行ln -s /path/to/your/kitti/object object这个命令创建的是相对路径软链接方便后续移动项目位置。验证链接是否成功可以用ls -l data/KITTI/object应该能看到类似这样的输出object - /media/data/kitti/object/3. 模型训练与常见编译错误解决3.1 两阶段训练实战细节PointRCNN的训练分为RPN和RCNN两个阶段。在开始前需要先生成ground truth数据库python generate_gt_database.py --class_name Car --split train第一阶段训练RPN网络建议使用1个GPUpython train_rcnn.py --cfg_file cfgs/default.yaml --batch_size 1 --train_mode rpn --epochs 200第二阶段训练RCNN网络时要注意指定RPN的检查点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.pth3.2 编译错误终极解决方案最常见的两个编译错误都与PyTorch版本更新有关。第一个是THC API废弃错误解决方法是在以下文件中pointnet2_lib/pointnet2/src/*.cpplib/utils/iou3d/src/iou3d.cpplib/utils/roipool3d/src/roipool3d.cpp将所有出现的THCState_getCurrentStream(state)替换为c10::cuda::getCurrentCUDAStream()第二个常见错误是AT_CHECK宏废弃需要在相同文件中将AT_CHECK(...)替换为TORCH_CHECK(...)修改后需要重新编译cd lib python setup.py develop4. 3D检测结果可视化实战4.1 Mayavi可视化环境配置使用Mayavi进行3D可视化时推荐通过conda安装conda install mayavi -c conda-forge pip install PyQt55.15.4如果遇到ModuleNotFoundError: No module named vtkIOParallelPython错误需要额外安装conda install jsoncpp1.8.3 pip install pyface7.3.04.2 多种可视化模式体验克隆可视化工具库git clone https://github.com/kuixu/kitti_object_vis.git cd kitti_object_vis ln -s /path/to/kitti/object data/object基础点云可视化python kitti_object.py --show_lidar_with_depth --img_fov --const_box --vis组合可视化点云图像检测框python kitti_object.py --show_lidar_with_depth --img_fov --const_box --vis --show_image_with_boxes指定样本可视化例如索引为1的样本python kitti_object.py --show_lidar_with_depth --img_fov --const_box --vis --show_image_with_boxes --ind 1在可视化界面中按回车键可以查看下一个样本按q键退出当前查看。对于特别复杂的场景可以添加--pc_label参数来显示点云标签信息。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2471474.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!