The main branch works with PyTorch 1.3.1 or higher.
- Linux (tested on Ubuntu 16.04.4 LTS)
- Python: 3.7.6
3.6.9
tested3.7.6
tested
- PyTorch: 1.4.0
1.3.1
(with CUDA 10.1, torchvision 0.4.2)1.4.0
(with CUDA 10.1, torchvision 0.5.0)
- nvcc: 10.1
9.1.85
,10.1.243
compiling and execution tested
- gcc: 5.4.0
5.4.0
5.5.0
- Nvidia driver version: 440.59
- Cudnn version: 7.6.4
- Pyenv or Anaconda
Python dependencies list in requirements.txt
We now support the higher PyTorch and CUDA version and thus can be run on newer devices.
- Linux (tested on Ubuntu 20.04 LTS)
- Python: 3.7.16
- PyTorch: 1.12.0 (with CUDA 11.3)
- nvcc: 11.3
- gcc: 9.4.0
- Nvidia driver version: 510.73
- GPU: Nvidia RTX 3090
You could change the versio s of torch and torch-vision in requirements.txt
. You may encounter some errors during training and inference with new settings. Try the following solutions:
# numpy related error
pip uninstall numpy
pip install numpy
# numba related error
pip uninstall numba
pip install numba
- Clone this repo:
git clone -b main --single-branch https://github.com/SysCV/qd-3dt.git
- Create folders
cd qd-3dt/
mkdir data work_dirs checkpoints
- You can create a virtual environment by the following:
We use pyenv as our Python version management tool. If you have experienced some installation issue, please refer to Troubleshooting. You may also use Conda for the following installation.
# Add path to bashrc
echo -e '\nexport PYENV_ROOT="$HOME/.pyenv"\nexport PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.bashrc
# Install pyenv
curl -L https://raw.githubusercontent.com/pyenv/pyenv-installer/master/bin/pyenv-installer | bash
# Restart a new terminal if "exec $SHELL" doesn't work
exec $SHELL
# Install and activate Python in pyenv
pyenv install 3.7.6
- Create virtualenv for training, inference and evaluation.
pyenv virtualenv 3.7.6 qd_3dt
pyenv local qd_3dt
- Install PyTorch 1.4.0 and torchvision from http://pytorch.org and other dependencies.
pyenv activate qd_3dt
pip install -r requirements.txt
- Install requirements, create folders and compile binaries for detection under
qd_3dt
virtualenv.
bash install.sh
- Create virtualenv and install nuScenes toolkit with motmetrics==1.13.0 for AMOTA evaluation.
pyenv virtualenv 3.7.6 Nusc
pyenv activate Nusc
pip install nuscenes-devkit
pip install -r requirements_nusc.txt
pyenv deactivate
- Install AMOTA@0.2 evaluation python-sdk.
cd scripts/
git clone https://github.com/nutonomy/nuscenes-devkit
cd nuscenes-devkit
# Check to the commit for AMOTA@0.2 evaluation
git checkout e2d8c4b331567dc0bc36271dc21cdef65970eb7e
cd ../../
Build the waymo-open-dataset for local evaluation.
-
First follow local compilation to setup waymo-open-dataset toolkit under
scripts/waymo_devkit/
. -
NOTE: you need to checkout to commit
b2b2fc8f06ed6801aec1ea2d406d559bff08b6b5
instead ofremotes/origin/master
for successful installation. -
Compile required evaluation metric functions for both detection and tracking.
cd scripts/waymo_devkit/waymo-od
bazel build waymo_open_dataset/metrics/tools/compute_detection_metrics_main
bazel build waymo_open_dataset/metrics/tools/compute_tracking_metrics_main
bazel build waymo_open_dataset/metrics/tools/create_submission
- Create and place the submission file for your task.
${QD-3DT_ROOT}
|-- scripts
`-- |-- waymo_devkit
`-- |-- waymo-od
|-- eval_waymo_3d.py
|-- generate_waymo_gt.py
|-- submission_3d_det.txtpb
`-- submission_3d_mot.txtpb