首页 > 其他分享 >paddleocr文字识别

paddleocr文字识别

时间:2024-04-17 21:11:18浏览次数:25  
标签:文字 PP ch paddleocr 文本 ocr PaddleOCR 识别

1. paddleocr  

  PaddleOCR 是一个基于 PaddlePaddle 深度学习框架的开源 OCR(Optical Character Recognition,光学字符识别)工具。它提供了一系列的预训练模型和工具,可以用于文本检测、文本识别和文本方向检测等任务。 提供了易于使用的 Python API,可以轻松地在你的项目中集成和使用。它还支持 CPU 和 GPU 加速,并且提供了一些预训练模型供你选择使用,或者你也可以根据自己的需求训练自定义的模型。

  PaddleOCR 的功能包括:

  文本检测:检测图像中的文本区域,并给出其边界框。
  文本识别:识别文本区域中的文字内容。
  文本方向检测:检测文本区域的方向(水平、垂直、逆时针旋转、顺时针旋转等)。

2. paddleocr安装

   paddleocr是基于 PaddlePaddle 框架开发的,因此在使用 PaddleOCR 之前是需要先安装paddlepaddle的。

pip install paddleocr

3. 识别图片文本

import cv2
#2使用ocr
from paddleocr import PaddleOCR
ocr = PaddleOCR(use_angle_cls=True, lang='ch')#第一次运行会自动下载模型,默认下载到工作目录的,ch是中文模型,也能检测英文
# 读取图片
img_path = 'ocr.jpeg'#带文本的图片
img = cv2.imread(img_path)
# 执行文字检测和识别
result = ocr.ocr(img)
# 绘制结果
for line in result:print(line)#如[[[[13.0, 15.0], [261.0, 8.0], [262.0, 51.0], [14.0, 58.0]], ('CMIITTD', 0.8830805420875549)]],文本区域的框的四个顶点坐标,文本内容及置信度
    for word in line:
        print(word[-1][0])#CMIITTD
        print(word[-1][1])#0.8830805420875549

  如果已经下载好了模型,直接实例化PaddleOCR时,指定模型路径

import cv2
from paddleocr import PaddleOCR
'''
代码中,如果没有明确指定保存路径,模型文件将被保存在user/admin目录的 .paddleocr 文件夹下。
'''
det_model_dir=r'C:\Users\admin\.paddleocr\whl\det\ch\ch_PP-OCRv4_det_infer'#文本位置检测模型
rec_model_dir=r'C:\Users\admin\.paddleocr\whl\rec\ch\ch_PP-OCRv4_rec_infer'#文本识别模型
cls_model_dir=r'C:\Users\admin\.paddleocr\whl\cls\ch_ppocr_mobile_v2.0_cls_infer'#文本方向分类模型
#2使用ocr
from paddleocr import PaddleOCR
# 创建 PaddleOCR 实例
ocr = PaddleOCR(use_angle_cls=True, lang='ch', det_model_dir=det_model_dir, rec_model_dir=rec_model_dir, cls_model_dir=cls_model_dir)
# 读取图片
img_path = 'ocr.jpeg'#带文本的图片
img = cv2.imread(img_path)
# 执行文字检测和识别
result = ocr.ocr(img)
# 绘制结果
for line in result:print(line)#如[[[[13.0, 15.0], [261.0, 8.0], [262.0, 51.0], [14.0, 58.0]], ('CMIITTD', 0.8830805420875549)]]
    for word in line:
        print(word[-1][0])#CMIITTD
        print(word[-1][1])#0.8830805420875549

  具体其他更多详细信息可以下载项目后,看里面的文档介绍,地址如下:

  PaddleOCR的GitHub地址:https://github.com/PaddlePaddle/PaddleOCR
  PaddleOCR的Gitee地址:https://gitee.com/paddlepaddle/PaddleOCR

  关于更多的其他语言或版本的模型下载地址可以下载github项目后,找到paddleocr.py文件,里面列出了很多,比如部分如下:

