当前位置: 首页 > news >正文

百度飞浆OCR识别表格入门python实践

1. 百度飞桨(PaddlePaddle)

百度飞桨(PaddlePaddle)是百度推出的一款深度学习平台,旨在为开发者提供强大的深度学习框架和工具。飞桨提供了包括OCR(光学字符识别)在内的多种功能,可以帮助开发者在各种应用中实现高效的文本识别。官网链接:https://www.paddlepaddle.org.cn/。

在这里插入图片描述

初次使用,安装:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple paddlepaddle

验证安装,使用 python 进入 python 解释器,输入 import paddle ,再输入 paddle.utils.run_check()。

python
Python 3.8.10 (tags/v3.8.10:3d8993a, May 3 2021, 11:48:03) [MSC v.1928 64 bit (AMD64)] on win32
Type “help”, “copyright”, “credits” or “license” for more information.

import paddle
paddle.utils.run_check()
Running verify PaddlePaddle program …
I0904 17:11:21.570567 15712 interpretercore.cc:237] New Executor is Running.
I0904 17:11:21.702833 15712 interpreter_util.cc:518] Standalone Executor is Used.
PaddlePaddle works well on 1 CPU.
PaddlePaddle is installed successfully! Let’s start deep learning with PaddlePaddle now.

2. 飞桨OCR

飞桨文字识别开发套件PaddleOCR,旨在打造一套丰富、领先且实用的OCR工具库,开源了基于PP-OCR实用的超轻量中英文OCR模型、通用中英文OCR模型,以及德法日韩等多语言OCR模型。并提供上述模型训练方法和多种预测部署方式。同时开源文本风格数据合成工具Style-Text和半自动文本图像标注工具PPOCRLable。

飞桨OCR文字简明识别过程如下图所示。
在这里插入图片描述

2.1. 安装飞桨OCR

如果你有企业中明确的 OCR 垂类应用需求,我们推荐你使用训压推一站式全流程高效率开发平台 PaddleX,助力 AI 技术快速落地。

首先,下载shapely安装包(地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/),并安装。

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple e:\software\python\Shapely-1.8.2-cp38-cp38-win_amd64.whlpip install -i https://pypi.tuna.tsinghua.edu.cn/simple paddleocr

通用OCR文字识别,首个样例。

在这里插入图片描述

from paddleocr import PaddleOCR, draw_ocr# Paddleocr目前支持的多语言语种可以通过修改lang参数进行切换
# 例如`ch`, `en`, `fr`, `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 = './imgs/11.jpg'
result = ocr.ocr(img_path, cls=True)
for idx in range(len(result)):res = result[idx]for line in res:print(line)# 显示结果
from PIL import Image
result = result[0]
image = Image.open(img_path).convert('RGB')
boxes = [line[0] for line in result]
txts = [line[1][0] for line in result]
scores = [line[1][1] for line in result]
im_show = draw_ocr(image, boxes, txts, scores, font_path='./fonts/simfang.ttf')
im_show = Image.fromarray(im_show)
im_show.save('result.jpg')

在这里插入图片描述
我的python环境,供参考:

  • 操作系统:windows 10 专业版 版本 22H2
  • python 3.8.10
  • 安装包内容如下详见附件

2.2. PP-Structure 快速开始

PP-Structure是一个基于PaddlePaddle的表格结构识别工具包,可以帮助开发者快速进行表格结构的识别和提取。

图表识别,输入图像如下图,带水印的网页表格:
在这里插入图片描述
官方示例代码:

import os
import cv2
from paddleocr import PPStructure,draw_structure_result,save_structure_restable_engine = PPStructure(show_log=True)save_folder = 'output'
img_path = 'img/12.jpg'
img = cv2.imread(img_path)
result = table_engine(img)
save_structure_res(result, save_folder,os.path.basename(img_path).split('.')[0])for line in result:line.pop('img')print(line)from PIL import Imagefont_path = 'C:\Windows\Fonts\simfang.ttf'   # PaddleOCR下提供字体包
image = Image.open(img_path).convert('RGB')
im_show = draw_structure_result(image, result,font_path=font_path)
im_show = Image.fromarray(im_show)
im_show.save('result2.jpg')

在这里插入图片描述

