diff --git a/README.md b/README.md
index 27d01cbef..f282076ec 100755
--- a/README.md
+++ b/README.md
@@ -28,11 +28,8 @@
Contents
- [Introduction](#introduction)
+- [Recent News](#recent-news)
- [Navigation](#navigation)
-- [Recently updates(more)](#recently-updatesmore)
- - [🍜2023-05-22 api update:](#2023-05-22-api-update)
- - [❤2023-05-20 ocrweb update:](#2023-05-20-ocrweb-update)
- - [🌹 2023-05-14 ocrweb v0.1.5 update:](#-2023-05-14-ocrweb-v015-update)
- [Overall Framework](#overall-framework)
- [Demo](#demo)
- [TODO and Task Claim](#todo-and-task-claim)
@@ -58,6 +55,11 @@
- Not meeting requirements → Based on [PaddleOCR](https://github.com/PaddlePaddle/PaddleOCR). Fine-tune your own data → RapidOCR deployment.
-If this repo is helpful to you, please click on a small star ⭐ Bah!
+## Recent News
+- 2023-08-27:
+ - \[Python\] Integrate PaddleOCR v4 model and do [review](https://github.com/RapidAI/RapidOCR/wiki/%E4%B8%8D%E5%90%8C%E7%89%88%E6%9C%AC%E6%A8%A1%E5%9E%8B%E4%B9%8B%E9%97%B4%E6%AF%94%E8%BE%83) of v4 model. The v4-based `rapidocr` package has been updated to `v1.3.0`, for documentation see: [link](https://github.com/RapidAI/RapidOCR/tree/main/python)
+ - Sorting out differences in the `rapidocr` version series and optimizing some of the python documentation.
+
## Navigation
- [Wiki](https://github.com/RapidAI/RapidOCR/wiki)
- [Support Language](https://github.com/RapidAI/RapidOCR/wiki/support_language)
@@ -99,17 +101,6 @@
- [Model Download](https://github.com/RapidAI/RapidOCR/blob/main/docs/models.md#模型下载)
- [FAQ](https://github.com/RapidAI/RapidOCR/blob/main/docs/FAQ.md)
-## Recently updates([more](https://github.com/RapidAI/RapidOCR/wiki/Changelog))
-#### 🍜2023-05-22 api update:
-- Decouple the API from ocrweb and maintain it as a separate module. For details, see [API](https://github.com/RapidAI/RapidOCR/tree/main/api)
-- After `rapidocr_web>0.1.6`, `pip install rapidocr_web[api]` will not be supported for installation, you can directly install and use `pip install rapidocr_api`.
-#### ❤2023-05-20 ocrweb update:
-- Add desktop version of RapidOCRWeb, for details, please refer to [RapidOCRWeb desktop version tutorial](https://github.com/RapidAI/RapidOCR/wiki/%5BRapidOCRWeb%5D-%E6%A1%8C%E9%9D%A2%E7%89%88%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B)
-#### 🌹 2023-05-14 ocrweb v0.1.5 update:
-- Add the return value of the interface version's return coordinate box ([issue #85](https://github.com/RapidAI/RapidOCR/issues/85))
-- API mode adds base64 format input
-- For details, please refer to: [link](https://github.com/RapidAI/RapidOCR/blob/main/ocrweb/README.md)
-
## Overall Framework
```mermaid
flowchart LR
diff --git a/docs/README_zh.md b/docs/README_zh.md
index fb4a64615..5eb4e4418 100644
--- a/docs/README_zh.md
+++ b/docs/README_zh.md
@@ -32,6 +32,7 @@
- [捷智OCR](#捷智ocr)
- [商业支持](#商业支持)
- [简介](#简介)
+ - [最近动态](#最近动态)
- [文档导航](#文档导航)
- [生态框架](#生态框架)
- [在线demo](#在线demo)
@@ -64,9 +65,15 @@
- 不满足要求 → 基于[PaddleOCR](https://github.com/PaddlePaddle/PaddleOCR)在自己数据上微调 → RapidOCR部署。
- 如果该仓库有帮助到你,还请点个小星星⭐呗!
+## 最近动态
+- 2023-08-27:
+ - \[Python\] 整合PaddleOCR v4版本模型,并对v4模型做[评测](https://github.com/RapidAI/RapidOCR/wiki/%E4%B8%8D%E5%90%8C%E7%89%88%E6%9C%AC%E6%A8%A1%E5%9E%8B%E4%B9%8B%E9%97%B4%E6%AF%94%E8%BE%83)。基于v4的`rapidocr`包已经更新到`v1.3.0`中,使用文档参见:[link](https://github.com/RapidAI/RapidOCR/tree/main/python)
+ - 梳理`rapidocr`版本系列差异,优化python部分文档。
+
## 文档导航
- [Wiki](https://github.com/RapidAI/RapidOCR/wiki)
- - [自定义识别模型](https://github.com/RapidAI/RapidOCR/wiki/support_language)
+ - [自定义识别模型及模型转换为ONNX](https://github.com/RapidAI/RapidOCR/wiki/support_language)
+ - [不同版本模型之间效果比较](https://github.com/RapidAI/RapidOCR/wiki/%E4%B8%8D%E5%90%8C%E7%89%88%E6%9C%AC%E6%A8%A1%E5%9E%8B%E4%B9%8B%E9%97%B4%E6%AF%94%E8%BE%83)
- [ONNXRuntime推理调优指南](https://github.com/RapidAI/RapidOCR/wiki/ONNXRuntime%E6%8E%A8%E7%90%86%E8%B0%83%E4%BC%98%E6%8C%87%E5%8D%97)
- [RapidOCR调优尝试教程](https://github.com/RapidAI/RapidOCR/wiki/RapidOCR%E8%B0%83%E4%BC%98%E5%B0%9D%E8%AF%95%E6%95%99%E7%A8%8B)
- [OpenVINO推理](https://github.com/RapidAI/RapidOCR/wiki/openvino%E6%8E%A8%E7%90%86)
@@ -89,17 +96,17 @@
- [含文本的图像方向分类](https://github.com/RapidAI/RapidStructure/blob/main/docs/README_Orientation.md)
- [版面分析](https://github.com/RapidAI/RapidStructure/blob/main/docs/README_Layout.md)
- [表格还原](https://github.com/RapidAI/RapidStructure/blob/main/docs/README_Table.md)
+- [常见问题 FAQ](https://github.com/RapidAI/RapidOCR/wiki/FAQ)
- 衍生项目
- - [RapidOCR HTTP服务/win32程序/易语言编写](https://github.com/Physton/RapidOCRServer)
+ - [RapidOCRServer](https://github.com/Physton/RapidOCRServer):RapidOCR HTTP服务/win32程序/易语言编写
+ - [PaddleModelConverter](https://github.com/RapidAI/PaddleOCRModelConverter): 模型自助转换
+ - [TextDetMetric](https://github.com/SWHL/TextDetMetric):文本检测模型评估
- [垂直项目](https://github.com/RapidAI/RapidOCR/blob/main/docs/related_projects.md)
- [RapidOCRPDF](https://github.com/RapidAI/RapidOCRPDF):解析PDF文件
- [RapidVideOCR](https://github.com/SWHL/RapidVideOCR):基于RapidOCR,提取视频中的硬字幕
- [LGPMA_Infer](https://github.com/SWHL/LGPMA_Infer): 表格结构还原 | [博客解读论文和源码](http://t.csdn.cn/QNN3S)
- [PaperEdge](https://github.com/cvlab-stonybrook/PaperEdge):文档图像矫正 | [Demo](https://huggingface.co/spaces/SWHL/PaperEdgeDemo)
- [CTRNet](https://github.com/lcy0604/CTRNet):图像文字擦除 | [Demo](https://huggingface.co/spaces/SWHL/CTRNetDemo)
-- [模型相关](https://github.com/RapidAI/RapidOCR/wiki/%E6%A8%A1%E5%9E%8B%E7%9B%B8%E5%85%B3)
-- [常见问题 FAQ](https://github.com/RapidAI/RapidOCR/wiki/FAQ)
-
## 生态框架
```mermaid
@@ -128,7 +135,7 @@ flowchart LR
diff --git a/python/README.md b/python/README.md
index 6148a10c5..0f0ce298b 100755
--- a/python/README.md
+++ b/python/README.md
@@ -10,168 +10,161 @@
目录
- [RapidOCR Python](#rapidocr-python)
- - [简介和说明](#简介和说明)
- - [(推荐)pip安装快速使用](#推荐pip安装快速使用)
+ - [简介](#简介)
+ - [说明](#说明)
+ - [pip安装快速使用(推荐)](#pip安装快速使用推荐)
- [源码使用步骤](#源码使用步骤)
+### 简介
+- 该部分为python版的OCR推理,包括基于ONNXRuntime和OpenVINO两个推理引擎的包。
+- 因为模型较小,因此将相关模型都已打到Whl包,可直接pip安装使用。
-### 简介和说明
-- **各个版本的ONNX模型下载地址:**[百度网盘](https://pan.baidu.com/s/1PTcgXG2zEgQU6A_A3kGJ3Q?pwd=jhai) | [Google Drive](https://drive.google.com/drive/folders/1x_a9KpCo_1blxH1xFOfgKVkw1HYRVywY?usp=sharing)
-- 所有常用的参数配置都在[`config.yaml`](https://github.com/RapidAI/RapidOCR/blob/main/python/rapidocr_onnxruntime/config.yaml)下,一目了然,更加便捷
-- **目前[`config.yaml`](https://github.com/RapidAI/RapidOCR/blob/main/python/rapidocr_onnxruntime/config.yaml)中配置为权衡速度和准确度的最优组合。**
-- 每个独立的模块下均有独立的`config.yaml`配置文件,可以单独使用
-- `det`部分,`mobile` | `server` | `v2` | `v3`推理代码均为一个
- - 如果想要指定自己的模型,可以在初始化时,指定`det`模型路径,其他相关参数同理
- ```python
- from rapidocr_onnxruntime import RapidOCR
- rapid_ocr = RapidOCR(det_model_path='xxxxx.onnx')
- ```
-- `rec`部分,`mobile` | `server` | `v2` | `v3`推理代码均为一个
- - `rec`中`v2`和`v3`两个版本,差别仅在输入shape和模型。经过测试,采用`v3 rec模型`+`[3, 48, 320]`效果最好
- - 目前配置文件`config.yaml`中(如下所示)已是最优组合
- ```yaml
- module_name: ch_ppocr_v3_rec
- class_name: TextRecognizer
- model_path: resources/models/ch_PP-OCRv3_rec_infer.onnx
-
- rec_img_shape: [3, 48, 320]
- rec_batch_num: 6
- ```
-- 关于选择哪个推理引擎(onnxruntime 或者 openvino)?
+### 说明
+- `rapidocr_onnxruntime`和`rapidocr_openvino`两个包除推理引擎不同之外,其余均相同,默认都是在CPU上运行。
+- 按语义版本号来讲,两个包其主版本号和次版本号同步更新,修订号可能会有区别。也就是说`x.y.z`中`x`和`y`是一样的,`z`可能不同。
+- 各个版本的对应关系:
+ |版本|内置模型版本|对应PaddleOCR 分支|
+ |:---:|:---:|:---:|
+ |`v1.3.x`|PaddleOCR v4版| [release/2.7](https://github.com/PaddlePaddle/PaddleOCR/tree/release/2.7)|
+ |`v1.2.x`
`v1.1.x`
`v1.0.x`|PaddleOCR v3版| [release/2.6](https://github.com/PaddlePaddle/PaddleOCR/tree/release/2.6)|
+- 推荐使用[PaddleOCRModelConveter](https://github.com/RapidAI/PaddleOCRModelConverter)在线转换,现用现转。推理代码都是同一个,只需更换模型即可。已转好**ONNX模型下载地址:**[百度网盘](https://pan.baidu.com/s/1PTcgXG2zEgQU6A_A3kGJ3Q?pwd=jhai) | [Google Drive](https://drive.google.com/drive/folders/1x_a9KpCo_1blxH1xFOfgKVkw1HYRVywY?usp=sharing),大家可自行搭配使用。
+- 所有常用的参数配置都在[`config.yaml`](https://github.com/RapidAI/RapidOCR/blob/main/python/rapidocr_onnxruntime/config.yaml)下,其中每个独立的模块下均有独立的`config.yaml`配置文件,可以单独使用。
+- 关于选择哪个版本的包(`rapidocr_onnxruntime` 或者 `rapidocr_openvino`)?
|推理引擎|推理速度更快|占用内存更少|
|:---:|:---:|:---:|
- |onnxruntime||✓|
- |openvino|✓|存在内存不释放的问题,参见[wiki](https://github.com/RapidAI/RapidOCR/wiki/openvino%E5%85%A5%E9%97%A8)|
-
-
-### (推荐)pip安装快速使用
-1. 安装包(⚠️注意:两个包接口一致,只是推理引擎不同而已,默认都是在CPU上运行)
- |包名|版本|安装命令|
- |:---|:---:|:---|
- |`rapidocr_onnxruntime`|
|`pip install rapidocr-onnxruntime`|
- |`rapidocr_openvino`|
|`pip install rapidocr-openvino`|
-
-1. 推理使用
- - 脚本使用:
- - ⚠️注意:初始化RapidOCR可不提供`config.yaml`,默认使用安装目录下的`config.yaml`。如有自定义需求:
- - 一是可直接通过初始化参数传入。详细参数参考下面命令行部分,和`config.yaml`基本对应。
- - 二是复制`config.yaml`,自行更改,然后初始化给出。e.g. `engine = RapidOCR(config_path="custom.yaml")`
- - 输入:`Union[str, np.ndarray, bytes, Path]`
- - 输出:
- - 有值:`([[文本框坐标], 文本内容, 置信度], 推理时间)`,
- - 示例:`[[左上, 右上, 右下, 左下], '小明', '0.99'], [0.02, 0.02, 0.85]`
- - 为空:`(None, None)`
- - 示例:
- ```python
- import cv2
- from rapidocr_onnxruntime import RapidOCR
- # from rapidocr_openvino import RapidOCR
-
- # RapidOCR可传入参数参考下面的命令行部分
- rapid_ocr = RapidOCR()
- # rapid_ocr = RapidOCR(config_path='custom.yaml')
-
- img_path = 'tests/test_files/ch_en_num.jpg'
-
- # 输入格式一:str
- result, elapse = rapid_ocr(img_path)
-
- # 输入格式二:np.ndarray
- img = cv2.imread('tests/test_files/ch_en_num.jpg')
- result, elapse = rapid_ocr(img)
+ |`rapidocr_onnxruntime`||✓|
+ |`rapidocr_openvino`|✓|⚠️ openvino存在内存不释放的问题,参见[wiki](https://github.com/RapidAI/RapidOCR/wiki/openvino%E5%85%A5%E9%97%A8)|
+
+
+### pip安装快速使用(推荐)
+1. 安装环境
+ |包名|版本|安装命令|
+ |:---|:---:|:---|
+ |`rapidocr_onnxruntime`|
|`pip install rapidocr-onnxruntime`|
+ |`rapidocr_openvino`|
|`pip install rapidocr-openvino`|
+
+2. python脚本使用
+ - ⚠️注意:初始化RapidOCR可不提供`config.yaml`,默认使用安装目录下的`config.yaml`。如有自定义需求:
+ - 一是可直接通过初始化参数传入。详细参数参考下面命令行部分,和`config.yaml`基本对应。
+ - 二是复制`config.yaml`,自行更改,然后初始化给出。e.g. `engine = RapidOCR(config_path="custom.yaml")`
+
+ - 输入:`Union[str, np.ndarray, bytes, Path]`
+ - 输出:
+ - 有值:`([[文本框坐标], 文本内容, 置信度], 推理时间)`,e.g. `[[左上, 右上, 右下, 左下], '小明', '0.99'], [0.02, 0.02, 0.85]`
+ - 为空:`(None, None)`
+ - 示例:
+ ```python
+ import cv2
+ from rapidocr_onnxruntime import RapidOCR
+ # from rapidocr_openvino import RapidOCR
+
+ # RapidOCR可传入参数参考下面的命令行部分
+ rapid_ocr = RapidOCR()
+
+ img_path = 'tests/test_files/ch_en_num.jpg'
+
+ # 输入格式一:str
+ result, elapse = rapid_ocr(img_path)
+
+ # 输入格式二:np.ndarray
+ img = cv2.imread('tests/test_files/ch_en_num.jpg')
+ result, elapse = rapid_ocr(img)
+
+ # 输入格式三:bytes
+ with open(img_path, 'rb') as f:
+ img = f.read()
+ result, elapse = rapid_ocr(img)
+
+ # 输入格式四:Path
+ result, elapse = rapid_ocr(Path(img_path))
+ print(result)
+ ```
+
+3. 命令行使用
+ - 参数说明:
+ ```bash
+ $ rapidocr_onnxruntime -h
+ usage: rapidocr_onnxruntime [-h] -img IMG_PATH [-p] [--text_score TEXT_SCORE]
+ [--use_angle_cls USE_ANGLE_CLS]
+ [--use_text_det USE_TEXT_DET]
+ [--print_verbose PRINT_VERBOSE]
+ [--min_height MIN_HEIGHT]
+ [--width_height_ratio WIDTH_HEIGHT_RATIO]
+ [--det_use_cuda DET_USE_CUDA]
+ [--det_model_path DET_MODEL_PATH]
+ [--det_limit_side_len DET_LIMIT_SIDE_LEN]
+ [--det_limit_type {max,min}]
+ [--det_thresh DET_THRESH]
+ [--det_box_thresh DET_BOX_THRESH]
+ [--det_unclip_ratio DET_UNCLIP_RATIO]
+ [--det_use_dilation DET_USE_DILATION]
+ [--det_score_mode {slow,fast}]
+ [--cls_use_cuda CLS_USE_CUDA]
+ [--cls_model_path CLS_MODEL_PATH]
+ [--cls_image_shape CLS_IMAGE_SHAPE]
+ [--cls_label_list CLS_LABEL_LIST]
+ [--cls_batch_num CLS_BATCH_NUM]
+ [--cls_thresh CLS_THRESH]
+ [--rec_use_cuda REC_USE_CUDA]
+ [--rec_model_path REC_MODEL_PATH]
+ [--rec_img_shape REC_IMAGE_SHAPE]
+ [--rec_batch_num REC_BATCH_NUM]
+
+ optional arguments:
+ -h, --help show this help message and exit
+ -img IMG_PATH, --img_path IMG_PATH MUST
+ -p, --print_cost
+
+ Global:
+ --text_score TEXT_SCORE
+ --use_angle_cls USE_ANGLE_CLS
+ --use_text_det USE_TEXT_DET
+ --print_verbose PRINT_VERBOSE
+ --min_height MIN_HEIGHT
+ --width_height_ratio WIDTH_HEIGHT_RATIO
+
+ Det:
+ --det_use_cuda DET_USE_CUDA
+ --det_model_path DET_MODEL_PATH
+ --det_limit_side_len DET_LIMIT_SIDE_LEN
+ --det_limit_type {max,min}
+ --det_thresh DET_THRESH
+ --det_box_thresh DET_BOX_THRESH
+ --det_unclip_ratio DET_UNCLIP_RATIO
+ --det_use_dilation DET_USE_DILATION
+ --det_score_mode {slow,fast}
+
+ Cls:
+ --cls_use_cuda CLS_USE_CUDA
+ --cls_model_path CLS_MODEL_PATH
+ --cls_image_shape CLS_IMAGE_SHAPE
+ --cls_label_list CLS_LABEL_LIST
+ --cls_batch_num CLS_BATCH_NUM
+ --cls_thresh CLS_THRESH
+
+ Rec:
+ --rec_use_cuda REC_USE_CUDA
+ --rec_model_path REC_MODEL_PATH
+ --rec_img_shape REC_IMAGE_SHAPE
+ --rec_batch_num REC_BATCH_NUM
+ ```
+ - 示例:
+ ```bash
+ $ rapidocr_onnxruntime -img tests/test_files/ch_en_num.jpg
+ ```
- # 输入格式三:bytes
- with open(img_path, 'rb') as f:
- img = f.read()
- result, elapse = rapid_ocr(img)
+### 源码使用步骤
- # 输入格式四:Path
- result, elapse = rapid_ocr(Path(img_path))
- print(result)
- ```
- - 命令行使用:
- ```bash
- $ rapidocr_onnxruntime -h
- usage: rapidocr_onnxruntime [-h] -img IMG_PATH [-p] [--text_score TEXT_SCORE]
- [--use_angle_cls USE_ANGLE_CLS]
- [--use_text_det USE_TEXT_DET]
- [--print_verbose PRINT_VERBOSE]
- [--min_height MIN_HEIGHT]
- [--width_height_ratio WIDTH_HEIGHT_RATIO]
- [--det_use_cuda DET_USE_CUDA]
- [--det_model_path DET_MODEL_PATH]
- [--det_limit_side_len DET_LIMIT_SIDE_LEN]
- [--det_limit_type {max,min}]
- [--det_thresh DET_THRESH]
- [--det_box_thresh DET_BOX_THRESH]
- [--det_unclip_ratio DET_UNCLIP_RATIO]
- [--det_use_dilation DET_USE_DILATION]
- [--det_score_mode {slow,fast}]
- [--cls_use_cuda CLS_USE_CUDA]
- [--cls_model_path CLS_MODEL_PATH]
- [--cls_image_shape CLS_IMAGE_SHAPE]
- [--cls_label_list CLS_LABEL_LIST]
- [--cls_batch_num CLS_BATCH_NUM]
- [--cls_thresh CLS_THRESH]
- [--rec_use_cuda REC_USE_CUDA]
- [--rec_model_path REC_MODEL_PATH]
- [--rec_img_shape REC_IMAGE_SHAPE]
- [--rec_batch_num REC_BATCH_NUM]
-
- optional arguments:
- -h, --help show this help message and exit
- -img IMG_PATH, --img_path IMG_PATH MUST
- -p, --print_cost
-
- Global:
- --text_score TEXT_SCORE
- --use_angle_cls USE_ANGLE_CLS
- --use_text_det USE_TEXT_DET
- --print_verbose PRINT_VERBOSE
- --min_height MIN_HEIGHT
- --width_height_ratio WIDTH_HEIGHT_RATIO
-
- Det:
- --det_use_cuda DET_USE_CUDA
- --det_model_path DET_MODEL_PATH
- --det_limit_side_len DET_LIMIT_SIDE_LEN
- --det_limit_type {max,min}
- --det_thresh DET_THRESH
- --det_box_thresh DET_BOX_THRESH
- --det_unclip_ratio DET_UNCLIP_RATIO
- --det_use_dilation DET_USE_DILATION
- --det_score_mode {slow,fast}
-
- Cls:
- --cls_use_cuda CLS_USE_CUDA
- --cls_model_path CLS_MODEL_PATH
- --cls_image_shape CLS_IMAGE_SHAPE
- --cls_label_list CLS_LABEL_LIST
- --cls_batch_num CLS_BATCH_NUM
- --cls_thresh CLS_THRESH
-
- Rec:
- --rec_use_cuda REC_USE_CUDA
- --rec_model_path REC_MODEL_PATH
- --rec_img_shape REC_IMAGE_SHAPE
- --rec_batch_num REC_BATCH_NUM
-
- $ rapidocr_onnxruntime -img tests/test_files/ch_en_num.jpg
- ```
+
-### 源码使用步骤
1. 下载整个项目到本地
```shell
cd RapidOCR/python
```
2. 下载链接下的`resources`目录(包含模型和显示的字体文件)
- - 下载链接:[Github](https://github.com/RapidAI/RapidOCR/releases/download/v1.1.0/resources.zip) | [Gitee](https://gitee.com/RapidAI/RapidOCR/releases/download/v1.1.0/resources.zip) | [百度网盘](https://pan.baidu.com/s/1PTcgXG2zEgQU6A_A3kGJ3Q?pwd=jhai) | [Google Drive](https://drive.google.com/drive/folders/1x_a9KpCo_1blxH1xFOfgKVkw1HYRVywY?usp=sharing)
- - `resources/models`下模型搭配已经为最优组合(速度和精度平衡)
- ```text
- ch_PP-OCRv3_det + ch_ppocr_mobile_v2.0_cls + ch_PP-OCRv3_rec
- ```
+ - 下载链接:[百度网盘](https://pan.baidu.com/s/1PTcgXG2zEgQU6A_A3kGJ3Q?pwd=jhai) | [Google Drive](https://drive.google.com/drive/folders/1x_a9KpCo_1blxH1xFOfgKVkw1HYRVywY?usp=sharing)
- 最终目录如下,自行比对:
```text
.
@@ -249,3 +242,4 @@
```bash
python demo.py
```
+
\ No newline at end of file