From 82580ac11e0421aa3cb9e7b9f2c20a3558e4a41f Mon Sep 17 00:00:00 2001 From: yunyaoXYY <109218879+yunyaoXYY@users.noreply.github.com> Date: Tue, 13 Sep 2022 17:10:45 +0800 Subject: [PATCH] Improve OCR readme (#220) * Add PaddleOCR Support * Add PaddleOCR Support * Add PaddleOCRv3 Support * Add PaddleOCRv3 Support * Update README.md * Update README.md * Update README.md * Update README.md * Add PaddleOCRv3 Support * Add PaddleOCRv3 Supports * Add PaddleOCRv3 Suport * Fix Rec diff * Remove useless functions * Remove useless comments * Add PaddleOCRv2 Support * Add PaddleOCRv3 & PaddleOCRv2 Support * remove useless parameters * Add utils of sorting det boxes * Fix code naming convention * Fix code naming convention * Fix code naming convention * Fix bug in the Classify process * Imporve OCR Readme * Fix diff in Cls model * Update Model Download Link in Readme * Fix diff in PPOCRv2 * Improve OCR readme * Imporve OCR readme * Improve OCR readme * Improve OCR readme * Imporve OCR readme * Improve OCR readme * Update ppocr_system_v2.cc * Update ppocr_system_v2.cc Co-authored-by: Jason <928090362@qq.com> --- .../vision/ocr/ppocr/ppocr_system_v2.cc | 2 +- .../vision/ocr/PPOCRSystemv2/cpp/README.md | 18 +++++++-------- .../vision/ocr/PPOCRSystemv2/python/README.md | 22 +++++++++--------- .../vision/ocr/PPOCRSystemv3/cpp/README.md | 14 +++++------ .../vision/ocr/PPOCRSystemv3/python/README.md | 14 +++++------ examples/vision/ocr/README.md | 23 ++++++++++++------- 6 files changed, 50 insertions(+), 43 deletions(-) diff --git a/csrc/fastdeploy/vision/ocr/ppocr/ppocr_system_v2.cc b/csrc/fastdeploy/vision/ocr/ppocr/ppocr_system_v2.cc index 62efefd83..3932895fd 100644 --- a/csrc/fastdeploy/vision/ocr/ppocr/ppocr_system_v2.cc +++ b/csrc/fastdeploy/vision/ocr/ppocr/ppocr_system_v2.cc @@ -110,4 +110,4 @@ bool PPOCRSystemv2::Predict(cv::Mat* img, } // namesapce ocrsystem } // namespace application -} // namespace fastdeploy \ No newline at end of file +} // namespace fastdeploy diff --git a/examples/vision/ocr/PPOCRSystemv2/cpp/README.md b/examples/vision/ocr/PPOCRSystemv2/cpp/README.md index a84a7de27..899b4f101 100644 --- a/examples/vision/ocr/PPOCRSystemv2/cpp/README.md +++ b/examples/vision/ocr/PPOCRSystemv2/cpp/README.md @@ -18,19 +18,19 @@ cmake .. -DFASTDEPLOY_INSTALL_DIR=${PWD}/fastdeploy-linux-x64-0.2.0 make -j -# 下载模型,图片和label文件 -wget https://paddleocr.bj.bcebos.com/PP-OCRv2/chinese/ch_PP-OCRv2_det_infer.tar -tar xvf ch_PP-OCRv2_det_infer.tar +# 下载模型,图片和字典文件 +wget https://bj.bcebos.com/paddlehub/fastdeploy/ch_PP-OCRv2_det_infer.tar.gz +tar -xvf ch_PP-OCRv2_det_infer.tar.gz -wget https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_infer.tar -tar xvf ch_ppocr_mobile_v2.0_cls_infer.tar +wget https://bj.bcebos.com/paddlehub/fastdeploy/ch_ppocr_mobile_v2.0_cls_infer.tar.gz +tar -xvf ch_ppocr_mobile_v2.0_cls_infer.tar.gz -wget https://paddleocr.bj.bcebos.com/PP-OCRv2/chinese/ch_PP-OCRv2_rec_infer.tar -tar xvf ch_PP-OCRv2_rec_infer.tar +wget https://bj.bcebos.com/paddlehub/fastdeploy/ch_PP-OCRv2_rec_infer.tar.gz +tar -xvf ch_PP-OCRv2_rec_infer.tar.gz -wget https://raw.githubusercontent.com/PaddlePaddle/PaddleOCR/release/2.5/doc/imgs/12.jpg +wget https://raw.githubusercontent.com/PaddlePaddle/PaddleOCR/release/2.6/doc/imgs/12.jpg -wget https://raw.githubusercontent.com/PaddlePaddle/PaddleOCR/release/2.5/ppocr/utils/ppocr_keys_v1.txt +wget https://raw.githubusercontent.com/PaddlePaddle/PaddleOCR/release/2.6/ppocr/utils/ppocr_keys_v1.txt # CPU推理 diff --git a/examples/vision/ocr/PPOCRSystemv2/python/README.md b/examples/vision/ocr/PPOCRSystemv2/python/README.md index c56569a29..264c3a224 100644 --- a/examples/vision/ocr/PPOCRSystemv2/python/README.md +++ b/examples/vision/ocr/PPOCRSystemv2/python/README.md @@ -9,19 +9,19 @@ ``` -# 下载模型,图片和label文件 -wget https://paddleocr.bj.bcebos.com/PP-OCRv2/chinese/ch_PP-OCRv2_det_infer.tar -tar xvf ch_PP-OCRv2_det_infer.tar +# 下载模型,图片和字典文件 +wget https://bj.bcebos.com/paddlehub/fastdeploy/ch_PP-OCRv2_det_infer.tar.gz +tar -xvf ch_PP-OCRv2_det_infer.tar.gz -wget https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_infer.tar -tar xvf ch_ppocr_mobile_v2.0_cls_infer.tar +wget https://bj.bcebos.com/paddlehub/fastdeploy/ch_ppocr_mobile_v2.0_cls_infer.tar.gz +tar -xvf ch_ppocr_mobile_v2.0_cls_infer.tar.gz -wget https://paddleocr.bj.bcebos.com/PP-OCRv2/chinese/ch_PP-OCRv2_rec_infer.tar -tar xvf ch_PP-OCRv2_rec_infer.tar +wget https://bj.bcebos.com/paddlehub/fastdeploy/ch_PP-OCRv2_rec_infer.tar.gz +tar -xvf ch_PP-OCRv2_rec_infer.tar.gz -wget https://raw.githubusercontent.com/PaddlePaddle/PaddleOCR/release/2.5/doc/imgs/12.jpg +wget https://raw.githubusercontent.com/PaddlePaddle/PaddleOCR/release/2.6/doc/imgs/12.jpg -wget https://raw.githubusercontent.com/PaddlePaddle/PaddleOCR/release/2.5/ppocr/utils/ppocr_keys_v1.txt +wget https://raw.githubusercontent.com/PaddlePaddle/PaddleOCR/release/2.6/ppocr/utils/ppocr_keys_v1.txt #下载部署示例代码 @@ -126,6 +126,6 @@ Recognizer类初始化时,需要在rec_label_file参数中,输入识别模型所 ## 其它文档 -- [YOLOv5 模型介绍](..) -- [YOLOv5 C++部署](../cpp) +- [PPOCR系列模型介绍](../../) +- [PPOCRv2 C++部署](../cpp) - [模型预测结果说明](../../../../../docs/api/vision_results/) diff --git a/examples/vision/ocr/PPOCRSystemv3/cpp/README.md b/examples/vision/ocr/PPOCRSystemv3/cpp/README.md index 00e5d0502..0c832149f 100644 --- a/examples/vision/ocr/PPOCRSystemv3/cpp/README.md +++ b/examples/vision/ocr/PPOCRSystemv3/cpp/README.md @@ -18,19 +18,19 @@ cmake .. -DFASTDEPLOY_INSTALL_DIR=${PWD}/fastdeploy-linux-x64-0.2.0 make -j -# 下载模型,图片和label文件 +# 下载模型,图片和字典文件 wget https://paddleocr.bj.bcebos.com/PP-OCRv3/chinese/ch_PP-OCRv3_det_infer.tar -tar xvf ch_PP-OCRv3_det_infer.tar +tar -xvf ch_PP-OCRv3_det_infer.tar -wget https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_infer.tar -tar xvf ch_ppocr_mobile_v2.0_cls_infer.tar +wget https://bj.bcebos.com/paddlehub/fastdeploy/ch_ppocr_mobile_v2.0_cls_infer.tar.gz +tar -xvf ch_ppocr_mobile_v2.0_cls_infer.tar.gz wget https://paddleocr.bj.bcebos.com/PP-OCRv3/chinese/ch_PP-OCRv3_rec_infer.tar -tar xvf ch_PP-OCRv3_rec_infer.tar +tar -xvf ch_PP-OCRv3_rec_infer.tar -wget https://raw.githubusercontent.com/PaddlePaddle/PaddleOCR/release/2.5/doc/imgs/12.jpg +wget https://raw.githubusercontent.com/PaddlePaddle/PaddleOCR/release/2.6/doc/imgs/12.jpg -wget https://raw.githubusercontent.com/PaddlePaddle/PaddleOCR/release/2.5/ppocr/utils/ppocr_keys_v1.txt +wget https://raw.githubusercontent.com/PaddlePaddle/PaddleOCR/release/2.6/ppocr/utils/ppocr_keys_v1.txt # CPU推理 diff --git a/examples/vision/ocr/PPOCRSystemv3/python/README.md b/examples/vision/ocr/PPOCRSystemv3/python/README.md index b048f8724..54ba03d0b 100644 --- a/examples/vision/ocr/PPOCRSystemv3/python/README.md +++ b/examples/vision/ocr/PPOCRSystemv3/python/README.md @@ -9,19 +9,19 @@ ``` -# 下载模型,图片和label文件 +# 下载模型,图片和字典文件 wget https://paddleocr.bj.bcebos.com/PP-OCRv3/chinese/ch_PP-OCRv3_det_infer.tar tar xvf ch_PP-OCRv3_det_infer.tar -wget https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_infer.tar -tar xvf ch_ppocr_mobile_v2.0_cls_infer.tar +wget https://bj.bcebos.com/paddlehub/fastdeploy/ch_ppocr_mobile_v2.0_cls_infer.tar.gz +tar -xvf ch_ppocr_mobile_v2.0_cls_infer.tar.gz wget https://paddleocr.bj.bcebos.com/PP-OCRv3/chinese/ch_PP-OCRv3_rec_infer.tar tar xvf ch_PP-OCRv3_rec_infer.tar -wget https://raw.githubusercontent.com/PaddlePaddle/PaddleOCR/release/2.5/doc/imgs/12.jpg +wget https://raw.githubusercontent.com/PaddlePaddle/PaddleOCR/release/2.6/doc/imgs/12.jpg -wget https://raw.githubusercontent.com/PaddlePaddle/PaddleOCR/release/2.5/ppocr/utils/ppocr_keys_v1.txt +wget https://raw.githubusercontent.com/PaddlePaddle/PaddleOCR/release/2.6/ppocr/utils/ppocr_keys_v1.txt #下载部署示例代码 @@ -126,6 +126,6 @@ Recognizer类初始化时,需要在rec_label_file参数中,输入识别模型所 ## 其它文档 -- [YOLOv5 模型介绍](..) -- [YOLOv5 C++部署](../cpp) +- [PPOCR系列模型介绍](../../) +- [PPOCRv3 C++部署](../cpp) - [模型预测结果说明](../../../../../docs/api/vision_results/) diff --git a/examples/vision/ocr/README.md b/examples/vision/ocr/README.md index 76d52693e..066b49b9f 100644 --- a/examples/vision/ocr/README.md +++ b/examples/vision/ocr/README.md @@ -1,14 +1,21 @@ # PaddleOCR 模型部署 -## PaddleOCR系列预测模型下载 +## PaddleOCR为多个模型组合串联任务,包含 +- 文本检测 `DBDetector` +- [可选]方向分类 `Classifer` 用于调整进入文字识别前的图像方向 +- 文字识别 `Recognizer` 用于从图像中识别出文字 -| 模型 | 参数文件大小 | 说明 | 模型格式 | 版本 | -|:---------------------------------------------------------------- |:----- |:----- | :------- | :--- | -| [ch_PP-OCRv3_det](https://paddleocr.bj.bcebos.com/PP-OCRv3/chinese/ch_PP-OCRv3_det_infer.tar) | 3.8MB | OCRv3的检测模型 | PADDLE | [Release/2.6](https://github.com/PaddlePaddle/PaddleOCR) | -| [ch_PP-OCRv3_rec](https://paddleocr.bj.bcebos.com/PP-OCRv3/chinese/ch_PP-OCRv3_rec_infer.tar) | 12.4MB | OCRv3的识别模型 | PADDLE | [Release/2.6](https://github.com/PaddlePaddle/PaddleOCR) | -| [ch_ppocr_mobile_v2.0_cls](https://bj.bcebos.com/paddlehub/fastdeploy/ch_ppocr_mobile_v2.0_cls_infer.tar.gz) | 1.38MB | OCRv2和v3通用的分类模型 | PADDLE | [Release/2.6](https://github.com/PaddlePaddle/PaddleOCR) | -| [ch_PP-OCRv2_det](https://paddleocr.bj.bcebos.com/PP-OCRv2/chinese/ch_PP-OCRv2_det_infer.tar)| 3MB | OCRv2的检测模型 | PADDLE | [Release/2.6](https://github.com/PaddlePaddle/PaddleOCR) | -| [ch_PP-OCRv2_rec](https://bj.bcebos.com/paddlehub/fastdeploy/ch_PP-OCRv2_rec_infer) | 8.5MB | OCRv2的识别模型 | PADDLE | [Release/2.6](https://github.com/PaddlePaddle/PaddleOCR) | +根据不同场景, FastDeploy汇总提供如下OCR任务部署, 用户需同时下载3个模型与字典文件(或2个,分类器可选), 完成OCR整个预测流程 + +### OCR 中英文系列模型 + +| OCR版本 | 文本框检测 | 方向分类模型 | 文字识别 |字典文件| 说明 | +|:----|:----|:----|:----|:----|:--------| +| PPOCRv3[推荐] |[ch_PP-OCRv3_det](https://paddleocr.bj.bcebos.com/PP-OCRv3/chinese/ch_PP-OCRv3_det_infer.tar) | [ch_ppocr_mobile_v2.0_cls](https://bj.bcebos.com/paddlehub/fastdeploy/ch_ppocr_mobile_v2.0_cls_infer.tar.gz) | [ch_PP-OCRv3_rec](https://paddleocr.bj.bcebos.com/PP-OCRv3/chinese/ch_PP-OCRv3_rec_infer.tar) | [ppocr_keys_v1.txt](https://bj.bcebos.com/paddlehub/fastdeploy/ppocr_keys_v1.txt) | OCRv3系列原始超轻量模型,支持中英文、多语种文本检测 | +| PPOCRv3[推荐] |[en_PP-OCRv3_det](https://bj.bcebos.com/paddlehub/fastdeploy/en_PP-OCRv3_det_infer.tar.gz) | [ch_ppocr_mobile_v2.0_cls](https://bj.bcebos.com/paddlehub/fastdeploy/ch_ppocr_mobile_v2.0_cls_infer.tar.gz) | [en_PP-OCRv3_rec](https://paddleocr.bj.bcebos.com/PP-OCRv3/english/en_PP-OCRv3_rec_infer.tar) | [en_dict.txt](https://bj.bcebos.com/paddlehub/fastdeploy/en_dict.txt) | OCRv3系列原始超轻量模型,支持英文与数字识别,除检测模型和识别模型的训练数据与中文模型不同以外,无其他区别 | +| PPOCRv2 |[ch_PP-OCRv2_det](https://bj.bcebos.com/paddlehub/fastdeploy/ch_PP-OCRv2_det_infer.tar.gz) | [ch_ppocr_mobile_v2.0_cls](https://bj.bcebos.com/paddlehub/fastdeploy/ch_ppocr_mobile_v2.0_cls_infer.tar.gz) | [ch_PP-OCRv2_rec](https://bj.bcebos.com/paddlehub/fastdeploy/ch_PP-OCRv2_rec_infer.tar.gz) | [ppocr_keys_v1.txt](https://bj.bcebos.com/paddlehub/fastdeploy/ppocr_keys_v1.txt) | OCRv2系列原始超轻量模型,支持中英文、多语种文本检测 | +| PPOCRv2_mobile |[ch_ppocr_mobile_v2.0_det](https://bj.bcebos.com/paddlehub/fastdeploy/ch_ppocr_mobile_v2.0_det_infer.tar.gz) | [ch_ppocr_mobile_v2.0_cls](https://bj.bcebos.com/paddlehub/fastdeploy/ch_ppocr_mobile_v2.0_cls_infer.tar.gz) | [ch_ppocr_mobile_v2.0_rec](https://bj.bcebos.com/paddlehub/fastdeploy/ch_ppocr_mobile_v2.0_rec_infer.tar.gz) | [ppocr_keys_v1.txt](https://bj.bcebos.com/paddlehub/fastdeploy/ppocr_keys_v1.txt) | OCRv2系列原始超轻量模型,支持中英文、多语种文本检测,比PPOCRv2更加轻量 | +| PPOCRv2_server |[ch_ppocr_server_v2.0_det](https://bj.bcebos.com/paddlehub/fastdeploy/ch_ppocr_server_v2.0_det_infer.tar.gz) | [ch_ppocr_mobile_v2.0_cls](https://bj.bcebos.com/paddlehub/fastdeploy/ch_ppocr_mobile_v2.0_cls_infer.tar.gz) | [ch_ppocr_server_v2.0_rec](https://bj.bcebos.com/paddlehub/fastdeploy/ch_ppocr_server_v2.0_rec_infer.tar.gz) |[ppocr_keys_v1.txt](https://bj.bcebos.com/paddlehub/fastdeploy/ppocr_keys_v1.txt) | OCRv2服务器系列模型, 支持中英文、多语种文本检测,比超轻量模型更大,但效果更好| ## 详细部署文档