download https://paddleocr.bj.bcebos.com/ppstructure/models/slanet/ch_ppstructure_mobile_v2.0_SLANet_infer.tar to 
C:\Users\xiaoyw/.paddleocr/whl\table\ch_ppstructure_mobile_v2.0_SLANet_infer\ch_ppstructure_mobile_v2.0_SLANet_infer.tar
100%| 10.3M/10.3M [00:01<00:00, 6.69MiB/s]
download https://paddleocr.bj.bcebos.com/ppstructure/models/layout/picodet_lcnet_x1_0_fgd_layout_cdla_infer.tar to 
C:\Users\xiaoyw/.paddleocr/whl\layout\picodet_lcnet_x1_0_fgd_layout_cdla_infer\picodet_lcnet_x1_0_fgd_layout_cdla_infer.tar
100%|| 10.1M/10.1M [00:00<00:00, 10.2MiB/s]

参考:

VipSoft. 百度飞桨(PaddlePaddle) - PaddleHub OCR 文字识别简单使用. 博客园. 2023.05
汽车人. Pytorch 和 TensorFlow 和 PaddlePaddle 这三个框架有什么区别?. 知乎. 2022.08
https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.7/ppstructure/docs/quickstart.md

附件:

Package                   Version
------------------------- -----------
anyio                     4.0.0
argon2-cffi               23.1.0
argon2-cffi-bindings      21.2.0
arrow                     1.2.3
astor                     0.8.1
asttokens                 2.3.0
async-lru                 2.0.4
attrdict                  2.0.1
attrs                     23.1.0
Babel                     2.12.1
backcall                  0.2.0
bce-python-sdk            0.8.90
beautifulsoup4            4.12.2
bleach                    6.0.0
blinker                   1.6.2
cachetools                5.3.1
certifi                   2023.7.22
cffi                      1.15.1
charset-normalizer        3.2.0
click                     8.1.7
colorama                  0.4.6
comm                      0.1.4
contourpy                 1.1.0
cssselect                 1.2.0
cssutils                  2.7.1
cycler                    0.11.0
Cython                    3.0.2
debugpy                   1.6.7.post1
decorator                 5.1.1
defusedxml                0.7.1
dnspython                 2.4.2
et-xmlfile                1.1.0
exceptiongroup            1.1.3
executing                 1.2.0
fastjsonschema            2.18.0
fire                      0.5.0
flask                     2.3.3
flask-babel               3.1.0
fonttools                 4.42.1
fqdn                      1.5.1
future                    0.18.3
h11                       0.14.0
httpcore                  0.17.3
httpx                     0.24.1
idna                      3.4
imageio                   2.31.3
imgaug                    0.4.0
importlib-metadata        6.8.0
importlib-resources       6.0.1
ipykernel                 6.25.1
ipython                   8.12.2
ipython-genutils          0.2.0
ipywidgets                8.1.0
isoduration               20.11.0
itsdangerous              2.1.2
jedi                      0.19.0
Jinja2                    3.1.2
joblib                    1.3.2
json5                     0.9.14
jsonpointer               2.4
jsonschema                4.19.0
jsonschema-specifications 2023.7.1
kiwisolver                1.4.5
lazy-loader               0.3
lmdb                      1.4.1
lxml                      4.9.3
MarkupSafe                2.1.3
matplotlib                3.7.2
matplotlib-inline         0.1.6
mistune                   3.0.1
nbclient                  0.8.0
nbconvert                 7.8.0
nbformat                  5.9.2
nest-asyncio              1.5.7
networkx                  3.1
notebook                  7.0.3
notebook-shim             0.2.3
numpy                     1.24.4
opencv-contrib-python     4.6.0.66
opencv-python             4.6.0.66
openpyxl                  3.1.2
opt-einsum                3.3.0
overrides                 7.4.0
packaging                 23.1
paddle-bfloat             0.1.7
paddleocr                 2.7.0.2
paddlepaddle              2.5.1
pandas                    2.0.3
pandocfilters             1.5.0
parso                     0.8.3
pdf2docx                  0.5.6
pickleshare               0.7.5
Pillow                    10.0.0
pip                       21.1.1
pkgutil-resolve-name      1.3.10
platformdirs              3.10.0
premailer                 3.10.0
prometheus-client         0.17.1
prompt-toolkit            3.0.39
protobuf                  3.20.2
psutil                    5.9.5
pure-eval                 0.2.2
pyclipper                 1.3.0.post4
pycparser                 2.21
pycryptodome              3.18.0
Pygments                  2.16.1
pymongo                   4.5.0
PyMuPDF                   1.20.2
pyparsing                 3.0.9
python-dateutil           2.8.2
python-docx               0.8.11
python-json-logger        2.0.7
pytz                      2023.3
PyWavelets                1.4.1
pywin32                   306
pywinpty                  2.0.11
PyYAML                    6.0.1
pyzmq                     25.1.1
qtconsole                 5.4.4
QtPy                      2.4.0
rapidfuzz                 3.2.0
rarfile                   4.0
referencing               0.30.2
requests                  2.31.0
rfc3339-validator         0.1.4
rfc3986-validator         0.1.1
rpds-py                   0.10.0
scikit-image              0.21.0
scikit-learn              1.3.0
scipy                     1.10.1
Send2Trash                1.8.2
setuptools                56.0.0
Shapely                   1.8.2
six                       1.16.0
sniffio                   1.3.0
soupsieve                 2.5
stack-data                0.6.2
termcolor                 2.3.0
terminado                 0.17.1
threadpoolctl             3.2.0
tifffile                  2023.7.10
tinycss2                  1.2.1
tomli                     2.0.1
tornado                   6.3.3
tqdm                      4.66.1
traitlets                 5.9.0
typing-extensions         4.7.1
tzdata                    2023.3
uri-template              1.3.0
urllib3                   2.0.4
visualdl                  2.5.3
wcwidth                   0.2.6
webcolors                 1.13
webencodings              0.5.1
websocket-client          1.6.2
werkzeug                  2.3.7
widgetsnbextension        4.0.8
zipp                      3.16.2

