PointPillars(二),跑通OpenPCDet中的demo

特别推荐读读这个。 https://blog.youkuaiyun.com/m0_37605642/article/details/128987547

PointPillar 3D目标检测模型详解-优快云博客



参考链接(一)OpenPCDet 详细完整复现(Pointpillars、Pointrcnn、Second)进行训练,并进行评估和推理可视化

ubuntu20.04安装OpenPcdet,(CUDA版本11.8,显卡4090)(CUDA版本12.1,显卡3060)

Ubuntu安装GPU驱动+CUDA+cuDNN的安装方法

九步完成Pointpillars模型训练

一、环境搭建

1、安装Anaconda

Ubuntu安装Anaconda教程参考链接

中科大镜像源下载

sudo sh Anaconda3-2024.10-1-Linux-x86_64.sh
// 键入密码、按空格、License——>yes、路径选择/home/username/anaconda3、yes
source gedit ~/.bashrc
// 加入路径:export PATH="/home/username/anaconda3/bin:$PATH"
// 激活环境变量
source ~/.bashrc
conda list
// 进入虚拟环境
source ~/anaconda3/bin/activate root

2、cuda版本

torch与cuda对应安装:Previous PyTorch Versions | PyTorch

这里面都没有12.0,但是有12.1,尽量安装官网有的版本。

sudo apt install nvidia-driver-570  #实测520版本各种报错。
# 先查看nvidia-smi硬件型号。找到适合的cuda版本。显示最高版本是12.8。经查最低cuda11.8
​
nvcc -V   # 10.1

当前版本不支持,先删除 环境配置之cuda的卸载(ubuntu)

sudo apt-get --purge remove "*cublas*" "*cufft*" "*curand*" "*cusolver*" "*cusparse*" "*npp*" "*nvidia*"
sudo apt-get autoremove
sudo apt-get autoclean
​
sudo apt-get remove cuda
sudo apt-get remove cuda*
sudo dpkg -l | grep cuda  # 这里显示的所有残存都通过下面指令删除
sudo dpkg -P 残留文件

然后,手动删除CUDA的安装目录(通常是/usr/local/cuda-10.1):

sudo rm -rf /usr/local/cuda-10.1

如果之前设置了CUDA的环境变量(如PATHLD_LIBRARY_PATH),也需要在.bashrc.profile文件中将其删除或更新。

Ubuntu安装GPU驱动+CUDA+cuDNN的安装方法 - 小白跃升坊 - 博客园

wget https://developer.download.nvidia.com/compute/cuda/12.1.0/local_installers/cuda_12.1.0_530.30.02_linux.run
​
sudo service lightdm stop
​
sudo sh cuda_12.1.0_530.30.02_linux.run

因为上面已经安装了570,所以在黑屏下,不要在选择安装525的驱动了。12.1对应530,按照530来装。

然后添加环境变量。

export PATH=/usr/local/cuda-12.1/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-12.1/lib64:$LD_LIBRARY_PATH

就可以nvcc -V了。

3、安装cuda

重新下载安装cuda。CUDA Toolkit 11.8 Downloads | NVIDIA Developer

CUDA Toolkit Archive | NVIDIA Developer

选择自己对应的系统,然后选择哪种安装方式:在线

wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt-get update
sudo apt-get -y install cuda-toolkit-12-8

离线

wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin
sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/12.8.1/local_installers/cuda-repo-ubuntu2004-12-8-local_12.8.1-570.124.06-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu2004-12-8-local_12.8.1-570.124.06-1_amd64.deb
sudo cp /var/cuda-repo-ubuntu2004-12-8-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cuda-toolkit-12-8

以上都没用。

安装一定要在黑屏下操作。

【环境搭建】Python、PyTorch与cuda的版本对应表

torch与cuda对应安装:Previous PyTorch Versions | PyTorch

锁定pytorch2.1.0,python=3.9

3、配置cuDNN库

CUDA Deep Neural Network (cuDNN) | NVIDIA Developer

sudo apt-get -y install cudnn-cuda-12

cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2

tar -xvf cudnn-linux-x86_64-8.9.4.25_cuda12-archive.tar.xz 
sudo cp cudnn-linux-x86_64-8.9.4.25_cuda12-archive/include/cudnn*.h /usr/local/cuda-12.1/include
sudo cp -P cudnn-linux-x86_64-8.9.4.25_cuda12-archive/lib/libcudnn* /usr/local/cuda-12.1/lib64/
sudo chmod a+r /usr/local/cuda-12.1/include/cudnn*.h /usr/local/cuda-12.1/lib64/libcudnn*
cat /usr/local/cuda-12.1/include/cudnn_version.h | grep CUDNN_MAJOR -A 2

4、创建虚拟环境

