type
status
date
slug
summary
tags
category
icon
password
URL
Rating

V2.3 新版说明

CnOCR Python 3 下的文字识别Optical Character Recognition,简称OCR)工具包,支持简体中文繁体中文(部分模型)、英文数字的常见字符识别,支持竖排文字的识别。相比于 CnOCR V2.2.* 版本,新发布的 V2.3 版本中,主要模型都经过了重新训练和精调,精度比旧版模型更高
 
V2.2 中包含了一些非常小的模型(如 densenet_lite_124-fcdensenet_lite_134-gru 等),这些模型参数太少导致精度欠佳,被使用次数也不多。V2.3 在删除这些微型模型的同时,考虑到机器性能的不断改进,以及用户使用过程中的真实反馈,加入了两个参数量更多的模型系列,可供精度要求更高的应用场景使用。
V2.3 主要包含了 3 个规模从小到大的模型系列:densenet_lite_136-grudensenet_lite_246-gru_basedensenet_lite_666-gru_large。它们对应的信息如下,其中densenet_lite_136-gruV2.2 中对应模型有相同结构:
V2.3 模型系列
模型参数量
模型文件大小
densenet_lite_136-gru
3.1 M
12 M
densenet_lite_246-gru_base
6.6 M
25 M
densenet_lite_666-gru_large
21.3 M
82 M
 
与之前版本不同,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。此系列具体说明参考:CnOCR 纯数字识别新模型 | Breezedeus.com
  • general: 通用场景,适合图片无明显倾向的一般图片。此类模型无特定开头,与旧版模型名称保持一致,如模型 densenet_lite_136-gru
📌
以上说明仅供参考,具体选择模型时建议以实际效果为准。

模型训练及效果对比:小、中、大模型

V2.3 的模型训练包括两个步骤:
  1. 预训练:从 0 开始利用千万级别数据量训练模型,获得预训练模型;
  1. 精调:针对不同使用场景,利用场景对应的百万级别数据量精调预训练模型,获得最终的精调模型。

预训练对比

以下是densenet_lite_136-grudensenet_lite_246-gru_basedensenet_lite_666-gru_large 3 个模型预训练时期对应的曲线。可以发现,随着模型规模逐渐变大,模型精度在迅速提升。
3 个模型的预训练曲线。紫色:densenet_lite_136-gru,绿色:densenet_lite_246-gru_base,蓝色:densenet_lite_666-gru_large
3 个模型的预训练曲线。紫色densenet_lite_136-gru绿色densenet_lite_246-gru_base蓝色densenet_lite_666-gru_large

精调

以下各图展示了不同场景下对不同规模的预训练模型进行精调而得到的各种场景模型。不同场景精调时使用的训练数据各有不同,着重偏向特定场景。从各图中可明显观察到,随着模型规模的逐渐变大,模型精度也在迅速提升。

场景图片(Scene)

  • scene场景图片,适合识别一般拍照图片中的文字。此类模型以 scene- 开头,如模型 scene-densenet_lite_136-gru
3 个模型在 scene 场景下的精调曲线。紫色:densenet_lite_136-gru,绿色:densenet_lite_246-gru_base,蓝色:densenet_lite_666-gru_large
3 个模型在 scene 场景下的精调曲线。紫色densenet_lite_136-gru绿色densenet_lite_246-gru_base蓝色densenet_lite_666-gru_large

文档图片(Doc)

  • doc文档图片,适合识别规则文档的截图图片,如书籍扫描件等。此类模型以 doc- 开头,如模型 doc-densenet_lite_136-gru
3 个模型在 doc 场景下的精调曲线。紫色:densenet_lite_136-gru,绿色:densenet_lite_246-gru_base,蓝色:densenet_lite_666-gru_large
3 个模型在 doc 场景下的精调曲线。紫色densenet_lite_136-gru绿色densenet_lite_246-gru_base蓝色densenet_lite_666-gru_large

通用图片(General)

  • general: 通用场景,适合图片无明显倾向的一般图片。此类模型无特定开头,与旧版模型名称保持一致,如模型 densenet_lite_136-gru
3 个模型在 general 场景下的精调曲线。紫色:densenet_lite_136-gru,绿色:densenet_lite_246-gru_base,蓝色:densenet_lite_666-gru_large
3 个模型在 general 场景下的精调曲线。紫色densenet_lite_136-gru绿色densenet_lite_246-gru_base蓝色densenet_lite_666-gru_large

精度对比:V2.2 vs. V2.3

V2.3 仅保留了 V2.2 中存在的 densenet_lite_136-gru 模型,只是此模型本身也做了重新的训练和精调。
接下来对比 V2.2V2.3densenet_lite_136-gru 模型在两个真实数据集上的测试效果。
P2T-doc 数据集是对 P2T 在线网页服务中用户真实上传图片标注获得,标注图片主要偏文档图片Baidu-scene 数据集摘选自百度开放的场景图片数据集,对应图片主要是场景图片
评估指标包括 CERComplete MatchChar Error Rate (CER) 为字错误率,值越低表示模型效果越好。而 Complete Match 表示所有测试样本中,模型预测完全正确(对一个样本的预测字符序列与其真实字符序列完全一致)的样本比例,故值越高表示模型效果越好。
从下图可看出 V2.3 的新版densenet_lite_136-gru 模型,较之 V2.2 的旧版densenet_lite_136-gru 模型,精度在两个数据集和两个指标上都有提升。
notion image

在线 Demo

