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 嵌入文本,并高度压缩嵌入的图像,以便文件不占用几乎相同的空间。我发现 Adobe 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)
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 嵌入的文本)并使用 Adobe 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 文件有什么建议吗?