Как подменить механизм распознавания текста
страницаДокументооборот ПРОФ
Документооборот КОРП
Документооборот государственного учреждения
01.08.2016
Как подменить механизм распознавания текста
- Общее описание
- Зачем нужна подмена механизма распознавания
- Порядок действий по замене
- Проверка работы компоненты
Общее описание
Распознавание используется для получения текста с отсканированных изображений с тем, чтобы этот текст мог участвовать в полнотекстовом поиске.
По умолчанию распознанный текст попадает в текстовый образ файла, который можно просмотреть из карточки файла командой Еще – Дополнительно – Открыть текстовый образ. Но можно настроить программу так, чтобы создавалась отдельная версия файла или отдельный файл – в формате txt или html.
Для распознавания текста графических файлов необходимо установить бесплатную программу CuneiForm. Если необходимо распознавание изображений в формате pdf дополнительно необходима установка бесплатных программ ImageMagick и GhostScript. Все перечисленные программы устанавливаются на сервер.
Если сервер под управлением Linux, то на одном из клиентских компьютеров под управлением Windows необходимо запустить "тонкий" клиент, в меню раздела Настройка и администрирование выполнить команду Автоматическое распознавание изображений и установить программы CuneiForm, ImageMagick и GhostScript. Для работы распознавания окно Автоматическое распознавание изображений необходимо держать открытым.
Зачем нужна подмена механизма распознавания
Подмена механизма распознавания используется в следующих случаях:
- Если не устраивает качество распознавания;
- На отсканированных изображениях присутствуют тексты, язык которых не поддерживается CuneiForm;
- Сервер и все клиентские компьютеры работают под управлением Linux.
В качестве подмены можно использовать следующие программы:
- ABBYY Recognition server (программа платная);
- удовлетворяющую вашим потребностям библиотеку (С++, С# и т.д.), например Tesseract OCR, и создать внешнюю компоненту для ее использования в "1С:Документообороте". Для создания и подключения внешней компоненты нужно иметь опыт разработки на C++.
Порядок действий по замене
При подмене распознавания на ABBYY Recognition server или другую библиотеку, реализованную как ActiveX объект, внешняя компонента не нужна. Примеры использования этой программы можно посмотреть в общей форме ПотоковоеСканирование, Функция РаспознатьПустойЛист:
ABBYY = Новый COMОбъект("ABBYYOCRServer3.Client.1"); ABBYY.ProcessFile(ИмяФайлаКартинки, ИмяСценарияABBYYТекст).
Соответственно, аналогичный код необходимо разместить в модуле Распознавание функции Распознать.
При подмене на новую внешнюю компоненту, эту компоненту необходимо добавить в общие макеты. Подробнее в статье "Создание и использование внешней компоненты на C++". Далее в общем модуле Распознавание Функция Распознать заменить вызов КомпонентаЗагрузкиCuneiForm.РаспознатьКартинку на вызов новой компоненты.
Если новая компонента предусмотрена только дл работы на клиентском компьютере, необходимо изменить код в обработке АвтоматическоеРаспознаваниеИзображений, Процедура РаспознатьИзображениеКлиент.
Как проверить работу компоненты распознавания
Для проверки внешней компонент для распознавания текста необходимо:
- Cоздать эталонную базу примерно из ста изображений и текстовых файлов. Желательно создавать изображения и текстовые файлы парами, то есть 001.png и 001.txt, где в 001.txt содержится распознанный текст с изображения 001.png.
- Написать код для распознавания текстов всех эталонных изображений.
- После распознавания текст изображения необходимо сравнить с эталонным текстом в файле и вычислить, укладывается ли степень различия текстов в допустимый диапазон.
Проверку необходимо выполнять при каждой сборке внешней компоненты.
Помимо проверки распознавания текста, нужно убедиться, что нет утечек памяти или ресурсов Windows (GDI handles, User objects). Для этого в цикле необходимо выполнить распознавание как минимум тысячи изображений (можно использовать одно и то же изображение).
Также важно проверить, не снижает ли внешняя компонента производительность сервера "1С:Предприятия".