Существуют ли другие продукты, помимо продуктов Adobe, которые поддерживают ClearScan или аналогичные продукты?

Начиная с Acrobat 9, инженеры Adobe добавили новую разновидность OCR под названием ClearScan.

Преимущества ClearScan по сравнению с распознаванием изображений с возможностью поиска заключаются как в размере, так и в четкости. Самая большая инновация Clearscan заключается в том, что:

ClearScan не заменяет шрифт вашими системными шрифтами. Скорее, пользовательский шрифт создается для соответствия внешнему виду пикселей. 1

Существуют ли другие продукты, кроме продуктов Adobe, которые поддерживают Clearscan или аналогичные продукты, в которых используется пользовательский шрифт, созданный для соответствия внешнему виду пикселей?

Ответы (2)

  1. Smoothscan — это инструмент для преобразования отсканированного текста в векторизованную форму вывода. Поскольку печатный текст состоит из шрифтов, каждая конкретная буква (например, «о») будет иметь ту же форму, что и любая другая буква «о» в документе. Мы можем воспользоваться этим, построив таблицу таких символов и представив каждое вхождение символа со ссылкой на запись в таблице этого символа. Это сэкономит много места, и аналогичная идея используется в режиме jb2 djvu и JBIG2 для PDF.

    Smoothscan строит эту таблицу, но вместо того, чтобы заполнять таблицу исходными растровыми изображениями, он векторизует каждый символ. Векторные изображения будут выглядеть более гладкими, чем их растровые эквиваленты, и их можно масштабировать без добавления пикселизации. Эти свойства приводят к меньшему размеру выходного файла, а также делают отсканированные текстовые изображения более читабельными.

    Smoothscan сохраняет векторизованные изображения в пользовательский шрифт TrueType и встраивает шрифт в выходной файл PDF. В настоящее время каждый символ сопоставляется с произвольной буквой в шрифте, но в будущих версиях вы можете запускать OCR для каждого символа и гарантировать, что изображение «o» связано с кодировкой символа «o» в сгенерированном шрифте.

    Поиск на pkgs.org не дает ни одного пакета smoothscan для любого дистрибутива Linux . Поэтому его нужно скомпилировать из исходного кода, в README отмечены следующие зависимости:


    На коробке Ubuntu большинство из них можно получить так:

    apt install libleptonica-dev libhpdf-dev potrace python-fontforge
    

    Тест с образцом изображения. Загрузите README в abiword, распечатайте его в файл .ps , а затем...

    • Используйте ghostscript для преобразования этого файла .ps в .tif ,
    • преобразовать это в монохромный .tif ( только вход smoothscanпринимает)
    • бежатьsmoothscan
    • сравните различные размеры файлов с wc -c:

      gs -sDEVICE=tiffg4 -o README.tif README.ps
      convert -monochrome README.tif README.mono.tif
      smoothscan -o README.pdf README.mono.tif
      wc -c README README.ps README.*tif README.pdf | head -n -1
      

    Выход:

      2432 README
     83516 README.ps
     33707 README.tif
     33618 README.mono.tif
     20394 README.pdf
    

    Первый абзац результирующего README.pdf , показывающий векторизованные шрифты:

    изображение первого абзаца сглаживания, показывающее векторизованные шрифты.

  2. Формат файла djvu включает опцию JB2 , которая во многом аналогична ClearScan .

    Используя приведенный выше ввод README.psany2djvu , утилита возвращает отличные результаты:

    any2djvu README.ps
    

    ... результирующий README.djvu имеет размер всего 7 КБ (1/3 размера smoothscanвывода) и выглядит четче:

    any2djvu образ первых двух строк README.djvu

    Этой резкости, вероятно, помогает отсутствие монохромного .tiff в качестве входных данных. Этот тест - несправедливое сравнение. Давайте попробуем это с моно растеризованным .tiff :

    # "-f 6" sets input format to "Scanned Document - B&W - >400 dpi"
    any2djvu -f 6 README.mono.tif
    

    Теперь результат меньше 6k, но выглядит немного неровнее:

    введите описание изображения здесь

    В отличие от smoothscanвыходного файла .pdf , выходной файл .djvu позволяет выбирать текст даже при растровом вводе.

    Одна плохая вещь, однако, any2djvuнуждается в онлайн-сервере для преобразования работы — это не подходящий инструмент для конфиденциальных документов.

