@@ -3,6 +3,10 @@ English | [简体中文](README_cn.md)
3
3
# PP-PicoDet
4
4
5
5
![ ] ( ../../docs/images/picedet_demo.jpeg )
6
+
7
+ ## News
8
+
9
+ - Released a new series of PP-PicoDet models, with greatly improved accuracy and optimized CPU prediction speed. ** (2022.03.20)**
6
10
## Introduction
7
11
8
12
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 ) .
@@ -17,32 +21,19 @@ We developed a series of lightweight models, named `PP-PicoDet`. Because of the
17
21
<img src =" ../../docs/images/picodet_map.png " width =' 600 ' />
18
22
</div >
19
23
20
- ### Comming Soon
21
- - [ ] More series of model, such as smaller or larger model.
22
- - [ ] Pretrained models for more scenarios.
23
- - [ ] More features in need.
24
-
25
24
## Benchmark
26
25
27
26
| 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 |
28
27
| :-------- | :--------: | :---------------------: | :----------------: | :----------------: | :---------------: | :-----------------------------: | :-----------------------------: | :----------------------------------------: | :--------------------------------------- |
29
- | PicoDet-S | 320* 320 | 27.1 | 41.4 | 0.99 | 0.73 | 8.13 | ** 6.65** | [ model] ( https://paddledet.bj.bcebos.com/models/picodet_s_320_coco.pdparams ) | ; [ log] ( https://paddledet.bj.bcebos.com/logs/train_picodet_s_320_coco.log ) | [ config] ( https://github.com/PaddlePaddle/PaddleDetection/tree/develop/configs/picodet/picodet_s_320_coco.yml ) |
30
- | PicoDet-S | 416* 416 | 30.7 | 45.8 | 0.99 | 1.24 | 12.37 | ** 9.82** | [ model] ( https://paddledet.bj.bcebos.com/models/picodet_s_416_coco.pdparams ) | ; [ log] ( https://paddledet.bj.bcebos.com/logs/train_picodet_s_416_coco.log ) | [ config] ( https://github.com/PaddlePaddle/PaddleDetection/tree/develop/configs/picodet/picodet_s_416_coco.yml ) |
31
- | PicoDet-M | 320* 320 | 30.9 | 45.7 | 2.15 | 1.48 | 11.27 | ** 9.61** | [ model] ( https://paddledet.bj.bcebos.com/models/picodet_m_320_coco.pdparams ) | ; [ log] ( https://paddledet.bj.bcebos.com/logs/train_picodet_m_320_coco.log ) | [ config] ( https://github.com/PaddlePaddle/PaddleDetection/tree/develop/configs/picodet/picodet_m_320_coco.yml ) |
32
- | PicoDet-M | 416* 416 | 34.8 | 50.5 | 2.15 | 2.50 | 17.39 | ** 15.88** | [ model] ( https://paddledet.bj.bcebos.com/models/picodet_m_416_coco.pdparams ) | ; [ log] ( https://paddledet.bj.bcebos.com/logs/train_picodet_m_416_coco.log ) | [ config] ( https://github.com/PaddlePaddle/PaddleDetection/tree/develop/configs/picodet/picodet_m_416_coco.yml ) |
33
- | PicoDet-L | 320* 320 | 32.9 | 48.2 | 3.30 | 2.23 | 15.26 | ** 13.42** | [ model] ( https://paddledet.bj.bcebos.com/models/picodet_l_320_coco.pdparams ) | ; [ log] ( https://paddledet.bj.bcebos.com/logs/train_picodet_l_320_coco.log ) | [ config] ( https://github.com/PaddlePaddle/PaddleDetection/tree/develop/configs/picodet/picodet_l_320_coco.yml ) |
34
- | PicoDet-L | 416* 416 | 36.6 | 52.5 | 3.30 | 3.76 | 23.36 | ** 21.85** | [ model] ( https://paddledet.bj.bcebos.com/models/picodet_l_416_coco.pdparams ) | ; [ log] ( https://paddledet.bj.bcebos.com/logs/train_picodet_l_416_coco.log ) | [ config] ( https://github.com/PaddlePaddle/PaddleDetection/tree/develop/configs/picodet/picodet_l_416_coco.yml ) |
35
- | PicoDet-L | 640* 640 | 40.9 | 57.6 | 3.30 | 8.91 | 54.11 | ** 50.55** | [ model] ( https://paddledet.bj.bcebos.com/models/picodet_l_640_coco.pdparams ) | ; [ log] ( https://paddledet.bj.bcebos.com/logs/train_picodet_l_640_coco.log ) | [ config] ( https://github.com/PaddlePaddle/PaddleDetection/tree/develop/configs/picodet/picodet_l_640_coco.yml ) |
36
-
37
- #### More Configs
38
-
39
- | 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 |
40
- | :--------------------------- | :--------: | :---------------------: | :----------------: | :----------------: | :---------------: | :-----------------------------: | :-----------------------------: | :----------------------------------------: | :--------------------------------------- |
41
- | PicoDet-Shufflenetv2 1x | 416* 416 | 30.0 | 44.6 | 1.17 | 1.53 | 15.06 | ** 10.63** | [ model] ( https://paddledet.bj.bcebos.com/models/picodet_shufflenetv2_1x_416_coco.pdparams ) | ; [ log] ( https://paddledet.bj.bcebos.com/logs/train_picodet_shufflenetv2_1x_416_coco.log ) | [ config] ( https://github.com/PaddlePaddle/PaddleDetection/tree/develop/configs/picodet/more_config/picodet_shufflenetv2_1x_416_coco.yml ) |
42
- | PicoDet-MobileNetv3-large 1x | 416* 416 | 35.6 | 52.0 | 3.55 | 2.80 | 20.71 | ** 17.88** | [ model] ( https://paddledet.bj.bcebos.com/models/picodet_mobilenetv3_large_1x_416_coco.pdparams ) | ; [ log] ( https://paddledet.bj.bcebos.com/logs/train_picodet_mobilenetv3_large_1x_416_coco.log ) | [ config] ( https://github.com/PaddlePaddle/PaddleDetection/tree/develop/configs/picodet/more_config/picodet_mobilenetv3_large_1x_416_coco.yml ) |
43
- | PicoDet-LCNet 1.5x | 416* 416 | 36.3 | 52.2 | 3.10 | 3.85 | 21.29 | ** 20.8** | [ model] ( https://paddledet.bj.bcebos.com/models/picodet_lcnet_1_5x_416_coco.pdparams ) | ; [ log] ( https://paddledet.bj.bcebos.com/logs/train_picodet_lcnet_1_5x_416_coco.log ) | [ config] ( https://github.com/PaddlePaddle/PaddleDetection/tree/develop/configs/picodet/more_config/picodet_lcnet_1_5x_416_coco.yml ) |
44
- | PicoDet-LCNet 1.5x | 640* 640 | 40.6 | 57.4 | 3.10 | - | - | - | [ model] ( https://paddledet.bj.bcebos.com/models/picodet_lcnet_1_5x_640_coco.pdparams ) | ; [ log] ( https://paddledet.bj.bcebos.com/logs/train_picodet_lcnet_1_5x_640_coco.log ) | [ config] ( https://github.com/PaddlePaddle/PaddleDetection/tree/develop/configs/picodet/more_config/picodet_lcnet_1_5x_640_coco.yml ) |
45
- | PicoDet-R18 | 640* 640 | 40.7 | 57.2 | 11.10 | - | - | - | [ model] ( https://paddledet.bj.bcebos.com/models/picodet_r18_640_coco.pdparams ) | ; [ log] ( https://paddledet.bj.bcebos.com/logs/train_picodet_r18_640_coco.log ) | [ config] ( https://github.com/PaddlePaddle/PaddleDetection/tree/develop/configs/picodet/more_config/picodet_r18_640_coco.yml ) |
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 ) |
46
37
47
38
<details open >
48
39
<summary ><b >Table Notes:</b ></summary >
@@ -53,6 +44,10 @@ We developed a series of lightweight models, named `PP-PicoDet`. Because of the
53
44
54
45
</details >
55
46
47
+ ### Legacy Model
48
+
49
+ - Please refer to: [ PicoDet 2021.10版本] ( ./legacy_model/ )
50
+
56
51
#### Benchmark of Other Models
57
52
58
53
| 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) |
@@ -75,7 +70,7 @@ We developed a series of lightweight models, named `PP-PicoDet`. Because of the
75
70
<details open >
76
71
<summary >Requirements:</summary >
77
72
78
- - PaddlePaddle >= 2.1.2
73
+ - PaddlePaddle >= 2.2.1
79
74
80
75
</details >
81
76
@@ -111,14 +106,14 @@ python -m paddle.distributed.launch --gpus 0,1,2,3,4,5,6,7 tools/train.py -c con
111
106
112
107
``` shell
113
108
python tools/eval.py -c configs/picodet/picodet_s_320_coco.yml \
114
- -o weights=https://paddledet.bj.bcebos.com/models/picodet_s_320_coco.pdparams
109
+ -o weights=https://paddledet.bj.bcebos.com/models/picodetv2/ picodet_s_320_coco.pdparams
115
110
```
116
111
117
112
- Infer:
118
113
119
114
``` shell
120
115
python tools/infer.py -c configs/picodet/picodet_s_320_coco.yml \
121
- -o weights=https://paddledet.bj.bcebos.com/models/picodet_s_320_coco.pdparams
116
+ -o weights=https://paddledet.bj.bcebos.com/models/picodetv2/ picodet_s_320_coco.pdparams
122
117
```
123
118
124
119
Detail also can refer to [ Quick start guide] ( https://github.com/PaddlePaddle/PaddleDetection/blob/develop/docs/tutorials/GETTING_STARTED.md ) .
@@ -136,15 +131,16 @@ Detail also can refer to [Quick start guide](https://github.com/PaddlePaddle/Pad
136
131
``` shell
137
132
cd PaddleDetection
138
133
python tools/export_model.py -c configs/picodet/picodet_s_320_coco.yml \
139
- -o weights=https://paddledet.bj.bcebos.com/models/picodet_s_320_coco.pdparams --output_dir=inference_model
134
+ -o weights=https://paddledet.bj.bcebos.com/models/picodetv2/picodet_s_320_coco.pdparams \
135
+ --output_dir=inference_model
140
136
```
141
137
142
138
</details >
143
139
144
140
<details >
145
141
<summary >2. Convert to PaddleLite (click to expand)</summary >
146
142
147
- - Install Paddlelite>=2.10.rc :
143
+ - Install Paddlelite>=2.10:
148
144
149
145
``` shell
150
146
pip install paddlelite
@@ -232,13 +228,13 @@ Android demo visualization:
232
228
<details open >
233
229
<summary >Requirements:</summary >
234
230
235
- - PaddlePaddle >= 2.2.0rc0
236
- - PaddleSlim >= 2.2.0rc0
231
+ - PaddlePaddle >= 2.2.2
232
+ - PaddleSlim >= 2.2.1
237
233
238
234
** Install:**
239
235
240
236
``` shell
241
- pip install paddleslim==2.2.0rc0
237
+ pip install paddleslim==2.2.1
242
238
```
243
239
244
240
</details >
@@ -300,7 +296,7 @@ Please reduce the `batch_size` of `TrainReader` in config.
300
296
301
297
Please reset ` pretrain_weights ` in config, which trained on coco. Such as:
302
298
``` yaml
303
- pretrain_weights : https://paddledet.bj.bcebos.com/models/picodet_l_640_coco.pdparams
299
+ pretrain_weights : https://paddledet.bj.bcebos.com/models/picodetv2/ picodet_l_640_coco.pdparams
304
300
` ` `
305
301
306
302
</details>
0 commit comments