Python OCR 文字检测使用模型:读光-文字检测-DBNet行检测模型-中英-通用领域

介绍

什么是OCR?

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

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

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

行检测模型

行检测模型(Row Detection Model)是一种用于识别图像中垂直方向上排列的文本行的算法模型。在光学字符识别(OCR)领域,行检测是预处理阶段的一个重要步骤,它旨在从图像中提取出文本行,以便后续可以对每一行进行字符分割和字符识别。

行检测模型通常需要处理以下几个问题:

文本行定位、文本行分割、文本行校正、噪声消除。

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

前置条件

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

2、安装环境(conda、python)

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

bash 复制代码
https://www.modelscope.cn/models/iic/cv_resnet18_ocr-detection-db-line-level_damo/summary


克隆下来后。

python 复制代码
from modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasks
ocr_detection = pipeline(Tasks.ocr_detection, model='damo/cv_resnet18_ocr-detection-db-line-level_damo')
result = ocr_detection('input_image.png')
print(result)
  1. from modelscope.pipelines import pipeline
    这行代码从modelscope.pipelines模块导入了pipeline函数。pipeline函数是ModelScope提供的一个高级API,它可以用来组合和运行预训练模型,实现各种机器学习任务,如OCR检测。
  2. from modelscope.utils.constant import Tasks
    这行代码从modelscope.utils.constant模块导入了Tasks常量。Tasks是一个预定义的常量,它包含了ModelScope支持的各种任务类型,例如图像分类、文本分类、机器翻译等。通过导入Tasks,可以方便地访问这些任务类型。
  3. ocr_detection = pipeline(Tasks.ocr_detection, model='damo/cv_resnet18_ocr-detection-db-line-level_damo')
    这行代码创建了一个OCR检测的管道。pipeline函数接收两个参数:任务类型和模型名称。在这里,任务类型是Tasks.ocr_detection,表示执行OCR检测任务;模型名称是'damo/cv_resnet18_ocr-detection-db-line-level_damo',这是一个特定的OCR检测模型,由阿里巴巴的达摩院提供。
  4. result = ocr_detection('input_image.png')
    这行代码通过之前创建的OCR检测管道处理一个名为'input_image.png'的图片文件。处理的结果存储在result变量中,这个变量通常包含检测到的文本信息和其他相关数据。
  5. print(result)
    这行代码打印出result变量的内容。这通常用于调试和验证OCR检测的结果。输出会显示图片中检测到的文本行,以及可能的额外信息,如文本行的位置、置信度等。

运行结果:

常见问题。

缺少包:



相关推荐
UQWRJ21 分钟前
菜鸟教程R语言一二章阅读笔记
开发语言·笔记·r语言
岁忧2 小时前
macOS配置 GO语言环境
开发语言·macos·golang
朝朝又沐沐3 小时前
算法竞赛阶段二-数据结构(36)数据结构双向链表模拟实现
开发语言·数据结构·c++·算法·链表
毛飞龙3 小时前
Python类(class)参数self的理解
python··self
魔尔助理顾问3 小时前
系统整理Python的循环语句和常用方法
开发语言·后端·python
Ares-Wang3 小时前
JavaScript》》JS》 Var、Let、Const 大总结
开发语言·前端·javascript
遇见尚硅谷4 小时前
C语言:*p++与p++有何区别
c语言·开发语言·笔记·学习·算法
SkyrimCitadelValinor4 小时前
c#中让图片显示清晰
开发语言·c#
艾莉丝努力练剑5 小时前
【数据结构与算法】数据结构初阶:详解排序(二)——交换排序中的快速排序
c语言·开发语言·数据结构·学习·算法·链表·排序算法
狐小粟同学5 小时前
JavaEE--3.多线程
java·开发语言·java-ee