VoxelNext 3D论文复现

VoxelNext 3D论文复现

虽然网上有很多复现的方法,但是并没有基于docker的复现方法,我就在前人的基础上提供我的方法,感谢其他各位复现的前辈

以下是正文

硬件配置表如下

cpu:13700
gpu:4070ti super 16g

docker型号

nvidia/cuda  11.3.1-cudnn8-devel-ubuntu20.04 
docker pull nvidia/cuda:11.3.1-cudnn8-devel-ubuntu20.04

conda虚拟环境配置:

conda create -n voxel_next python=3.8

配置Pytorch:

conda activate voxel_next
pip install torch==1.10.0+cu113 torchvision==0.11.1+cu113 torchaudio==0.10.0 -f https://download.pytorch.org/whl/cu113/torch_stable.html  

测试Pytorch:

>>> import torch
>>> print(torch.__version__)
1.10.0+cu113

配置Spconv-2.x:

 pip install spconv-cu113  

测试Spconv:

python
>>>import spconv.pytorch as spconv
  1. Python库配置
    删掉requirements .txt中的 pytorch 和 torchvision,在终端运行:
pip install -r requirements.txt  

另外由于docker的特殊性,在装完opencv后需要如下操作

pip install opencv-python-headless
apt-get update
apt-get install ffmpeg libsm6 libxext6  -y
apt-get install libgl1

这些命令安装通常存在于本地计算机上的 cv2 依赖项,但可能会在您的 Docker 容器中丢失,从而导致问题。

配置OpenPcdet(==0.6)

numpy==1.23.5
llvmlite
numba
tensorboardX
easydict
pyyaml
scikit-image
tqdm
SharedArray
opencv-python
pyquaternion
kornia==0.5.8 #一定要是这个版本要不后面会报错
av2
opencv-contrib-python

输入下面指令来,完成Pcdet的相关库配置

python setup.py develop

nuScenes数据集配置

安装nuscnenes相关依赖

pip install nuscenes-devkit==1.0.5  
pip install pycocotools 

利用脚本配置nuscnenes数据集:

python -m pcdet.datasets.nuscenes.nuscenes_dataset \
			--func create_nuscenes_infos \
			--cfg_file tools/cfgs/dataset_configs/nuscenes_dataset.yaml \
			--version v1.0-trainval (or v1.0-mini)

数据集存放格式:
原始格式
VoxelNext
├── data
│   ├── nuscenes
│   │   │── v1.0-trainval (or v1.0-mini)
│   │   │   │── samples # 对keyframes的,各种sensor的数据,包括了相机、毫米波雷达和激光雷达
│   │   │   │── sweeps # intermediate frames(过渡帧或中间帧)的sensor data
│   │   │   │── maps # 存放着所有的map files,包括栅格化后的png图片和向量化后的json文件
│   │   │   │── v1.0-trainval (or v1.0-mini) # 存放着所有meta data和annotations的JSON table

处理后的格式
VoxelNext
├── data
│   ├── nuscenes
│   │   │── v1.0-trainval (or v1.0-mini)
│   │   │   │── samples 
│   │   │   │── sweeps
│   │   │   │── maps 
│   │   │   │── v1.0-trainval (or v1.0-mini) # 存放着所有meta data和annotations的JSON table
        │   │── gt_database_10sweeps_withvelo # mini版本里没有
        │   │── nuscenes_infos_10sweeps_train.pkl
        │   │── nuscenes_infos_10sweeps_val.pkl
        │   │── nuscenes_dbinfos_10sweeps_withvelo.pkl

注意!!!: 如使用nuscense_mini数据集,要修改VoxelNeXt-master/tools/cfgs/dataset_configs/nuscenes_dataset.yaml : VERSION: ‘v1.0-trainval’ 为 VERSION: ‘v1.0-mini’

运行eval

下载预训练模型
nuScenes Detection	Set	mAP	NDS	Download
VoxelNeXt	        val	60.5	66.6	Pre-trained
预选练模型在文章中有提供,这里就不提供了

这个对应的cfg文件是:
VoxelNeXt/tools/cfgs/nuscenes_models/cbgs_voxel0075_voxelnext.yaml
cd tools 
bash scripts/dist_test.sh NUM_GPUS --cfg_file PATH_TO_CONFIG_FILE --ckpt PATH_TO_MODEL
#For example,
bash scripts/dist_test.sh 8 --cfg_file PATH_TO_CONFIG_FILE --ckpt PATH_TO_MODEL
H_TO_CONFIG_FILE --ckpt PATH_TO_MODEL
#For example,
bash scripts/dist_test.sh 1 --cfg_file ./cfgs/nuscenes_models/cbgs_voxel0075_voxelnext.yaml 
                                                       --ckpt ../voxelnext_nuscenes_kernel1.pth

train

bash scripts/dist_train.sh NUM_GPUS --cfg_file PATH_TO_CONFIG_FILE
##for example 
bash scripts/dist_train.sh 1 --cfg_file cfgs/nuscenes_models/cbgs_voxel0075_voxelnext.yaml

注意,我在最后跑完模型报这个问题,是因为numpy在1.24后取消了float包,所以要用特定的1.23.5版本,但是前面的requirement我已经写好了,所以如果还出问题的同学可以看看这个

成功解决AttributeError: module 'numpy' has no attribute 'float'.
pip install numpy==1.23.5
  • 6
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值