相关文章:

百度飞浆OCR识别表格入门python实践

1. 百度飞桨&#xff08;PaddlePaddle&#xff09; 百度飞桨&#xff08;PaddlePaddle&#xff09;是百度推出的一款深度学习平台&#xff0c;旨在为开发者提供强大的深度学习框架和工具。飞桨提供了包括OCR&#xff08;光学字符识别&#xff09;在内的多种功能&#xff0c;可…...

直接插入排序、希尔排序详解。及性能比较

直接插入排序、希尔排序详解。及性能比较 一、 直接插入排序1.1 插入排序原理1.2 代码实现1.3 直接插入排序特点总结 二、希尔排序 ( 缩小增量排序 )2.1 希尔排序原理2.2 代码实现2.3 希尔排序特点总结 三、直接插入排序和希尔排序性能大比拼 !!!3.1 如何对比性能&#xff1f;准…...

2023备战秋招Java面试八股文合集

Java就业大环境仍然根基稳定&#xff0c;市场上有很多机会&#xff0c;技术好的人前景就好&#xff0c;就看你有多大本事了。小编得到了一份很不错的资源&#xff0c;建议大家可以认真地来看看以下的资料&#xff0c;来提升一下自己的核心竞争力&#xff0c;在面试中轻松应对面…...

SLAM中的二进制词袋生成过程和工作原理

长期视觉SLAM (Simultaneous Localization and Mapping)最重要的要求之一是鲁棒的位置识别。经过一段探索期后&#xff0c;当长时间未观测到的区域重新观测时&#xff0c;标准匹配算法失效。 当它们被健壮地检测到时&#xff0c;回环检测提供正确的数据关联以获得一致的地图。…...

算法训练第五十九天

503. 下一个更大元素 II - 力扣&#xff08;LeetCode&#xff09; 代码&#xff1a; class Solution { public:vector<int> nextGreaterElements(vector<int>& nums) {vector<int> nums1(nums.begin(), nums.end());nums.insert(nums.end(), nums1.beg…...

二叉树oj题

目录 层序遍历(一) 题目 思路 代码 层序遍历(二) 题目 思路 代码 根据二叉树创建字符串 题目 思路 代码 二叉树的最近公共祖先 题目 思路 代码 暴力版 队列版 栈版 bs树和双向链表 题目 思路 代码 前序中序序列构建二叉树 题目 思路 代码 中序后序…...

华为数通方向HCIP-DataCom H12-831题库(单选题:1-20)

第1题 关于IPSG下列说法错误的是? A、IPSG可以防范IP地址欺骗攻击 B、IPSG是一种基于三层接口的源IP地址过滤技术 C、IPSG可以开启IP报文检查告警功能,联动网管进行告警 D、可以通过IPSG防止主机私自更改IP地址 答案: B 解析: IPSG(入侵防护系统)并不是基于三层接口的源I…...

TableConvert-免费在线表格转工具 让表格转换变得更容易

在线表格转工具TableConvert TableConvert 是一个基于web的免费且强大在线表格转换工具&#xff0c;它可以在 Excel、CSV、LaTeX 表格、HTML、JSON 数组、insert SQL、Markdown 表格 和 MediaWiki 表格等之间进行互相转换&#xff0c;也可以通过在线表格编辑器轻松的创建和生成…...

伦敦金实时行情中的震荡

