Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

savinkin_yue_razrabotka-intellektualnoy-sistemy-avtomatizacii-cifrovogo-dokumentooborota-na-osnove-algoritmov-op_47138

.pdf
Скачиваний:
13
Добавлен:
14.01.2018
Размер:
8.44 Mб
Скачать

Рис. 8 Ввод даты до отсечения границ полей

После выполнения пунктов 3.8 и 3.9.1 у системы есть точная информация о соотношении реальных размеров бланка к пикселям изображения и координаты местоположения базовых и побочных маркеров. Для нахождения полей с данными используется файл–шаблон анкеты, полученный на шаге 3.4.

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

Далее, цветное изображение преобразуется к изображению с оттенками серого,

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

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

На Рис. 9 можно увидеть результат работы алгоритма отсечения границ полей.

26

Рис. 9 Текстовый ввод после отсечения границ полей

4.9.6 Бинаризация изображения с автоматическим выбором

режима черной гелевой и синей ручки

Процесс визуальной обработки анкет происходит при помощи использования сканера или другого подходящего оборудования. При сканировании анкет,

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

а, например, синей шариковой ручкой. При обработке такого вида изображения,

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

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

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

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

27

фоном, создавая идеальные условия для распознавания текста. Все блики,

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

Пример такой бинаризации можно увидеть ниже:

Рис. 10. Бинаризация сложного текста, написанного шариковой ручкой

4.10 Тренировка

нейросети

системы

оптического

распознавания символов на реальных данных

Впроцессе подготовки к широкому использованию на предприятии система была протестирована во время проведения международной олимпиады “Открытый сетевой конкурс информационных технологий – 2017”. Процесс тренировки нейросети производился вручную.

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

которые при следующем прогоне анкет уже распознава верно. Этот процесс повторялся до тех пор, пока точность выводимых распознанных данных не приблизилась к 99%.

Примером выполнения данной ручной тренировки может послужить обучение нейросети с помощью одной из использованных анкет. Участник, заполняющий бланк, написал букву “Д” с маленькой разницей между шириной верхней и нижней частей буквы. Таким образом буква была ошибочно распознана как “А”. После ручного исправления этой ошибки в 5-6 случаях, нейросеть уже сама научилась

28

распознавать разницу между буквами “А” и “Д”, заметную человеческому глазу.

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

соединяющей две вертикальные прямые в написании этих букв.

Были использованы реальные анкеты с международной олимпиады, в которых различные люди писали печатными буквами (Реальные личные данные участников были использованы с их разрешения, так как ЧУ ДО “Школа программистов” имеет подписанное с каждым из участников соглашение на обработку персональных данных). Таким образом были достигнуты идеальные условия разных почерков и способов написания букв. В результате обучения нейросети процесс распознавания символов практически не требует ручной проверки и исправления ошибок операторами.

4.11 Автоматическое распознавание данных

Для распознавания графических данных, полученных на шаге 4.9.6

используется бибилиотека Tesseract-OCR. Tesseract - это механизм оптического распознавания символов для различных операционных систем. Технологии, лежащие в основе tesseract изначально были разработанны HP Labs между 1985 и 1995 годами,

а затем в 2005 году движок перешёл под свободную лицензию APACHE.

C 2006 года Tesseract считается одним из наиболее точных движков OCR с

открытым исходным кодом [9].

Первоначальные версии Tesseract могли распознавать только текст на английском языке. Tesseract V2 добавил шесть дополнительных западных языков. Версия V3

расширенная поддержка языков значительно включает в себя идеографический и справа налево (например, арабский, иврит) языки. Новые языки включают и русский. V3.04, выпущенный в июле 2015 года, добавил дополнительные 39 комбинаций языков / сценариев, в результате чего общее количество поддерживаемых языков превысило 100.

29

У данной библиотеки достаточно высокии запросы к анализируемому изображению, в чем и состоит основная сложность использования Tesseract-OCR.

Выходные данные Tesseract будут иметь очень низкое качество, если входные изображения не будут предварительно обработан

4.12 Возможность ручного исправления данных

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

“Далее” и на экран будет выведена следующая область анкеты с распознанным текстом, что упрощает процесс проверки и ускоряет работу по считыванию и анализу распознанных данных.

Такая возможность ручного исправления позволит искоренить мелкие ошибки,

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

30

Рис. 11. Режим ручного исправления данных

4.13 Экспорт распознанных данных в JSON

Для экспорта данных в базу данных LMS EDUAPP все распознанные данные преобразуются в JSON запись.

JSON – это открытый формат данных, который использует текст, в человеко – читабельном виде, для передачи объектов данных, состоящих из пар значений атрибута и типов данных массива (или любого другого сериализуемого значения).

Это очень распространенный формат данных, используемый для асинхронной связи между браузером и сервером, в том числе в качестве замены для XML в некоторых системах в стиле AJAX.

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

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

31

работу операторам, так как не будет необходимости переносить полученную

информацию вручную.

32

5 Обоснование выбора способов реализации решения

задач ВКР;

Задача, поставленная в данной работе, содержит в себе несколько этапов.

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

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

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

основанный на нейросетях. Для распознавания текста в полях используется встроенный в openCV OCR компонент Tesseract, который необходимо натренировать на вводимые экспериментальные данные встроенной утилитой тренеровки.

Очевидно, что способов и путей реализации сборки всех этапов немного, ввиду сложности общего процесса распознавания и разницы в задачах каждого этапа. Так как программа покрывает все задачи, начиная от сканирования, заканчивая помещением информации в базу данных, встала необходимость объединить много этапов. Сборка модулей программы была осуществлена описанным способом ввиду удобства разработки на языке С# в среде Visual Studio и удобства использования компонентов, в частности библиотеки компьютерного зрения openCV.

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

33

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

34

6 Создание пробной версии программного обеспечения

объекта разработки;

В ходе практики были разработаны программа конструктор анкет и прототип

системы распознавания анкет.

При создании программы – конструктора анкет были применены и воплощены

вжизнь несколько нетривиальных подходов, методов, техник и особенностей, как:

Генерация уникального идентификатора каждой анкеты для дальнейшей прозрачной привязки к личному кабинету пользователя

Генерация и нанесение QR кода с сервисной информацией и уникальным идентификатором анкеты

Автоматическое добавление логотипа и сервисной информации

Автоматическая система перерасчета мер длинны в соотношении с разрешением исходного изображения – фона

Входе реализации прототипа системы автоматического распознавания анкеты были реализованы следующие особенности:

Загрузка и парсинг файла шаблона распознавания анкеты

Серийная загрузка отсканированных изображений заполненных анкет

Сервисный вывод информации о анкетах, сообщения оператору системы о выявленных неполадках

Отслеживание количества введеных в систему анкет по файлу – шаблону и информации в уникальном идентификаторе анкеты; разрешение ошибок повторного сканирования одного и того же файла

Комплексная система предподготовки изображения:

Поиск маркеров

Автоматический поворот изображения

Двойная автоподстройка угла наклона изображения (точность более 8

знаков после запятой)

Отсечение шумовой составляющей фона изображения

Отсечение границ полей

35