PaddlePaddle----基于paddlehub的OCR识别

Paddlehub介绍

        PaddleHub是一个基于PaddlePaddle深度学习框架开发的预训练模型库和工具集,提供了丰富的功能和模型,包括但不限于以下几种:

1.文本相关功能:包括文本分类、情感分析、文本生成、文本相似度计算等预训练模型和工具。

2.图像相关功能:包括图像分类、目标检测、人脸识别、图像生成等任务的预训练模型和工具。

3.视频相关功能:包括视频分类、视频目标检测、视频行为识别等任务的预训练模型和工具。

4.语音相关功能:包括语音识别、语音合成、语音情感分析等任务的预训练模型和工具。

5.推荐系统相关功能:包括推荐模型、召回模型等预训练模型和工具。

6.自然语言处理相关功能:包括词向量、句向量、文本匹配、关键词提取等预训练模型和工具。

7.多模态相关功能:包括图文匹配、文图生成等多模态任务的预训练模型和工具。

        除了以上列举的功能外,PaddleHub还提供了模型管理、模型训练、模型部署等功能,方便用户快速部署和使用深度学习模型。用户可以通过PaddleHub轻松实现各种深度学习任务,加速模型开发和部署过程。

Paddlehub的OCR环境搭建

        搭建环境的时候有两点需要注意:

  1. paddlepaddle和paddlehub的版本要匹配起来
  2. 需要安装隐形的依赖库(如下)
#需要将PaddleHub和PaddlePaddle统一升级到2.0版本
!pip install paddlehub==2.0.0 -i https://pypi.tuna.tsinghua.edu.cn/simple  
!pip install paddlepaddle==2.0.0 -i https://pypi.tuna.tsinghua.edu.cn/simple  
#该Module依赖于第三方库shapely、pyclipper,使用该Module之前,请先安装shapely、pyclipper 
!pip install shapely -i https://pypi.tuna.tsinghua.edu.cn/simple  
!pip install pyclipper -i https://pypi.tuna.tsinghua.edu.cn/simple 

这里我介绍一下我本机电脑的相关环境:

系统:windows10 企业版(无独立显卡)

编译器:python 3.6.8(X64)

依赖包:

numpy 1.16.4

pandas 0.21.1

scipy 1.2.2

opencv-python 3.4.2.16

paddlepaddle 1.8.4

paddlehub 1.8.2

Shapely  1.7.1

pyclipper 1.2.0

OCR介绍

        光学字符识别(Optical Character Recognition, OCR)是指对文本材料的图像文件进行分析识别处理,以获取文字和版本信息的过程。也就是说将图象中的文字进行识别,并返回文本形式的内容。例如(该预测效果基于PaddleHub一键OCR中文识别效果展示):

识别网络图如下:

 典型的OCR技术路线如下图所示:

        其中OCR识别的关键路径在于文字检测和文本识别部分,这也是深度学习技术可以充分发挥功效的地方。PaddleHub为大家开源的预训练模型的网络结构是Differentiable Binarization+ CRNN,基于icdar2015数据集下进行的训练。

环境测试

        下面用一段简单的代码来测试一下环境是否安装成功,该代码段功能主要是来检测图像中的文字区域,需要注意的是,你应该提前准备好一张图片“fp.png”和代码在同一个目录中。

import paddlehub as hub
import cv2text_detector = hub.Module(name="chinese_text_detection_db_server")
result = text_detector.detect_text(images=[cv2.imread('fp.png')])
print(result)

输出:

 提示: 第一次运行的时候需要联网下载相应的模型,否则会报错。我的因为模型下载完毕,所以提示无需安装。

OCR识别

