BEVDet-Tiny復現Nuscenes-Mini資料集

GiperHsiue發表於2024-10-27

論文地址:https://arxiv.org/abs/2112.11790
專案地址:https://github.com/HuangJunJie2017/BEVDet


在anaconda中建立虛擬環境並啟動

conda create bevdet_ckpt python=3.7 -y

進入虛擬環境

conda activate bevdet_ckpt

閱讀論文,想要復現BEVDet的Tiny版本,在原作者的Github最新branch分支中,./configs/bevdet下已經沒有tiny的py檔案了。檢視另外5個brach發現,在checkpoint和master分支下還保留了tiny檔案。

透過git進行clone為dev3.0的最新分支,所以透過zip下載。

https://github.com/HuangJunJie2017/BEVDet/archive/refs/heads/checkpoint.zip

解壓後進入bevdet-checkpoint資料夾。

安裝相關依賴

pip install -c pytorch pytorch torchvision -y
pip install mmcv-full==1.3.13
pip install mmdet==2.14.0
pip install mmsegmentation==0.14.1
pip install -v -e .

進入nuscenes官網註冊賬號登陸後https://www.nuscenes.org/nuscenes#download下載mini資料集

將mini dataset下載後的v1.0-mini.tgz解壓出來可得到名為v1.0-mini的資料夾,改名為nuscenes,並移動到專案根目錄下的./data資料夾中;

Map expansion下載解壓後將檔案移動到nuscenes解壓出來的Map資料夾中,作為地圖擴充套件;

對nuscenes中的v1.0-mini複製一份並改名為v1.0-trainval

預處理nuscenes資料集

python tools/create_data.py nuscenes --version v1.0-mini --root-path ./data/nuscenes --out-dir ./data/nuscenes --extra-tag nuscenes

如果資料集不在data資料夾下,需要替換--root-path為相應檔案路徑,並且在後續訓練測試時需要修改config檔案。

直接開始訓練

# single-gpu 
python tools/train.py ${CONFIG_FILE} [optional arguments]

# multi-gpu 
./tools/dist_train.sh ${CONFIG_FILE} ${GPU_NUM} [optional arguments]

單gpu和多gpu分別使用上面的命令;本次復現透過單gpu進行測試:

python tools/train.py ./configs/bevdet/bevdet-sttiny.py

如果資料集並不在./data/nuscenes中,需要修改bevdet-sttiny.py中的相關程式碼為資料集路徑:


執行後出現報錯,查詢相關解決方案:

透過執行pip install yapf==0.40.1解決,並重新進行訓練,繼續出現報錯,查詢相關解決方案:

透過執行pip install setuptools==59.5.0解決,並重新進行訓練。

測試如下:

# single-gpu testing
python tools/test.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [--out ${RESULT_FILE}] [--eval ${EVAL_METRICS}] [--show] [--show-dir ${SHOW_DIR}]

# multi-gpu testing
./tools/dist_test.sh ${CONFIG_FILE} ${CHECKPOINT_FILE} ${GPU_NUM} [--out ${RESULT_FILE}] [--eval ${EVAL_METRICS}]

使用單gpu進行測試:

python tools/test.py ./configs/bevdet/bevdet-sttiny.py work_dirs/bevdet-sstiny/latest.pth --eval mAP

測試結果

視覺化:

因為checkpoint分支下的./tools/analysis_tools中沒有vis.py檔案,所以從別的分支中下載vis.py檔案並移動至./tools/analysis_tools中。

https://github.com/HuangJunJie2017/BEVDet/raw/refs/heads/master/tools/analysis_tools/vis.py

視覺化前需要得到json檔案,所以重新執行:

python ./tools/test.py ./configs/bevdet/bevdet-sttiny.py work_dirs/bevdet-sttiny/latest.pth --format-only --eval-options jsonfile_prefix=$savepath

./pts_bbox中得到results_nusc.json

執行

python tools/analysis_tools/vis.py ./pts_bbox/results_nusc.json

在根目錄下出現vis資料夾,裡面為mp4影片檔案

相關文章