https://github.com/ngoductuanlhp/GAC3D
GAC3D: Improving Monocular 3D Object Detection with Ground-Guide Model and Adaptive Convolution (PeerJ)
https://github.com/ngoductuanlhp/GAC3D
3d-object-detection monocular-3d-detection
Last synced: 2 months ago
JSON representation
GAC3D: Improving Monocular 3D Object Detection with Ground-Guide Model and Adaptive Convolution (PeerJ)
- Host: GitHub
- URL: https://github.com/ngoductuanlhp/GAC3D
- Owner: ngoductuanlhp
- Created: 2021-04-19T04:48:00.000Z (about 4 years ago)
- Default Branch: master
- Last Pushed: 2021-08-26T10:09:08.000Z (over 3 years ago)
- Last Synced: 2024-10-28T01:11:54.084Z (7 months ago)
- Topics: 3d-object-detection, monocular-3d-detection
- Language: C++
- Homepage:
- Size: 16.1 MB
- Stars: 12
- Watchers: 2
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# GAC3D: Improving monocular 3D object detection with ground-guide model and adaptive convolution
## Introduction
This work proposes a novel approach for 3D object detection by employing a ground plane model that utilizes geometric constraints, named GAC3D. This approach improves the results of the deep-based detector. Furthermore, we introduce a depth adaptive convolution to replace the traditional 2D convolution to deal with the divergent context of the image's feature, leading to a significant improvement in both training convergence and testing accuracy. We demonstrate our approach on the KITTI 3D Object Detection benchmark, which outperforms existing monocular methods.The structure of this repo is as follows:
```bash
GAC3D
├── kitti_format # for training and evaluating on trainval set
├── kitti_test # for testing on official test set
├── src # source code for implementing the framework
├── trt_src # source code for deploying the framework on NVidia Jetson board
├── readme # readme files
```## Requirements
Our framework is implemented and tested with Ubuntu 18.04, CUDA 10.2, CuDNN 7.5.1, Python 3.6, Pytorch 1.7, single NVIDIA RTX 2080.## Dataset preparation
Download the official [KITTI 3D object detection](http://www.cvlibs.net/datasets/kitti/eval_object.php?obj_benchmark=3d) dataset and organize the downloaded files as follows:
```
GAC3D
├── kitti_format
│ ├─ data
│ │ ├── kitti
│ │ | ├── annotations
│ │ │ | ├── kitti_train.json
│ │ │ | ├── kitti_val.json
│ │ │ | ├── kitti_trainval.json
│ │ │ ├── calib /000000.txt .....
│ │ │ ├── image(left[0-7480] right[7481-14961]) /000000.png .....
│ │ │ ├── label /000000.txt .....
| | | ├── train.txt val.txt trainval.txt
```## Installation
* For training and testing on mainframe computer: [INSTALL.md](readme/INSTALL.md)
* For testing on embedded device (we use NVidia Jetson Xavier NX): [INSTALL_JETSON.md](readme/INSTALL_JETSON.md)## Demo
Please refer to [GETTING_STARTED.md](readme/GETTING_STARTED.md) to learn more usage about this project.## NVidia Jetson deployment
We deployed and tested our framework on NVidia Jetson XavierNX with Jetpack 4.5.1. Please follow these steps below to run the framework on Jetson board:
* Install packages on Jetson: [INSTALL_JETSON.md](readme/INSTALL_JETSON.md)
* Build TensorRT src and additional plugins: [BUILD_TENSORRT.md](readme/BUILD_TENSORRT.md)
* Infer model on Jetson: [DEMO_JETSON.md](readme/DEMO_JETSON.md)## Acknowledgement
Portions of the code are borrowed from:
* [CenterNet](https://github.com/xingyizhou/CenterNet)
* [RTM3D](https://github.com/Banconxuan/RTM3D)
* [DCNv2](https://github.com/jinfagang/DCNv2_latest) (Deformable Convolutions)
* [PAC](https://github.com/NVlabs/pacnet) (Pixel Adaptive Convolution)
* [kitti_eval](https://github.com/prclibo/kitti_eval) (KITTI dataset evaluation).