# -*- coding = 'utf-8' -*-
# 测试OCR安装环境import paddlehub as hub
import cv2
import timefile = r'fp.png'
t1 = time.time()
#ocr = hub.Module(name="chinese_ocr_db_crnn_server")
ocr = hub.Module(name="chinese_ocr_db_crnn_mobile")
result_list = []
image = cv2.imread(file)
#print(image)
#image = image[440:550,170:290]
#image = cv2.resize(image,[300,300])
#cv2.imwrite('./2.jpg', image)
t2 = time.time()
results = ocr.recognize_text(images=[image],  # 图片数据,ndarray.shape 为 [H, W, C],BGR格式;use_gpu=False,  # 是否使用 GPU;若使用GPU,请先设置CUDA_VISIBLE_DEVICES环境变量visualization=True,  # 是否将识别结果保存为图片文件;box_thresh=0.5,  # 检测文本框置信度的阈值;text_thresh=0.5)  # 识别中文文本置信度的阈值;
for result in results:data = result['data']for index, infomation in enumerate(data):result_list.append(infomation['text'])
#print(result_list)
t3 = time.time()
print(results, t2-t1,t3-t2)

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C++】二叉树进阶之二叉搜索树

> 作者简介:დ旧言~,目前大二,现在学习Java,c,c,Python等 > 座右铭:松树千年终是朽,槿花一日自为荣。 > 目标:熟练掌握二叉搜索树,能自己模拟实现二…

股票价格预测项目

项目介绍 背景 股票价格预测一直是金融领域的热点问题。准确的预测可以帮助投资者作出更明智的决策。本项目旨在使用机器学习技术,特别是长短期记忆网络(LSTM),来预测股票价格。 目标 开发一个基于LSTM的股票价格预测模型。使…

巨型犰狳优化算法(Giant Armadillo Optimization,GAO)的无人机三维路径规划(MATLAB)

一、无人机路径规划模型介绍 无人机三维路径规划是指在三维空间中为无人机规划一条合理的飞行路径,使其能够安全、高效地完成任务。路径规划是无人机自主飞行的关键技术之一,它可以通过算法和模型来确定无人机的航迹,以避开障碍物、优化飞行时间和节省能量消耗。 二、算法介…

寒假作业Day 10

寒假作业Day 10 一、选择题 1、下列数据结构中,不属于线性表的是( ) A.队列 B.顺序表 C.二叉树 D.链表 A. 队列:队列是一种特殊的线性表,它只允许在表的前端(front)进行删除操作,而在表的后端&#xff08…

软件测试相关内容第三弹--软件测试基础

写在前:在前篇的两篇博客介绍中我们主要学习软件测试的相关概念,对软件测试进行了初步的了解,本篇博客将进一步进行学习。重点内容包括:软件测试的生命周期、如何描述一个bug、如何定义bug的级别、bug的生命周期以及在实际工作中如…

【Claude3】利用Python中完成对Bedrock上的Claude的API调用

文章目录 1. 前期准备工作2. 安装和配置AWS CLI v23. 使用AWS configure命令配置AWS凭据4. 安装访问Bedrock的SDK5. 访问Amazon Bedrock UI6. 订阅Bedrock上的Claude模型7. 通过CLI命令列出所有可用的Claude模型8. 向Claude 3 Sonnet on Bedrock生成文本9. 参考链接 1. 前期准备…

基础 | JVM - [指令 性能监控]

INDEX jps(jvm 进程工具)jinfo(java 配置信息工具)jstack (查看虚拟机栈信息)jmap(jvm 内存影像工具)jstat(jvm 统计信息监控工具)jvisualvm(查看…

《vtk9 book》 官方web版 第3章 - 计算机图形基础 (4 / 5)

3.10 将所有内容整合起来 本节概述了图形对象以及如何在 VTK 中使用它们。 图形模型 我们已经讨论了许多在场景渲染中起作用的对象。现在是将它们整合到一个全面的图形和可视化对象模型中的时候了。 在可视化工具包中,有七个基本对象用于渲染场景。幕后有许多其他对…

Windows下安装pip

一、下载pip 官网地址:https://pypi.org/project/pip/#files 1.1、pip工具查找方法 单击官网首页“PyPi”选项 在弹出来的搜索框中输入“pip” 选择最新的pip版本,点进去 下载pip安装包包 二、安装pip 解压“pip-24.0.tar.gz”,进…

数据结构与算法:链式二叉树

上一篇文章我们结束了二叉树的顺序存储,本届内容我们来到二叉树的链式存储! 链式二叉树 1.链式二叉树的遍历1.1二叉树的前序,中序,后序遍历1.2 三种遍历方法代码实现 2. 获取相关个数2.1获取节点个数2.2获取叶节点个数2.3 获取树的…

el-table 插入输入框并进行校验

<template><div><el-form :model"list" ref"ruleForm"><el-table :data"list.tableData" style"width: 100%"><el-table-column prop"time" label"日期" width"180"><…

电子电器架构 —— 车载网关路由表和刷写场景

电子电器架构 —— 车载网关路由表和刷写场景 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 PS:小细节,本文字数5000+,详细描述了网关在车载框架中的具体性能设置。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 没有人关注你。也无需有…