可以在 HuggingFace 上的 CnOCR Demo 上传自己的照片验证所有模型的效果(需要梯子 🪜 才可访问,具体说明见 这里)。没有梯子可以访问我在阿里的 ModelScope 上创建的 CnOCR Demo:https://www.modelscope.cn/studios/Breezedeus/CnOCR-Demo。不过 ModelScope 上的 Demo 体验不太好,如果有梯子 🪜 请优先使用 HuggingFace 上的 Demo 吧。
📌
检测模型会极大影响最终的识别效果,可以在不变动识别模型的基础上多尝试几个检测模型看效果;或者上传单行文字图片,然后在页面左侧勾选 单行文字模式(不使用检测模型),这样可以不使用检测模型而只使用识别模型。
 

模型的获取方式和使用说明

V2.3 中的模型覆盖了 3 个规模(densenet_lite_136-grudensenet_lite_246-gru_basedensenet_lite_666-gru_large)和 4 个使用场景(scenedocnumbergeneral)。
densenet_lite_136-gru系列模型当前已开源可免费使用,使用时可自动下载。首次使用 CnOCR 时,系统会自动下载 zip 格式的识别模型压缩文件,并存于 ~/.cnocr目录(Windows下默认路径为 C:\Users\<username>\AppData\Roaming\cnocr)。 下载后的zip文件代码会自动对其解压,然后把解压后的模型相关目录放于~/.cnocr/2.3目录中。
如果系统无法自动成功下载zip文件,则需要手动从 cnstd-cnocr-models 下载此zip文件并把它放于 ~/.cnocr/2.3目录。如果下载太慢,也可以从 百度云盘 下载, 提取码为 nocr
 
densenet_lite_246-gru_base系列模型当前仅供 知识星球 CnOCR/CnSTD/P2T 私享群 会员使用,2024 年 2 月会免费开源densenet_lite_666-gru_large系列模型,购买后可使用。
为感谢星球会员的支持,星球会员购买所有的个人版模型一律八折。通过下面表格中的链接购买并确认收货后,加小助手为好友,小助手会把折扣金额返现。注意:企业版不提供折扣。
 
以下是 V2.3 模型列表,其中来自 ppocr 的模型与 V2.2 相同无改动。可以在 CnOCR 在线 Demo (需梯子🪜 )上验证各个模型的效果。更多说明请见:可用模型-在线文档
模型名称(rec_model_name
模型获取方式
模型文件大小
支持语言
是否支持竖排文字识别
densenet_lite_136-gru 🆕
开源
12 M
简体中文、英文、数字
✖️
scene-densenet_lite_136-gru 🆕
开源
12 M
简体中文、英文、数字
✖️
doc-densenet_lite_136-gru 🆕
开源
12 M
简体中文、英文、数字
✖️
densenet_lite_246-gru_base 🆕
星球会员专享,2 月开源
25 M
简体中文、英文、数字
✖️
scene-densenet_lite_246-gru_base 🆕
星球会员专享,2 月开源
25 M
简体中文、英文、数字
✖️
doc-densenet_lite_246-gru_base 🆕
星球会员专享,2 月开源
25 M
简体中文、英文、数字
✖️
densenet_lite_666-gru_large 🆕
购买链接:B站Lemon Squeezy
82 M
简体中文、英文、数字
✖️
scene-densenet_lite_666-gru_large 🆕
购买链接:B站Lemon Squeezy
82 M
简体中文、英文、数字
✖️
doc-densenet_lite_666-gru_large 🆕
购买链接:B站Lemon Squeezy
82 M
简体中文、英文、数字
✖️
number-densenet_lite_136-fc 🆕
开源
2.7 M
纯数字(仅包含 0~9 十个数字)
✖️
number-densenet_lite_136-gru 🆕
星球会员专享,2 月开源
5.5 M
纯数字(仅包含 0~9 十个数字)
✖️
number-densenet_lite_666-gru_large 🆕
购买链接:B站Lemon Squeezy
55 M
纯数字(仅包含 0~9 十个数字)
✖️
ch_PP-OCRv3
开源
10 M
简体中文、英文、数字
✔️
ch_ppocr_mobile_v2.0
开源
4.2 M
简体中文、英文、数字
✔️
en_PP-OCRv3
开源
8.5 M
英文、数字
✔️
en_number_mobile_v2.0
开源
1.8 M
英文、数字
✔️
chinese_cht_PP-OCRv3
开源
11 M
繁体中文、英文、数字
✖️
 
下载模型zip文件后,把它们放于 ~/.cnocr/2.3 目录(Windows下默认路径为 C:\Users\<username>\AppData\Roaming\cnocr)。CnOCR 会自动对其进行解压并使用(如有问题,请关注使用时输出的log信息)。如果文件放在其他路径下,CnOCR 无法自动找到,初始化时可通过 rec_vocab_fp 传入对应路径,具体参考下面的示例。
 
📌
一般应用场景 densenet_lite_136-gru 应该就够用。建议先用自己的应用图片(多试几张)在 CnOCR 在线 Demo 上验证效果后再决定是否需要更大更高精度的模型。
 

模型使用说明

首先,请确保用开源的模型跑通了 CnOCR >= V2.3 ,否则下载完更大的付费模型也跑不起来。详细安装和使用说明看 CnOCR 在线文档 就行。遇到问题可以在这里评论,或者加入群聊与我沟通,但请注意帮你跑通代码不在星主的服务范围之内(参考 星球说明)。
 
使用方法和 CnOCR 中其他模型一样,只需把识别模型名称对应的参数 rec_model_name 设置为对应的识别模型即可,使用方法如下:
 

分享视频

Youtube
Video preview
Bilibili
 
有问题可以在这里评论,或者加入群聊与我沟通,谢谢。
 
Pix2Text V1.0 新版发布,带来了最好的开源数学公式识别模型更精准的硬币识别多模态模型:Coin-CLIP
  • Twikoo