调用paddleocr实现中文文字识别

news2024/12/24 0:49:56

文章目录

        • paddleocr简介
        • paddleocr安装
        • paddleocr使用

paddleocr简介

飞桨首次开源文字识别模型套件PaddleOCR,目标是打造丰富、领先、实用的文本识别模型/工具库。

最新开源的超轻量PP-OCRv3模型大小仅为16.2M。同时支持中英文识别;支持倾斜、竖排等多种方向文字识别;支持GPU、CPU预测;用户既可以通过PaddleHub很便捷的直接使用该超轻量模型,也可以使用PaddleOCR开源套件训练自己的超轻量模型。

PaddleOCR是基于PaddlePaddle深度学习框架的开源OCR工具,但它提供了推理模型/训练模型/预训练模型,用户可以直接使用推理模型进行识别,也可以对训练模型或预训练模型进行再训练。支持约80种语言的文本识别,并具有较高的准确性和速度。

paddleocr安装
pip install paddleocr

在这里插入图片描述

paddleocr使用

将文件路径传递到glob库中,批量处理识别图像中的文字。即可得到对应的文本和置信度。

paddleocr的识别效果很不错,对于视频底部字幕caption的识别准确性很高。如果图像右上方存在水印,或者图片本身也存在一些文字,可能会对paddleocr的识别造成一定的干扰。

from paddleocr import PaddleOCR, draw_ocr
import glob
# Paddleocr目前支持中英文、英文、法语、德语、韩语、日语,可以通过修改lang参数进行切换
# 参数依次为`ch`, `en`, `french`, `german`, `korean`, `japan`。
ocr = PaddleOCR(use_angle_cls=True, lang="ch") # need to run only once to download and load model into memory
img_path = glob.glob('Images_frames/*.png')
print(img_path)
for path in img_path:
    result = ocr.ocr(path, cls=True)
    for line in result:
        text,confidence = line[0][1]
        print('文本:',text,'置信度:',confidence)