不知道各位伦敦金投资者&#xff0c;曾经花过多长的时间来观察行情走势的表现&#xff0c;不知道大家是否有统计过&#xff0c;其实行情有60%-70%的时间&#xff0c;都会处于没有明显方向的震荡行情之中呢&#xff1f;面对长期的震荡行情&#xff0c;伦敦金投资者道理应该如何应…...

蓝桥杯打卡Day7

文章目录 阶乘的末尾0整除问题 一、阶乘的末尾0IO链接 本题思路&#xff1a;由于本题需要求阶乘的末尾0&#xff0c;由于我们知道2*510可以得到一个0&#xff0c;那么我们就可以找出2的数和5的数&#xff0c;但是由于是阶乘&#xff0c;所以5的数量肯定是小于2的数量&#xf…...

Mobile Vision Transformer-based Visual Object Tracking

论文作者&#xff1a;Goutam Yelluru Gopal,Maria A. Amer 作者单位&#xff1a;Concordia University 论文链接&#xff1a;https://arxiv.org/pdf/2309.05829v1.pdf 项目链接&#xff1a;https://github.com/goutamyg/MVT 内容简介&#xff1a; 1&#xff09;方向&#…...

HTTP反爬困境

尊敬的程序员朋友们&#xff0c;大家好&#xff01;今天我要和您分享一篇关于解决反爬困境的文章。在网络爬虫的时代&#xff0c;许多网站采取了反爬措施来保护自己的数据资源。然而&#xff0c;作为程序员&#xff0c;我们有着聪明才智和技术能力&#xff0c;可以应对这些困境…...

从零开始探索C语言(九)----函数指针与回调函数

函数指针 函数指针是指向函数的指针变量。 通常我们说的指针变量是指向一个整型、字符型或数组等变量&#xff0c;而函数指针是指向函数。 函数指针可以像一般函数一样&#xff0c;用于调用函数、传递参数。 函数指针变量的声明&#xff1a; typedef int (*fun_ptr)(int,i…...

智慧工厂的基础是什么?功能有哪些?

关键词&#xff1a;智慧工厂、智慧工厂数字化、设备设施数字化、智能运维、工业互联网 1.智慧工厂的定义 智慧工厂是以数字化信息形式的工厂模型为基础&#xff0c;以实现制造系统离线分析设计和实际生产系统运行状态在线监控的新型工厂。智慧工厂的建设在于以高度集成的信息化…...

LeetCode 238. 除自身以外数组的乘积

题目链接 力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 题目解析 使用前缀和进行解决该题&#xff0c;只不过与之前前缀和不同的是这个题目计算前缀和的时候不需要计算当前元素&#xff0c;也就是当前位置前缀和的值其实是不包含当前元素的前缀和。…...

点击劫持概念及解决办法

1.点击劫持的概念 点击劫持 (Clickjacking) 技术又称为界面伪装攻击 (UI redress attack )&#xff0c;是一种视觉上的欺骗手段。攻击者使用一个或多个透明的 iframe 覆盖在一个正常的网页上&#xff0c;然后诱使用户在该网页上进行操作&#xff0c;当用户在不知情的情况下点击…...

【Spring】手动实现Spring底层机制-问题的引出

&#x1f384;欢迎来到边境矢梦的csdn博文&#x1f384; &#x1f384;本文主要梳理手动实现Spring底层机制-问题的引出 &#x1f384; &#x1f308;我是边境矢梦&#xff0c;一个正在为秋招和算法竞赛做准备的学生&#x1f308; &#x1f386;喜欢的朋友可以关注一下&#x1…...

Java - List 去重,获取唯一值,分组列出所属对应集合

问题&#xff1a;List 去重&#xff0c;获取唯一值&#xff0c;分组列出所属对应集合 方案一&#xff1a;这个不需要额外的内存占用 //遍历后判断赋给另一个list集合public static void main(String[] args){List<String> list new ArrayList<String>(); lis…...

离散高斯抽样(Discrete Gaussian Sampling)

离散高斯抽样 离散高斯抽样&#xff08;Discrete Gaussian Sampling&#xff09;是一种常见于密码学和数学领域的随机采样方法。它通常用于构建基于格&#xff08;lattice&#xff09;的密码学方案&#xff0c;如基于格的加密和数字签名。Discrete Gaussian Sampling 的主要目…...

Elasticsearch:什么是生成式人工智能?

生成式人工智能定义 给学生的解释&#xff08;基本&#xff09;&#xff1a; 生成式人工智能是一种可以创造新的原创内容的技术&#xff0c;例如艺术、音乐、软件代码和写作。 当用户输入提示时&#xff0c;人工智能会根据从互联网上现有示例中学到的知识生成响应&#xff0c;…...

