如何在保留来自 OCR 的嵌入文本的同时压缩 Tesseract 编码的 PDF?

Jas*_*son 5 compression pdf ocr adobe-acrobat tesseract-ocr

我一直在尝试使用 Tesseract 对我的 PDF 进行 OCR,并且大部分都取得了成功,尤其是德国 Fraktur 文本(旧式哥特式印刷),Adobe Acrobat 等工具无法正确识别。

问题是Tesseract的输出文件比较大,想OCRing后压缩。但是,当我使用 Ghostscript 压缩文件时,他把嵌入的 OCR 文本搞砸了。同样,如果我使用 ImageMagick,嵌入的文本将被删除。有没有解决的办法?从理论上讲,我可以在 OCR 之前进行压缩,但这会使 OCR 准确度变差。

一般来说,我的目标是在我的输出 PDF 文件中包含高质量的 OCR 嵌入文本,并高度压缩嵌入的图像,以便文件不占用几乎相同的空间。我发现 Adob​​e Acrobat Pro 的“另存为其他 > 缩小尺寸的 PDF”功能可以高度压缩图像,但会搞砸任何 OCR 文本。无论文件是在 Acrobat 中进行 OCR 处理,还是使用像 Tesseract 这样的工具,都是如此。

这是我当前的工作流程,使用示例 pdf

将 PDF 拆分为 TIFF 文件

pdftk infile.pdf burst output "temp/page_%03d.pdf"
dpi=130 #this is the dpi of the particular file
parallel convert -verbose -density $dpi "{}" -depth 8 -background white -compress zip "{}.tiff" ::: temp/*.pdf
Run Code Online (Sandbox Code Playgroud)

在每个 TIFF 文件上运行 Tesseract(请参阅示例文件的输出

language=deu_frak
parallel tesseract {} {} -l $language pdf ::: temp/*.tiff
Run Code Online (Sandbox Code Playgroud)
  • 当我将输出的 PDF 文件与 Ghostscript 结合时,我得到了一个像这样的文件,它搞砸了嵌入的文本
  • 当我与PDFTK(如PDFTK温度/ *。PDF猫输出outfile.pdf`)将它们结合起来,我得到这样一个文件,这一个,它保持了嵌入文本,但不知何故使得文件较大
  • 然后当我尝试使用 ImageMagic(例如convert -density 130x130 -quality 5 -compress jpeg outfile-pdftk.pdf outfile-pdftk-imagemagick.pdf)压缩该文件时,它会删除嵌入的 OCR 文本(输出

Tesseract 似乎不会压缩输出 PDF 中的图像,这是意料之中的 - 它的工作是对文件进行 OCR,而不是压缩输出。

例如,在最初的 Tesseract OCR 文件上,pdfimages -list temp/page_001.pdf.tiff.pdf产生:

page   num  type   width height color comp bpc  enc interp  object ID x-ppi y-ppi size ratio
--------------------------------------------------------------------------------------------
   1     0 image    1067  1508  rgb     3   8  jpeg   no        11  0   129   130  318K 6.7%
Run Code Online (Sandbox Code Playgroud)

...这表明 PDF 中的图像对象并未完全以最佳方式存储。它仍然是RGB,而不是黑白。相比之下,在使用 ImageMagick 压缩时,pdfimages -list给出:

  pdfimages -list outfile-pdftk-imagemagick.pdf
page   num  type   width height color comp bpc  enc interp  object ID x-ppi y-ppi size ratio
--------------------------------------------------------------------------------------------
   1     0 image    1075  1520  gray    1   8  jpeg   no         8  0   130   131 54.0K 3.4%
   1     1 smask    1075  1520  gray    1   8  image  no         8  0   130   131 25.1K 1.6%
   2     2 image    1075  1520  gray    1   8  jpeg   no        22  0   130   131 59.9K 3.8%
   2     3 smask    1075  1520  gray    1   8  image  no        22  0   130   131 25.1K 1.6%
   3     4 image    1075  1520  gray    1   8  jpeg   no        36  0   130   131 45.2K 2.8%
   3     5 smask    1075  1520  gray    1   8  image  no        36  0   130   131 25.1K 1.6%
   4     6 image    1075  1520  gray    1   8  jpeg   no        50  0   130   131 62.8K 3.9%
   4     7 smask    1075  1520  gray    1   8  image  no        50  0   130   131 25.1K 1.6%
   5     8 image    1075  1520  gray    1   8  jpeg   no        64  0   130   131 61.1K 3.8%
   5     9 smask    1075  1520  gray    1   8  image  no        64  0   130   131 25.1K 1.6%
   6    10 image    1075  1520  gray    1   8  jpeg   no        78  0   130   131 63.4K 4.0%
   6    11 smask    1075  1520  gray    1   8  image  no        78  0   130   131 25.1K 1.6%
   7    12 image    1075  1520  gray    1   8  jpeg   no        92  0   130   131 65.1K 4.1%
   7    13 smask    1075  1520  gray    1   8  image  no        92  0   130   131 25.1K 1.6%
   8    14 image    1075  1520  gray    1   8  jpeg   no       106  0   130   131 61.0K 3.8%
   8    15 smask    1075  1520  gray    1   8  image  no       106  0   130   131 25.1K 1.6%
   9    16 image    1075  1520  gray    1   8  jpeg   no       120  0   130   131 66.8K 4.2%
   9    17 smask    1075  1520  gray    1   8  image  no       120  0   130   131 25.1K 1.6%
  10    18 image    1075  1520  gray    1   8  jpeg   no       134  0   130   131 65.6K 4.1%
  10    19 smask    1075  1520  gray    1   8  image  no       134  0   130   131 25.1K 1.6%
Run Code Online (Sandbox Code Playgroud)

正如我们所看到的,图像占用的空间更少,但是 OCR 嵌入的文本被删除了,不知何故,文件更少了。相比之下,如果我使用原始文件(没有 OCR 嵌入的文本)并使用 Adob​​e Acrobat 的“另存为其他 > 缩小尺寸的 PDF”压缩它,我会得到:

  pdfimages -list infile-adobe.pdf 
page   num  type   width height color comp bpc  enc interp  object ID x-ppi y-ppi size ratio
--------------------------------------------------------------------------------------------
   1     0 image    1000  1499  gray    1   8  jpx    no        38  0   129   129 78.1K 5.3%
   2     1 image    1000  1499  gray    1   8  jpx    no         3  0   129   129 89.1K 6.1%
   3     2 image    1000  1499  gray    1   8  jpx    no         6  0   129   129 65.6K 4.5%
   4     3 image    1000  1499  gray    1   8  jpx    no         9  0   129   129 97.7K 6.7%
   5     4 image    1000  1499  gray    1   8  jpx    no        12  0   129   129 95.4K 6.5%
   6     5 image    1000  1499  gray    1   8  jpx    no        15  0   129   129 98.7K 6.7%
   7     6 image    1000  1499  gray    1   8  jpx    no        18  0   129   129  102K 6.9%
   8     7 image    1000  1499  gray    1   8  jpx    no        21  0   129   129 94.6K 6.5%
   9     8 image    1000  1499  gray    1   8  jpx    no        24  0   129   129  105K 7.2%
  10     9 image    1000  1499  gray    1   8  jpx    no        27  0   129   129  103K 7.1%
Run Code Online (Sandbox Code Playgroud)

... 正如我们所见,Adobe Acrobat 似乎使用 JPEG2000 (JPX) 压缩图像,由于专利问题,Ghostscript 或 ImageMagick 无法使用该格式。

总的来说,关于如何压缩 Tesseract-OCR 的 PDF 文件有什么建议吗?