机器视觉基础之PP-Structure入门
PaddleOCR下的PP-Structure一般用于文档图片的版面分析、表格识别等理解工作, 通俗些说就是自动帮助识别图片哪些部分是图片分组, 哪些是文字, 哪些是表格等, 且提取出里面的文字和图片内容。
表格内容识别在不少业务场景,例如表格形态的机打单据,证件都有较好的识别率和应用场景。这里我们着重关注于表格内容识别,图片关键信息提取后续补充。
1.依赖安装
pip install paddlepaddle -i https://mirror.baidu.com/pypi/simple
pip install "paddleocr>=2.6.0.3" -i https://mirror.baidu.com/pypi/simple
pip install paddleclas>=2.4.3 -i https://mirror.baidu.com/pypi/simple
2.官方例子
具体的图片素材可以在 https://gitee.com/paddlepaddle/PaddleOCR/tree/release/2.6/ppstructure 下载
import os
import cv2
from paddleocr import PPStructure, draw_structure_result, save_structure_res
table_engine = PPStructure(show_log=True)
save_folder = './output'
img_path = './doc/table/table.jpg'
img = cv2.imread(img_path)
# result = table_engine(img, True)
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)
table.jpg原始内容:
当前目录输出./output/table/[6, 0, 365, 289]_0.xlsx和日志res_0.txt, 合适的表格图片识别率还是高的。
解析API就简单一个PPStructure, 我们从日志文件可以对应到返回的result字典数据结构。
字段 | 说明 |
---|---|
type | 图片区域的类型 |
bbox | 图片区域的在原图的坐标,分别[左上角x,左上角y,右下角x,右下角y] |
res | 图片区域的OCR或表格识别结果。表格: 一个dict,字段说明如下html: 表格的HTML字符串,在代码使用模式下,前向传入return_ocr_result_in_table=True可以拿到表格中每个文本的检测识别结果,对应为如下字段:boxes: 文本检测坐标 rec_res: 文本识别结果。OCR: 一个包含各个单行文字的检测坐标和识别结果的元组 |
result里面的结果默认只有html, 不大实用,一般是建议直接解析对应的type=table的excel文件, 虽然可以支持设置return_ocr_result_in_table=True返回解析内容到rec_res, 但rec_res结构化是数组, 难对应表格内容, 并且经过测试有bug.
result = table_engine(img, True)
即设置return_ocr_result_in_table=True, 就不能调用save_structure_res, 有个JSON DUMP的错误, 具体的issue已提交到 https://github.com/PaddlePaddle/PaddleOCR/issues/8611 效率很高一早就修复了。
3.总结
最后还有不少的可调参数, 可定制化需要多去摸索。
字段 | 说明 | 默认值 |
---|---|---|
output | 结果保存地址 | ./output/table |
table_max_len | 表格结构模型预测时,图像的长边resize尺度 | 488 |
table_model_dir | 表格结构模型 inference 模型地址 | None |
table_char_dict_path | 表格结构模型所用字典地址 | ../ppocr/utils/dict/table_structure_dict.txt |
merge_no_span_structure | 表格识别模型中,是否对’‘和’’ 进行合并 | False |
layout_model_dir | 版面分析模型 inference 模型地址 | None |
layout_dict_path | 版面分析模型字典 | ../ppocr/utils/dict/layout_publaynet_dict.txt |
layout_score_threshold | 版面分析模型检测框阈值 | 0.5 |
layout_nms_threshold | 版面分析模型nms阈值 | 0.5 |
kie_algorithm | kie模型算法 | LayoutXLM |
ser_model_dir | ser模型 inference 模型地址 | None |
ser_dict_path | ser模型字典 | ../train_data/XFUND/class_list_xfun.txt |
mode | structure or kie | structure |
image_orientation | 前向中是否执行图像方向分类 | False |
layout | 前向中是否执行版面分析 | True |
table | 前向中是否执行表格识别 | True |
ocr | 对于版面分析中的非表格区域,是否执行ocr。当layout为False时会被自动设置为False | True |
recovery | 前向中是否执行版面恢复 | False |
save_pdf | 版面恢复导出docx文件的同时,是否导出pdf文件 | False |
structure_version | 模型版本,可选 PP-structure和PP-structurev2 | PP-structure |
相关文章
- Jgit的使用笔记
- 利用Github Action实现Tornadofx/JavaFx打包
- 叹息!GitHub Trending 即将成为历史!
- 微软软了?开源社区讨论炸锅,GitHub CEO 亲自来答
- GitHub Trending 列表频现重复项,前后端都没去重?
- Photoshop Elements 2021版本软件安装教程(mac+windows全版本都有)
- (ps全版本)Photoshop 2020的安装与破解教程(mac+windows全版本都有)
- (ps全版本)Photoshop cc2018的安装与破解教程(mac+windows全版本,包括2023
- 环境搭建:Oracle GoldenGate 大数据迁移到 Redshift/Flat file/Flume/Kafka测试流程
- 每个开发人员都要掌握的:最小 Linux 基础课
- 来撸羊毛了!Windows 环境下 Hexo 博客搭建,并部署到 GitHub Pages
- 超实用!手把手入门 MongoDB:这些坑点请一定远离
- 【GitHub日报】22-10-09 zustand、neovim、webtorrent、express 等4款App今日上新
- 【GitHub日报】22-10-10 brew、minio、vite、seaweedfs、dbeaver 等8款App今日上新
- 【GitHub日报】22-10-11 cobra、grafana、vue、ToolJet、redwood 等13款App今日上新
- Photoshop 2018 下载及安装教程(mac+windows全版本都有,包括最新的2023)
- Photoshop 2017 下载及安装教程(mac+windows全版本都有,包括最新的2023)
- Photoshop 2020 下载及安装教程(mac+windows全版本都有,包括最新的2023)
- Photoshop 2023 资源免费下载(mac+windows全版本都有,包括最新的2023)
- 最新版本Photoshop CC2018软件安装教程(mac+windows全版本都有,包括2023