English | 简体中文
This document covers how to install PaddleDetection and its dependencies (including PaddlePaddle), together with COCO and Pascal VOC dataset.
For general information about PaddleDetection, please see README.md.
- PaddlePaddle 2.2
- OS 64 bit
- Python 3(3.5.1+/3.6/3.7/3.8/3.9/3.10),64 bit
- pip/pip3(9.0.1+), 64 bit
- CUDA >= 10.2
- cuDNN >= 7.6
Dependency of PaddleDetection and PaddlePaddle:
PaddleDetection version | PaddlePaddle version | tips |
---|---|---|
develop | >= 2.3.2 | Dygraph mode is set as default |
release/2.6 | >= 2.3.2 | Dygraph mode is set as default |
release/2.5 | >= 2.2.2 | Dygraph mode is set as default |
release/2.4 | >= 2.2.2 | Dygraph mode is set as default |
release/2.3 | >= 2.2.0rc | Dygraph mode is set as default |
release/2.2 | >= 2.1.2 | Dygraph mode is set as default |
release/2.1 | >= 2.1.0 | Dygraph mode is set as default |
release/2.0 | >= 2.0.1 | Dygraph mode is set as default |
release/2.0-rc | >= 2.0.1 | -- |
release/0.5 | >= 1.8.4 | Cascade R-CNN and SOLOv2 depends on 2.0.0.rc |
release/0.4 | >= 1.8.4 | PP-YOLO depends on 1.8.4 |
release/0.3 | >=1.7 | -- |
# CUDA10.2
python -m pip install paddlepaddle-gpu==2.3.2 -i https://mirror.baidu.com/pypi/simple
# CPU
python -m pip install paddlepaddle==2.3.2 -i https://mirror.baidu.com/pypi/simple
- For more CUDA version or environment to quick install, please refer to the PaddlePaddle Quick Installation document
- For more installation methods such as conda or compile with source code, please refer to the installation document
Please make sure that your PaddlePaddle is installed successfully and the version is not lower than the required version. Use the following command to verify.
# check
>>> import paddle
>>> paddle.utils.run_check()
# confirm the paddle's version
python -c "import paddle; print(paddle.__version__)"
Note
- If you want to use PaddleDetection on multi-GPU, please install NCCL at first.
Note: Installing via pip only supports Python3
# Clone PaddleDetection repository
cd <path/to/clone/PaddleDetection>
git clone https://github.com/PaddlePaddle/PaddleDetection.git
# Install other dependencies
cd PaddleDetection
pip install -r requirements.txt
# Compile and install paddledet
python setup.py install
Note
-
If you are working on Windows OS,
pycocotools
installing may failed because of the origin version of cocoapi does not support windows, another version can be used used which only supports Python3:pip install git+https://github.com/philferriere/cocoapi.git#subdirectory=PythonAPI
-
If you are using Python <= 3.6,
pycocotools
installing may failed with error likedistutils.errors.DistutilsError: Could not find suitable distribution for Requirement.parse('cython>=0.27.3')
, please installcython
firstly, for examplepip install cython
After installation, make sure the tests pass:
python ppdet/modeling/tests/test_architectures.py
If the tests are passed, the following information will be prompted:
.......
----------------------------------------------------------------------
Ran 7 tests in 12.816s
OK
If you do not have a Docker environment, please refer to Docker.
We provide docker images containing the latest PaddleDetection code, and all environment and package dependencies are pre-installed. All you have to do is to pull and run the docker image. Then you can enjoy PaddleDetection without any extra steps.
Get these images and guidance in docker hub, including CPU, GPU, ROCm environment versions.
If you have some customized requirements about automatic building docker images, you can get it in github repo PaddlePaddle/PaddleCloud.
Congratulation! Now you have installed PaddleDetection successfully and try our inference demo:
# Predict an image by GPU
export CUDA_VISIBLE_DEVICES=0
python tools/infer.py -c configs/ppyolo/ppyolo_r50vd_dcn_1x_coco.yml -o use_gpu=true weights=https://paddledet.bj.bcebos.com/models/ppyolo_r50vd_dcn_1x_coco.pdparams --infer_img=demo/000000014439.jpg
An image of the same name with the predicted result will be generated under the output
folder.
The result is as shown below: