Документооборот ПРОФ
Документооборот КОРП
Документооборот государственного учреждения
01.08.2016

Как подменить механизм распознавания текста

Общее описание

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

По умолчанию распознанный текст попадает в текстовый образ файла, который можно просмотреть из карточки файла командой Еще – Дополнительно – Открыть текстовый образ. Но можно настроить программу так, чтобы создавалась отдельная версия файла или отдельный файл – в формате txt или html.

Для распознавания текста графических файлов необходимо установить бесплатную программу CuneiForm. Если необходимо распознавание изображений в формате pdf дополнительно необходима установка бесплатных программ ImageMagick и GhostScript. Все перечисленные программы устанавливаются на сервер.

Если сервер под управлением Linux, то на одном из клиентских компьютеров под управлением Windows необходимо запустить "тонкий" клиент, в меню раздела Настройка и администрирование выполнить команду Автоматическое распознавание изображений и установить программы CuneiForm, ImageMagick и GhostScript. Для работы распознавания окно Автоматическое распознавание изображений необходимо держать открытым.

Зачем нужна подмена механизма распознавания

Подмена механизма распознавания используется в следующих случаях:

В качестве подмены можно использовать следующие программы:

Порядок действий по замене

При подмене распознавания на ABBYY Recognition server или другую библиотеку, реализованную как ActiveX объект, внешняя компонента не нужна. Примеры использования этой программы можно посмотреть в общей форме ПотоковоеСканирование, Функция РаспознатьПустойЛист:

Копировать в буфер обмена
ABBYY = Новый COMОбъект("ABBYYOCRServer3.Client.1");  ABBYY.
ProcessFile(ИмяФайлаКартинки, ИмяСценарияABBYYТекст). 

Соответственно, аналогичный код необходимо разместить в модуле Распознавание функции Распознать.

При подмене на новую внешнюю компоненту, эту компоненту необходимо добавить в общие макеты. Подробнее в статье "Создание и использование внешней компоненты на C++". Далее в общем модуле Распознавание Функция Распознать заменить вызов КомпонентаЗагрузкиCuneiForm.РаспознатьКартинку на вызов новой компоненты.
Если новая компонента предусмотрена только дл работы на клиентском компьютере, необходимо изменить код в обработке АвтоматическоеРаспознаваниеИзображений, Процедура РаспознатьИзображениеКлиент.

Как проверить работу компоненты распознавания

Для проверки внешней компонент для распознавания текста необходимо:
  1. Cоздать эталонную базу примерно из ста изображений и текстовых файлов. Желательно создавать изображения и текстовые файлы парами, то есть 001.png и 001.txt, где в 001.txt содержится распознанный текст с изображения 001.png.
  2. Написать код для распознавания текстов всех эталонных изображений.
  3. После распознавания текст изображения необходимо сравнить с эталонным текстом в файле и вычислить, укладывается ли степень различия текстов в допустимый диапазон.

Проверку необходимо выполнять при каждой сборке внешней компоненты.

Помимо проверки распознавания текста, нужно убедиться, что нет утечек памяти или ресурсов Windows (GDI handles, User objects). Для этого в цикле необходимо выполнить распознавание как минимум тысячи изображений (можно использовать одно и то же изображение).

Также важно проверить, не снижает ли внешняя компонента производительность сервера "1С:Предприятия".