Workflow работы со сканами и фотографиями документов

  iOS, OSX, Workflow

На этой неделе в AppStore должна появиться новая версия лучшего сканера документов ScanBot с поддержкой OCR для 60 языков (пока не видел, входит ли в них русский).

В связи с этим я решил опубликовать так и не дописанную до конца старую заметку про сканеры документов и OCR с tesseract.


Я часто фотографирую всякие бумажки, объявления на дверях и т.д. Можно всё это делать в Evernote, но мы рассмотрим гиковский workflow, который может быть кому-то пригодится.

Идея в том, чтобы на сфотографированные телефоном документы накладывался текстовый слой (для поиска в spotlight) и геометка (очень часто лучшим способом поиска документа является место съемки).

Программы для сканирования на iOS и workflow в общем

Можно просто фотографировать всё встроенной камерой, в таком случае с геометками всё понятно – они просто есть из коробки у каждой фотографии. В общем случае можно обойтись просто фотографиями, но специальные сканеры документов на iOS позволяют автоматически обрезать фотографию по границе документа и сгруппировать несколько фотографий в один документ. Документ, например, будет автоматически сохраняться в Dropbox. А на стороне OS X на фотографию будет автоматически накладываться текстовый слой.

Разработчики часто для повышения рейтингов раздают свои приложения бесплатно или со скидкой, благодаря этому у меня на iPhone оказалось три сканера документов: ABBY FineScanner (регулярно раздается за $1), DocScanner PRO и Scanbot.

DocScanner PRO

Программа со стремным интерфейсом и сломанной кнопкой open with (разработчики в курсе и обещают поправить). Из плюсов – добавление геометки и OCR. Правда геометка все равно не экспортируется в PDF, а OCR хоть и дружит с русским языком, но распознает очень плохо. В общем эту программу я сразу удалил.

ABBY FineScanner

Хорошая качественная программа с аккуратным интерфейсом. Делаем одну или несколько фотографий, программа сама определяет границы документов и обрезает их, затем у нас есть выбор: просто сохранить документ в программе, или отправить куда-нибудь. Жаль только гео-метки она не делает, даже в самой программе. Эту программу я не удалил и буду следить за обновлениями, которые у неё выходят не редко.

Scanbot

Остановился на этой программе из-за классной фичи – она может автоматически заливать все сделанные документы в облако. Т.е. просто делаем снимки и забываем – документ будет залит на ноутбук через Dropbox и на него автоматически будет наложен текстовый слой.

Гео-метки эта программа, к сожалению, тоже не делает. Зато у неё очень красивый и удобный интерфейс, она позволяет делать аннотации в документах и ставить подпись. В общем – наш выбор!

Другие программы для iOS

Также пробовал программы paperless и ABBY Text Grabber.

Paperless служит в основном для фотографирования чеков. Её особенность в том, что при экспорте в PDF она размещает фотографию не на весь лист, а на половину. А справа от фото добавляет дату, описание и геометку.

ABBY Text Grabber – OCR на iOS со встроенным переводчиком. Т.е. фотографируем бумажку, получаем распознанный текст. Далее можно перевести его на другой язык или сохранить куда-нибудь.

OCR и наложение текстового слоя на PDF

Итак, я фотографирую документы в scanbot, он заливает их в Dropbox. На маке Hazel мониторит директорию с входящими PDF и запускает скрипт, который добавляет к ним текстовый слой. Но Hazel покупать не нужно, можно обойтись встроенным в ОС Automator. После этого они отправляются в моё хранилище и доступны для поиска в spotlight. На самом деле там есть ещё небольшая часть workflow в которой к документу добавляются теги, но это будет отдельная тема.

Для OCR я прикрутил свободный пакет tesseract. Вывод в pdf появился только в текущем релиз-кандидате и вот инструкция по сборке tesseract:

Сначала ставим leptonica 1.70:

brew edit leptonica
# меняем там версию на 1.70 и комментируем строку sha1
устанавливаем с tiff

Устанавливаем HEAD версию tesseract:

brew install tesseract --all-languages --HEAD --debug

Устанавливаем ghostscript:

gs -q -dNOPAUSE -r1200 -sDEVICE=tiff24nc -sOutputFile=test.tiff test.pdf -c quit
tesseract -l rus+eng test.tiff test2 pdf

А вот сам скрипт:

export LANG=ru_RU.UTF-8
export name="`basename \"${1}\" .pdf`"

if [ -f "${HOME}/Desktop/${name}" ]; then
    export name="${name}-`uuidgen`"
fi

/usr/local/bin/gs -q -dNOPAUSE -r1200 -sDEVICE=tiff24nc -sOutputFile=/tmp/ocr.tiff "${1}" -c quit
/usr/local/bin/tesseract -l rus+eng /tmp/ocr.tiff "${HOME}/Desktop/${name}" pdf
rm /tmp/ocr.tiff

FineReader

Как вариант FineReader может сам импортировать фотки с iOS и делать из них документ.

P.S. Вопрос с гео-метками остается открытым.