基于springboot家庭影像管理系统设计与开发(源码+精品论文+答辩PPT等资料)

博主介绍&#xff1a;CSDN毕设辅导第一人、靠谱第一人、全网粉丝50W,csdn特邀作者、博客专家、腾讯云社区合作讲师、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交…...

美胸-年美-造相Z-Turbo入门实战:跟着步骤操作,快速产出作品

美胸-年美-造相Z-Turbo入门实战&#xff1a;跟着步骤操作&#xff0c;快速产出作品 1. 快速了解美胸-年美-造相Z-Turbo 美胸-年美-造相Z-Turbo是一款基于Z-Image-Turbo架构优化的文生图模型&#xff0c;特别擅长生成具有特定艺术风格的人物图像。这个镜像已经预装了所有必要的…...

游戏界面开发与UI框架:零基础上手卡牌游戏界面开发与性能调优

游戏界面开发与UI框架&#xff1a;零基础上手卡牌游戏界面开发与性能调优 【免费下载链接】UiCard Generic UI for card games like Hearthstone, Magic Arena and Slay the Spire... 项目地址: https://gitcode.com/gh_mirrors/ui/UiCard 问题诊断&#xff1a;卡牌UI开…...

nli-distilroberta-base企业应用:HR简历筛选中‘要求’与‘经历’逻辑匹配系统

nli-distilroberta-base企业应用&#xff1a;HR简历筛选中要求与经历逻辑匹配系统 1. 项目背景与价值 在人力资源招聘流程中&#xff0c;简历筛选是最耗时的工作环节之一。传统的人工筛选方式面临两大核心痛点&#xff1a; 效率低下&#xff1a;HR需要逐份阅读简历&#xff…...

10分钟上手!Java开发者也能轻松调用AI,Spring AI Alibaba手把手教你构建智能体!

介绍&#xff1a;还在羡慕Python开发者能轻松调用AI&#xff1f;Spring AI Alibaba让Java也能10分钟构建一个能“思考”和“行动”的智能体&#xff0c;这次手把手教&#xff01; 系统&#xff1a;Windows jdk版本&#xff1a;17 maven&#xff1a;3.8 模型API Key&#xff1a…...

百川2-13B量化模型+OpenClaw:3种低成本个人AI助手应用方案

百川2-13B量化模型OpenClaw&#xff1a;3种低成本个人AI助手应用方案 1. 为什么选择量化模型OpenClaw组合 去年冬天&#xff0c;当我第一次尝试在本地部署大模型时&#xff0c;被显存不足的报错狠狠教育了一顿——我的RTX 3060显卡根本无法承载常规13B参数的模型。直到发现百…...

CosyVoice语音克隆应用案例:为短视频配音、制作个性化语音问候消息

CosyVoice语音克隆应用案例&#xff1a;为短视频配音、制作个性化语音问候消息 最近帮朋友做短视频账号&#xff0c;发现一个挺头疼的问题&#xff1a;每次拍完视频&#xff0c;找配音特别麻烦。要么自己录&#xff0c;口音重还费时间&#xff1b;要么用AI配音&#xff0c;声音…...

用极空间 NAS 搭专属博客:Typecho 部署全攻略,把创作握在自己手里

前言 作为常年折腾各类私有部署工具的科技爱好者&#xff0c;我一直觉得「真正的创作自由」&#xff0c;藏在自己能掌控的服务器里。试过不少博客程序&#xff0c;要么配置繁琐&#xff0c;要么资源占用高&#xff0c;直到把 Typecho 和极空间 NAS 结合&#xff0c;才找到最舒…...

Qwen-Turbo-BF16惊艳案例:霓虹雨街中不同材质(金属/玻璃/布料)反射率差异还原

Qwen-Turbo-BF16惊艳案例&#xff1a;霓虹雨街中不同材质&#xff08;金属/玻璃/布料&#xff09;反射率差异还原 你有没有想过&#xff0c;为什么一张好的夜景图片&#xff0c;尤其是那种霓虹闪烁的雨夜街景&#xff0c;看起来那么真实、那么有“感觉”&#xff1f; 关键往往…...

StarWind V2V Image Converter实战:轻松将IMG镜像转换为VMware VMDK格式

1. 为什么需要IMG转VMDK&#xff1f; 虚拟机镜像格式转换是IT运维中的常见需求。我遇到过不少这样的情况&#xff1a;手头有一个现成的IMG格式镜像文件&#xff0c;但当前虚拟化环境用的是VMware。这时候就需要把IMG转换成VMware原生支持的VMDK格式。 IMG是一种通用的磁盘镜像格…...