Tesseract带有表或行的文档的OCR文本顺序

der*_*rdc 6 ocr tesseract

我使用Tesseract OCR将扫描的PDF转换为纯文本.总体而言,它非常有效,但我对扫描文本的顺序有疑问.具有表格数据的文档似乎逐列扫描,这似乎是逐行扫描的更自然的方式.一个非常小的例子是:

This is column A, row 1   This is column B, row 1    This is column C, row 1
This is column A, row 2   This is column B, row 2    This is column C, row 2
Run Code Online (Sandbox Code Playgroud)

产生以下文字:

This is column A, row 1
This is column A, row 2
This is column B, row 1
This is column B, row 2
This is column C, row 1
This is column C, row 2
Run Code Online (Sandbox Code Playgroud)

我开始阅读文档并进行猜测和测试,这里记录参数的暴力方法,但如果有人已经解决了类似的问题,我将非常感谢对此修复的洞察力.它也可能是一些训练数据,但我不确切知道它是如何工作的.

pti*_*tim 6

尝试在单列页面细分模式之一中运行tesseract :

tesseract input.tif output-filename --psm 6

默认情况下,Tesseract在分割图像时需要一页文本。如果您只是想对一个较小的区域进行OCR,请使用-psm参数尝试使用其他细分模式。请注意,在裁剪得太紧的文本上添加白色边框也可能会有所帮助,请参阅问题398。

要查看支持的页面细分模式的完整列表,请使用tesseract -h。这是自3.21起的[ed:摘录]列表:

  1. 全自动页面分割,但没有OSD。(默认)
  2. 假设一列可变大小的文本。
  3. 假定单个统一的垂直对齐文本块。
  4. 假设一个统一的文本块。

请参阅此处的示例:#using-different-page-segmentation-modes