CnOCR 使用教程

该文章已生成可运行项目,

一、 简介

CnOCR 是 Python 3 下的文字识别(Optical Character Recognition,简称OCR)工具包,支持简体中文、繁体中文(部分模型)、英文和数字的常见字符识别,支持竖排文字的识别。自带了20+个训练好的识别模型,适用于不同应用场景,安装后即可直接使用。同时,CnOCR也提供简单的训练命令供使用者训练自己的模型。

二、使用教程

1. 相关文档

  • 项目地址:https://github.com/breezedeus/cnocr
  • 介绍文档:https://cnocr.readthedocs.io/zh/latest/

2. 安装

  • pip安装
    pip install cnocr
    
    国内安装源
    pip install cnocr -i https://pypi.doubanio.com/simple
    
    推荐使用python3.6及以上版本

3. 使用

  • 初始化
    类CnOcr 是识别主类,包含了三个函数针对不同场景进行文字识别。类CnOcr的初始化函数如下:
class CnOcr(object):
    def __init__(
        self,
        rec_model_name: str = 'densenet_lite_136-fc',
        *,
        det_model_name: str = 'ch_PP-OCRv3_det',
        cand_alphabet: Optional[Union[Collection, str]] = None,
        context: str = 'cpu',  # ['cpu', 'gpu', 'cuda']
        rec_model_fp: Optional[str] = None,
        rec_model_backend: str = 'onnx',  # ['pytorch', 'onnx']
        rec_vocab_fp: Union[str, Path] = VOCAB_FP,
        rec_more_configs: Optional[Dict[str, Any]] = None,
        rec_root: Union[str, Path] = data_dir(),
        det_model_fp: Optional[str] = None,
        det_model_backend: str = 'onnx',  # ['pytorch', 'onnx']
        det_more_configs: Optional[Dict[str, Any]] = None,
        det_root: Union[str, Path] = det_data_dir(),
        **kwargs,
    )

参数说明:

参数说明
rec_model_name识别模型名称。默认为 densenet_lite_136-fc,可选模型地址:https://cnocr.readthedocs.io/zh/latest/models/
det_model_name检测模型名称。默认为 ch_PP-OCRv3_det,可选模型地址:https://cnocr.readthedocs.io/zh/latest/models/
cand_alphabet待识别字符所在的候选集合。默认为 None,表示不限定识别字符范围。取值可以是字符串,如 “0123456789”,或者字符列表,如 [“0”, “1”, “2”, “3”, “4”, “5”, “6”, “7”, “8”, “9”]。
context预测使用的机器资源,可取值为字符串cpu、gpu、cuda:0等。默认为 cpu。此参数仅在 model_backend==‘pytorch’ 时有效。
rec_model_fp如果不使用系统自带的识别模型,可以通过此参数直接指定所使用的模型文件(.ckpt 或 .onnx 文件)。
rec_model_backendpytorch’, or ‘onnx’。表明识别时是使用 PyTorch 版本模型,还是使用 ONNX 版本模型。 同样的模型,ONNX 版本的预测速度一般是 PyTorch 版本的 2倍左右。 默认为 ‘onnx’。
rec_vocab_fp识别字符集合的文件路径,即 label_cn.txt 文件路径。若训练的自有模型更改了字符集,看通过此参数传入新的字符集文件路径。
rec_more_configs识别模型初始化时传入的其他参数。
rec_root识别模型文件所在的根目录。
det_model_fp如果不使用系统自带的检测模型,可以通过此参数直接指定所使用的模型文件(.ckpt 或 .onnx 文件)。
det_model_backend‘pytorch’, or ‘onnx’。表明检测时是使用 PyTorch 版本模型,还是使用 ONNX 版本模型。 同样的模型,ONNX 版本的预测速度一般是 PyTorch 版本的 2倍左右。 默认为 ‘onnx’。
det_more_configsdict,识别模型初始化时传入的其他参数。
det_root检测模型文件所在的根目录。
  • ocr操作
from cnocr import CnOcr

img_path = 'emoj.jpg'
ocr = CnOcr() 
result = ocr.ocr(img_path)

# 具体参数设置参考:https://cnocr.readthedocs.io/zh/latest/usage/

备注:

  • 首次使用 CnOCR 时,系统会自动下载 zip 格式的模型压缩文件,并存于 ~/.cnocr目录(Windows下默认路径为 C:\Users<username>\AppData\Roaming\cnocr)。 下载后的zip文件代码会自动对其解压,然后把解压后的模型相关目录放于~/.cnocr/2.2目录中。
  • 如果系统无法自动成功下载zip文件,则需要手动从https://huggingface.co/breezedeus/cnstd-cnocr-models/tree/main下载此zip文件并把它放于 ~/.cnocr/2.2目录。

三、效果展示

  • 在线Demo
    https://huggingface.co/spaces/breezedeus/cnocr
  • 效果展示
    在这里插入图片描述

查看其他开源中文OCR,点击此处

本文章已经生成可运行项目
### CNOCR 模型使用教程 CNOCR 是一个基于 PyTorch 的开源 OCR 库,提供了多种功能强大的中文 OCR 模型和工具,适用于图像中的文字检测、识别以及文本方向检测等任务[^1]。 #### 安装 CNOCR 为了使用 CNOCR 进行 OCR 任务,首先需要安装该库。可以通过 pip 命令轻松完成: ```bash pip install cnocr ``` #### 初始化并加载预训练模型 CNOCR 自带了多个已经训练好的识别模型,在安装完成后可以直接调用这些模型来执行 OCR 任务。下面是一段初始化并加载默认模型的代码示例: ```python from cnocr import CnOcr # 创建 OCR 对象,默认会自动下载最新版本的预训练权重文件到本地缓存目录 ocr = CnOcr() ``` 这段代码创建了一个 `CnOcr` 类的对象,并通过其内部机制自动获取最新的预训练权重文件[^2]。 #### 执行简单 OCR 推理 一旦成功初始化了 OCR 实例之后就可以利用它来进行简单的图片转文字操作了。这里给出一段读取一张包含中文字符的图片并将其转换成字符串列表的例子: ```python import cv2 img_fp = 'path_to_your_image_file' img = cv2.imread(img_fp, cv2.IMREAD_GRAYSCALE) res = ocr.ocr(img) print(res) ``` 上述脚本中,`cv2.imread()` 函数用来读取指定路径下的灰度图;而 `ocr.ocr()` 方法则接收这张图片作为输入参数返回相应的识别结果——即由若干个 `(text_line, score)` 组成的结果列表,其中每一个元组代表一行被识别出来的文本及其置信度得分[^5]。 #### 训练自定义数据集上的新模型 除了直接运用现有的预训练模型外,还可以根据特定应用场景的需求收集标注过的样本构建新的数据集并对现有模型进行微调或者重新训练整个网络结构以适应更广泛的任务范围。对于 Linux 或 Mac 用户而言,默认情况下保存下来的模型将会位于类似于 `~/.cnocr/<version>/<model_name>` 的路径之下[^3]。 关于如何准备数据集以及具体的训练流程,请参阅官方文档获得详细的指导说明。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值