[2024/03/19 11:19:05] ppocr DEBUG: Namespace(alpha=1.0, benchmark=False, beta=1.0, cls_batch_num=6, cls_image_shape='3, 48, 192', cls_model_dir='C:\\Users\\lenovo/.paddleocr/whl\\cls\\ch_ppocr_mobile_v2.0_cls_infer', cls_thresh=0.9, cpu_threads=10, crop_res_save_dir='./output', det=True, det_algorithm='DB', det_box_type='quad', det_db_box_thresh=0.6, det_db_score_mode='fast', det_db_thresh=0.3, det_db_unclip_ratio=1.5, det_east_cover_thresh=0.1, det_east_nms_thresh=0.2, det_east_score_thresh=0.8, det_limit_side_len=960, det_limit_type='max', det_model_dir='C:\\Users\\lenovo/.paddleocr/whl\\det\\ch\\ch_PP-OCRv4_det_infer', det_pse_box_thresh=0.85, det_pse_min_area=16, det_pse_scale=1, det_pse_thresh=0, det_sast_nms_thresh=0.2, det_sast_score_thresh=0.5, draw_img_save_dir='./inference_results', drop_score=0.5, e2e_algorithm='PGNet', e2e_char_dict_path='./ppocr/utils/ic15_dict.txt', e2e_limit_side_len=768, e2e_limit_type='max', e2e_model_dir=None, e2e_pgnet_mode='fast', e2e_pgnet_score_thresh=0.5, e2e_pgnet_valid_set='totaltext', enable_mkldnn=False, fourier_degree=5, gpu_id=0, gpu_mem=500, help='==SUPPRESS==', image_dir=None, image_orientation=False, ir_optim=True, kie_algorithm='LayoutXLM', label_list=['0', '180'], lang='ch', layout=True, layout_dict_path=None, layout_model_dir=None, layout_nms_threshold=0.5, layout_score_threshold=0.5, max_batch_size=10, max_text_length=25, merge_no_span_structure=True, min_subgraph_size=15, mode='structure', ocr=True, ocr_order_method=None, ocr_version='PP-OCRv4', output='./output', page_num=0, precision='fp32', process_id=0, re_model_dir=None, rec=True, rec_algorithm='SVTR_LCNet', rec_batch_num=6, rec_char_dict_path='e:\\python3.7\\lib\\site-packages\\paddleocr\\ppocr\\utils\\ppocr_keys_v1.txt', rec_image_inverse=True, rec_image_shape='3, 48, 320', rec_model_dir='C:\\Users\\lenovo/.paddleocr/whl\\rec\\ch\\ch_PP-OCRv4_rec_infer', recovery=False, return_word_box=False, save_crop_res=False, save_log_path='./log_output/', scales=[8, 16, 32], ser_dict_path='../train_data/XFUND/class_list_xfun.txt', ser_model_dir=None, show_log=True, sr_batch_num=1, sr_image_shape='3, 32, 128', sr_model_dir=None, structure_version='PP-StructureV2', table=True, table_algorithm='TableAttn', table_char_dict_path=None, table_max_len=488, table_model_dir=None, total_process_num=1, type='ocr', use_angle_cls=True, use_dilation=False, use_gpu=False, use_mp=False, use_npu=False, use_onnx=False, use_pdf2docx_api=False, use_pdserving=False, use_space_char=True, use_tensorrt=False, use_visual_backbone=True, use_xpu=False, vis_font_path='./doc/fonts/simfang.ttf', warmup=False)
['Images_frames\\frame0.png', 'Images_frames\\frame24.png', 'Images_frames\\frame48.png', 'Images_frames\\frame72.png']
[2024/03/19 11:19:06] ppocr DEBUG: dt_boxes num : 1, elapse : 0.28324270248413086
[2024/03/19 11:19:07] ppocr DEBUG: cls num  : 1, elapse : 0.021940231323242188
[2024/03/19 11:19:07] ppocr DEBUG: rec_res num  : 1, elapse : 0.25235795974731445
文本: 我们精挑细选之后呢 置信度: 0.9981216788291931
[2024/03/19 11:19:07] ppocr DEBUG: dt_boxes num : 1, elapse : 0.2612645626068115
[2024/03/19 11:19:07] ppocr DEBUG: cls num  : 1, elapse : 0.017951488494873047
[2024/03/19 11:19:07] ppocr DEBUG: rec_res num  : 1, elapse : 0.1545870304107666
文本: 入手了这台 置信度: 0.9989045262336731
[2024/03/19 11:19:07] ppocr DEBUG: dt_boxes num : 2, elapse : 0.26225733757019043
[2024/03/19 11:19:08] ppocr DEBUG: cls num  : 2, elapse : 0.032912492752075195
[2024/03/19 11:19:08] ppocr DEBUG: rec_res num  : 2, elapse : 0.6083700656890869
文本: 华为打印机PixLabV1 置信度: 0.94902104139328
[2024/03/19 11:19:08] ppocr DEBUG: dt_boxes num : 2, elapse : 0.27226996421813965
[2024/03/19 11:19:08] ppocr DEBUG: cls num  : 2, elapse : 0.03195309638977051
[2024/03/19 11:19:09] ppocr DEBUG: rec_res num  : 2, elapse : 0.5345678329467773
文本: 华为打印机PixLabV1 置信度: 0.9729145765304565

通过指定需要提取的图像,传入paddleocr的对应参数,即可完成文字识别。
在这里插入图片描述

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

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

相关文章

VueRouter的介绍:什么是路由呢?VueRouter的作用及使用,VueRouter的使用分为5个步骤和特定的2步

1.什么是路由呢? 路由就是路径和组件之间的映射关系,当我们路径变化的时候,就要切换对应的组件。 在前端中解决路径与组件之间的映射关系,官方提供了VueRouter这个插件 2.VueRouter的作用及使用 作用:修改地址栏路…

三角测量法恢复深度

