百度飞桨(PaddlePaddle) - PaddleOCR 文字识别简单使用

这篇具有很好参考价值的文章主要介绍了百度飞桨(PaddlePaddle) - PaddleOCR 文字识别简单使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

百度飞桨(PaddlePaddle)安装
OCR 文字检测(Differentiable Binarization --- DB)

百度飞桨(PaddlePaddle) - PP-OCRv3 文字检测识别系统 预测部署简介与总览
百度飞桨(PaddlePaddle) - PP-OCRv3 文字检测识别系统 Paddle Inference 模型推理(离线部署)
百度飞桨(PaddlePaddle) - PP-OCRv3 文字检测识别系统 基于 Paddle Serving快速使用(服务化部署 - CentOS)
百度飞桨(PaddlePaddle) - PP-OCRv3 文字检测识别系统 基于 Paddle Serving快速使用(服务化部署 - Docker)推荐

OCR的技术路线

百度飞桨(PaddlePaddle) - PaddleOCR 文字识别简单使用
PaddleHub 预训练模型的网络结构是 DB + CRNN, 可微的二值化模块(Differentiable Binarization,简称DB)
CRNN(Convolutional Recurrent Neural Network)即卷积递归神经网络, 是DCNN和RNN的组合

DB(Differentiable Binarization)是一种基于分割的文本检测算法。将二值化阈值加入训练中学习,可以获得更准确的检测边界,从而简化后处理流程。DB算法最终在5个数据集上达到了state-of-art的效果和性能
百度飞桨(PaddlePaddle) - PaddleOCR 文字识别简单使用

CRNN(Convolutional Recurrent Neural Network)即卷积递归神经网络,是DCNN和RNN的组合,专门用于识别图像中的序列式对象。与CTC loss配合使用,进行文字识别,可以直接从文本词级或行级的标注中学习,不需要详细的字符级的标注

百度飞桨(PaddlePaddle) - PaddleOCR 文字识别简单使用

安装库

Building wheel for opencv-python (pyproject.toml):https://www.cnblogs.com/vipsoft/p/17386638.html

# 安装 PaddlePaddle
python -m pip install paddlepaddle -i https://pypi.tuna.tsinghua.edu.cn/simple

# 安装 PaddleHub Mac 电脑上终端会感觉卡死的状态,(Mac 在装opencv那个依赖,装了30分钟),可以添加   --verbose,查看进度
pip install paddlehub -i https://pypi.tuna.tsinghua.edu.cn/simple  --verbose

# 该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

定义待预测数据

将预测图片存放在一个文件中 picture.txt

./images/231242.jpg
./images/234730.jpg

测试输出

import matplotlib.pyplot as plt
import matplotlib.image as mpimg

# 将预测图片存放在一个文件中(picture.txt)
with open('picture.txt', 'r') as f:
    test_img_path=[]
    for line in f:
        test_img_path.append(line.strip())
        # 显示图片
        img1 = mpimg.imread(line.strip())
        plt.figure(figsize=(10, 10))
        plt.imshow(img1)
        plt.axis('off')
        plt.show()

print(test_img_path) # => ['images/231242.jpg', 'images/234730.jpg']

百度飞桨(PaddlePaddle) - PaddleOCR 文字识别简单使用

加载预训练模型

PaddleHub提供了以下文字识别模型:

移动端的超轻量模型:仅有8.1M,chinese_ocr_db_crnn_mobile

服务器端的精度更高模型:识别精度更高,chinese_ocr_db_crnn_server。

识别文字算法均采用CRNN(Convolutional Recurrent Neural Network)即卷积递归神经网络。其是DCNN和RNN的组合,专门用于识别图像中的序列式对象。与CTC loss配合使用,进行文字识别,可以直接从文本词级或行级的标注中学习,不需要详细的字符级的标注。该Module支持直接预测。 移动端与服务器端主要在于骨干网络的差异性,移动端采用MobileNetV3,服务器端采用ResNet50_vd

import paddlehub as hub

# 加载移动端预训练模型
# ocr = hub.Module(name="chinese_ocr_db_crnn_mobile")

