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
帧率非常快:
最后还输出了很多跟踪相关的东西...