conda create -n pcdet python=3.9
conda activate pcdet

5、安装pytorch

# CUDA 12.1
conda install pytorch==2.1.0 torchvision==0.16.0 torchaudio==2.1.0 pytorch-cuda=11.8 -c pytorch -c nvidia

检验:

python
import torch
torch.cuda.is_available()

6、安装spconv

pip install spconv-cu121

检验

import spconv

7、下载OpenPCDet

git clone https://github.com/open-mmlab/OpenPCDet.git
cd OpenPCDet
pip install -r requirements.txt #安装环境
python setup.py develop #安装pcdet

8、运行

python demo.py --cfg_file ./cfgs/kitti_models/pointpillar.yaml --ckpt ../pointpillar_7728.pth --data_path ../../data/data_object_velodyne/training/velodyne/000006.bin 

二、训练

1、下载 KITTI 数据集

从 KITTI 官方网站下载以下数据:

  • 点云数据data_object_velodyne 文件夹,包含 .bin 格式的点云数据。

  • 标注信息data_object_label_2 文件夹,包含目标的标注信息。

  • 校准信息data_object_calib 文件夹,包含相机和激光雷达的校准参数。

  • 图像数据(可选):data_object_image_2 文件夹,包含彩色图像数据。

2、准备数据

2.1 数据格式转换

如果点云数据不是 .bin 格式,需要将其转换为 .bin 格式。例如,如果数据是 .pcd 格式,可以使用以下 Python 脚本进行转换:

import os
import numpy as np

def pcd2bin(pcdfolder, binfolder, start_idx, end_idx):
    ori_path = pcdfolder
    des_path = binfolder
    if not os.path.exists(des_path):
        os.makedirs(des_path)
    for idx in range(start_idx, end_idx + 1):
        filename = f"{idx:06d}"
        velodyne_file = os.path.join(ori_path, filename + '.pcd')
        if os.path.exists(velodyne_file):
            pl = read_pcd(velodyne_file)
            pl = pl.reshape(-1, 4).astype(np.float32)
            velodyne_file_new = os.path.join(des_path, filename + '.bin')
            pl.tofile(velodyne_file_new)
        else:
            print(f"File not found: {velodyne_file}")

def read_pcd(filepath):
    lidar = []
    header_passed = False
    with open(filepath, 'r') as f:
        for line in f:
            line = line.strip()
            if line.startswith('DATA'):
                header_passed = True
                continue
            if header_passed:
                linestr = line.split()
                if len(linestr) == 3:
                    linestr_convert = list(map(float, linestr)) 
### PointPillars实现教程 #### 一、环境准备 为了成功复现PointPillars,需搭建合适的开发环境。推荐使用Anaconda管理Python环境以及依赖包安装。 ```bash conda create -n pointpillars python=3.8 conda activate pointpillars pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu113 ``` 上述命令创建了一个名为`pointpillars`的新虚拟环境并激活它;接着安装了PyTorch及其相关库版本匹配CUDA工具包[^1]。 #### 、获取源码与配置文件 访问OpenPCDet仓库克隆项目至本地: ```bash git clone https://github.com/open-mmlab/OpenPCDet.git cd OpenPCDet ``` 此操作下载了包含PointPillars在内的多个点云处理算法开源实现代码。之后按照官方文档说明设置好路径变量和其他必要的预编译工作。 #### 三、数据集准备 对于KITTI这样的公开可用的数据集来说,可以参照给定链接中的指导完成下载和解压过程,并过建立软连接的方式简化不同模型间共享同一份数据的操作[^3]。 ```bash ln -s /path/to/kitti/training ./data/kitti/training ln -s /path/to/kitti/testing ./data/kitti/testing ``` 这里假设已经提前准备好完整的KITT数据集放在指定位置,只需执行以上指令即可让PointPillars识别到所需资源。 #### 四、训练模型 调整参数设定后启动训练流程,在终端运行如下脚本开始迭代优化权重矩阵直至收敛: ```bash python train.py --cfg_file cfgs/kitti_models/pv_rcnn.yaml --batch_size 4 --epochs 80 --workers 4 ``` 这段命令指定了特定的任务配置文件(`pv_rcnn.yaml`)以及其他超参选项来控制整个学习周期内的行为表现。 #### 五、评估性能 当训练完成后可借助测试模式下的预测功能检验最终成果的好坏程度。具体做法是在验证集中挑选部分样本作为输入传入已保存的最佳checkpoint中得到输出结果并与真实情况对比分析差异大小。 ```bash python test.py --ckpt ../output/kitti_models/pv_rcnn/default/ckpt/checkpoint_epoch_80.pth --eval_all ``` 该段代码加载了第80轮次结束后的权值快照来进行全面评测,同时打印出各类指标得分供进一步研究探讨。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值