## VietOCR

### ОПИСАНИЕ

VietOCR это, написанный на Java графический интерфейс для Tesseract OCR engine, предоставляющий поддержку в распознавании символов для распространенных графических форматов, в том числе и многостраничных. Программа имеет функцию постобработки, позволяющую исправлять регулярно возникающие в процессе оптического распознавания текста ошибки. Программа также может выполняться из командной строки.

Теперь поддерживается пакетная обработка. Программа отслеживает папку для наблюдения за новыми файлами изображений, автоматически обрабатывает их с помощью OCR-движка и выводит результаты распознавания в папку вывода.

### СИСТЕМНЫЕ ТРЕБОВАНИЯ

Java Runtime Environment 8 и выше. В Windows также требуется Microsoft Visual C++ v14 Redistributable Package.

### УСТАНОВКА

Исполняемый файл Tesseract для Windows поставляется вместе с программой. Дополнительные языковые пакеты для Tesseract, с названиями соответствующими стандарту ISO639-3, следует поместить в подкаталог `tessdata`.

Для Linux Tesseract и его языковые пакеты находятся в репозитории Graphics (universe). Их можно установить используя Synaptic или с помощью следующей команды:

> `sudo apt-get install tesseract-ocr tesseract-ocr-eng tesseract-ocr-vie`

Файлы будут размещены в `/usr/bin` и `/usr/share/tesseract-ocr/tessdata`, соответственно. Если Tesseract собран и установлен из исходного кода, то помещены в `/usr/local/bin` и `/usr/local/share/tessdata`. Вы также можете сообщить VietOCR о расположении `tessdata` через переменную `TESSDATA_PREFIX`:

> `export TESSDATA_PREFIX=/usr/local/share/`

Для других платформ, пожалуйста, обратитесь к странице Tesseract Wiki.

VietOCR также поддерживает загрузку и установку выбранных языковых пакетов с помощью пункта меню Загрузить языковые данные. В зависимости от расположения папки `tessdata`, вам может потребоваться запустить программу от имени пользователя root или admin, что бы установить загруженные данные в папку, находящуюся внутри системной, например, для Linux в `/usr`, для Windows в `C:\Program Files`.

Поддержка сканирования в Windows обеспечивается библиотекой Windows Image Acquisition версии 2.0.

В Linux для сканирования требуется установка пакетов SANE:

> `sudo apt-get install libsane sane sane-utils libsane-extras xsane`

Поддержка PDF возможна через PDFBox.

Функциональность проверки орфографии доступна через Hunspell, чьи словари (`.aff`, `.dic`) должны быть размещены в папке `dict` VietOCR. `user.dic` - это файл в кодировке UTF-8, который содержит список слов, выбранных пользователем, по одному слову в строке.

В Linux Hunspell и его словари можно установить с помощью Synaptic или `apt` следующим образом:

> `sudo apt-get install hunspell hunspell-en-us`

### ИНСТРУКЦИИ

Чтобы запустить программу, наберите:

> `java -jar VietOCR.jar`

Примечание: Если вы столкнулись с сообщением о нехватки памяти, запустите файл сценария `ocr` вместо использования .jar.

Языковой пакет вьетнамского языка был сгенерирован для шрифтов Times New Roman, Arial, Verdana и Courier New. Таким образом, распознавание будет более успешным для изображений с похожими глифами. Для распознавания изображений, глифы шрифтов которых отличаются от поддерживаемых, обычно требуется обучение Tesseract для создания другого языкового пакета специально для этих шрифтов. Языковые пакеты для некоторых шрифтов VNI и TCVN3 (ABC) также включены в последние версии.

Изображения, подлежащие распознаванию, должны быть отсканированы с разрешением от 200 DPI (точек на дюйм) до 400 DPI в монохромном (чёрно-белом) или оттенках серого. Сканирование с более высоким разрешением необязательно приведёт к повышению точности распознавания, которая в настоящее время может превышать 97% для вьетнамского языка, а следующий выпуск Tesseract может повысить её ещё больше. Тем не менее фактические показатели по-прежнему сильно зависят от качества отсканированного изображения. Типичные настройки сканирования: 300 DPI и 1 bpp (бит на пиксель) в чёрно-белом формате или 8 бит в оттенках серого в несжатом формате TIFF или PNG.

В Режиме скриншота обеспечивается лучшая скорость распознавания изображений с низким разрешением, таких как снимки экрана, посредством масштабирования их до 300 DPI.

Помимо встроенного алгоритма постобработки текста, вы можете добавить свою схему замены текста с помощью текстового файла `x.DangAmbigs.txt` в кодировке UTF-8, где x - это код языка в ISO639-3. Поддерживаются как обычные текстовые замены, так и использование регулярных выражений.

Вы можете поместить параметры управления init-only и non-init в файлы `tessdata/configs/tess_configs` и `tess_configvars` соответственно, чтобы изменить поведение Tesseract.

Имеются встроенные инструменты для объединения нескольких изображений или файлов PDF в один для удобства распознавания текста, или разделение TIFF и PDF файлов на более мелкие, если они содержат слишком много страниц, что может привести к нехватке памяти.

### ПОСТОБРАБОТКА

Ошибки распознавания в целом можно разделить на три категории. Многие ошибки связаны с регистром символов, например: hOa, nhắC — которые легко исправляются при использовании популярных Unicode-текстовых редакторов. Другие - являются результатом процесса оптического распознавания символов, например, пропущенные диакритические знаки, неправильные буквы одинаковой формы и т. д. — huu – hưu, mang – marg, h0a – hoa, la – 1a, uhìu - nhìn. Их также легко можно исправить используя программы проверки орфографии. Встроенная функция постобработки может помочь исправить многие из вышеупомянутых ошибок.

Ошибки последней категории труднее всего обнаружить, поскольку они являются семантическими, что означает, что слова являются действительными элементами словаря, но неверны в контексте, например: tinh – tình, vân – vấn. Эти ошибки требуют, чтобы редактор сам нашёл их в полученном тексте и вручную исправил в соответствии с исходным изображением.

Далее приведены инструкции по исправлению первых двух категорий ошибок OCR используя встроенный функционал:

1. Группы строк. Строки должны быть сгруппированы по абзацам, к которым они принадлежат, так после распознавания символов каждая строка становится отдельным 1-строчным абзацем. Используйте Удалить разрывы строк в меню Формат. Обратите внимание, что эта операция может не понадобиться для стихов.
2. Выберите Изменить регистр, также расположенный в меню Формат, выберите из Предложенных вариантов необходимый, чтобы исправить большинство ошибок при определении регистра. Оставшиеся ошибки исправьте вручную.
3. Исправьте опечатки с помощью встроенной Проверки орфографии.

С помощью описанного выше процесса можно устранить большинство распространенных ошибок. Оставшихся семантических ошибок не так много, но для их исправления требуется участие человека, чтобы сделать текст похожим на исходный отсканированный документ и, при желании, не содержащий ошибок.

Если есть вопросы, обратитесь на Форум VietOCR.