Я экспериментировал с использованием Tesseract для распознавания моих PDF-файлов, и он был в основном успешным, особенно с текстами немецкого языка Fraktur (готический шрифт старого стиля), которые такие инструменты, как Adobe Acrobat, не могут правильно распознать.
Проблема в том, что выходные файлы из Tesseract довольно большие, и я хочу сжать их после распознавания текста. Однако, когда я использую Ghostscript для сжатия файлов, встроенный текст OCR он испортил. Точно так же, если я использую ImageMagick, встроенный текст удаляется. Это можно обойти? Теоретически я мог бы сжать перед распознаванием, но это ухудшило бы точность распознавания.
Вообще говоря, моя цель состоит в том, чтобы в моих выходных PDF-файлах был встроен высококачественный OCR-текст, а встроенные изображения были бы сильно сжаты, чтобы файлы не занимали почти столько же места. Я обнаружил, что функция Adobe Acrobat Pro «Сохранить как другое> PDF уменьшенного размера» сильно сжимает изображения, но искажает любой текст OCR. Это верно, независимо от того, были ли файлы распознаны в Acrobat или с помощью инструмента, такого как 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
Запустите Tesseract для каждого из файлов TIFF (см . Вывод файла примера)
language=deu_frak
parallel tesseract {} {} -l $language pdf ::: temp/*.tiff
- Когда я объединить выходной 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, что и следовало ожидать - его работа заключается в том, чтобы распечатывать файлы, а не сжимать вывод.
Например, в начальных файлах 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%
... что указывает на то, что объект изображения в 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%
Как мы видим, изображения занимают меньше места, однако текст, встроенный в 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%
... Как мы видим, Adobe Acrobat сжимает изображения с помощью JPEG2000 (JPX), который недоступен Ghostscript или ImageMagick из-за проблем с патентами.
В целом, есть ли какие-либо предложения о том, как сжимать файлы PDF Tesseract-OCR?