Update README.md
Browse files
README.md
CHANGED
|
@@ -1,3 +1,78 @@
|
|
| 1 |
-
---
|
| 2 |
-
license: mit
|
| 3 |
-
---
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
license: mit
|
| 3 |
+
---
|
| 4 |
+
This repository hosts the official implementation of [MonoDGP: Monocular 3D Object Detection with Decoupled-Query and Geometry-Error Priors](https://arxiv.org/abs/2410.19590) based on the excellent work MonoDETR. In this work, we propose a novel transformer-based monocular method called MonoDGP, which adopts geometry errors to correct the projection formula. We also introduce a 2D visual decoder for query initialization and a region segmentation head for feature enhancement.
|
| 5 |
+
|
| 6 |
+
## Installation
|
| 7 |
+
1. Clone this project and create a conda environment:
|
| 8 |
+
```bash
|
| 9 |
+
git clone https://github.com/PuFanqi23/MonoDGP.git
|
| 10 |
+
cd MonoDGP
|
| 11 |
+
|
| 12 |
+
conda create -n monodgp python=3.8
|
| 13 |
+
conda activate monodgp
|
| 14 |
+
```
|
| 15 |
+
|
| 16 |
+
2. Install pytorch and torchvision matching your CUDA version:
|
| 17 |
+
```bash
|
| 18 |
+
# For example, We adopt torch 1.9.0+cu111
|
| 19 |
+
pip install torch==1.9.0+cu111 torchvision==0.10.0+cu111 torchaudio==0.9.0 -f https://download.pytorch.org/whl/torch_stable.html
|
| 20 |
+
```
|
| 21 |
+
|
| 22 |
+
3. Install requirements and compile the deformable attention:
|
| 23 |
+
```bash
|
| 24 |
+
pip install -r requirements.txt
|
| 25 |
+
|
| 26 |
+
cd lib/models/monodgp/ops/
|
| 27 |
+
bash make.sh
|
| 28 |
+
|
| 29 |
+
cd ../../../..
|
| 30 |
+
```
|
| 31 |
+
|
| 32 |
+
4. Download [KITTI](http://www.cvlibs.net/datasets/kitti/eval_object.php?obj_benchmark=3d) datasets and prepare the directory structure as:
|
| 33 |
+
```bash
|
| 34 |
+
│MonoDGP/
|
| 35 |
+
├──...
|
| 36 |
+
│data/kitti/
|
| 37 |
+
├──ImageSets/
|
| 38 |
+
├──training/
|
| 39 |
+
│ ├──image_2
|
| 40 |
+
│ ├──label_2
|
| 41 |
+
│ ├──calib
|
| 42 |
+
├──testing/
|
| 43 |
+
│ ├──image_2
|
| 44 |
+
│ ├──calib
|
| 45 |
+
```
|
| 46 |
+
You can also change the data path at "dataset/root_dir" in `configs/monodgp.yaml`.
|
| 47 |
+
|
| 48 |
+
## Get Started
|
| 49 |
+
|
| 50 |
+
### Train
|
| 51 |
+
You can modify the settings of models and training in `configs/monodgp.yaml` and indicate the GPU in `train.sh`:
|
| 52 |
+
```bash
|
| 53 |
+
bash train.sh configs/monodgp.yaml > logs/monodgp.log
|
| 54 |
+
```
|
| 55 |
+
### Test
|
| 56 |
+
The best checkpoint will be evaluated as default. You can change it at "tester/checkpoint" in `configs/monodgp.yaml`:
|
| 57 |
+
```bash
|
| 58 |
+
bash test.sh configs/monodgp.yaml
|
| 59 |
+
```
|
| 60 |
+
You can test the inference time on your own device:
|
| 61 |
+
```bash
|
| 62 |
+
python tools/test_runtime.py
|
| 63 |
+
```
|
| 64 |
+
## Citation
|
| 65 |
+
|
| 66 |
+
If you find our work useful in your research, please consider giving us a star and citing:
|
| 67 |
+
|
| 68 |
+
```latex
|
| 69 |
+
@article{pu2024monodgp,
|
| 70 |
+
title={MonoDGP: Monocular 3D Object Detection with Decoupled-Query and Geometry-Error Priors},
|
| 71 |
+
author={Pu, Fanqi and Wang, Yifan and Deng, Jiru and Yang, Wenming},
|
| 72 |
+
journal={arXiv preprint arXiv:2410.19590},
|
| 73 |
+
year={2024}
|
| 74 |
+
}
|
| 75 |
+
```
|
| 76 |
+
|
| 77 |
+
## Acknowlegment
|
| 78 |
+
This repo benefits from the excellent work [MonoDETR](https://github.com/ZrrSkywalker/MonoDETR).
|