<div align="center">
<h2>AFNet: Adaptive Fusion of Single-View and Multi-View Depth for Autonomous Driving</h2>
<h2>**CVPR 2024**<h2>
[Paper](https://arxiv.org/pdf/2403.07535.pdf)
</div>
This work presents AFNet, a new multi-view and singleview depth fusion network AFNet for alleviating the defects of the existing multi-view methods, which will fail under noisy poses in real-world autonomous driving scenarios.

## ✏️ Changelog
### Mar. 20 2024
* Initial release. Due to the confidentiality agreement, the accuracy of the current reproduced model on KITTI is very slightly different from that in the paper. We release an initial version first, and the final version will be released soon.
* In addition, the models trained under noise pose will soon be released.
## ⚙️ Installation
The code is tested with CUDA11.7. Please use the following commands to install dependencies:
```
conda create --name AFNet python=3.7
conda activate AFNet
pip install -r requirements.txt
```
## 🎬 Demo

## ⏳ Training & Testing
We use 4 Nvidia 3090 GPU for training. You may need to modify 'CUDA_VISIBLE_DEVICES' and batch size to accommodate your GPU resources.
#### Training
First download and extract DDAD and KITTI data and split. You should download and process DDAD dataset follow [DDAD🔗](https://github.com/TRI-ML/DDAD).
#### Download
[__split__ 🔗](https://1drv.ms/u/s!AtFfCZ2Ckf3DghYrBvQ-DWCQR1Nd?e=Q6qz8d) (You need to move this json file in split to the data_split path)
[ models 🔗](https://1drv.ms/u/s!AtFfCZ2Ckf3DghVXXZY611mqxa8B?e=nZ7taR) (models for testing)
Then run the following command to train our model.
```
bash scripts/train.sh
```
#### Testing
First download and extract data, split and pretrained models.
### DDAD:
run:
```
python eval_ddad.py --cfg "./configs/DDAD.conf"
```
You should get something like these:
| abs_rel | sq_rel | log10 | rmse | rmse_log | a1 | a2 | a3 | abs_diff |
|---------|--------|-------|-------|----------|-------|-------|-------|----------|
| 0.088 | 0.979 | 0.035 | 4.60 | 0.154 | 0.917 | 0.972 | 0.987 | 2.042 |
### KITTI:
run:
```
python eval_kitti.py --cfg "./configs/kitti.conf"
```
You should get something like these:
| abs_rel | sq_rel | log10 | rmse | rmse_log | a1 | a2 | a3 | abs_diff |
|---------|--------|-------|-------|----------|-------|-------|-------|----------|
| 0.044 | 0.132 | 0.019 | 1.712 | 0.069 | 0.980 | 0.997 | 0.999 | 0.804 |
#### Acknowledgement
Thanks to Zhenpei Yang for opening source of his excellent works [MVS2D](https://github.com/zhenpeiyang/MVS2D?tab=readme-ov-file#nov-27-2021)
## Citation
If you find this project useful, please consider citing:
```bibtex
@misc{cheng2024adaptive,
title={Adaptive Fusion of Single-View and Multi-View Depth for Autonomous Driving},
author={JunDa Cheng and Wei Yin and Kaixuan Wang and Xiaozhi Chen and Shijie Wang and Xin Yang},
year={2024},
eprint={2403.07535},
archivePrefix={arXiv},
primaryClass={cs.CV}
}
```
PS E:\AFNet-main> pip install -r requirements.txt
Defaulting to user installation because normal site-packages is not writeable
Collecting imageio==2.9.0 (from -r requirements.txt (line 1))
Downloading imageio-2.9.0-py3-none-any.whl.metadata (2.6 kB)
Collecting ipdb==0.12.3 (from -r requirements.txt (line 2))
Downloading ipdb-0.12.3.tar.gz (10 kB)
Preparing metadata (setup.py) ... done
Collecting joblib==1.0.1 (from -r requirements.txt (line 3))
Downloading joblib-1.0.1-py3-none-any.whl.metadata (6.8 kB)
Collecting lz4==3.1.3 (from -r requirements.txt (line 4))
Downloading lz4-3.1.3.tar.gz (159 kB)
Preparing metadata (setup.py) ... done
Collecting matplotlib==3.1.3 (from -r requirements.txt (line 5))
Downloading matplotlib-3.1.3.tar.gz (40.9 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 40.9/40.9 MB 6.2 MB/s eta 0:00:00
Preparing metadata (setup.py) ... error
error: subprocess-exited-with-error
× python setup.py egg_info did not run successfully.
│ exit code: 1
╰─> [28 lines of output]
C:\Users\HP\AppData\Local\Temp\pip-install-xl7u4dpy\matplotlib_e71ff03b933d48d99aa6e0525941cb19\setup.py:32: SetuptoolsDeprecationWarning: The test command is disabled and references to it are deprecated.
!!
********************************************************************************
Please remove any references to `setuptools.command.test` in all supported versions of the affected package.
This deprecation is overdue, please update your project and remove deprecated
calls to avoid build errors in the future.
********************************************************************************
!!
from setuptools.command.test import test as TestCommand
Traceback (most recent call last):
File "<string>", line 2, in <module>
File "<pip-setuptools-caller>", line 34, in <module>
File "C:\Users\HP\AppData\Local\Temp\pip-install-xl7u4dpy\matplotlib_e71ff03b933d48d99aa6e0525941cb19\setup.py", line 52, in <module>
__version__ = versioneer.get_version()
^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\HP\AppData\Local\Temp\pip-install-xl7u4dpy\matplotlib_e71ff03b933d48d99aa6e0525941cb19\versioneer.py", line 1410, in get_version
return get_versions()["version"]
^^^^^^^^^^^^^^
File "C:\Users\HP\AppData\Local\Temp\pip-install-xl7u4dpy\matplotlib_e71ff03b933d48d99aa6e0525941cb19\versioneer.py", line 1344, in get_versions
cfg = get_config_from_root(root)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\HP\AppData\Local\Temp\pip-install-xl7u4dpy\matplotlib_e71ff03b933d48d99aa6e0525941cb19\versioneer.py", line 401, in get_config_from_root
parser = configparser.SafeConfigParser()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: module 'configparser' has no attribute 'SafeConfigParser'. Did you mean: 'RawConfigParser'?
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed
× Encountered error while generating package metadata.
╰─> See above for output.
note: This is an issue with the package mentioned above, not pip.
hint: See above for details.
最新发布