提交 1594ad97 编写于 作者: B breezedeus

update docs

上级 c7fb7928
......@@ -14,7 +14,7 @@
[📖文档](https://cnocr.readthedocs.io/zh/latest/) |
[🛠️安装](https://cnocr.readthedocs.io/zh/latest/install/) |
[🧳自带模型](https://cnocr.readthedocs.io/zh/latest/models/) |
[🔔在线Demo](https://share.streamlit.io/breezedeus/cnstd/st-deploy/cnstd/app.py) |
[📟在线Demo](https://share.streamlit.io/breezedeus/cnstd/st-deploy/cnstd/app.py) |
[💬交流群](https://cnocr.readthedocs.io/zh/latest/contact/)
</div>
......@@ -162,6 +162,26 @@ print(out)
</div>
### 单行文字的图片识别
如果明确知道待识别的图片是单行文字图片(如下图),可以使用类函数 `CnOcr.ocr_for_single_line()` 进行识别。这样就省掉了文字检测的时间,速度会快一倍以上。
<div align="center">
<img src="./docs/examples/helloworld.jpg" alt="单行文本识别" width="300px"/>
</div>
调用代码如下:
```python
from cnocr import CnOcr
img_fp = './docs/examples/helloworld.jpg'
ocr = CnOcr()
out = ocr.ocr_for_single_line(img_fp)
print(out)
```
### 更多应用示例
* **核酸疫苗截图识别**
......@@ -240,7 +260,7 @@ pip install cnocr -i https://pypi.doubanio.com/simple
| ch_PP-OCRv3 | X | √ | ppocr | 10 M | 简体中文、英文、数字 | √ |
| ch_ppocr_mobile_v2.0 | X | √ | ppocr | 4.2 M | 简体中文、英文、数字 | √ |
| **en_PP-OCRv3** | X | √ | ppocr | 8.5 M | **英文**、数字 | √ |
| **en_number_mobile_v2.0** | X | √ | ppocr | 1.8M | **英文**、数字 | √ |
| **en_number_mobile_v2.0** | X | √ | ppocr | 1.8 M | **英文**、数字 | √ |
| **chinese_cht_PP-OCRv3** | X | √ | ppocr | 11 M | **繁体中文**、英文、数字 | X |
## 未来工作
......@@ -256,7 +276,7 @@ pip install cnocr -i https://pypi.doubanio.com/simple
* [x] 基于 PyTorch 训练更高效的模型
* [x] 支持列格式的文字识别
* [x] 打通与 [CnStd](https://github.com/breezedeus/cnstd) 的无缝衔接(since `V2.2`
- [ ] 支持更多的应用场景,如公式识别、表格识别、版面分析等
* [ ] 支持更多的应用场景,如公式识别、表格识别、版面分析等
## 给作者来杯咖啡
......
......@@ -208,6 +208,7 @@ def draw_ocr_results(image_fp, ocr_outs, out_draw_fp, font_path):
help='识别模型类型。默认值为 `onnx`',
)
@click.option(
'-d',
'--det-model-name',
type=str,
default='ch_PP-OCRv3_det',
......
......@@ -94,7 +94,7 @@ class CnOcr(object):
若训练的自有模型更改了字符集,看通过此参数传入新的字符集文件路径。
rec_more_configs (Optional[Dict[str, Any]]): 识别模型初始化时传入的其他参数。
rec_root (Union[str, Path]): 识别模型文件所在的根目录。
Linux/Mac下默认值为 `~/.cnocr`,表示模型文件所处文件夹类似 `~/.cnocr/2.1/densenet_lite_136-fc`。
Linux/Mac下默认值为 `~/.cnocr`,表示模型文件所处文件夹类似 `~/.cnocr/2.2/densenet_lite_136-fc`。
Windows下默认值为 `C:/Users/<username>/AppData/Roaming/cnocr`。
det_model_fp (Optional[str]): 如果不使用系统自带的检测模型,可以通过此参数直接指定所使用的模型文件('.ckpt' 文件)
det_model_backend (str): 'pytorch', or 'onnx'。表明检测时是使用 PyTorch 版本模型,还是使用 ONNX 版本模型。
......
# CnOcr
# CnOCR
[**CnOcr**](https://github.com/breezedeus/cnocr)**Python 3** 下的**文字识别****Optical Character Recognition**,简称**OCR**)工具包,支持**简体中文****繁体中文**(部分模型)、**英文****数字**的常见字符识别,支持竖排文字的识别。自带了**10+个** [训练好的识别模型](models.md),安装后即可直接使用。欢迎扫码加入[QQ交流群](contact.md)
[**CnOCR**](https://github.com/breezedeus/cnocr)**Python 3** 下的**文字识别****Optical Character Recognition**,简称**OCR**)工具包,支持**简体中文****繁体中文**(部分模型)、**英文****数字**的常见字符识别,支持竖排文字的识别。自带了**20+个** [训练好的识别模型](models.md),适用于不同应用场景,安装后即可直接使用。欢迎扫码加入[QQ交流群](contact.md)
作者也维护 **知识星球** [**CnOCR/CnSTD私享群**](https://t.zsxq.com/FEYZRJQ) ,欢迎加入。**知识星球私享群**会陆续发布一些CnOCR/CnSTD相关的私有资料,包括**更详细的训练教程****未公开的模型**,使用过程中遇到的难题解答等。本群也会发布OCR/STD相关的最新研究资料。此外,**私享群中作者每月提供两次免费特有数据的训练服务**
......@@ -18,6 +18,8 @@ pip install cnocr
更多说明可见 [安装文档](install.md)
> 如果电脑中从未安装过 `PyTorch`,`OpenCV` python包,初次安装可能会遇到问题,但一般都是常见问题,可以自行百度/Google解决。
## 使用简单
使用 `CnOcr.ocr()` 识别下图:
......
## 安装
嗯,安装真的很简单
嗯,顺利的话一行命令即可
```bash
pip install cnocr
......@@ -12,7 +12,23 @@ pip install cnocr
pip install cnocr -i https://pypi.doubanio.com/simple
```
> 注意:请使用 **Python3**(3.6以及之后版本应该都行),没测过Python2下是否ok。
> **Note**
>
> 请使用 **Python3**(3.6以及之后版本应该都行),没测过Python2下是否ok。
> **Warning**
>
> 如果电脑中从未安装过 `PyTorch`,`OpenCV` python包,初次安装可能会遇到问题,但一般都是常见问题,可以自行百度/Google解决。
如遇到安装问题,欢迎在 [Github](https://github.com/breezedeus/cnocr)、 知识星球[**CnOCR/CnSTD私享群**](https://t.zsxq.com/FEYZRJQ) 或者 微信交流群反馈给作者 [breezedeus](https://github.com/breezedeus)
### GPU 环境使用 ONNX 模型
......
# 可用的模型
cnocr 自 **V2.1.2** 之后,可直接使用的模型包含两类:1)cnocr 自己训练的模型,通常会包含 PyTorch 和 ONNX 版本;2)从其他ocr引擎搬运过来的训练好的外部模型,ONNX化后用于 cnocr 中。
CnOCR 自 **V2.1.2** 之后,可直接使用的模型包含两类:1)CnOCR 自己训练的模型,通常会包含 PyTorch 和 ONNX 版本;2)从其他ocr引擎搬运过来的训练好的外部模型,ONNX化后用于 CnOCR 中。
直接使用的模型都放在 [**cnstd-cnocr-models**](https://huggingface.co/breezedeus/cnstd-cnocr-models) 项目中,可免费下载使用。具体方法可参考 [使用方法](usage.md)
## 1) cnocr 自己训练的模型
模型又分为两大类,1)来自 **[CnSTD](https://github.com/breezedeus/cnstd)** 的检测模型;2)CnOCR 的识别模型。
cnocr 自己训练的模型都支持**常见简体中文、英文和数字**的识别,大家也可以基于这些模型在自己的领域数据上继续精调模型。模型列表如下:
## 检测模型
| `model_name` | PyTorch 版本 | ONNX 版本 | 参数规模 | 模型文件大小 | 准确度 | 平均推断耗时(毫秒/图) |
| ----------------------- | ---------- | ------- | ----- | ------ | ------ | ------------ |
| densenet\_lite\_114-fc | √ | √ | 1.3 M | 4.9 M | 0.9274 | 9.229 |
| densenet\_lite\_124-fc | √ | √ | 1.3 M | 5.1 M | 0.9429 | 10.112 |
| densenet\_lite\_134-fc | √ | √ | 1.4 M | 5.4 M | 0.954 | 10.843 |
| densenet\_lite\_136-fc | √ | √ | 1.5M | 5.9 M | 0.9631 | 11.499 |
| densenet\_lite\_134-gru | √ | X | 2.9 M | 11 M | 0.9738 | 17.042 |
| densenet\_lite\_136-gru | √ | X | 3.1 M | 12 M | 0.9756 | 17.725 |
具体说明请参考 **[CnSTD 文档](https://github.com/breezedeus/cnstd)**,以下仅罗列出可用模型:
| `det_model_name` | PyTorch 版本 | ONNX 版本 | 模型原始来源 | 模型文件大小 | 支持语言 | 是否支持竖排文字识别 |
| ------------------------------------------------------------ | ------------ | --------- | ------------ | ------------ | ------------------------------ | -------------------- |
| db_shufflenet_v2 | √ | X | cnocr | 18 M | 简体中文、繁体中文、英文、数字 | √ |
| **db_shufflenet_v2_small** | √ | X | cnocr | 12 M | 简体中文、繁体中文、英文、数字 | √ |
| [db_shufflenet_v2_tiny](https://mp.weixin.qq.com/s/fHPNoGyo72EFApVhEgR6Nw) | √ | X | cnocr | 7.5 M | 简体中文、繁体中文、英文、数字 | √ |
| db_mobilenet_v3 | √ | X | cnocr | 16 M | 简体中文、繁体中文、英文、数字 | √ |
| db_mobilenet_v3_small | √ | X | cnocr | 7.9 M | 简体中文、繁体中文、英文、数字 | √ |
| db_resnet34 | √ | X | cnocr | 86 M | 简体中文、繁体中文、英文、数字 | √ |
| db_resnet18 | √ | X | cnocr | 47 M | 简体中文、繁体中文、英文、数字 | √ |
| ch_PP-OCRv3_det | X | √ | ppocr | 2.3 M | 简体中文、繁体中文、英文、数字 | √ |
| ch_PP-OCRv2_det | X | √ | ppocr | 2.2 M | 简体中文、繁体中文、英文、数字 | √ |
| **en_PP-OCRv3_det** | X | √ | ppocr | 2.3 M | **英文**、数字 | √ |
> **Note**
>
> 列 **`PyTorch 版本`** 为 `√` 表示此模型支持 `det_model_backend=='pytorch'`;列 **`ONNX 版本`** 为 `√` 表示此模型支持 `det_model_backend=='onnx'`;取值为 `X` 则表示不支持对应的取值。
## 识别模型
### 1) CnOCR 自己训练的模型
CnOCR 自己训练的模型都支持**常见简体中文、英文和数字**的识别,大家也可以基于这些模型在自己的领域数据上继续精调模型。模型列表如下:
| `rec_model_name` | PyTorch 版本 | ONNX 版本 | 参数规模 | 模型文件大小 | 准确度 | 平均推断耗时(毫秒/图) |
| ----------------------- | ------------ | --------- | -------- | ------------ | ------ | ----------------------- |
| densenet\_lite\_114-fc | √ | √ | 1.3 M | 4.9 M | 0.9274 | 9.229 |
| densenet\_lite\_124-fc | √ | √ | 1.3 M | 5.1 M | 0.9429 | 10.112 |
| densenet\_lite\_134-fc | √ | √ | 1.4 M | 5.4 M | 0.954 | 10.843 |
| densenet\_lite\_136-fc | √ | √ | 1.5M | 5.9 M | 0.9631 | 11.499 |
| densenet\_lite\_134-gru | √ | X | 2.9 M | 11 M | 0.9738 | 17.042 |
| densenet\_lite\_136-gru | √ | X | 3.1 M | 12 M | 0.9756 | 17.725 |
一些说明:
......@@ -23,7 +49,7 @@ cnocr 自己训练的模型都支持**常见简体中文、英文和数字**的
2.**`PyTorch 版本`**`√` 表示此模型支持 `model_backend=='pytorch'`;列 **`ONNX 版本`**`√` 表示此模型支持 `model_backend=='onnx'`;取值为 `X` 则表示不支持对应的取值。
3. `平均耗时` 是针对 `PyTorch 版本` 获得的,**`ONNX 版本` 耗时大致是 `PyTorch 版本` 的一半。**
cnocr的自有模型从结构上可以分为两阶段:第一阶段是获得ocr图片的局部编码向量,第二部分是对局部编码向量进行序列学习,获得序列编码向量。目前的PyTorch版本的两个阶段分别包含以下模型:
CnOCR 的自有模型从结构上可以分为两阶段:第一阶段是获得ocr图片的局部编码向量,第二部分是对局部编码向量进行序列学习,获得序列编码向量。目前的PyTorch版本的两个阶段分别包含以下模型:
1. 局部编码模型(emb model)
- **`densenet_lite_<numbers>`**:一个微型的`densenet`网络;其中的`<number>`表示模型中每个block包含的层数。
......@@ -33,16 +59,16 @@ cnocr的自有模型从结构上可以分为两阶段:第一阶段是获得ocr
- **`gru`**:一层的GRU网络;
- **`lstm`**:一层的LSTM网络。
## 2) 外部模型
### 2) 外部模型
以下模型是 [**PaddleOCR**](https://github.com/PaddlePaddle/PaddleOCR) 中模型的 **ONNX** 版本,所以不会依赖 **PaddlePaddle** 相关工具包,故而也不支持基于这些模型在自己的领域数据上继续精调模型。这些模型应该都支持**竖排文字**
| `model_name` | PyTorch 版本 | ONNX 版本 | 支持语言 | 模型文件大小 |
| --------------------- | ---------- | ------- | -------------- | ------ |
| ch_PP-OCRv3 | X | √ | 简体中问、英文、数字 | 10 M |
| ch_ppocr_mobile_v2.0 | X | √ | 简体中问、英文、数字 | 4.2 M |
| en_PP-OCRv3 | X | √ | **英文**、数字 | 8.5 M |
| en_number_mobile_v2.0 | X | √ | **英文**、数字 | 1.8M |
| chinese_cht_PP-OCRv3 | X | √ | **繁体中文**、英文、数字 | 11 M |
| `model_name` | PyTorch 版本 | ONNX 版本 | 支持语言 | 是否支持竖排文字识别 | 模型文件大小 |
| --------------------- | ------------ | --------- | ------------------------ | -------------------- | ------------ |
| ch_PP-OCRv3 | X | √ | 简体中问、英文、数字 | √ | 10 M |
| ch_ppocr_mobile_v2.0 | X | √ | 简体中问、英文、数字 | √ | 4.2 M |
| en_PP-OCRv3 | X | √ | **英文**、数字 | √ | 8.5 M |
| en_number_mobile_v2.0 | X | √ | **英文**、数字 | √ | 1.8 M |
| chinese_cht_PP-OCRv3 | X | √ | **繁体中文**、英文、数字 | X | 11 M |
更多模型可参考 [PaddleOCR/models_list.md](https://github.com/PaddlePaddle/PaddleOCR/blob/release%2F2.5/doc/doc_ch/models_list.md) 。如有其他外语(如日、韩等)识别需求,可在 **知识星球** [**CnOCR/CnSTD私享群**](https://t.zsxq.com/FEYZRJQ) 中向作者提出建议。
......@@ -54,7 +54,8 @@ yarl==1.6.3 # via aiohttp
# setuptools
# for mkdocs
mkdocs
mkdocs-macros-plugin
mkdocs-material
mkdocstrings
mkdocs==1.2.2
mkdocs-macros-plugin==0.6.0
mkdocs-material==7.3.0
mkdocs-material-extensions==1.0.3
mkdocstrings==0.16.1
此差异已折叠。
# Project information
site_name: CnOcr
site_name: CnOCR
site_url: https://cnocr.readthedocs.io
site_description: CnOcr 使用说明
site_description: CnOCR 使用说明
site_author: Breezedeus
# Repository
repo_url: https://github.com/breezedeus/cnocr
repo_name: Breezedeus/CnOcr
repo_name: Breezedeus/CnOCR
edit_uri: "" #disables edit button
# Copyright
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册