CnOCR 使用教程

news2024/11/25 21:18:27

目录

  • 一、 简介
  • 二、使用教程
  • 三、效果展示

一、 简介

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
  • 效果展示
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/750481.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[COCI2010-2011#6]STEP

目录 1.题目&#xff1a; 题目描述 输入格式 输出格式 2.思路 1.ans数组的维护 2.L and R 的维护 3.ne数组与pr数组的维护 4.len数组&#xff1a; 3.代码&#xff1a; 1.有注释版&#xff1a; 2.copy版&#xff1a; 1.题目&#xff1a; 题目描述 给定一个长度为N的…

Java设计模式-责任链(Chain of Responsibility)模式

介绍 Java责任链&#xff08;Chain of Responsibility&#xff09;设计模式是指很多处理对象构成一个链&#xff0c;链中前一个对象指向后一个对象。请求在链中传递&#xff0c;一个请求可以被一个或者多个对象处理。调用方&#xff08;即客户端&#xff09;不知道请求会被链中…

【UniApp开发小程序】项目创建+整合UI组件(FirstUI和uView)

创建项目 下图为初始化的项目的文件结构 引入组件 俗话说&#xff1a;“工欲善其事&#xff0c;必先利其器”&#xff0c;为了更加方便地开发出页面较为美观的小程序&#xff0c;我们先引入成熟的UI组件&#xff0c;再开始开发之旅。&#xff08;如果你是前端高手&#xff0…

ardupilot IMU陀螺仪方向的重要性

目录 文章目录 目录摘要1.简介---BMI088 方向2.控制摘要 本节主要记录IMU陀螺仪方向的重要性,欢迎批评指正!!! 1.简介—BMI088 方向 注意这个BMI088 的IMU方向,特别是是那个左上角的黑色点点,他的坐标系满足右手坐标系,但是我们无人机坐标系是北东地坐标系,因此需要把…

Cobalt Strike实战实例

客户端 初始化界面如下&#xff1a; 可以多个客户端同时连接&#xff0c;可以聊天。 msg 指定id 文字。 msg 文字。 创建监听器 这里出现了&#xff0c;监听设置不成功。原因是服务端的CS4.0报错了。我重新下载就可以了。如果这里有问题&#xff0c;可联系我。我帮你。这里解…

python+requests接口自动化测试

原来的web页面功能测试转变成接口测试&#xff0c;之前大多都是手工进行&#xff0c;利用postman和jmeter进行的接口测试&#xff0c;后来&#xff0c;组内有人讲原先web自动化的测试框架移驾成接口的自动化框架&#xff0c;使用的是java语言&#xff0c;但对于一个学java&…

Feign远程调用组件

Feign Feign是Netfix开发的一个轻量级REstFul的HTTP服务客户端,是以java接口注解的方式调用HTTP请求,而不用像java中通过封装HTTP请求报文的方式直接调用,可以帮助我们更加便捷,优雅的调用HTTP API Feign RestTemplate Ribbon Hystrix 本质:封装了HTTP调用流…

JAVA (static) 简述

前言&#xff1a; 在力扣上提交代码&#xff0c;发现用static定义变量&#xff0c;和不用static修饰变量&#xff0c;虽然每次运行的结果都一样&#xff0c;但是提交的结果却有通过与不通过两种情况。 测试题目&#xff1a;组合&#xff08;力扣&#xff09;dfs 回溯 剪枝 JA…

Redis数据结构 — List

目录 链表结构设计 ​编辑链表节点结构设计 链表的优势与缺陷 Redis 的 List 对象的底层实现之一就是链表。C 语言本身没有链表这个数据结构的&#xff0c;所以 Redis 自己设计了一个链表数据结构。 链表结构设计 typedef struct list {//链表头节点listNode *head;//链表尾…

【Matlab】智能优化算法_流向算法FDA

【Matlab】智能优化算法_流向算法FDA 1.背景介绍2.数学模型3.文件结构4.算法流程图5.详细代码及注释5.1 FDA.m5.2 initialization.m5.3 main.m5.4 Select_Functions.m 6.运行结果7.参考文献 1.背景介绍 在流域中&#xff0c;过量或有效降雨量是指流过地表且未渗入土壤的降雨量。…

使用可视化数据库工具 DBeaver

新建一个名为 test 的数据库&#xff1a;右击数据库点击新增&#xff0c;然后创建一张 test &#xff0c;utf8mb4 字符的&#xff0c;点击确定 在 test 数据库下新建一张数据表&#xff0c;如下所示&#xff1a;右击表&#xff0c;然后点击新建表 鼠标放列上面&#xff0c;右键…

安全狗重磅发布数据资产梳理系统

今年6月&#xff0c;浙江某科技有限公司因违反《中华人民共和国数据安全法》第四十五条及相关规定&#xff0c;公司及项目主管人员、直接责任人员分别罚款100万元、8万元、6万元。这也是《数据安全法》开始运行以来的首例“高额罚单”案件。实际上&#xff0c;这也给我国众多行…

002 Jetpack Compose基础组件学习

1.Text组件 Text组件就是原先的TextView组件&#xff0c;用法还是挺简单的&#xff0c;如下就是简单的Text用法&#xff1a; package com.test.composeimport android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent im…

(搜狗输入法)自定义输入日期格式

需求 想要按特定格式快速输入当天的日期戳&#xff1a;XXXX-XX-XX&#xff0c;如 2023-07-13 方法 参考链接&#xff1a;搜狗输入时间日期格式输入及自定义 按上述教程操作&#xff0c;自定义短语表达式&#xff1a;#$year-$month_mm-$day_dd 即可实现用搜狗输入法输入“r…

Table Recognition Metric: 表格识别算法评测工具包及相关评测基准数据集

Table Recognition Metric 该库用于计算TEDS指标&#xff0c;用来评测表格识别算法效果。可与魔搭-表格识别测试集配套使用。TEDS计算代码参考&#xff1a;PaddleOCR 和 DAVAR-Lab-OCR 使用说明&#xff1a; Install package by pypi.pip install table_recognition_metricRu…

2023-7-13-第十八式观察者模式

&#x1f37f;*★,*:.☆(&#xffe3;▽&#xffe3;)/$:*.★* &#x1f37f; &#x1f4a5;&#x1f4a5;&#x1f4a5;欢迎来到&#x1f91e;汤姆&#x1f91e;的csdn博文&#x1f4a5;&#x1f4a5;&#x1f4a5; &#x1f49f;&#x1f49f;喜欢的朋友可以关注一下&#xf…

【python手写算法】【多元】利用梯度下降实现线性拟合

本来是想做一个特征缩放的&#xff0c;然鹅发现我那种归一化缩放反而让训练速度变慢了。。先搞一个二元的。 if __name__ __main__:X1 [12.46, 0.25, 5.22, 11.3, 6.81, 4.59, 0.66, 14.53, 15.49, 14.43,2.19, 1.35, 10.02, 12.93, 5.93, 2.92, 12.81, 4.88, 13.11, 5.8,29.…

135432-37-0,Cyclo(-Gly-Arg-Gly-Asp-Ser-Pro)多肽合成(化学)方法

资料编辑|陕西新研博美生物科技有限公司小编MISSwu​ ---试剂基团反应特点&#xff08;Reagent group reaction characteristics&#xff09;--- 多肽试剂Cyclo(-Gly-Arg-Gly-Asp-Ser-Pro)&#xff08;CAS号&#xff1a;135432-37-0&#xff09;&#xff0c;目前多肽合成中&a…

左神算法中级提升(4) 超级重点:动态规划的空间压缩技巧

【案例1】 【题目描述】【以后出现这种的题型 概率很低】 【案例2】 【题目描述】 【思路解析】 构建两个栈&#xff0c;一个栈存放基本数据&#xff0c;一个栈存放最小值数据。每次加入一个数据时&#xff0c;当前元素和栈顶元素比较&#xff0c;谁小谁进入。 然后弹出时&a…

Hugging News #0710: 体验 MusicGen、Diffusers 库发布一周年、我们的内容政策更新

每一周&#xff0c;我们的同事都会向社区的成员们发布一些关于 Hugging Face 相关的更新&#xff0c;包括我们的产品和平台更新、社区活动、学习资源和内容更新、开源库和模型更新等&#xff0c;我们将其称之为「Hugging News」。本期 Hugging News 有哪些有趣的消息&#xff0…