Skip to content

Commit 1797850

Browse files
authored
feat(rapidocr): add ppocr v5 torch version (#511)
* feat: support torch ppocrv5 det * feat: support torch ppocrv5 rec * chore: update files * chore: update files * test: add ppocrv5 torch unit testings * fix: fix typos
1 parent b7bd220 commit 1797850

File tree

9 files changed

+3193
-12
lines changed

9 files changed

+3193
-12
lines changed

python/rapidocr/default_models.yaml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -385,6 +385,27 @@ torch:
385385
ch_ptocr_mobile_v2.0_cls_infer.pth:
386386
model_dir: https://www.modelscope.cn/models/RapidAI/RapidOCR/resolve/v3.1.0/torch/PP-OCRv4/cls/ch_ptocr_mobile_v2.0_cls_infer.pth
387387
SHA256: bfe13860824b3365c0c7f7ccfcddc8ff11645c60051739ff18bc9913f60c98e1
388+
PP-OCRv5:
389+
det:
390+
ch_PP-OCRv5_det_mobile_infer.pth:
391+
model_dir: https://www.modelscope.cn/models/RapidAI/RapidOCR/resolve/master/torch/PP-OCRv5/det/ch_PP-OCRv5_det_mobile_infer.pth
392+
SHA256: df848ed5060bac4d0f6e58572aea97d92e909a8a87cf292849237b0e84f6ffdb
393+
ch_PP-OCRv5_det_server_infer.pth:
394+
model_dir: https://www.modelscope.cn/models/RapidAI/RapidOCR/resolve/master/torch/PP-OCRv5/det/ch_PP-OCRv5_det_server_infer.pth
395+
SHA256: 607403c8233149f61c39f8e3302270625fab9fa2852c4329fc3c8f49cdb41e70
396+
rec:
397+
ch_PP-OCRv5_rec_mobile_infer.pth:
398+
model_dir: https://www.modelscope.cn/models/RapidAI/RapidOCR/resolve/master/torch/PP-OCRv5/rec/ch_PP-OCRv5_rec_mobile_infer.pth
399+
dict_url: https://www.modelscope.cn/models/RapidAI/RapidOCR/resolve/v3.1.0/paddle/PP-OCRv5/rec/ch_PP-OCRv5_rec_mobile_infer/ppocrv5_dict.txt
400+
SHA256: d20ee8dac2ca63e2d1989b02ecc42595c71d61bf8dd8c8ddc5ad2ee68e7b5be2
401+
ch_PP-OCRv5_rec_server_infer.pth:
402+
model_dir: https://www.modelscope.cn/models/RapidAI/RapidOCR/resolve/master/torch/PP-OCRv5/rec/ch_PP-OCRv5_rec_server_infer.pth
403+
dict_url: https://www.modelscope.cn/models/RapidAI/RapidOCR/resolve/v3.1.0/paddle/PP-OCRv5/rec/ch_PP-OCRv5_rec_server_infer/ppocrv5_dict.txt
404+
SHA256: 4767ddc90c1532ec01d881a980dae0a0b92679f4f82f88c4e9f92563de69e740
405+
cls:
406+
ch_ptocr_mobile_v2.0_cls_infer.pth:
407+
model_dir: https://www.modelscope.cn/models/RapidAI/RapidOCR/resolve/v3.1.0/torch/PP-OCRv4/cls/ch_ptocr_mobile_v2.0_cls_infer.pth
408+
SHA256: bfe13860824b3365c0c7f7ccfcddc8ff11645c60051739ff18bc9913f60c98e1
388409

389410
fonts:
390411
ch:

python/rapidocr/networks/arch_config.yaml

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,88 @@
1+
ch_PP-OCRv5_rec_mobile_infer:
2+
model_type: rec
3+
algorithm: SVTR_LCNet
4+
Transform:
5+
Backbone:
6+
name: PPLCNetV3
7+
scale: 0.95
8+
Head:
9+
name: MultiHead
10+
out_channels_list:
11+
CTCLabelDecode: 18385 #'blank' + ...(18384) + ' '
12+
head_list:
13+
- CTCHead:
14+
Neck:
15+
name: svtr
16+
dims: 120
17+
depth: 2
18+
hidden_dims: 120
19+
kernel_size: [1, 3]
20+
use_guide: True
21+
Head:
22+
fc_decay: 0.00001
23+
- NRTRHead:
24+
nrtr_dim: 384
25+
max_text_length: 25
26+
27+
ch_PP-OCRv5_rec_server_infer:
28+
model_type: rec
29+
algorithm: SVTR_HGNet
30+
Transform:
31+
Backbone:
32+
name: PPHGNetV2_B4
33+
text_rec: True
34+
Head:
35+
name: MultiHead
36+
out_channels_list:
37+
CTCLabelDecode: 18385 #'blank' + ...(18384) + ' '
38+
head_list:
39+
- CTCHead:
40+
Neck:
41+
name: svtr
42+
dims: 120
43+
depth: 2
44+
hidden_dims: 120
45+
kernel_size: [1, 3]
46+
use_guide: True
47+
Head:
48+
fc_decay: 0.00001
49+
- NRTRHead:
50+
nrtr_dim: 384
51+
max_text_length: 25
52+
53+
ch_PP-OCRv5_det_mobile_infer:
54+
model_type: det
55+
algorithm: DB
56+
Transform: null
57+
Backbone:
58+
name: PPLCNetV3
59+
scale: 0.75
60+
det: True
61+
Neck:
62+
name: RSEFPN
63+
out_channels: 96
64+
shortcut: True
65+
Head:
66+
name: DBHead
67+
k: 50
68+
fix_nan: True
69+
70+
ch_PP-OCRv5_det_server_infer:
71+
model_type: det
72+
algorithm: DB
73+
Transform: null
74+
Backbone:
75+
name: PPHGNetV2_B4
76+
det: True
77+
Neck:
78+
name: LKPAN
79+
out_channels: 256
80+
intracl: true
81+
Head:
82+
name: PFHeadLocal
83+
k: 50
84+
mode: "large"
85+
186
ch_ptocr_mobile_v2.0_cls_infer:
287
model_type: cls
388
algorithm: CLS

python/rapidocr/networks/backbones/__init__.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ def build_backbone(config, model_type):
2020
from .det_mobilenet_v3 import MobileNetV3
2121
from .rec_hgnet import PPHGNet_small
2222
from .rec_lcnetv3 import PPLCNetV3
23+
from .rec_pphgnetv2 import PPHGNetV2_B4
2324

2425
support_dict = [
2526
"MobileNetV3",
@@ -28,13 +29,15 @@ def build_backbone(config, model_type):
2829
"ResNet_SAST",
2930
"PPLCNetV3",
3031
"PPHGNet_small",
32+
"PPHGNetV2_B4",
3133
]
3234
elif model_type == "rec" or model_type == "cls":
3335
from .rec_hgnet import PPHGNet_small
3436
from .rec_lcnetv3 import PPLCNetV3
3537
from .rec_mobilenet_v3 import MobileNetV3
36-
from .rec_svtrnet import SVTRNet
3738
from .rec_mv1_enhance import MobileNetV1Enhance
39+
from .rec_pphgnetv2 import PPHGNetV2_B4
40+
from .rec_svtrnet import SVTRNet
3841

3942
support_dict = [
4043
"MobileNetV1Enhance",
@@ -48,6 +51,7 @@ def build_backbone(config, model_type):
4851
"DenseNet",
4952
"PPLCNetV3",
5053
"PPHGNet_small",
54+
"PPHGNetV2_B4",
5155
]
5256
else:
5357
raise NotImplementedError

0 commit comments

Comments
 (0)