# 服务端可以加载大模型,效果更好
ocr = hub.Module(name="chinese_ocr_db_crnn_server")

百度飞桨(PaddlePaddle) - PaddleOCR 文字识别简单使用

预测

PaddleHub对于支持一键预测的module,可以调用module的相应预测API,完成预测功能。
module 'numpy' has no attribute 'int'.: 解方法见:https://www.cnblogs.com/vipsoft/p/17385169.html

import paddlehub as hub
import cv2

# 加载移动端预训练模型
ocr = hub.Module(name="chinese_ocr_db_crnn_mobile")

# 服务端可以加载大模型,效果更好 -- 【个人电脑,内存不够用】
# ocr = hub.Module(name="chinese_ocr_db_crnn_server")

# 将预测图片存放在一个文件中(picture.txt)
test_img_path = []
with open('picture.txt', 'r') as f:
    for line in f:
        test_img_path.append(line.strip())
print("预测图片 => ", test_img_path)

# 读取测试文件夹test.txt中的照片路径
np_images = [cv2.imread(image_path) for image_path in test_img_path]

results = ocr.recognize_text(
    images=np_images,  # 图片数据,ndarray.shape 为 [H, W, C],BGR格式;
    use_gpu=False,  # 是否使用 GPU;若使用GPU,请先设置CUDA_VISIBLE_DEVICES环境变量
    output_dir='ocr_result',  # 图片的保存路径,默认设为 ocr_result;
    visualization=True,  # 是否将识别结果保存为图片文件;
    box_thresh=0.5,  # 检测文本框置信度的阈值;
    text_thresh=0.5)  # 识别中文文本置信度的阈值;

for result in results:
    data = result['data']
    save_path = result['save_path']
    for infomation in data:
        print('text: ', infomation['text'], '\nconfidence: ', infomation['confidence'], '\ntext_box_position: ', infomation['text_box_position'])

输出

