Авторы
Ивлиев Евгений Андреевич
магистрант кафедры «Базовая кафедра «АМиУ»
Россия, Донской государственный технический университет
123ivliev123@mail.ru
Обухов Павел Серафимович
кандидат технических наук, доцент, декан факультета «Автоматизация мехатроника и управление»
Россия, Донской государственный технический университет
pobuhov@spark-mail.ru
Аннотация
Статья посвящена разработке и анализу методов идентификации динамических объектов. Для решения проблемы обнаружения багажных бирок и штрих-кодов разработана нейросеть с архитектурой SSD InceptionV2. Для решения задачи идентификации цифрово-буквенной информации рассматривается несколько подходов: Tesseract, SSD InceptionV2, OpenCV и полносвязная нейросеть. Проверена работоспособность методов на реальных изображениях.
Ключевые слова
компьютерное зрение, нейронная сеть, штрих-код, код аэропорта IATA, TensorFlow, OpenCV, Python
Категории статьи:
Читайте также
Статья также доступна (this article also available):
Финансирование
Статья подготовлена при поддержке и в рамках мероприятия DR-2020 «Международный конкурс научных работ и проектов молодых исследователей “Цифровой регион – 2020”» (Наука и образование on-line)
Рекомендуемая ссылка
Задача идентификации динамических объектов в видеопотоке является одной из наиболее востребованных в сфере технического зрения. На ее основе решается множество прикладных задач. В данной работе в качестве динамических объектов рассматриваются багажные бирки в сортировочной зоне аэропорта.
Актуальность данной работы обусловлена тем, что сотрудники сортировочных помещений аэропорта лишены возможности простой идентификации багажных бирок с помощью сканеров штрих-кодов потому, что база данных багажных бирок является недоступной для аэропортов.
Задачу идентификации багажной бирки можно разделить на две составляющие:
В ранее описанных работах[1] для задачи локализации применялся разработанный нами алгоритм по поиску штрих-кодов на багажной бирке. Позже экспериментально было выявлено что данный алгоритм неработоспособен при различных условиях, таких, как: расстояние от багажной бирки до видео камеры, освещенность, ориентация; и имеет недостаток– в результате алгоритма сформируется область, информирующая о нахождении в этой области штрих-кода, но эта область в различных условиях не всегда соответствует области штрих-кода, что сводит на нет дальнейшую идентификацию информации о рейсе самолета.
Для решения задачи локализации багажной бирки с помощью нейронных сетей было рассмотрено несколько различных базовых архитектур нейросетей, доступных в TensorFlow Object Detection API, который является платформой с открытым исходным кодом, разработанной компанией Google на базе TensorFlow [2] и позволяющей легко строить, обучать и развертывать модели обнаружения объектов. Для целей данного исследования были рассмотрены следующие базовые модели: более быстрая R-CNN (Regions With CNNs) [3] с использованием Inception V2 [4], SSD (Single Shot Detector) [5] с использованием модели InceptionV2, и SSD, использующая MobileNetV2 [6]. Согласно исследованию [7] была выбрана архитектур SSD InceptionV2 так, как имеет более высокую скорость идентификации, потребляет меньше памяти, а точность идентификации сравнима с остальными.
Для обучения нейросети была создана обучающая выборка состоящая из 200 изображений с багажными бирками. Аннотация данных выполнялась программой LabelImg, с помощью которой выделяются границы интересуемого объекта и указывается класс к которому принадлежит данный объект.
В результате обучения на 240 эпохах точность нейросети локализации багажной бирки составила 95,3%. С помощью данной нейросети сужается область поиска информации о рейсе. Однако для более точного сужения области поиска, требуется искать область штрих-кода так, как зачатую информация о рейсе располагается над или под штрих кодом. Поэтому была создана нейросеть для решения задачи локализации штрих-кода. Для обучения использовалась та же база изображений, но при аннотации данных выделялись области штрих-кодов. По завершению обучения точность локализации области штрих-кода составила 96,7% при использовании данной нейросети. При эксплуатации данных нейросетей требуется намного больше вычислительных ресурсов чем на одну из них, поэтому для снижения вычислительной нагрузки было принято решение обучить одну нейросеть распознавать несколько классов объектов, нежели обучать несколько нейросетей распознавать по одному классу. По завершению обучения точность локализации объектов составила 89% при использовании данной нейросети. Результат работы нейросети представлены на рис. 1.
Рис. 1. Локализация багажных бирок и штрих-кодов нейросетью
Первым немаловажным шагом для корректного распознавания цифробуквенной информации является правильное отображение бирки, которое осуществляется алгоритмами и функциями библиотеки «OpenCV» [8] по следующему плану:
Рис. 2. Этапы достижения правильного отображения
Одним из первых вариантов решения задачи распознавания цифробуквенной информации была программа Tesseract. Это программный OCR-движок, который в настоящее время Tesseract поддерживается компанией Google, которая выкупила программу в 2006 году у HP и открыла исходные коды. Для работы с Tesseract в языке Python предусмотрена библиотека pytesseract [6]. Однако было выяснено, что программа показывает хорошие результаты только при идеальных условиях.
Поэтому было решено, для распознавания цифробуквенной информации использовать модель нейронной сети SSD InceptionV2, которая показала хорошие результаты по локализации багажных бирок и штрих-кодов. Обучение нейросети происходило на синтетической обучающей выборке, состоящей из изображений, на которых случайным образом были размещены символы различного шрифта. При этом каждый символ был повернут, масштабирован, искажен, зашумлен и обесцвечен для приемлемого разнообразия характеристик. Предлагаемым способом было создано 8000 изображений с цифрами и буквами для 36 различных классов. В результате обучения данной нейросети на 70 эпохах были получены результаты представлены на рис 3, из которого видно, что нейросеть хорошо детектирует коде аэропорта IATA, однако плохо справляется с символами маленького размера.
Рис. 3. Детектирование цифробуквенной информации
Для получения лучших результатов задачу разделили на 2 части: локализацию символов с помощью OpenCV и классификацию нейросетью.
Локализация символов выполнялась по следующим этапам:
Рис. 4. а) Поиск всех контуров; б) Отсортированные контуры.
Для обучения классифицирующей нейронной сети была создана база из 76159 монохромных изображений цифр и букв разных шрифтов,
Архитектура нейронной сети обладает следующими параметрами:
В результате обучения нейронной сети на 10 эпохах точность составила 95,88%.
Получение информации о символе заключенном в контур выполнялось следующим образом:
Рис. 5 локализация и классификация цифробуквенной информации
В ходе выполнения данной работы была разработана нейросеть с архитектурой SSD InceptionV2 для решения задачи детектирования багажных бирок и штрих-кодов. Рассмотрены несколько подходов для решения задачи идентификации цифробуквенной информации. Самый лучший результат был достигнут в подходе, где локализация выполнялась инструментами OpenCV, а классификация полносвязной нейросетью.
Библиографический список