Como compactar PDFs codificados por Tesseract enquanto mantém texto incorporado do OCR?

2
Eu tenho experimentado com o uso do Tesseract para OCR my PDFs, e tem sido bem-sucedido principalmente, particularmente com textos em alemão do Fraktur (o antigo estilo gothic print), que ferramentas como o Adobe Acrobat não reconhecem corretamente.

O problema é que os arquivos de saída do Tesseract são bastante grandes e eu quero compactá-los após o OCR. No entanto, quando eu uso o Ghostscript para compactar os arquivos, o texto do OCR embutido está bagunçado. Da mesma forma, se eu usar o ImageMagick, o texto incorporado será removido. Existe uma maneira de contornar isso? Teoricamente eu poderia comprimir antes de OCR, mas isso pioraria a precisão do OCR.

De modo geral, meu objetivo é ter texto OCR incorporado de alta qualidade em meus arquivos PDF de saída e ter as imagens incorporadas altamente compactadas para que os arquivos não ocupem tanto espaço. Descobri que o recurso Adobe Acrobat Pro "Salvar como Outros > PDF de Tamanho Reduzido" comprime muito as imagens, mas estraga qualquer texto com OCR. Isso é verdade se os arquivos foram submetidos a OCR no Acrobat, ou usando uma ferramenta como o Tesseract.

Este é o meu fluxo de trabalho atual, usando um exemplo de pdf .

Divida PDF em arquivos 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

Execute o Tesseract em cada um dos arquivos TIFF (consulte a saída do arquivo de amostra )

language=deu_frak
parallel tesseract {} {} -l $language pdf ::: temp/*.tiff
  • Quando eu combino os arquivos PDF de saída com o Ghostscript, recebo um arquivo como este aqui , que estraga o texto incorporado
  • Quando eu os combino com PDFtk (por exemplo, pdftk temp / *. pdf cat output outfile.pdf '), recebo um arquivo como este , que mantém o texto incorporado mas de alguma forma torna o arquivo maior
  • E quando tento compactar esse arquivo usando o ImageMagic (por exemplo, convert -density 130x130 -quality 5 -compress jpeg outfile-pdftk.pdf outfile-pdftk-imagemagick.pdf ), ele remove o texto OCR incorporado ( saída )

Parece que o Tesseract não comprime as imagens no PDF de saída, o que é esperado - o trabalho é fazer o OCR dos arquivos, não comprimir a saída.

Por exemplo, nos arquivos OCR iniciais do Tesseract, pdfimages -list temp/page_001.pdf.tiff.pdf produz:

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%

... o que indica que o objeto de imagem no PDF não é exatamente armazenado de maneira ideal. Ainda está em RGB, não em preto & branco. Ao comprimir com o ImageMagick, pelo contrário, pdfimages -list dá:

  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%

Como podemos ver as imagens ocupam menos espaço, no entanto, o texto incorporado ao OCR foi removido e, de alguma forma, o arquivo é menor. Em comparação, se eu pegar o arquivo original (sem o texto incorporado ao OCR) e compactá-lo usando o "Salvar como Outros > PDF de Tamanho Reduzido" do Adobe Acrobat, recebo:

  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%

... Como podemos ver, o Adobe Acrobat parece comprimir imagens usando o JPEG2000 (JPX) que não está disponível para o Ghostscript ou o ImageMagick devido a problemas com patentes.

No geral, alguma sugestão sobre como compactar arquivos PDF Tesseract-OCR?

    
por Jason 16.05.2016 / 01:52

0 respostas