"D:\Program Files\Python38\python.exe" D:/OpenSource/PaddlePaddle/OCR/OCRTest.py
预测图片 =>  ['./images/123.jpg']
text:  中华人民共和国 
confidence:  0.9990600347518921 
text_box_position:  [[188, 37], [472, 32], [472, 65], [188, 70]]
text:  居民身份证 
confidence:  0.9996429681777954 
text_box_position:  [[171, 96], [492, 96], [492, 140], [171, 140]]
text:  签发机关 
confidence:  0.9993374347686768 
text_box_position:  [[140, 242], [217, 242], [217, 263], [140, 263]]
text:  苏州市公安局工业园区分局 
confidence:  0.9997307658195496 
text_box_position:  [[233, 242], [473, 242], [473, 262], [233, 262]]
text:  有效期限 
![image](https://img2023.cnblogs.com/blog/80824/202305/80824-20230509152736239-145300739.png)

百度飞桨(PaddlePaddle) - PaddleOCR 文字识别简单使用

百度飞桨(PaddlePaddle) - PaddleOCR 文字识别简单使用

百度飞桨(PaddlePaddle) - PaddleOCR 文字识别简单使用

源码地址:https://gitee.com/VipSoft/Paddle

百度飞桨:https://aistudio.baidu.com/aistudio/projectdetail/507159文章来源地址https://www.toymoban.com/news/detail-444941.html

到了这里,关于百度飞桨(PaddlePaddle) - PaddleOCR 文字识别简单使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 百度飞桨(PaddlePaddle) - PP-OCRv3 文字检测识别系统 Paddle Inference 模型推理

    百度飞桨(PaddlePaddle) - PP-OCRv3 文字检测识别系统 预测部署简介与总览 百度飞桨(PaddlePaddle) - PP-OCRv3 文字检测识别系统 Paddle Inference 模型推理(离线部署) 百度飞桨(PaddlePaddle) - PP-OCRv3 文字检测识别系统 基于 Paddle Serving快速使用(服务化部署 - CentOS) 百度飞桨(PaddlePaddle) - PP

    2024年02月05日
    浏览(78)
  • 百度飞桨(PaddlePaddle)-数字识别

    手写数字识别任务 用于对 0 ~ 9 的十类数字进行分类,即输入手写数字的图片,可识别出这个图片中的数字。 python -m pip install matplotlib numpy -i https://mirror.baidu.com/pypi/simple python -m pip install paddlepaddle==2.4.2 -i https://pypi.tuna.tsinghua.edu.cn/simple 官网代码少了 plt.show() # 要加上这句,才

    2024年02月03日
    浏览(31)
  • 使用pycharm终端安装百度飞桨paddlepaddle库的方法

    百度飞桨的公开文件非常少,主要靠AIStudio的说明文档,但是该文档没有给出在pycharm上使用的方法,虽然AIStudio提供了免费编程的云资源,甚至也有GPU免费资源,但是经常电脑上是连接不上的。我的建议是用pycharm编写程序,程序没问题时或者AIStudio能够进行程序运行时,再导

    2023年04月10日
    浏览(30)
  • 百度飞桨(PaddlePaddle)- 张量(Tensor)

    张量(Tensor)、标量(scalar)、向量(vector)、矩阵(matrix) 飞桨 使用张量(Tensor) 来表示神经网络中传递的数据 ,Tensor 可以理解为多维数组,类似于 Numpy 数组(ndarray) 的概念。与 Numpy 数组相比,Tensor 除了支持运行在 CPU 上,还支持运行在 GPU 及各种 AI 芯片上,以实现

    2024年02月03日
    浏览(35)
  • Paddle笔记:PaddleOCR文字识别,简单实用,默认训练模型识别度不错

            PaddleOCR是百度深度学习框架PaddlePaddle开源的OCR项目,旨在打造一套丰富、领先、且实用的OCR工具库,助力使用者训练出更好的模型,并应用落地。PaddleOCR包含丰富的文本检测、文本识别以及端到端算法。         你可能用到的网址: Paddle官网:飞桨PaddlePaddle-源于

    2024年02月16日
    浏览(37)
  • 百度飞桨PaddleSpeech的简单使用

    PaddleSpeech 是基于飞桨 PaddlePaddle 的语音方向的开源模型库,用于语音和音频中的各种关键任务的开发,包含大量基于深度学习前沿和有影响力的模型,一些典型的应用示例如下:语音识别、语音翻译 (英译中)、语音合成、标点恢复等。 我只用到了语音识别(语音转文字)、语

    2024年02月03日
    浏览(33)
  • 使用百度 PaddleOCR对身份证识别的简单处理

         本文才用百度的PaddleOCR对身份证进行识别的处理,由于直接使用并未进行对跟多数据集进行训练,当前的效果是对非少数民族的身份证识别率可以达到85%以上,同时要求身份证图片是正面且相对清晰。否则效果不理想,本文主要介绍 PaddleOCR是什么、安装总流程 、Paddl

    2024年02月06日
    浏览(29)
  • python + paddleOcr 实现文字识别

    AttributeError: partially initialized module \\\'numpy\\\' has no attribute \\\'array         解决:更换numpy的版本,目前最新版本是1.24 需要降低版本,采用1.22 的版本就可解决这个问题。 if scores is not None and (scores[i] drop_score or TypeError: \\\'\\\' not supp         解决:更换paddleOcr 版本 最新版本是2.6  V

    2023年04月08日
    浏览(30)
  • 基于PaddleOCR开发懒人精灵文字识别插件

           懒人精灵是 Android 平台上的一款自动化工具,它通过编写 lua 脚本,结合系统的「 无障碍服务 」对 App 进行自动化操作。在文字识别方面它提供的有一款OCR识别插件,但是其中有识别速度慢,插件大的缺点,所以这里将讲解一下如何集成基于PaddleOCR文字识别开发的插

    2024年02月10日
    浏览(39)
  • PaddleOCR:超越人眼识别率的AI文字识别神器

    在当今人工智能技术已经渗透到各个领域。其中,OCR(Optical Character Recognition)技术将图像中的文字转化为可编辑的文本,为众多行业带来了极大的便利。PaddleOCR是一款由百度研发的OCR开源工具,具有极高的准确率和易用性。 本文将详细介绍PaddleOCR的基本原理、功能特点、使

    2024年02月03日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包