Спасибо за хороший пост, я думал, что альтернатив нет, но, кажется, есть неплохие +1/принято
Очень хороший ответ, но... Вы сказали, что преобразовали файл PS в DJVU? Разве файл Postscript не был уже векторизован и с выбираемым текстом?
Был ли файл .ps векторизован или растрирован, я не знаю, это то, что распечатывает abiword (поскольку файл .ps имеет размер 85 КБ, что даже больше, чем .tif , я думаю, он растеризован). Я недоволен нынешним тестом PS>DJVU any2djvu и все еще ищу способы протестировать djvu на растеризованном тексте.
Smoothscan все еще поддерживается? Последний коммит на git датирован 2013 годом, 5 лет назад.
Оглядываясь назад, можно сказать, что использование образца текста, включающего название первой программы, делает djvuзапись более запутанной...
Можно ли использовать формат DjVu в автономном режиме с помощью cjb2команды ( apt install djvulibre-bin? И я прав, думая, что параметр DjVu означает, что ваши документы не в формате PDF и, следовательно, изначально не читаются на большинстве платформ? И векторный шрифт не создается, как в ClearScan или smoothscan, это просто сжатое растровое изображение?
Чтобы ответить на мой собственный вопрос и объяснить, почему any2djvuне работает в автономном режиме: «Хотя вполне возможно, что адекватные замены с открытым исходным кодом для [высокопроизводительных кодировщиков DjVu LizardTech] в конечном итоге станут доступны, [они] не включены в DjVuLibre. Это означает, что, на данный момент некоторые типы документов, сжатые с помощью коммерческих компрессоров LizardTech или с помощью онлайн-сервисов преобразования (таких как Any2DjVu), будут иметь меньший размер (и в некоторых случаях более высокое качество), чем документы, сжатые с помощью кодировщиков DjVuLibre».

НОВЫЙ ОТВЕТ

Мой PDFsak теперь может имитировать Adobe Clearscan (используя potrace).

СТАРЫЙ ОТВЕТ

Наличие ImageMagick , potrace и pdftools (отказ от ответственности: я автор pdftools). Предполагая, что у вас есть входной файл PDF с именем input.pdf:

  1. Преобразуйте каждую страницу в файл BMP с помощью ImageMagick:
mkdir bmp
magick convert -density 300 input.pdf -quality 100 ./bmp/input.bmp
  1. (необязательно) файлы изображений предварительной обработки:
mkdir bmpproc
for /r %%i in (./bmp/*.bmp) do mkbitmap ./bmp/%%~ni.bmp --output ./bmpproc/%%~ni.pbm
  1. Растрируйте все изображения BMP и сохраните результат в формате PDF:
mkdir pdf
for /r %%i in (./bmpproc/*.pbm) do potrace ./bmpproc/%%~ni.pbm -b pdf --output ./pdf/%%~ni.pdf
  1. Объедините выходные PDF-файлы вместе:

pdftools --input-dir .\pdf --output merged.pdf --fitpaper

РЕДАКТИРОВАТЬ: Вы можете получить версию вашего PDF-файла в векторном виде и с помощью OCR. Таким образом, единственная разница с Adobe ClearScan заключается в том, что шрифты не встроены (но текст тем не менее сохраняется как объект «Путь»).

  1. С помощью ImageMagick конвертируйте pdf-файлы в bmp-изображения (по одному на страницу).

magick convert -monochrome -density 300 -alpha off input.pdf ./bmp/input.bmp

  1. Используя potrace, выполните постобработку вашего bmp, сохраните в файлы pbm и создайте векторизованную версию вашего pdf.
for /r %%i in (./bmp/*.bmp) do mkbitmap ./bmp/%%~ni.bmp --output ./bmpproc/%%~ni.pbm
for /r %%i in (./bmpproc/*.pbm) do potrace ./bmpproc/%%~ni.pbm -b pdf --output ./vectorized/%%~ni.pdf
  1. Используя TesserAct, распознайте ваш PDF-файл

for /r %%i in (./bmpproc/*.pbm) do tesseract ./bmpproc/%%~ni.pbm ./ocred/%%~ni pdf

  1. Используя pdftools, объедините страницы отдельных файлов для расшифрованной и векторизованной версии:
python -m pdftools --input-dir ocred  --overwrite --fitpaper --output ocred.pdf --natural-sort
python -m pdftools --input-dir vectorized  --overwrite --fitpaper --output vectorized.pdf --natural-sort
  1. Теперь нам нужно удалить слой изображения из файла ocr (потому что мы будем использовать векторизованное изображение). Используя qPDF, создайте несжатую версию вашего файла ocr:

qpdf --qdf --object-streams=disable ocr.pdf ocr-uncompressed.pdf

  1. Удалите все, что не является изображением, из вашего файла ocr-uncompressed.pdf с помощью следующего скрипта Python 3.
with open("ocr-uncompressed.pdf", "rb") as fileh:
    filedata = fileh.read()
    
streams = filedata.split("endstream".encode("utf8"))
outdata = bytearray()

for rawstream in streams[:-1]:
    before, stream = rawstream.split("stream".encode("utf8"))
    outdata += before + "stream".encode("utf8") 
    if not stream.startswith(bytearray.fromhex("0aff")):
        outdata += stream         
    outdata += "endstream".encode("utf8")
    
outdata += streams[-1]        
        
with open("ocr-no-img.pdf", "wb") as fileh:
    fileh.write(outdata)
  1. Теперь, используя pdftk, наложите расшифрованную версию (без изображений) на векторизованную версию:

pdftk vectorized.pdf multibackground ocr-no-image.pdf output mergedlayer.pdf

и готово!