@@ -6,7 +6,12 @@ English | [简体中文](README_cn.md)
6
6
7
7
## News
8
8
9
- - Released a new series of PP-PicoDet models, with greatly improved accuracy and optimized CPU prediction speed. ** (2022.03.20)**
9
+ - Released a new series of PP-PicoDet models, it was used TAL/Task-aligned-Head and optimized PAN, which improved the accuracy and optimized CPU prediction speed. Moreover the training speed is greatly improved. ** (2022.03.20)**
10
+
11
+ ### Legacy Model
12
+
13
+ - Please refer to: [ PicoDet 2021.10版本] ( ./legacy_model/ )
14
+
10
15
## Introduction
11
16
12
17
We developed a series of lightweight models, named ` PP-PicoDet ` . Because of the excellent performance, our models are very suitable for deployment on mobile or CPU. For more details, please refer to our [ report on arXiv] ( https://arxiv.org/abs/2111.00902 ) .
@@ -25,15 +30,15 @@ We developed a series of lightweight models, named `PP-PicoDet`. Because of the
25
30
26
31
| Model | Input size | mAP<sup >val<br >0.5:0.95 | mAP<sup >val<br >0.5 | Params<br ><sup >(M) | FLOPS<br ><sup >(G) | Latency<sup ><small >[ NCNN] ( #latency ) </small ><sup ><br ><sup >(ms) | Latency<sup ><small >[ Lite] ( #latency ) </small ><sup ><br ><sup >(ms) | Download | Config |
27
32
| :-------- | :--------: | :---------------------: | :----------------: | :----------------: | :---------------: | :-----------------------------: | :-----------------------------: | :----------------------------------------: | :--------------------------------------- |
28
- | PicoDet-XS | 320* 320 | 23.5 | 36.1 | - | - | - | - | [ model] ( https://paddledet.bj.bcebos.com/models/picodetv2/picodet_xs_320_coco .pdparams ) | ; [ log] ( https://paddledet.bj.bcebos.com/logs/picodetv2/train_picodet_xs_320_coco .log ) | [ config] ( https://github.com/PaddlePaddle/PaddleDetection/tree/develop/configs/picodet/picodet_xs_320_coco .yml ) |
29
- | PicoDet-XS | 416* 416 | 26.2 | 39.3 | - | - | - | - | [ model] ( https://paddledet.bj.bcebos.com/models/picodetv2/picodet_xs_416_coco .pdparams ) | ; [ log] ( https://paddledet.bj.bcebos.com/logs/picodetv2/train_picodet_xs_416_coco .log ) | [ config] ( https://github.com/PaddlePaddle/PaddleDetection/tree/develop/configs/picodet/picodet_xs_416_coco .yml ) |
30
- | PicoDet-S | 320* 320 | 29.1 | 43.4 | - | - | - | - | [ model] ( https://paddledet.bj.bcebos.com/models/picodetv2/picodet_s_320_coco .pdparams ) | ; [ log] ( https://paddledet.bj.bcebos.com/logs/picodetv2/train_picodet_s_320_coco .log ) | [ config] ( https://github.com/PaddlePaddle/PaddleDetection/tree/develop/configs/picodet/picodet_s_320_coco .yml ) |
31
- | PicoDet-S | 416* 416 | 32.5 | 47.6 | - | - | - | - | [ model] ( https://paddledet.bj.bcebos.com/models/picodetv2/picodet_s_416_coco .pdparams ) | ; [ log] ( https://paddledet.bj.bcebos.com/logs/picodetv2/train_picodet_s_416_coco .log ) | [ config] ( https://github.com/PaddlePaddle/PaddleDetection/tree/develop/configs/picodet/picodet_s_416_coco .yml ) |
32
- | PicoDet-M | 320* 320 | 34.4 | 50.0 | - | - | - | - | [ model] ( https://paddledet.bj.bcebos.com/models/picodetv2/picodet_m_320_coco .pdparams ) | ; [ log] ( https://paddledet.bj.bcebos.com/logs/picodetv2/train_picodet_m_320_coco .log ) | [ config] ( https://github.com/PaddlePaddle/PaddleDetection/tree/develop/configs/picodet/picodet_m_320_coco .yml ) |
33
- | PicoDet-M | 416* 416 | 37.5 | 53.4 | - | - | - | - | [ model] ( https://paddledet.bj.bcebos.com/models/picodetv2/picodet_m_416_coco .pdparams ) | ; [ log] ( https://paddledet.bj.bcebos.com/logs/picodetv2/train_picodet_m_416_coco .log ) | [ config] ( https://github.com/PaddlePaddle/PaddleDetection/tree/develop/configs/picodet/picodet_m_416_coco .yml ) |
34
- | PicoDet-L | 320* 320 | 36.1 | 52.0 | - | - | - | - | [ model] ( https://paddledet.bj.bcebos.com/models/picodetv2/picodet_l_320_coco .pdparams ) | ; [ log] ( https://paddledet.bj.bcebos.com/logs/picodetv2/train_picodet_l_320_coco .log ) | [ config] ( https://github.com/PaddlePaddle/PaddleDetection/tree/develop/configs/picodet/picodet_l_320_coco .yml ) |
35
- | PicoDet-L | 416* 416 | 39.4 | 55.7 | - | - | - | - | [ model] ( https://paddledet.bj.bcebos.com/models/picodetv2/picodet_l_416_coco .pdparams ) | ; [ log] ( https://paddledet.bj.bcebos.com/logs/picodetv2/train_picodet_l_416_coco .log ) | [ config] ( https://github.com/PaddlePaddle/PaddleDetection/tree/develop/configs/picodet/picodet_l_416_coco .yml ) |
36
- | PicoDet-L | 640* 640 | 42.3 | 59.2 | - | - | - | - | [ model] ( https://paddledet.bj.bcebos.com/models/picodetv2/picodet_l_640_coco .pdparams ) | ; [ log] ( https://paddledet.bj.bcebos.com/logs/picodetv2/train_picodet_l_640_coco .log ) | [ config] ( https://github.com/PaddlePaddle/PaddleDetection/tree/develop/configs/picodet/picodet_l_640_coco .yml ) |
33
+ | PicoDet-XS | 320* 320 | 23.5 | 36.1 | - | - | - | - | [ model] ( https://paddledet.bj.bcebos.com/models/picodet_xs_320_coco_lcnet .pdparams ) | ; [ log] ( https://paddledet.bj.bcebos.com/logs/train_picodet_xs_320_coco_lcnet .log ) | [ config] ( https://github.com/PaddlePaddle/PaddleDetection/tree/develop/configs/picodet/picodet_xs_320_coco_lcnet .yml ) |
34
+ | PicoDet-XS | 416* 416 | 26.2 | 39.3 | - | - | - | - | [ model] ( https://paddledet.bj.bcebos.com/models/picodet_xs_416_coco_lcnet .pdparams ) | ; [ log] ( https://paddledet.bj.bcebos.com/logs/train_picodet_xs_416_coco_lcnet .log ) | [ config] ( https://github.com/PaddlePaddle/PaddleDetection/tree/develop/configs/picodet/picodet_xs_416_coco_lcnet .yml ) |
35
+ | PicoDet-S | 320* 320 | 29.1 | 43.4 | - | - | - | - | [ model] ( https://paddledet.bj.bcebos.com/models/picodet_s_320_coco_lcnet .pdparams ) | ; [ log] ( https://paddledet.bj.bcebos.com/logs/train_picodet_s_320_coco_lcnet .log ) | [ config] ( https://github.com/PaddlePaddle/PaddleDetection/tree/develop/configs/picodet/picodet_s_320_coco_lcnet .yml ) |
36
+ | PicoDet-S | 416* 416 | 32.5 | 47.6 | - | - | - | - | [ model] ( https://paddledet.bj.bcebos.com/models/picodet_s_416_coco_lcnet .pdparams ) | ; [ log] ( https://paddledet.bj.bcebos.com/logs/train_picodet_s_416_coco_lcnet .log ) | [ config] ( https://github.com/PaddlePaddle/PaddleDetection/tree/develop/configs/picodet/picodet_s_416_coco_lcnet .yml ) |
37
+ | PicoDet-M | 320* 320 | 34.4 | 50.0 | - | - | - | - | [ model] ( https://paddledet.bj.bcebos.com/models/picodet_m_320_coco_lcnet .pdparams ) | ; [ log] ( https://paddledet.bj.bcebos.com/logs/train_picodet_m_320_coco_lcnet .log ) | [ config] ( https://github.com/PaddlePaddle/PaddleDetection/tree/develop/configs/picodet/picodet_m_320_coco_lcnet .yml ) |
38
+ | PicoDet-M | 416* 416 | 37.5 | 53.4 | - | - | - | - | [ model] ( https://paddledet.bj.bcebos.com/models/picodet_m_416_coco_lcnet .pdparams ) | ; [ log] ( https://paddledet.bj.bcebos.com/logs/train_picodet_m_416_coco_lcnet .log ) | [ config] ( https://github.com/PaddlePaddle/PaddleDetection/tree/develop/configs/picodet/picodet_m_416_coco_lcnet .yml ) |
39
+ | PicoDet-L | 320* 320 | 36.1 | 52.0 | - | - | - | - | [ model] ( https://paddledet.bj.bcebos.com/models/picodet_l_320_coco_lcnet .pdparams ) | ; [ log] ( https://paddledet.bj.bcebos.com/logs/train_picodet_l_320_coco_lcnet .log ) | [ config] ( https://github.com/PaddlePaddle/PaddleDetection/tree/develop/configs/picodet/picodet_l_320_coco_lcnet .yml ) |
40
+ | PicoDet-L | 416* 416 | 39.4 | 55.7 | - | - | - | - | [ model] ( https://paddledet.bj.bcebos.com/models/picodet_l_416_coco_lcnet .pdparams ) | ; [ log] ( https://paddledet.bj.bcebos.com/logs/train_picodet_l_416_coco_lcnet .log ) | [ config] ( https://github.com/PaddlePaddle/PaddleDetection/tree/develop/configs/picodet/picodet_l_416_coco_lcnet .yml ) |
41
+ | PicoDet-L | 640* 640 | 42.3 | 59.2 | - | - | - | - | [ model] ( https://paddledet.bj.bcebos.com/models/picodet_l_640_coco_lcnet .pdparams ) | ; [ log] ( https://paddledet.bj.bcebos.com/logs/train_picodet_l_640_coco_lcnet .log ) | [ config] ( https://github.com/PaddlePaddle/PaddleDetection/tree/develop/configs/picodet/picodet_l_640_coco_lcnet .yml ) |
37
42
38
43
<details open >
39
44
<summary ><b >Table Notes:</b ></summary >
@@ -44,10 +49,6 @@ We developed a series of lightweight models, named `PP-PicoDet`. Because of the
44
49
45
50
</details >
46
51
47
- ### Legacy Model
48
-
49
- - Please refer to: [ PicoDet 2021.10版本] ( ./legacy_model/ )
50
-
51
52
#### Benchmark of Other Models
52
53
53
54
| Model | Input size | mAP<sup >val<br >0.5:0.95 | mAP<sup >val<br >0.5 | Params<br ><sup >(M) | FLOPS<br ><sup >(G) | Latency<sup ><small >[ NCNN] ( #latency ) </small ><sup ><br ><sup >(ms) |
@@ -90,7 +91,7 @@ We developed a series of lightweight models, named `PP-PicoDet`. Because of the
90
91
``` shell
91
92
# training on single-GPU
92
93
export CUDA_VISIBLE_DEVICES=0
93
- python tools/train.py -c configs/picodet/picodet_s_320_coco .yml --eval
94
+ python tools/train.py -c configs/picodet/picodet_s_320_coco_lcnet .yml --eval
94
95
```
95
96
96
97
- Training model on multi-GPU:
@@ -99,21 +100,21 @@ python tools/train.py -c configs/picodet/picodet_s_320_coco.yml --eval
99
100
``` shell
100
101
# training on single-GPU
101
102
export CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7
102
- python -m paddle.distributed.launch --gpus 0,1,2,3,4,5,6,7 tools/train.py -c configs/picodet/picodet_s_320_coco .yml --eval
103
+ python -m paddle.distributed.launch --gpus 0,1,2,3,4,5,6,7 tools/train.py -c configs/picodet/picodet_s_320_coco_lcnet .yml --eval
103
104
```
104
105
105
106
- Evaluation:
106
107
107
108
``` shell
108
- python tools/eval.py -c configs/picodet/picodet_s_320_coco .yml \
109
- -o weights=https://paddledet.bj.bcebos.com/models/picodetv2/picodet_s_320_coco .pdparams
109
+ python tools/eval.py -c configs/picodet/picodet_s_320_coco_lcnet .yml \
110
+ -o weights=https://paddledet.bj.bcebos.com/models/picodet_s_320_coco_lcnet .pdparams
110
111
```
111
112
112
113
- Infer:
113
114
114
115
``` shell
115
- python tools/infer.py -c configs/picodet/picodet_s_320_coco .yml \
116
- -o weights=https://paddledet.bj.bcebos.com/models/picodetv2/picodet_s_320_coco .pdparams
116
+ python tools/infer.py -c configs/picodet/picodet_s_320_coco_lcnet .yml \
117
+ -o weights=https://paddledet.bj.bcebos.com/models/picodet_s_320_coco_lcnet .pdparams
117
118
```
118
119
119
120
Detail also can refer to [ Quick start guide] ( https://github.com/PaddlePaddle/PaddleDetection/blob/develop/docs/tutorials/GETTING_STARTED.md ) .
@@ -130,8 +131,8 @@ Detail also can refer to [Quick start guide](https://github.com/PaddlePaddle/Pad
130
131
131
132
``` shell
132
133
cd PaddleDetection
133
- python tools/export_model.py -c configs/picodet/picodet_s_320_coco .yml \
134
- -o weights=https://paddledet.bj.bcebos.com/models/picodetv2/picodet_s_320_coco .pdparams \
134
+ python tools/export_model.py -c configs/picodet/picodet_s_320_coco_lcnet .yml \
135
+ -o weights=https://paddledet.bj.bcebos.com/models/picodet_s_320_coco_lcnet .pdparams \
135
136
--output_dir=inference_model
136
137
```
137
138
@@ -150,9 +151,9 @@ pip install paddlelite
150
151
151
152
``` shell
152
153
# FP32
153
- paddle_lite_opt --model_dir=inference_model/picodet_s_320_coco --valid_targets=arm --optimize_out=picodet_s_320_coco_fp32
154
+ paddle_lite_opt --model_dir=inference_model/picodet_s_320_coco_lcnet --valid_targets=arm --optimize_out=picodet_s_320_coco_fp32
154
155
# FP16
155
- paddle_lite_opt --model_dir=inference_model/picodet_s_320_coco --valid_targets=arm --optimize_out=picodet_s_320_coco_fp16 --enable_fp16=true
156
+ paddle_lite_opt --model_dir=inference_model/picodet_s_320_coco_lcnet --valid_targets=arm --optimize_out=picodet_s_320_coco_fp16 --enable_fp16=true
156
157
```
157
158
158
159
</details >
@@ -170,7 +171,7 @@ pip install paddle2onnx
170
171
- Convert model:
171
172
172
173
``` shell
173
- paddle2onnx --model_dir output_inference/picodet_s_320_coco / \
174
+ paddle2onnx --model_dir output_inference/picodet_s_320_coco_lcnet / \
174
175
--model_filename model.pdmodel \
175
176
--params_filename model.pdiparams \
176
177
--opset_version 11 \
@@ -245,7 +246,7 @@ pip install paddleslim==2.2.1
245
246
Configure the quant config and start training:
246
247
247
248
``` shell
248
- python tools/train.py -c configs/picodet/picodet_s_320_coco .yml \
249
+ python tools/train.py -c configs/picodet/picodet_s_320_coco_lcnet .yml \
249
250
--slim_config configs/slim/quant/picodet_s_quant.yml --eval
250
251
```
251
252
@@ -259,7 +260,7 @@ python tools/train.py -c configs/picodet/picodet_s_320_coco.yml \
259
260
Configure the post quant config and start calibrate model:
260
261
261
262
``` shell
262
- python tools/post_quant.py -c configs/picodet/picodet_s_320_coco .yml \
263
+ python tools/post_quant.py -c configs/picodet/picodet_s_320_coco_lcnet .yml \
263
264
--slim_config configs/slim/post_quant/picodet_s_ptq.yml
264
265
```
265
266
@@ -296,7 +297,7 @@ Please reduce the `batch_size` of `TrainReader` in config.
296
297
297
298
Please reset ` pretrain_weights ` in config, which trained on coco. Such as:
298
299
``` yaml
299
- pretrain_weights : https://paddledet.bj.bcebos.com/models/picodetv2/picodet_l_640_coco .pdparams
300
+ pretrain_weights : https://paddledet.bj.bcebos.com/models/picodet_l_640_coco_lcnet .pdparams
300
301
` ` `
301
302
302
303
</details>
0 commit comments