Python OCR 文字识别使用模型:读光-文字识别-行识别模型-中英-通用领域

介绍

什么是OCR?

OCR是"Optical Character Recognition"的缩写,中文意为"光学字符识别"。它是一种技术,可以识别和转换打印在纸张或图像上的文字和字符为机器可处理的格式,如计算机文本文件。通过使用OCR技术,可以快速地将纸质文档数字化,从而使文本可以被编辑、搜索和分析。这项技术广泛应用于各种场合,如图书馆和档案馆的文献数字化、 pdf 文件的文本搜索、以及扫描文档中的条形码和二维码等。

阿里云文字识别OCR(读光OCR)

阿里云文字识别OCR(读光OCR),是一款由阿里巴巴达摩院打造的OCR产品,用于识别图片、文档、卡证等文件所包含的文字信息。

行识别模型

行识别模型是一种用于识别文本行中的字符内容的算法模型。它在光学字符识别(OCR)领域中扮演着重要的角色,专注于将文本行中的字符转换成可识别的文本。

行识别模型可以应用于各种应用场景,如自动化文档处理、车牌识别、手写体识别等,为实现自动化文本识别提供了重要的基础,有助于提高工作效率和准确性。

我们这里使用的是 "阿里云文字识别OCR(读光OCR)" 的模型放到本地来进行识别测试。

前置条件

1、准备电脑环境(我当前用的是 4060 显卡)

2、安装环境(conda、python)

3、下载模型(通过下方链接地址下载模型)

bash 复制代码
https://www.modelscope.cn/models/iic/cv_convnextTiny_ocr-recognition-general_damo/summary

克隆下来后。

python 复制代码
from modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasks

ocr_recognition = pipeline(Tasks.ocr_recognition, model='damo/cv_convnextTiny_ocr-recognition-general_damo')
img_url = 'cropped_image_1.png'
result = ocr_recognition(img_url)
print(result)
  1. from modelscope.pipelines import pipeline:从 ModelScope 库中的 pipelines 模块导入 pipeline 函数。这个函数用于创建一个模型管道,可以用来执行各种任务,如文本分类、命名实体识别、OCR 等。

  2. from modelscope.utils.constant import Tasks:从 ModelScope 库中的 utils.constant 模块导入 Tasks 常量。这个常量包含了 ModelScope 支持的不同任务类型,包括 OCR。

  3. ocr_recognition = pipeline(Tasks.ocr_recognition, model='damo/cv_convnextTiny_ocr-recognition-general_damo'):调用 pipeline 函数创建一个 OCR 识别任务的管道。Tasks.ocr_recognition 指定了这是一个 OCR 识别任务,而 'damo/cv_convnextTiny_ocr-recognition-general_damo' 则指定了使用的模型名称或者模型路径。

  4. img_url = 'cropped_image_1.png':定义一个变量 img_url,用来存储待识别的图像文件的路径或者 URL。

  5. result = ocr_recognition(img_url):调用 ocr_recognition 管道,传入待识别的图像路径,并将识别结果保存在 result 变量中。

  6. print(result):打印 OCR 识别的结果。

需要识别的图片:

运行结果:

相关推荐
三品吉他手会点灯7 小时前
C语言学习笔记 - 50.流程控制4 - 流程控制为什么非常非常重要
c语言·开发语言·笔记·学习
闵孚龙8 小时前
动态图机制:为什么 PyTorch 调试起来更舒服
人工智能·pytorch·python
chushiyunen8 小时前
langchain4j笔记、tools
笔记·python·flask
程序员三藏9 小时前
Web自动化测试详解
自动化测试·软件测试·python·selenium·测试工具·职场和发展·测试用例
在放️10 小时前
Python 爬虫 · 第三方代理接入与合规使用
开发语言·爬虫·python
KANGBboy10 小时前
java知识五(继承)
java·开发语言
c++之路10 小时前
Bazel C++ 构建系列文档(三):构建第一个 C++ 项目
开发语言·c++
AI人工智能+电脑小能手10 小时前
【大白话说Java面试题 第117题】【并发篇】第17题:线程有几种状态,之间如何转换?
java·开发语言·面试
财经资讯数据_灵砚智能10 小时前
基于全球经济类多源新闻的NLP情感分析与数据可视化(夜间-次晨)2026年6月14日
大数据·人工智能·python·ai·信息可视化·自然语言处理·灵砚智能
聚名网11 小时前
域名net,com,cn有区别吗?有哪些不同呢?
服务器·开发语言·php