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

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

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

Именование каждого из полей

Тип каждого из полей

Ориентация Листа

Цветная / Ч/Б анкета

Множество других, системных переменных

Записи в файле-шаблоне разделены символом “;”, дополнительно введено экранирование всех вводимых на этапе создания анкеты данных, что бы не допустить несоответствия системному шаблону.

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

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

заполненных анкет

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

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

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

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

16

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

оператору системы о выявленных неполадках

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

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

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

Примеры таких сообщений можно увидеть на Рис. 3, Рис. 4 и Рис. 5.

Рис. 3. Информационное сообщение о начале работы

Рис. 4. Информационное сообщение о первичном повороте изображения

Рис. 5. Информационное сообщение о завершении работы над одной анкетой

17

4.7 Отслеживание количества введенных в систему анкет

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

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

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

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

Пример сообщения о несоответствии информации о тираже анкеты с количеством загруженных изображений можно увидеть ниже:

18

Рис. 6. Несоответствие количества загруженных анкет

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

фона

При создании шаблона анкеты, и при сохранении соответствующего файла-

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

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

19

использовании данного метода достаточная для дальнейшей разметки и разрезания

зон для распознавания.

20

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

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

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

процедура:

1.Бинаризация изображения ( перевод в ч/б )

2.Найти все контуры (= прямые линии) на изображении, используя детектор границ Кэнни [7]

3.Объединить близко находящиеся контуры используя преобразование Хафа [8]

4.Найти фигуры с нужным количеством контуров

На первом шаге, для ускорения обработки используются только верхние и нижние 25% документа, что позволит сэкономить несколько миллисекунд на перекраску изображения в ч/б.

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

1.Применить фильтр Гаусса, чтобы сгладить изображение и удалить шум;

2.Найти градиенты интенсивности изображения;

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

4.Применить двойной цветовой порог для определения потенциальных граней

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

После обнаружения граней необходимо найти прямые линии и их пересечения,

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

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

21

был бы уменьшен еще больше. Преобразование Хафа было первоначально разработано для распознавания линий.

Для успешного нахождения фигур – маркеров необходимо выполнить следующие этапы:

1.Используя функцию approxPolyDP создать приближенные версий граней;

2.Использовать преобразования Хафа для поиска всех пересечений прямых линий под углом ~90 градусов;

3.В найденных пересечениях определить фигуры, имеющие 4 прямых (=

побочный маркер) и 6 прямых (= главный маркер);

4.Отсечь повторения одной и той же фигуры.

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

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

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

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

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

22

упрощают считывание потока анкет и устраняют опасность неверной интерпретации

собранных данных.

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

Для наиболее точного распознавания символов необходимо откорректировать положение изображения так, чтобы точность угла наклона изображения была до 10-8

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

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

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

Далее программа выполняет 4 калибровки, сначала угол вертикальной прямой сравнивает с значением в 90° (по стандартной математической модели декартовых координат), изменяя угол изображения в соответствии с полученной разностью.

Вторым этапом происходит сравнение угла горизонтальной прямой с углом в 0°,

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

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

На Рис. 7 Можно увидеть результат работы алгоритма – идеально подстроенное изображение. Также, на этом рисунке можно увидеть прямые линии, проведенные из центров маркеров

23

Рис. 7. Изображение с подстроенным углом наклона

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

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

1)Порог отсечения по белому цвету;

2)Порог отсечения по черному цвету;

3)Дополнительный фильтр контрастности изображения;

Для первого изображения в серии проводится полный перебор всех возможных вариантов значений фильтров (255 * 255 * 255, около 1 секунды). Итоговое

24

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

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

>90), будет проведен повторный полный перебор параметров фильтров.

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

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

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

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

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

25