MODEL_URLS = {
    'OCR': {
        'PP-OCRv4': {
            'det': {
                'ch': {
                    'url':
                    'https://paddleocr.bj.bcebos.com/PP-OCRv4/chinese/ch_PP-OCRv4_det_infer.tar',
                },
                'en': {
                    'url':
                    'https://paddleocr.bj.bcebos.com/PP-OCRv3/english/en_PP-OCRv3_det_infer.tar',
                },
                'ml': {
                    'url':
                    'https://paddleocr.bj.bcebos.com/PP-OCRv3/multilingual/Multilingual_PP-OCRv3_det_infer.tar'
                }
            },
            'rec': {
                'ch': {
                    'url':
                    'https://paddleocr.bj.bcebos.com/PP-OCRv4/chinese/ch_PP-OCRv4_rec_infer.tar',

 

小结:简单使用paddleocr及官方自带的预训练模型来识别印刷体的文本,识别结果较好。如果识别结果不满意或是存在错误,自己可以在此基础上取训练自己的数据集,这里不讲解,另外paddleocr检测的边界框位置信息是整个文本区域的边界框,好像不能得到单个字符的边界框信息,如果有知道如何得到单个字符边界信息,可以留言。

 

  不足或错误之处,欢迎指正与评论,谢谢!

 

参考资料:

https://www.cnblogs.com/xiaoxia722/p/14627482.html

标签:文字,PP,ch,paddleocr,文本,ocr,PaddleOCR,识别
From: https://www.cnblogs.com/wancy/p/18141729

相关文章

  • 因果效应识别的理解
    潜在结果:存在可观测结果与不可观测结果。Yi=DiY1i+(1-Di)Y0i因果推断的核心:想办法估计未出现观测到的反事实结果。方法:利用同一物理个体不同时间的信息或同一时间不同物理个体的信息稳定性假设:一、不同个体潜在结果之间不会有交互影响二、干预水平对所有个体都相同事实中......
  • 免费在线OCR识别工具TextIn Tools,开启智能学习新时代
    传统的学习方式,笔记必须手写摘抄;带字照片只能插入文档;PDF转换要花钱买会员……而在线OCR识别工具tools.textin.com,既好用又免费,它不仅仅具有文字和表格识别工具,还包含PDF转文件等工具,能够做到一站式服务为用户解决所有问题。首先,它在我们学习场景中的应用可谓多种多样,废话不......
  • 一种融合指代消解序列标注方法在中文人名识别上的应用(上)
    技术领域自然语言处理领域。应用场景:适用于自然语言处理领域,通过命名实体识别(NamedEntityRecognition,NER),准确识别实体。依托自然语言处理领域,基于人民日报数据及构造的舆情公告数据,提出一种融合指代消解的序列标注方法来改进人名识别。解决的问题:实体包括人名、地......
  • 基于yolov2深度学习网络的螺丝螺母识别算法matlab仿真
    1.算法运行效果图预览 2.算法运行软件版本matlab2022a 3.算法理论概述      在工业自动化和质量控制领域,准确且高效的螺丝螺母识别至关重要。深度学习方法,特别是基于卷积神经网络(CNN)的目标检测技术,因其卓越的特征提取能力,成为解决此类问题的有效手段。YOLOv2......
  • 【Azure Developer】.Net 简单示例 "文字动图显示" Typing to SVG
    问题描述看见一个有趣的页面,可以把输入的文字信息,直接输出SVG图片,还可以实现动图模式。示例URL: https://readme-typing-svg.demolab.com/?font=Fira+Code&pause=1000&color=F7F7F7&background=233911F6&center=true&vCenter=true&random=false&width=435&lines=%E6%8A%8A%E5%......
  • winform车牌识别源码(纯算法)
    车牌识别,本是图像领域中,非常成熟的一个应用,也是目前无处不在的停车场自动收费设备的技术基础。前言本文将使用c#语言,winform框架开发一个车牌识别系统M=,不借助任何框架,纯算法。效果  使用工具VisualStudio2019思路打开要识别的车牌对车牌进行去雾操作接着进......
  • C++发票识别、发票查验接口示例,您的“发票管理专家”
    发票识别+发票查验接口。当财务人员在进行发票的数字化管理时,仅需一键上传发票图片,翔云发票识别接口即可快速、精准对发票的全票面信息进行提取,翔云发票查验接口可根据识别接口提取的发票信息实时联网进行真伪查验。助财务工作者从发票海洋中解脱出来,提升发票管理效率与准确率......
  • Python调用微信OCR识别文字和坐标
    原理在看雪看到一篇文章:逆向调用QQ截图NT与WeChatOCR-软件逆向。里面说了怎么调用微信和QQ本地的OCR模型,还有很详细的分析过程。我稍微看了下文章,多的也看不懂。大概流程是使用mmmojo.dll这个dll来与WeChatOCR.exe做通信的,也是用它来启动和关闭WeChatOCR.exe进程的。所以关键只......
  • 医疗诊断中图像识别技术还有哪些潜在的应用价值呢
    医疗诊断中,图像识别技术的潜在应用价值远不止于目前已经实现的领域。除了之前提到的医学影像分析、手术辅助和药物研发等方面的应用,图像识别技术在医疗诊断中还有以下潜在的应用价值:病理学研究:在病理学领域,图像识别技术可以自动化处理和分析数字化的病理学图像。通过对细胞、组......
  • 一种融合指代消解序列标注方法在中文人名识别上的应用(下)
    二、使用了BERT模型和指代消解算法:加入BERT语言预处理模型,获取到高质量动态词向量。融入指代消解算法,根据指代词找出符合要求的子串/短语。【2】融入指代消解算法,根据指代词找出符合要求的子串/短语指代消解算法如图2所示,简单来说,就是考虑文档中子串/短语以及学习子......