Skip to content

Commit 4e6eab9

Browse files
zhang-progSam-gsj
andauthored
[cherry-pick] add multi_languages rec (#16307)
* modify rec_predictor * update [skip ci] * update * [skip ci] --------- Co-authored-by: guoshengjian <[email protected]>
1 parent 5f98cf9 commit 4e6eab9

File tree

2 files changed

+76
-19
lines changed
  • deploy/cpp_infer/src/modules/text_recognition
  • docs/version3.x/deployment/cpp

2 files changed

+76
-19
lines changed

deploy/cpp_infer/src/modules/text_recognition/predictor.cc

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,6 @@ TextRecPredictor::TextRecPredictor(const TextRecPredictorParams &params)
2626
params.batch_size, "image"),
2727
params_(params) {
2828
auto status = CheckRecModelParams();
29-
if (!status.ok()) {
30-
INFOE("Rec model params is invaild : %s", status.ToString().c_str());
31-
std::exit(-1);
32-
}
3329
auto status_build = Build();
3430
if (!status_build.ok()) {
3531
INFOE("Build fail: %s", status_build.ToString().c_str());

docs/version3.x/deployment/cpp/OCR.md

Lines changed: 76 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,9 @@
88
- [2.2 准备模型](#22-准备模型)
99
- [2.3 运行预测 demo](#23-运行预测-demo)
1010
- [2.4 C++ API 集成](#24-c-api-集成)
11-
- [3. 额外功能](#3-额外功能)
12-
- [3.1 可视化文本识别结果](#31-可视化文本识别结果)
11+
- [3. 拓展功能](#3-拓展功能)
12+
- [3.1 多语种文字识别](#31-多语种文字识别)
13+
- [3.2 可视化文本识别结果](#32-可视化文本识别结果)
1314
- [4. FAQ](#4-faq)
1415

1516
本章节介绍通用 OCR 产线 C++ 部署方法。通用 OCR 产线由以下5个模块组成:
@@ -258,23 +259,20 @@ sh tools/build.sh
258259
</tr>
259260
<tr>
260261
<td>PP-OCRv5_server_rec (默认)</td>
261-
<td><a href="https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0.0/\
262-
PP-OCRv5_server_rec_infer.tar">推理模型</a></td>
262+
<td><a href="https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0.0/PP-OCRv5_server_rec_infer.tar">推理模型</a></td>
263263
<td>86.38</td>
264264
<td>81</td>
265265
<td rowspan="2">PP-OCRv5_rec 是新一代文本识别模型。该模型致力于以单一模型高效、精准地支持简体中文、繁体中文、英文、日文四种主要语言,以及手写、竖版、拼音、生僻字等复杂文本场景的识别。在保持识别效果的同时,兼顾推理速度和模型鲁棒性,为各种场景下的文档理解提供高效、精准的技术支撑。</td>
266266
</tr>
267267
<tr>
268268
<td>PP-OCRv5_mobile_rec</td>
269-
<td><a href="https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0.0/\
270-
PP-OCRv5_mobile_rec_infer.tar">推理模型</a></td>
269+
<td><a href="https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0.0/PP-OCRv5_mobile_rec_infer.tar">推理模型</a></td>
271270
<td>81.29</td>
272271
<td>16</td>
273272
</tr>
274273
<tr>
275274
<td>PP-OCRv4_server_rec_doc</td>
276-
<td><a href="https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0.0/\
277-
PP-OCRv4_server_rec_doc_infer.tar">推理模型</a></td>
275+
<td><a href="https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0.0/PP-OCRv4_server_rec_doc_infer.tar">推理模型</a></td>
278276
<td>86.58</td>
279277
<td>182</td>
280278
<td>PP-OCRv4_server_rec_doc 是在 PP-OCRv4_server_rec 的基础上,在更多中文文档数据和PP-OCR训练数据的混合数据训练而成,增加了部分繁体字、日文、特殊字符的识别能力,可支持识别的字符为1.5万+,除文档相关的文字识别能力提升外,也同时提升了通用文字的识别能力</td>
@@ -659,8 +657,6 @@ models
659657

660658
```bash
661659
./build/ppocr ocr --input ./general_ocr_002.png --save_path ./output/ \
662-
--doc_orientation_classify_model_dir models/PP-LCNet_x1_0_doc_ori_infer \
663-
--doc_unwarping_model_dir models/UVDoc_infer \
664660
--textline_orientation_model_dir models/PP-LCNet_x1_0_textline_ori_infer \
665661
--text_detection_model_dir models/PP-OCRv5_server_det_infer \
666662
--text_recognition_model_dir models/PP-OCRv5_server_rec_infer \
@@ -690,9 +686,6 @@ models
690686

691687
```bash
692688
./build/ppocr ocr --input ./general_ocr_002.png --save_path ./output/ \
693-
--doc_orientation_classify_model_dir models/PP-LCNet_x1_0_doc_ori_infer \
694-
--doc_unwarping_model_dir models/UVDoc_infer \
695-
--textline_orientation_model_dir models/PP-LCNet_x1_0_textline_ori_infer \
696689
--text_detection_model_dir models/PP-OCRv5_server_det_infer \
697690
--text_recognition_model_dir models/PP-OCRv5_server_rec_infer \
698691
--use_doc_orientation_classify False \
@@ -866,9 +859,77 @@ int main(){
866859
}
867860
```
868861

869-
## 3. 额外功能
862+
## 3. 拓展功能
863+
864+
### 3.1 多语种文字识别
865+
866+
PP-OCRv5 还提供了覆盖 39 种语言的多语种文字识别能力,包括韩文、西班牙文、法文、葡萄牙文、德文、意大利文、俄罗斯文、泰文、希腊文等,具体支持语种如下:
867+
868+
<table>
869+
<thead>
870+
<tr>
871+
<th>模型</th>
872+
<th>链接</th>
873+
<th>支持语种</th>
874+
</tr>
875+
</thead>
876+
<tbody>
877+
<tr>
878+
<td>PP-OCRv5_server_rec</td>
879+
<td><a href="https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0.0/PP-OCRv5_server_rec_infer.tar">推理模型</a></td>
880+
<td>简体中文、繁体中文、英文、日文</td>
881+
</tr>
882+
<tr>
883+
<td>PP-OCRv5_mobile_rec</td>
884+
<td><a href="https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0.0/PP-OCRv5_mobile_rec_infer.tar">推理模型</a></td>
885+
<td>简体中文、繁体中文、英文、日文</td>
886+
</tr>
887+
<tr>
888+
<td>korean_PP-OCRv5_mobile_rec</td>
889+
<td><a href="https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0.0/korean_PP-OCRv5_mobile_rec_infer.tar">推理模型</a></td>
890+
<td>韩文、英文</td>
891+
</tr>
892+
<tr>
893+
<td>latin_PP-OCRv5_mobile_rec</td>
894+
<td><a href="https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0.0/latin_PP-OCRv5_mobile_rec_infer.tar">推理模型</a></td>
895+
<td>英文、法文、德文、南非荷兰文、意大利文、西班牙文、波斯尼亚文、葡萄牙文、捷克文、威尔士文、丹麦文、爱沙尼亚文、爱尔兰文、克罗地亚文、乌兹别克文、匈牙利文、塞尔维亚文(latin)、印度尼西亚文、欧西坦文、冰岛文、立陶宛文、毛利文、马来文、荷兰文、挪威文、波兰文、斯洛伐克文、斯洛文尼亚文、阿尔巴尼亚文、瑞典文、西瓦希里文、塔加洛文、土耳其文、拉丁文</td>
896+
</tr>
897+
<tr>
898+
<td>eslav_PP-OCRv5_mobile_rec</td>
899+
<td><a href="https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0.0/eslav_PP-OCRv5_mobile_rec_infer.tar">推理模型</a></td>
900+
<td>俄罗斯文、白俄罗斯文、乌克兰文、英文</td>
901+
</tr>
902+
<tr>
903+
<td>th_PP-OCRv5_mobile_rec</td>
904+
<td><a href="https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0.0/th_PP-OCRv5_mobile_rec_infer.tar">推理模型</a></td>
905+
<td>泰文、英文</td>
906+
</tr>
907+
<tr>
908+
<td>el_PP-OCRv5_mobile_rec</td>
909+
<td><a href="https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0.0/el_PP-OCRv5_mobile_rec_infer.tar">推理模型</a></td>
910+
<td>希腊文、英文</td>
911+
</tr>
912+
<tr>
913+
<td>en_PP-OCRv5_mobile_rec</td>
914+
<td><a href="https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0.0/en_PP-OCRv5_mobile_rec_infer.tar">推理模型</a></td>
915+
<td>英文</td>
916+
</tr>
917+
</tbody>
918+
</table>
919+
920+
在使用产线或模块时传入对应的识别模型即可,如使用文本识别模块进行法文识别:
921+
922+
```
923+
./build/ppocr text_recognition \
924+
--input ./french.png \
925+
--text_recognition_model_name latin_PP-OCRv5_mobile_rec \
926+
--text_recognition_model_dir latin_PP-OCRv5_mobile_rec_infer \
927+
--save_path ./output/
928+
```
929+
930+
更多详细说明可参考 [PP-OCRv5多语种文字识别介绍](../../algorithm/PP-OCRv5/PP-OCRv5_multi_languages.md)
870931

871-
### 3.1 可视化文本识别结果
932+
### 3.2 可视化文本识别结果
872933

873934
我们需要 FreeType 去完成字体的渲染,所以需要自己编译包含 FreeType 的 OpenCV,注意仅支持 OpenCV 4.x 版本。
874935
FreeType 属于 opencv_contrib 模块,需要下载 OpenvCV 和 opencv_contrib 源码,注意版本一致。以下以 opencv4.7.0 为例,源码下载命令如下:

0 commit comments

Comments
 (0)