Bootstrap

Sparse4Dv3 代码复现

Sparse4D v3

准备工作

github链接:https://github.com/HorizonRobotics/Sparse4D/tree/main

新建环境:conda create -n sparse4dv3 python=3.8

激活环境:conda activate sparse4dv3

在下面网站中找到对应版本的pytorch whl文件:

https://download.pytorch.org/whl/torch_stable.html

安装pytorch:

pip install /data/zhz/code/torch-1.13.0+cu116-cp38-cp38-linux_x86_64.whl

pip install /data/zhz/code/torchvision-0.14.0+cu116-cp38-cp38-linux_x86_64.whl

pip install /data/zhz/code/torchaudio-0.13.0+cu116-cp38-cp38-linux_x86_64.whl

安装mmcv-full:

pip install /data/zhz/code/mmcv_full-1.7.1-cp38-cp38-manylinux1_x86_64.whl

pip install mmdet==2.28.2

编译可变形聚合CUDA算子

cd projects/mmdet3d_plugin/ops
python3 setup.py develop

出现这个就是安装好了:

然后准备数据:
下载nuscenes数据集并放在data/nuscenes下面(为了简单调试,我就只下载了mini部分的数据):


ln -s /data/zhz/nuscenes_mini/can_bus ./data/nuscenes/can_bus

ln -s /data/zhz/nuscenes_mini/maps ./data/nuscenes/maps

ln -s /data/zhz/nuscenes_mini/samples ./data/nuscenes/samples

ln -s /data/zhz/nuscenes_mini/sweeps ./data/nuscenes/sweeps

ln -s /data/zhz/nuscenes_mini/v1.0-mini ./data/nuscenes/v1.0-mini

打包数据集的元信息和标签,并生成所需的.pkl文件。

新建nuscenes_anno_pkls文件夹:


python3 tools/nuscenes_converter.py --version v1.0-mini --info_prefix /data/zhz/code/Sparse4D-v3/data/nuscenes_anno_pkls/nuscenes-mini

生成了两个pkl文件:

然后通过K-means生成锚点

python3 /data/zhz/code/Sparse4D-v3/tools/anchor_generator.py --ann_file /data/zhz/code/Sparse4D-v3/data/nuscenes_anno_pkls/nuscenes-mini_infos_train.pkl

如果它找不到projects的话,可以加上这两行:

需要等待一会,cpu正在计算:

最后生成出了一个npy文件:

最后一步,下载backbone的预训练权重并放在ckpt文件夹下面:

训练和推理

在这里可以下载权重:

我选的是Sparse4Dv3  Res50的权重:

注意,因为我是用的mini数据集,所以配置文件里面要改成mini:

# train
bash local_train.sh sparse4dv3_temporal_r50_1x8_bs6_256x704

# test
bash local_test.sh sparse4dv3_temporal_r50_1x8_bs6_256x704  /data/zhz/code/Sparse4D-v3/ckpt/sparse4dv3_r50.pth

显存开销:

安装motmetrics

pip install motmetrics==1.1.3

帧率非常快:

最后还输出了很多跟踪相关的东西...

;