参考:单目vo中的深度确定方法--三角测量_单目相机三角测量-CSDN博客 方法一:直接法 由于我们已经通过本质矩阵分解或者单应矩阵分解获得了R与t,此时想求的是两个特征点的深度 bool depthFromTriangulation(const SE3& T_search_ref,co…

CSS-文本域和输入框美化处理、文字和图片对齐、文字超出文本域以省略号显示、magin的运用

文本域和输入框美化处理 调整边框和背景: input[type"text"], textarea {border: 1px solid #ccc;border-radius: 5px;background-color: #f9f9f9;padding: 5px; }调整字体和颜色: input[type"text"], textarea {font-family: Ar…

【C语言】扫雷小游戏

文章目录 前言一、游戏玩法二、创建文件test.c文件menu()——打印菜单game()——调用功能函数,游戏的实现main()主函数 game.c文件初始化棋盘打印棋盘随机布置雷的位置统计周围雷的个数展开周围一片没有雷的区域计算已排查位置的个数排查雷(包括检测输赢): game.h文…

ssm034学生请假系统+jsp

学生请假系统设计与实现 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本学生请假系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处…

【Gmail】Google OAuth2 发送邮件配置

背景 gmail将全面禁用账号、密码登陆方式,官方相关文档,对于需要调用gmail相关的服务需要做出相应的调整。这里使用Google Cloud应用的形式来接入Gmail,类似的,也可以通过该方式来调用其他的Google Cloud服务。 创建项目及应用 …

Avalonia中开发自己的模版控件(TemplatedControl)

Avalonia中开发自己的模版控件TemplatedControl 概览开始创建自己的模版控件项目中使用效果展示概览 TemplatedControl最适合用于可以在各种应用程序之间共享的通用控件。它们是无样式的控件,意味着可以为不同的主题和应用程序重新定义样式。Avalonia定义的大多数标准控件都属…

OJ 连续数的和 球弹跳高度的计算【C判断是否为完全平方数】【格式输出%g输出全部小数部分】

连续数的和 判断是否为完全平方数有两种方法 1.遍历所有小于该数的整数,有一个满足平方与该数相等,则是完全平方数 2.用sqrt()或pow()函数对该数开方,取整(舍去小数部分),再平方,与该数相等则…

Java特性之设计模式【外观模式】

一、外观模式 概述 外观模式(Facade Pattern)隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性 这种模式涉及到一…

雄安建博会:中矿雄安新区的总部开工建设

中矿落位雄安:助力国家战略与新区发展 雄安新区,作为中国未来发展的重要战略支点,正迎来一系列央企总部的疏解与建设。最近,中国矿产资源集团有限公司(简称“中矿”)在雄安新区的总部项目正式开工建设&…

【C++成长记】C++入门 |auto、范围for、nullptr

🐌博主主页:🐌​倔强的大蜗牛🐌​ 📚专栏分类:C❤️感谢大家点赞👍收藏⭐评论✍️ 目录 一、auto关键字 1、auto简介 2、auto的使用细则 (1) auto与指针和引用结合起…

Java Swing游戏开发学习23

内容来自RyiSnow视频讲解 这一节讲的是Character Status角色状态或属性。 前言 这一节讲的是实现角色状态或属性的显示,就有点像RPG游戏中,人物属性显示的面板,其中有玩家的装备、玩家的等级,各种防御值、闪避值、跑速什么的。…

基于单片机体温心率检测仪系统设计

**单片机设计介绍, 基于单片机体温心率检测仪系统设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机体温心率检测仪系统设计是一个综合性的项目,旨在通过单片机及其外围电路实现对人体体温和心…

LeetCode-118. 杨辉三角【数组 动态规划】

LeetCode-118. 杨辉三角【数组 动态规划】 题目描述:解题思路一:Python 动态规划解题思路二:解题思路三:0 题目描述: 给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中&…

UE5、CesiumForUnreal实现建筑白模生长动画效果

文章目录 1.实现目标2.实现过程2.1 实现原理2.2 具体代码2.3 应用测试3.参考资料1.实现目标 在上篇文章加载本地建筑轮廓GeoJson数据生成建筑白模的基础上,本文通过材质“顶点偏移”实现建筑白模生长效果,GIF动图如下所示: 2.实现过程 常用的实现建筑生长效果的方式有两种,…

前端二维码工具小程序使用说明书

一、产品概述 前端二维码工具小程序是一款便捷、高效、易用的二维码生成与识别工具。本产品支持根据用户输入的文本或链接生成二维码,同时提供扫一扫功能以识别二维码内容,并支持将识别到的内容复制到剪贴板。此外,产品还提供了美化功能&…

如何为自己的网站选择SSL证书?

在当今数字化时代,网站安全性已经成为了一个非常重要的问题。为了保护网站的安全性,SSL证书已经成为了必不可少的一部分。SSL证书可以保护网站的数据传输过程,防止黑客攻击和窃取敏感信息。但是,如何为自己的网站选择SSL证书呢&am…

vulnhub之devguru靶场提权过程(vulnhub打靶日记)

一、环境搭建 VM版本:17.5.1 build-23298084 攻击机:Kali2024(下载地址:https://www.kali.org/) 靶机:vulnhub靶场Devguru(下载地址:https://www.vulnhub.com/entry/devguru-1,62…

C语言的显式类型转换和隐式类型转换详细讲解

目录 一、类型转换 1、显式类型转换 2、隐式类型转换 二、算术转换 三、总结 每个编译器都会对表达式做两件事情,一是判断表达式中操作符的优先级和结合性,二是判断表达式中的操作数类型是否一致,如果不一致则需要进行类型转换。第一点在…

R-Tree的简单介绍

一、R-Tree简介 R-Tree,全称是“Real Tree”,是一种专门为处理多维空间数据(尤其是二维空间数据,如地理坐标)设计的树形数据结构。 简单来说,它就像是一个特殊的目录,将空间数据按照它们的位置…