Файл: Программные средства для заполнения базы персональных данных.rtf
Добавлен: 26.05.2026
Просмотров: 26
Скачиваний: 0
Программные средства для заполнения базы персональных данных
СОДЕРЖАНИЕ
автоматизированный ввод база данные
ВВЕДЕНИЕ
. ПОСТАНОВКА ЗАДАЧИ
Общее описание разрабатываемой системы
. АНАЛИТИЧЕСКИЙ ОБЗОР
.1 Теоретические основы
. ПРОЕКТИРОВАНИЕ
.1 Диаграмма вариантов использования
.2 Архитектура приложения
.3 Выбор инструментальных средств разработки
.4 Проектирование структур данных и алгоритмов
.5 Проектирование пользовательского интерфейса
. РЕАЛИЗАЦИЯ
.1 Создание проекта
.2 Операция выбора режима
.3 Операция распознавания
.4 Корректировка и подтверждение распознанных данных
.5 Механизм аутентификации
.6 Просмотр документов
.7 Обучение Tesseract
.8 Сборка приложения
. ТЕСТИРОВАНИЕ
.1 Обоснование методики тестирования
.2 Результаты тестирования
ЗАКЛЮЧЕНИЕ
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
ПРИЛОЖЕНИЯ
ВВЕДЕНИЕ
Несмотря на то, что в настоящее время большинство документов составляется на компьютерах, задача создания полностью электронного документооборота ещё далека до полной реализации. Как правило, существующие системы охватывают деятельность отдельных организаций, а обмен данными между организациями осуществляется с помощью традиционных бумажных документов.
Задача перевода информации с бумажных на электронные носители актуальна не только в рамках потребностей, возникающих в системах документооборота. Современные информационные технологии позволяют нам существенно упростить доступ к информационным ресурсам, накопленным человечеством, при условии, что они будут переведены в электронный вид.
Наиболее простым и быстрым способом перевода данных документов в цифровой формат является сканирование документов с помощью сканеров или захват изображения цифровой фотокамерой. Результатом их работы является цифровое изображение документа - графический файл. Более предпочтительным, по сравнению с графическим, является текстовое представление информации. Этот вариант позволяет существенно сократить затраты на хранение и передачу информации, а также позволяет реализовать все возможные сценарии использования и анализа электронных документов. Поэтому наибольший интерес с практической точки зрения представляет именно перевод бумажных носителей в текстовый электронный документ.
Цель данной ВКР - исследование возможностей ускорения процессов заполнения базы персональных данных. Это может быть достигнуто за счет сокращения ручного ввода персональных данных путем применения технологий оптического распознавания символов.
Данное исследование выполняется по предложению руководителя отдела разработки АО «Сбебанк-Технологии».
В ВКР решены следующие задачи:
. Аналитический обзор существующих средств для автоматического заполнения базы персональных данных
. Проектирование автоматизированной системы
. Реализация системы
. Тестирование системы
. Проведен эксперимент по занесению персональных данных с помощью разработанной системы
Результаты работы докладывались на международной студенческой конференции
«Молодые исследователи - регионам».
1. ПОСТАНОВКА ЗАДАЧИ
Одной из задач ввода формализованных документов является индексирование -
присвоение каждому документу набора атрибутов с возможностью автоматического ввода
индексных полей с помощью распознавания. На рисунке 1 показаны основные этапы
ввода формализованных документов [1].
Рисунок 1 - Схема системы ввода формализованных документов
После контроля данные отправляются в базу данных. Таким образом, результатом ввода форм чаще всего является не сам документ в исходном виде, а определенная запись в некоторой базе данных. Технологии распознавания печатных символов обозначаются термином оптическое распознавание символов (англ. optical character recognition, OCR). Задачи распознавания при вводе форм не обязательно связаны с распознаванием текста. При вводе форм может потребоваться распознавание различных меток и знаков, для которого тоже существует свой термин: OMR (Optical Mark Recognition).
В нашем случае индексируемыми документами являются документы, удостоверяющие личность, в частности, в работе исследование выполнялось над двумя типами документов - паспорт РФ и страховое свидетельство обязательного пенсионного страхования.
В качестве универсального устройства для проведения эксперимента был использован смартфон, поскольку он имеет цифровую камеру и обладает хорошими вычислительными возможностями для организации распознавания.
Общее описание разрабатываемой системы
Разрабатываемая система будет представлять собой приложение по ОС Android. Она должна предоставлять возможность автоматического ввода данных документов, удостоверяющих личность, а именно паспортов и страховых свидетельств государственного пенсионного страхования.
Приложение должно иметь базовый механизм аутентификации в целях конфиденциальности персональных данных. Введенные документы должны сохраняться в памяти устройства, а перед сохранением пользователю должна быть предоставлена возможность ручной корректировки распознанных данных. Сохраненные документы могут быть просмотрены или удалены. Разрабатываемая система должна работать исключительно в оффлайн-режиме.
Анализируя функции системы можно выделить следующие:
. Регистрация и аутентификация пользователя
. Получение изображения документа при помощи цифровой фотокамеры
. Распознавание данных документа
. Возможность корректировки распознанных данных
. Сохранение данных документа в БД
. Возможность просмотра ранее внесенных документов
. Возможность удаления ранее внесенных документов
2. АНАЛИТИЧЕСКИЙ ОБЗОР
Аналитический обзор существующих решений по распознаванию данных документов
Поиск существующих свободно распространяемых решений, специализированных именно на распознавании документов, удостоверяющих личность, не дал результатов. Поэтому был проведен анализ продуктов, предлагающих возможности OCR, которые предлагают API или SDK для использования в собственном проекте [2]. Список ПО, удовлетворяющего условиям свободного распространения и наличия SDK, получился следующим: Tesseract, Puma.NET, CuneiForm, MeOCR, FreeOCR, Ocrad.
. Tesseract
Наиболее популярная OCR-библиотека, разрабатываемая компанией Google. Поддерживает более 100 языков. Написана на языке C++, однако имеет обертку (wrapper) для языка Java.
. Puma.NET
Обертка для CuneiForm для платформы .NET, следовательно, не может быть использована в приложении для ОС Android.
. CuneiForm
Разработанная в России система оптического распознавания символов. Поддерживает 28 языков, в том числе русский. Последняя версия выпущена в 2011 году. Не предоставляет интерфейса для Java.
. MeOCR
Не поддерживается с 2012 года. Средства разработки доступны только для платформы .NET
5. FreeOCR
Оболочка для Microsoft OCR Library. Может быть использована только на устройствах под управлением ОС Windows.
. Ocrad
Написанная на C++ OCR-библиотека. Поддерживает только латинский алфавит, вследствие чего не может быть использована в проекте.
Таким образом, в качестве средства распознавания, наиболее подходит библиотека Tesseract. Однако изображение перед передачей на распознавание в Tesseract необходимо обработать: произвести фильтрацию и выделить блоки текста [3].
Существуют комплексные системы оптического распознавания символов, такие как ABBYY FineReader, CuneiForm и т.д., однако их использование в данном проекте не представляется возможным в связи с невозможностью или сложностью интеграции и громоздкостью пакетов.
2.1 Теоретические основы
Распознавание образов исследуется в рамках теории компьютерного зрения. Компьютерное зрение - теория и технология создания машин, которые могут производить обнаружение, отслеживание и классификацию объектов [4]. В задачах компьютерного зрения входными данными является двумерный массив данных - то есть, изображение.
Процесс распознавания текста можно разбить на три этапа:
. предварительная фильтрация и подготовка изображения;
. логическая обработка результатов фильтрации;
. алгоритмы принятия решений на основе логической обработки.
Границы между этапами очень условные. Для решения задачи далеко не всегда нужно применять методы из всех групп, бывает достаточно двух, а иногда даже одного.
.1.1 Предварительная фильтрация и подготовка изображения
Большинство методов фильтрации используют операцию свертки. Значение каждого пикселя в выходном изображении равно сумме произведений значений матрицы свертки и соответствующих точек входного изображения.
Операции, выполняемые на этапе фильтрации:
. Преобразование цветного изображения в оттенки серого для упрощения
дальнейшей обработки. Пример приведен на рисунке 2.
Рисунок 2 - Преобразование изображения в оттенки серого
. Сглаживание изображения - выполняется в целях уменьшения шума. Для
выполнения операции сглаживания к изображению применяется фильтр. Пример
сглаживания изображен на рисунке 3.
Рисунок 3 - Сглаживание изображения фильтром Гаусса
Существует множество фильтров, но наиболее часто используются следующие:
) Размытие по рамке (box blur)
Простейший из фильтров. Каждый выходной пиксель равен среднему арифметическому соседних пикселей. Матрица свертки:
) Размытие по Гауссу (Gaussian blur)
Несмотря на то, что этот алгоритм не самый быстрый, он нашел наибольшее
применение. Функция свертки для одномерного изображения выглядит как
представлено на рисунке 4.
Рисунок 4 - Функция свертки размытия по Гауссу
Если предположить, что изображение одномерное, можно заметить, что пиксель, находящийся в центре будет иметь больший коэффициент. Коэффициенты соседних пикселей уменьшаются с увеличением расстояния между ними и центральным пикселем.
) Медианный фильтр (Median blur)
Заменяет каждый пиксель медианным значением соседних пикселей.
) Двустороннее размытие (Bilateral blur)
Главной целью описанных выше фильтров является сглаживание изображения. Однако иногда фильтры не только снижают уровень шума, но также сглаживают границы, что не всегда допустимо. Для того, чтобы это избежать, применяются фильтры двустороннего размытия.
Так же, как и фильтр Гаусса, двусторонний фильтр ставит в соответствие каждому соседнему пикселю определенный коэффициент. Эти коэффициенты имеют две составляющих: первая соответствует коэффициенту фильтра Гаусса, а вторая учитывает разницу в интенсивности между соседними пикселями и тем, который рассчитывается.
. Выделение границ
Для выделения символов на окружающем фоне применяют методы выделения признаков, в частности - методы выделения границ.
Выделение границ - метод для поиска границ объекта в пределах изображения. Он нацелен на поиск точек изображения, где резко меняется яркость.
Существует множество подходов к выделению границ, но практически все можно разделить на две категории: методы, основанные на поиске максимумов, и методы, основанные на поиске нулей. Методы, основанные на поиске максимумов, выделяют границы с помощью вычисления «силы края», обычно выражения первой производной, такого как величина градиента, и затем поиска локальных максимумов силы края, используя предполагаемое направление границы, обычно перпендикуляр к вектору градиента. Методы, основанные на поиске нулей, ищут пересечения оси абсцисс выражения второй производной, обычно нули лапласиана или нули нелинейного дифференциального выражения [5].
) Оператор Собеля
Широко известным и довольно простым фильтром выделения границ является оператор Собеля. Он вычисляет приближенное значение градиента яркости изображения. Оператор Собеля использует две матрицы свертки для вычисления приблизительных значений производных по горизонтали и по вертикали изображения.
Если исходное изображение обозначить A, а изображения, где каждая точка соответствует приближенному
значению производной в горизонтальном и вертикальном направлениях -
и
соответственно, то изображения
производных будут рассчитываться следующим образом:
где
- оператор свертки.
Координата x здесь возрастает
«вправо», а y - «вниз». Значение градиента в
каждой точке может быть вычислено, используя:
Имея эту информацию, мы также можем вычислить направление градиента:
Пример использования оператора Собеля изображен на рисунке 5.
Рисунок 5 - Пример использования оператора Собеля
) Оператор Кэнни
Более широкое применение нашел оператор Кэнни. Он использует многоступенчатый алгоритм для обнаружения широкого спектра границ в изображении. Хотя он был разработан на заре компьютерного зрения, оператор обнаружения границ Кэнни до сих пор является одним из лучших детекторов. Кроме особенных частных случаев трудно найти детектор, который бы работал существенно лучше, чем детектор Кэнни [6].
Алгоритм оператора Кэнни состоит из следующих шагов:
· Применение фильтра Гаусса для снижения шума.
· Поиск градиентов (выполняется аналогично оператору Собеля). Направление градиента округляется до 0, 45, 90 или 135 °.
· Подавление немаксимумов - удаляются пиксели, которые скорее всего не являются частью границы. Остаются только тонкие линии.
· Двойная пороговая фильтрация и трассировка области
неоднозначности. Задаются два пороговых значения (верхнее и нижнее), пиксель,
градиент которого выше верхнего порога, принимается как граница, пиксель с
градиентом ниже нижнего порога - отклоняется, пиксель с градиентом, находящимся
между пороговыми значениями принимается как граница, только в случае, если
рядом с ним находится пиксель с градиентом выше верхнего порога. Кэнни
рекомендует, чтобы соотношение верхний порог/нижний порог находилось между 2 и
3. Пример использования оператора Кэнни приведен на рисунке 6.
Рисунок 6 - Пример использования оператора Кэнни
Из алгоритма следует, что выходное изображение является бинарным (это
также видно на рисунке), что исключает необходимость пороговой фильтрации
изображения для дальнейшего процесса распознавания, в отличие от оператора
Собеля.