嵌套表格图像文本提取求助:Observation列OCR提取失败
解决嵌套表格Observation列OCR提取为空的问题
调整img2table参数适配嵌套表格
嵌套表格的特殊结构容易被默认参数忽略,修改以下参数尝试修复:
- 将
implicit_rows设为True,开启隐含行识别 - 将
borderless_tables设为True,适配嵌套表格可能存在的弱边框/无边框情况 - 增加
flatten_nested_tables=True参数(img2table支持的版本),扁平化嵌套结构便于提取
修改后的代码:
from img2table.document import Image from img2table.ocr import PaddleOCR ocr = PaddleOCR(kw={ 'ocr_version': 'PP-OCRv3', 'structure_version': 'PP-StructureV2', 'det_model_dir': './Python_V10/PaddleOCR/ch_PP-OCRv3_det_infer', 'rec_model_dir': './Python_V10/PaddleOCR/en_PP-OCRv3_rec_infer', 'cls_model_dir': './Python_V10/PaddleOCR/ch_ppocr_mobile_v2.0_cls_infer', 'table_model_dir': './Python_V10/PaddleOCR/en_ppstructure_mobile_v2.0_SLANet_infer', 'layout_model_dir': './Python_V10/PaddleOCR/picodet_lcnet_x1_0_fgd_layout_infer', 'lang': 'en', }) img = Image('SampleTable.png') # 调整参数适配嵌套表格 extracted_table = img.extract_tables(ocr=ocr, implicit_rows=True, borderless_tables=True, min_confidence=0, flatten_nested_tables=True) display_html(extracted_table[0].html_repr(title='Result'), raw=True)
单独提取Observation列区域进行OCR
如果整表提取仍失败,可手动裁剪Observation列的图像区域,单独用PaddleOCR识别:
from PIL import Image as PILImage from paddleocr import PaddleOCR # 初始化OCR ocr = PaddleOCR(ocr_version='PP-OCRv3', rec_model_dir='./Python_V10/PaddleOCR/en_PP-OCRv3_rec_infer', lang='en') # 裁剪Observation列区域(需根据实际图像坐标调整x1, y1, x2, y2) img = PILImage.open('SampleTable.png') observation_col = img.crop((x1, y1, x2, y2)) observation_col.save('observation_col.png') # 单独识别该区域 result = ocr.ocr('observation_col.png', cls=False) # 提取并拼接文本 extracted_text = '\n'.join([line[1][0] for line in result[0]]) print(extracted_text)
目标文本翻译
- 原文:"According our result to the requirements, the balance..."
翻译:"根据我们的结果与要求对比,余额……" - 原文:"After the monitor we found that the balance ... or equal to."
翻译:"经过监控我们发现,余额……或等于。"
内容的提问来源于stack exchange,提问作者xxleonn
相关产品推荐
相关产品推荐

