Tôi đã thử nghiệm sử dụng Tesseract để OCR các tệp PDF của tôi và nó hầu như thành công, đặc biệt là với các văn bản Fraktur của Đức (bản in gothic kiểu cũ), những công cụ như Adobe Acrobat không thể nhận ra đúng.
Vấn đề là các tệp đầu ra từ Tesseract khá lớn và tôi muốn nén chúng sau OCRing. Tuy nhiên, khi tôi sử dụng Ghostscript để nén các tệp, văn bản OCR được nhúng mà anh ấy đã gửi nhầm. Tương tự, nếu tôi sử dụng ImageMagick, văn bản nhúng sẽ bị xóa. Có cách nào để giái quyết vấn đề này không? Về mặt lý thuyết tôi có thể nén trước OCRing nhưng điều đó sẽ làm cho độ chính xác của OCR tồi tệ hơn.
Nói chung, mục tiêu của tôi là có văn bản nhúng OCR chất lượng cao trong các tệp PDF đầu ra của mình và để các hình ảnh nhúng được nén cao để các tệp không chiếm nhiều dung lượng. Tôi đã thấy rằng tính năng Adobe Acrobat Pro "Lưu dưới dạng khác> Giảm kích thước PDF" nén rất nhiều hình ảnh nhưng lại làm hỏng bất kỳ văn bản OCR'd nào. Điều này đúng cho dù các tệp là OCR'd trong Acrobat hoặc sử dụng một công cụ như Tesseract.
Đây là quy trình làm việc hiện tại của tôi, sử dụng pdf mẫu .
Tách PDF thành các tệp 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
Chạy Tesseract trên mỗi tệp TIFF (xem đầu ra của tệp mẫu )
language=deu_frak
parallel tesseract {} {} -l $language pdf ::: temp/*.tiff
- Khi tôi kết hợp các tệp PDF đầu ra với Ghostscript, tôi nhận được một tệp như thế này , làm hỏng văn bản nhúng
- Khi tôi kết hợp chúng với PDFtk (ví dụ pdftk temp / *. Pdf cat output outfile.pdf`), tôi nhận được một tệp như thế này , duy trì văn bản nhúng nhưng bằng cách nào đó làm cho tệp lớn hơn
- Và sau đó khi tôi cố nén tệp đó bằng ImageMagic (ví dụ
convert -density 130x130 -quality 5 -compress jpeg outfile-pdftk.pdf outfile-pdftk-imagemagick.pdf
), nó sẽ xóa văn bản OCR được nhúng ( đầu ra )
Có vẻ như Tesseract không nén hình ảnh trong tệp PDF đầu ra, điều được mong đợi - công việc của nó là OCR các tệp, không nén đầu ra.
Chẳng hạn, trên các tệp Tesseract OCR'd ban đầu, pdfimages -list temp/page_001.pdf.tiff.pdf
tạo ra:
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%
... cho biết đối tượng hình ảnh trong PDF không được lưu trữ chính xác tối ưu. Nó vẫn ở dạng RGB, không phải màu đen và trắng. Ngược lại, khi nén bằng ImageMagick, pdfimages -list
sẽ cho:
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%
Như chúng ta có thể thấy các hình ảnh chiếm ít không gian hơn, tuy nhiên văn bản nhúng OCR đã bị xóa và bằng cách nào đó, tệp ít hơn. Để so sánh, nếu tôi lấy tệp gốc (không có văn bản nhúng OCR) và nén tệp bằng "Lưu dưới dạng khác> Giảm kích thước PDF" của Adobe Acrobat, tôi nhận được:
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%
... Như chúng ta có thể thấy, Adobe Acrobat dường như nén hình ảnh bằng JPEG2000 (JPX) không có sẵn cho Ghostscript hoặc ImageMagick do vấn đề bằng sáng chế.
Nhìn chung, có gợi ý nào về cách nén tệp PDF Tesseract-OCR'd không?