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

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ АВТОНОМНОЕ

ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ

«НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ

«ВЫСШАЯ ШКОЛА ЭКОНОМИКИ»

Факультет информатики, математики и компьютерных наук

Программа подготовки бакалавров по направлению 09.03.04 Программная инженерия

ВЫПУСКНАЯ КВАЛИФИКАЦИОННАЯ РАБОТА

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

Матутин Василий Андреевич

Нижний Новгород, 2019

Содержание

  • Введение
  • Раздел 1.
    • 1.1 Цель и задачи работы
    • 1.2 Обзор технологии оптического распознавания символов
    • 1.3 Анализ библиотек оптического распознавания символов
    • 1.4 Обзор технологии извлечения упоминаний сущностей (классификации текста по категориям)
    • 1.5 Анализ библиотек классификации текста по категориям
    • 1.6 Обзор мобильных платформ
    • 1.7 Обзор существующих мобильных приложений для распознавания визитных карточек
    • 1.8 Определение требований к приложению
  • Раздел 2.
    • 2.1 Описание пользовательского сценария приложения
    • 2.2 Системные требования к разрабатываемому приложению
    • 2.3 Диаграмма классов приложения
    • 2.4 Структура и общий алгоритм работы приложения
      • 2.4.1 Инициализация приложения
      • 2.4.2 Пользовательская навигация
      • 2.4.3 Модуль сканирования и распознавания визитных карточек
      • 2.4.4 Модуль отображения сохранённых контактов
      • 2.4.5 Модуль общих настроек приложения
    • 2.5 Дизайн пользовательского интерфейса приложения
    • 2.6 Используемые шаблоны проектирования
  • Раздел 3.
    • 3.1 Тестирование приложения
      • 3.1.1 Модульное тестирование
      • 3.1.2 Интеграционное и системное тестирование
      • 3.1.3 Итоги тестирования
    • 3.2 Описание стратегий дальнейшего развития приложения
  • Заключение
  • Список литературы
  • Приложение
  • Введение
  • В настоящее время информационные технологии оказывают сильное влияние на все сферы деятельности человека. Растёт объём накапливаемой информации, усложняются задачи, для решения которых применяются вычислительные системы, меняются средства коммуникации.
  • Изменения в структуре общественных отношений, вызванные всё более широким применением различных информационно-технических решений, затрагивают и такие сферы деятельности человека, как производственные процессы. В настоящее время повсеместное распространение получили электронные формы организации рабочего времени и общения, такие как проведение совещаний через системы видеосвязи, применение электронного документооборота на предприятии, автоматизированные системы подбора сотрудников и другие.
  • Тем не менее, несмотря на факт повсеместного распространения информационных решений в среде корпоративных отношений, не может оставаться незамеченным тот факт, что некоторые сферы остаются менее затронуты данным явлением. Одним из основных примеров здесь может выступать практика обмена визитными карточками перед началом деловой встречи. В силу того, что данный процесс имеет скорее символическое значение как традиция, которая помогает установить прочные деловые отношения, чем как эффективный способ обмена контактной информацией, бумажные карточки не были вытеснены их аналогами в цифровой форме. В то же время, бумажные адресные книги уже давно потеряли свою актуальность, поэтому получатель визитной карточки вынужден переносить интересующую его информацию в электронный вид вручную, что приводит к значительным временным затратам и создаёт дополнительные неудобства.
  • Для решения проблем, подобных данной, были разработаны специальные программы, базирующиеся на оптическом распознавании текста. Данные системы используют в качестве входных данных цифровую фотографию или отсканированный документ, анализируют их на наличие машинописного или рукописного текста и переводят его в формат, доступный для последующей обработки программными средствами, то есть машиночитаемый текст. Примером программных решений в данной области может служить приложение ABBYY FineReader от компании ABBYY для распознавания текста на сканированных изображениях или Tesseract от компании Google. В то же время, следует учитывать, что внедрение данных технологий находится на стадии испытаний и не затрагивает многих сфер информационных отношений, в том числе оптического распознавания визитных карточек. Поэтому качественный программный продукт, решающий данную проблему, остаётся широко востребованным на рынке информационных услуг.
  • Данная исследовательская работа организована следующим образом: в первом разделе объясняются цель и задачи работы, проводится обзор существующих алгоритмов, предназначенных для распознавания и классификации текста, с анализом уже представленных на потребительском рынке решений по распознаванию визитных карточек и производится постановка требований к приложению. Второй раздел посвящен описанию разработанного алгоритма. Также рассматривается архитектура приложения и детали реализации. Обзор тестирования приложения, а также стратегии дальнейшего развития приводятся в заключительном разделе.
  • Раздел 1.
  • 1.1 Цель и задачи работы
  • Целью данной работы является разработка прототипа мобильного приложения для распознавания информации на визитных карточках и её последующей классификации с возможностью сохранения в электронную адресную книгу устройства для дальнейшего использования.
  • Объект исследования - распознавание информации по цифровому изображению на мобильном устройстве и её классификация.
  • Предмет исследования - применение решений в области оптического распознавания и классификации текста при создании приложения для распознавания информации на бумажных визитных карточках.
  • Для достижения поставленной цели необходимо выполнить следующие задачи:

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

