可用的模型
直接使用的模型都放在 cnstd-cnocr-models 项目中,可免费下载使用。如果下载太慢,也可以从 百度云盘 下载, 提取码为 nocr
。具体方法可参考 使用方法 。
模型分为两大类,1)来自 CnSTD 的检测模型;2)来自 CnOCR 的识别模型。
检测模型
具体说明请参考 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 | √ | 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
则表示不支持对应的取值。
识别模型
CnOCR 自 V2.1.2 之后,可直接使用的识别模型包含两类:1)CnOCR 自己训练的模型,通常会包含 PyTorch 和 ONNX 版本;2)从其他ocr引擎搬运过来的训练好的外部模型,ONNX化后用于 CnOCR 中。
1) CnOCR 自己训练的模型
CnOCR V2.3 重新训练了所有的模型,模型较 V2.2.* 精度更高。V2.3 按使用场景把模型分为几大类场景:
scene
:场景图片,适合识别一般拍照图片中的文字。此类模型以scene-
开头,如模型scene-densenet_lite_136-gru
。doc
:文档图片,适合识别规则文档的截图图片,如书籍扫描件等。此类模型以doc-
开头,如模型doc-densenet_lite_136-gru
。number
:仅识别纯数字(只能识别0~9
十个数字)图片,适合银行卡号、身份证号等场景。此类模型以number-
开头,如模型number-densenet_lite_136-gru
。general
: 通用场景,适合图片无明显倾向的一般图片。此类模型无特定开头,与旧版模型名称保持一致,如模型densenet_lite_136-gru
。
注意 ⚠️:以上说明仅为参考,具体选择模型时建议以实际效果为准。
同时,加入了两个参数量更多的模型系列:
*-densenet_lite_246-gru_base
:优先供 知识星球 CnOCR/CnSTD私享群 会员使用,2024 年 2 月都会免费开源。*-densenet_lite_666-gru_large
:Pro 模型,购买后可使用。购买链接见文档:
CnOCR 自己训练的模型都支持常见简体中文、英文和数字的识别,大家也可以基于这些模型在自己的领域数据上继续精调模型。模型列表如下:
rec_model_name |
PyTorch 版本 | ONNX 版本 | 模型原始来源 | 模型文件大小 | 支持语言 | 是否支持竖排文字识别 |
---|---|---|---|---|---|---|
densenet_lite_136-gru 🆕 | √ | √ | cnocr | 12 M | 简体中文、英文、数字 | X |
scene-densenet_lite_136-gru 🆕 | √ | √ | cnocr | 12 M | 简体中文、英文、数字 | X |
doc-densenet_lite_136-gru 🆕 | √ | √ | cnocr | 12 M | 简体中文、英文、数字 | X |
densenet_lite_246-gru_base 🆕 (星球会员专享) |
√ | √ | cnocr | 25 M | 简体中文、英文、数字 | X |
scene-densenet_lite_246-gru_base 🆕 (星球会员专享) |
√ | √ | cnocr | 25 M | 简体中文、英文、数字 | X |
doc-densenet_lite_246-gru_base 🆕 (星球会员专享) |
√ | √ | cnocr | 25 M | 简体中文、英文、数字 | X |
densenet_lite_666-gru_large 🆕 (购买链接:B站、Lemon Squeezy) |
√ | √ | cnocr | 82 M | 简体中文、英文、数字 | X |
scene-densenet_lite_666-gru_large 🆕 (购买链接:B站、Lemon Squeezy) |
√ | √ | cnocr | 82 M | 简体中文、英文、数字 | X |
doc-densenet_lite_666-gru_large 🆕 (购买链接:B站、Lemon Squeezy) |
√ | √ | cnocr | 82 M | 简体中文、英文、数字 | X |
number-densenet_lite_136-fc 🆕 | √ | √ | cnocr | 2.7 M | 纯数字(仅包含 0~9 十个数字) |
X |
number-densenet_lite_136-gru 🆕 (星球会员专享) |
√ | √ | cnocr | 5.5 M | 纯数字(仅包含 0~9 十个数字) |
X |
number-densenet_lite_666-gru_large 🆕 (购买链接:B站、Lemon Squeezy) |
√ | √ | cnocr | 55 M | 纯数字(仅包含 0~9 十个数字) |
X |
一些说明:
- 模型名称是由局部编码模型和序列编码模型名称拼接而成,以符合"-"分割,如
densenet_lite_136-gru
。如果是特定应用场景,则前面还增加了场景名称,如scene-densenet_lite_136-gru
。 - 列
PyTorch 版本
为√
表示此模型支持model_backend=='pytorch'
;列ONNX 版本
为√
表示此模型支持model_backend=='onnx'
;取值为X
则表示不支持对应的取值。
CnOCR 的自有模型从结构上可以分为两阶段:第一阶段是获得ocr图片的局部编码向量,第二部分是对局部编码向量进行序列学习,获得序列编码向量。目前的PyTorch版本的两个阶段分别包含以下模型:
- 局部编码模型(emb model)
densenet_lite_<numbers>
:一个微型的densenet
网络;其中的<number>
表示模型中每个block包含的层数。densenet
:一个小型的densenet
网络;- 序列编码模型(seq model)
fc
:两层的全连接网络;gru
:一层的GRU网络;lstm
:一层的LSTM网络。
2) 外部模型
以下模型是 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.8 M |
chinese_cht_PP-OCRv3 | X | √ | 繁体中文、英文、数字 | X | 11 M |
更多模型可参考 PaddleOCR/models_list.md 。如有其他外语(如日、韩等)识别需求,可在 知识星球 CnOCR/CnSTD私享群 中向作者提出建议。