1. 准备PETR Docker环境
a. 利用Dockerfile建议docker image
运行如下命令建立Docker image:
docker build --build-arg timezone='cat /etc/timezone' \ --build-arg user=$USER --build-arg uid=$(id -u) --build-arg gid=$(id -g) \ --build-arg group=<group-name> -t petr:v2 .
b. 利用Docker创建容器
参考命令如下:
docker run --gpus all --name <docker-name> -it --user $USER --shm-size 32gb -p 5000:5000 \ '[ -d $HOME/.ssh ] && echo -v $HOME/.ssh:/home/$USER/.ssh' \ '[ -f $HOME/.gitconfig ] && echo -v $HOME/.gitconfig:/home/$USER/.gitconfig' \ '[ -f $HOME/.bash_aliases ] && echo -v $HOME/.bash_aliases:/home/$USER/.bash_aliases' \ petr:v2 /bin/bash --login
c. 安装mmdetection3d 并将NuScenes数据集link到容器内
参考以下命令:
cd /workspace/mmdetection3d python3 setup.py develop cd /workspace/PETR/data ln -s /path/to/nuscenes/dataset/ nuscenes cd ../ git checkout petrv2-repvgg
2. 准备BEV DEMO输入的数据
a. 下载NuScenes数据集
请到nuscenes的官网下载数据集:nuscenes。
我们这边使用的是v1.0的数据集,下载后最终文件结构类似:

建议将文件link到Docker里面的目录:“/workspace/PETR/data/nuscenes”
b. 使用mmdetection3d & PETR对数据集进行预处理
进入之前准备的Docker环境中,并将下载好的数据集软链接到Docker环境的对应目录。
运行如下命令进行预处理:
cd /workspace/mmdetection3d python tools/create_data.py nuscenes --root-path /workspace/PETR/data/nuscenes \ --out-dir /workspace/PETR/data/nuscenes --extra-tag nuscenes
接着,利用PETR的repo对处理后的数据进行二次处理:
cd /workspace/PETR python tools/generate_sweep_pkl.py
最后,将BEV Demo中的数据处理脚本下载并进行BEV Demo的数据预处理:
将文件 data_preparation.py 拷贝至目录“/workspace/PETR/” 拷贝 config_file.py至“/workspace/PETR/projects/configs/petrv2/” mkdir data/nuscenes/input python data_preparation.py projects/configs/petrv2/config_file.py
这样,我们就有了预处理出来的数据文件夹 data/nuscenes/input 和 data/nuscenes。
3. 运行BEV Demo
根据GitHub中的建议,运行如下命令:
git clone https://github.com/hailo-ai/hailo-BEV.git cd BEV_Demo pip install -r requirements.txt ./download_resources.sh ./src/bev.py -m <model_path> -i <input_path> -d <data_path> -f <wanted_FPS> --infinite-loop -n <number_of_scenes>
发表回复