ѕ определить требования к разрабатываемому приложению;

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

ѕ разработать функционирующий прототип приложения;

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

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

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

1.2 Обзор технологии оптического распознавания символов

Оптическое распознавание символов (optical character recognition, OCR) - это машинное преобразование рукописного, машинописного или печатного текста в текстовые данные, использующиеся для представления символов на компьютере [3]. В настоящее время данная технология в основном применяется для распознавания текста на бумажных носителях (так называемая оцифровка текста), например для анализа бумажной отчётности предприятий, кассовых чеков, банковских выписок, научной литературы и прочих документов, подходящих для обработки данным алгоритмом. Технология OCR используется как эффективный способ повышения доступности информации: документы, преобразованные в цифровой вид, могут быть проиндексированы поисковыми системами сети Интернет, занимают значительно меньше места при хранении и доступны в онлайн режиме. Кроме того, текст в цифровой форме может быть использован для таких автоматизированных процессов, как машинный перевод и преобразование текста в речь.

В настоящее время выделяют два основных подхода к оптическому распознаванию текста: сопоставление изображений и шаблонов и классификация символов с помощью нейронных сетей [5].

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

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

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

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

С помощью применения данных методов можно добиться 99% точности распознавания символов на высококачественном изображении текста. При применении методов в реальных условиях приемлемым признаётся результат 80-90% успешно распознанных символов. Кроме того, ни один метод не может показать хороший результат при распознавании изображения плохого качества, поэтому предварительная обработка изображения почти также важна, как и выбор метода распознавания текста.

1.3 Анализ библиотек оптического распознавания символов

В настоящее время существует большое разнообразие программных интерфейсов, предлагающих функционал для оптического распознавания символов. В силу ограниченности ресурсов проекта, среди многообразия данных библиотек рассмотрим только те, которые предлагают готовые решения без необходимости конструирования архитектуры нейронной сети и её последующего обучения: ABBYY Cloud OCR SDK, Tesseract OCR и Google Firebase Text Recognition.

ABBYY Cloud OCR SDK - это онлайн-сервис, предложенный компанией ABBYY для распознавания текста на изображении. Функционирует по принципу удалённого веб-сервиса: пользователи могут загружать изображения на сервер с помощью REST запросов и принимать результат в виде распознанного текста. Как следствие, данный сервис может быть использован на любом устройстве, поддерживающем выполнение таких запросов (фактически на всех устройствах с выходом в интернет), кроме того, данный сервис характеризуется одной из самых высоких точностей распознавания. Существенным недостатком ABBYY Cloud OCR SDK является отсутствие бесплатной модели распространения и встраиваемых интерфейсов, ориентированных на использование непосредственно из кода мобильного приложения.

Tesseract OCR - это свободно распространяемая библиотека, написанная на языке C++. Построена по модульному принципу: для распознавания текста на определённом языке пользователю необходимо подключить модуль с моделью для распознавания данного языка, разместив его на своём устройстве. Таким образом, существует возможность собирать любую комбинацию распознаваемых языков, в том числе с использованием собственных моделей. Существенным преимуществом библиотеки является возможность работы без соединения с сетью. Недостатком является более низкое качество распознавания по сравнению с онлайн аналогами. Для работы библиотеки на мобильных устройствах необходимо подключить библиотеку tess-two, которая расширяет возможности библиотеки Tesseract OCR путём её адаптации для работы на мобильных устройствах. В среднем библиотека распознаёт успешно 60% символов [7].

Google Firebase Text Recognition - библиотека, предлагаемая компанией Google для распознавания текста. Изначально адаптирована для работы на мобильных устройствах. Распространяется по условно бесплатной модели: существует лимит количества бесплатно распознанного текста. Работает как в онлайн, так и оффлайн режимах (в последнем отсутствует поддержка кириллических языков). Из преимуществ можно отметить возможность динамического определения языка анализируемого текста и наличие обширной документации, что упрощает использование данной библиотеки. Ошибка при распознавании символов в тексте в среднем составляет 15-20% [7].

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

В данной работе основной акцент ставится на использование комбинации двух библиотек: Tesseract OCR и Google Firebase Text Recognition в связи с явным наличием преимуществ данного решения: поддержка мобильных устройств, модель бесплатного использования в рамках исследовательского проекта и высокое качество распознавания.

1.4 Обзор технологии извлечения упоминаний сущностей (классификации текста по категориям)

Извлечение упоминаний сущностей (named entity recognition, NER) - это технология идентификации участков в неструктурированном тексте, в которых упоминаются категорируемые объекты для их классификации по заранее определённым категориям, таким как имя человека, адрес электронной почты, название организации [2].

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

Существует два основных подхода к решению задачи извлечения сущностей из текста.

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