RapidAI / RapidOCRPDF

Based on RapidOCR, extract the PDF content.
Apache License 2.0
124 stars 14 forks source link

rapidocr_pdf识别遇到不识别,识别的结果错乱等问题。 #5

Closed lyplay2 closed 9 months ago

lyplay2 commented 10 months ago

用rapidocr_pdf识别体检报单,征信报告单速度较快,正确率还行。 不过遇到几个问题 1、同样的报告格式,描述出来的结果存放在文本文件中。出现的顺序会不一样 比如,按左右上下顺序 是 项目1、项目2、项目3、项目4 显示的结果 有时是 1234,有时是2341... 这种的话不便于处理提取关键信息。 2、表格中的值如果 是 一两位数字, 如 2,11等,会被忽略,识别不出来。

SWHL commented 10 months ago

方便的话,请给出可以复现的代码和附件。 单凭描述,没办法排查

lyplay2 commented 10 months ago

import time from rapidocr_pdf import PDFExtracter

if name == 'main': start = time.time() pdf_extracter = PDFExtracter()

将scan_1.pdf文件中的文本提取出来

texts = pdf_extracter('scan_3.pdf') 
merged = ''   
for text in texts:
    for line in text:
        merged += line + '\n'

end = time.time()
print('总用时:', end - start)
with open('output3.txt', 'w', encoding='utf-8') as f:
    f.write(merged)
f.close()   
因扫描件有个人姓名等隐私信息。我发你QQ邮箱了,烦请抽空看一下。
SWHL commented 9 months ago

1、同样的报告格式,描述出来的结果存放在文本文件中。出现的顺序会不一样 比如,按左右上下顺序 是 项目1、项目2、项目3、项目4 显示的结果 有时是 1234,有时是2341... 这种的话不便于处理提取关键信息。

该部分问题,我这里的确复现了,原因是虽是同样报告样式,但是检测文本框的坐标有轻微差别,就会导致输出时,排序不一。 如果想要提取关键信息,建议结合正则表达式和框坐标来提取。

2、表格中的值如果 是 一两位数字, 如 2,11等,会被忽略,识别不出来。

该问题是因为单字这种被文本检测算法漏检了,可以尝试调节参数。具体调节可参考RapidOCR 文档,后续会考虑优化这块。