表格识别有偏误 #14461
Replies: 2 comments
-
表格识别出现偏误的情况可能由多种因素导致,包括模型选择、参数配置、输入图像质量等。以下是一些针对你描述的问题的排查方向和改进措施: 1. 检查模型路径和版本你使用的
2. 调整布局分析模型表格识别依赖布局分析模型(layout analysis model)对图像中的区域进行分类。如果表格识别不完整或误检,尝试以下调整:
3. 提高输入图像质量OCR 的效果对输入图像质量非常敏感,确保:
4. 调试和可视化结果在检测结果中输出中间结果,检查表格检测的边界框是否正确: from paddleocr import draw_structure_result
# 可视化检测结果
draw_img = draw_structure_result(img, result, font_path='path_to_font.ttf')
cv2.imwrite('output.jpg', draw_img) 如果发现检测框错乱或不完整,可以通过调整模型或后处理逻辑改进。 5. 调整后处理参数表格识别过程中,后处理参数可能影响结果。你可以尝试调整
6. 参考相关讨论和官方文档根据你的问题描述,有一篇相关的 GitHub 讨论:pdf 图表检测不准确。其中提到:
7. 总结推荐步骤
如果问题仍未解决,可以提供更多上下文信息(如具体错误日志或输入输出示例),以便进一步诊断! Response generated by feifei-bot | chatgpt-4o-latest |
Beta Was this translation helpful? Give feedback.
-
thanks!
after promoting the clarity of fig, the identification become much more accurate. it solve my mojor problem. hope this quick reply finds you well!
…---- 回复的原邮件 ----
发件人 Wang ***@***.***> 日期 2024年12月28日 23:50 收件人 ***@***.***> 抄送至 JIADIAN ***@***.***>***@***.***> 主题 Re: [PaddlePaddle/PaddleOCR] 表格识别有偏误 (Discussion #14461)
表格识别出现偏误的情况可能由多种因素导致,包括模型选择、参数配置、输入图像质量等。以下是一些针对你描述的问题的排查方向和改进措施:
1. 检查模型路径和版本你使用的 rec_model_dir, cls_model_dir, 和 det_model_dir 指向的是本地模型路径,确保以下几点:
所有模型路径正确,并且模型文件完整。 使用与 PPStructure 兼容的模型版本。例如,你的 det_model_dir 使用的是 ch_ppocr_server_v2.0_det_train,确保它与其他模型版本一致。 如果模型版本较旧,建议更新到最新的 PaddleOCR 模型版本(如 v3.0 或更高)。2. 调整布局分析模型表格识别依赖布局分析模型(layout analysis model)对图像中的区域进行分类。如果表格识别不完整或误检,尝试以下调整:
更换布局模型:
table_engine = PPStructure(
layout_model_dir="path_to_new_layout_model",
layout=True, # 启用版面分析
show_log=True,
use_gpu=False
)
官方推荐的布局模型路径可以参考 PaddleOCR 文档.
尝试 picodet 布局模型:
你可以尝试使用 picodet_lcnet_x1_0_fgd_layout_infer,这是一个更强大的版面分析模型。
table_engine = PPStructure(
layout_model_dir="picodet_lcnet_x1_0_fgd_layout_infer",
layout=True,
show_log=True
)
但需要注意,这可能导致图像中的其他区域被误检测为表格。如果误检过多,可以通过后处理逻辑过滤非表格区域。
3. 提高输入图像质量OCR 的效果对输入图像质量非常敏感,确保:
图像分辨率足够高,表格的文字和线条清晰可辨。 如果表格倾斜或有噪声,尝试预处理图像(如二值化、去噪、校正倾斜)。 代码示例:# 图像预处理示例
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
_, img_bin = cv2.threshold(gray, 128, 255, cv2.THRESH_BINARY_INV)
processed_img = cv2.dilate(img_bin, None, iterations=1)
4. 调试和可视化结果在检测结果中输出中间结果,检查表格检测的边界框是否正确:
from paddleocr import draw_structure_result
# 可视化检测结果
draw_img = draw_structure_result(img, result, font_path='path_to_font.ttf')
cv2.imwrite('output.jpg', draw_img)
如果发现检测框错乱或不完整,可以通过调整模型或后处理逻辑改进。
5. 调整后处理参数表格识别过程中,后处理参数可能影响结果。你可以尝试调整 PPStructure 的配置参数,例如:
cell_threshold 和 edge_threshold,用于控制单元格和边界的检测阈值。 参数调整示例:table_engine = PPStructure(
show_log=True,
use_gpu=False,
layout=True,
cell_threshold=0.5, # 提高单元格检测的灵敏度
edge_threshold=0.2 # 控制边界检测阈值
)
6. 参考相关讨论和官方文档根据你的问题描述,有一篇相关的 GitHub 讨论:pdf 图表检测不准确。其中提到:
使用 lang="en" 时,可能导致表格识别错误。如果你的图像中包含中英文混合内容,建议设置 lang="ch" 或保持默认。 如果 picodet 布局模型误检过多,可以结合自定义的后处理脚本或过滤逻辑。7. 总结推荐步骤确保模型路径和版本正确,必要时更新到最新版。 尝试 picodet 布局模型,并根据需求调整 cell_threshold 和 edge_threshold 参数。 优化输入图像质量,确保图像清晰、无失真。 可视化中间结果,定位问题根源(如表格检测框错乱、文字识别错误等)。 参考官方文档和相关讨论,结合自定义后处理逻辑优化检测结果。如果问题仍未解决,可以提供更多上下文信息(如具体错误日志或输入输出示例),以便进一步诊断!
Response generated by feifei-bot | chatgpt-4o-latest
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.Message ID: ***@***.***>
|
Beta Was this translation helpful? Give feedback.
-
from paddleocr import PaddleOCR, draw_structure_result, save_structure_res, PPStructure
import os
import cv2
import pandas as pd
table_engine = PPStructure(show_log = True , use_gpu = False ,
rec_model_dir=r'D:/PPStr/rec/ch_ppocr_server_v2.0_rec_pre/ch_ppocr_server_v2.0_rec_pre',
cls_model_dir=r'D:/PPStr/cls/ch_ppocr_mobile_v2.0_cls_train/ch_ppocr_mobile_v2.0_cls_train',
det_model_dir=r'D:/PPStr/det/ch_ppocr_server_v2.0_det_train' )
image_path = r"C:\Users\Desktop\wxy_zgwxx_1937_1938.jpg"
img = cv2.imread(image_path)
result = table_engine(img)
print(result)
save_structure_res(result,'C:/Users/Desktop/a','a')
非专业人士,刚刚接触这个项目,但是很纳闷为什么这么标准的表格无法准确识别,我应该做什么?
Beta Was this translation helpful? Give feedback.
All reactions