← Назад

УДК 004.932.72

ДЕТЕКТИРОВАНИЕ ГРАНИЦ ПРИ НЕЙРОСЕТЕВОМ ОБНАРУЖЕНИИ ОБЪЕКТОВ НА ИЗОБРАЖЕНИИ

Детектирование границ при нейросетевом обнаружении объектов на изображении / Я.А. Решетняк, О.И. Федяев // СОВРЕМЕННЫЕ ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ В ОБРАЗОВАНИИ И НАУЧНЫХ ИССЛЕДОВАНИЯХ (СИТОНИ-2021) : Материалы VII Международной научно-технической конференции, Донецк, 23 ноября 2021 года. – Донецк: Донецкий национальный технический университет, 2021. – С. 208–215. – EDN FZSWYE.

Донецкий национальный технический университет (г. Донецк)
yar-resh@yandex.ru, fedyaev@donntu.org

Введение

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

Распознавание объектов на изображении является сложной задачей для компьютерного алгоритма [1]. Это связано, в первую очередь, с высокой вариативностью визуальных представлений отдельных объектов. Также немаловажную роль играет освещение, которое оказывает влияние на цвет полученного изображения, а также может делать незаметными или искажать отдельные детали. Задача поиска объектов на изображениях обычно состоит из двух подзадач: первая из них относится к классу задач обнаружения (детектирования) объекта на изображении, вторая заключается в классификации найденного объекта по принадлежности к одному из заданных классов.

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

Описание способа обнаружения заданных объектов на изображении

При решении задачи обнаружения заданных объектов на изображении авторы использовали следующий подход. Пусть на изображении I расположено N объектов, которые ограничены правильными (эталонными) прямоугольными областями Bgti (ground truth), где i ∈ 1, … ܰN. Способ обнаружения должен для каждого объекта найти на I такую предполагаемую область Bpi (predicted), т.е. охватывающую i-й объект прямоугольную «рамку», что

Формула 1
(1)

где IOU (Bpi, Bgti) - пересечение над объединением (Intersection Over Union – IOU), area (Bpi ∩ Bgti) – площадь пересечения областей Bpi и Bgti, area (Bpi ∪ Bgti) - площадь объединения областей Bpi и Bgti. Если IOU (Bpi, Bgti) > 0,5, то принималось, что область Bpi найдена верно.

Кроме выделения на исходном изображении I областей Bpi, содержащих заданные объекты, необходимо определить классы, к которым относятся обнаруженные объекты. Для детектирования (классификации) объектов применялся метод фрагментации. Плоское изображение разбивается на S x S фрагментов. Каждый фрагмент может «предсказывать» (предполагать присутствие) M областей и степень уверенности в том, что в этой области содержится часть искомого объекта. Каждая из таких областей характеризуется переменными x, y, w, h, c:

В результате получается многомерный массив (тензор) размерности S * S * M*5 элементов.

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

Таким образом, решение задач обнаружения и классификации объекта выполняется в три этапа:

1. Фрагментация исходного изображения с определённой дискретностью.

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

3. Визуализация найденных объектов путём объединения перекрывающихся прямоугольников.

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

Выбор программных средств построения моделей нейронных сетей

В настоящее время TensorFlow является самой популярной библиотекой программного обеспечения. Это библиотека с открытымисходным кодом для численных вычислений и крупномасштабного машинного обучения. В частности, она позволяет:

Существует несколько реальных приложений глубокого обучения, которые делают TensorFlow популярным. Будучи библиотекой с открытым исходным кодом, TensorFlow играет также важную роль в текстовых приложениях, распознавании изображений, голосовом поиске и многом другом. Другие системы, например, система DeepFace для распознавания изображений в Facebook также использует TensorFlow.

В библиотеке TensorFlow в качестве формализма используется теория графов. В вычислительном графе узлы представляют математические операции, а ребра графа - многомерные массивы данных (тензоры), передаваемые между ними. Сеанс TensorFlow используется для выполнения операций в графе, а также для извлечения и оценки результатов [3]. Библиотека TensorFlow обладает множеством функций, которые делают её очень эффективной для глубокого обучения.

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

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

Таблица 1. Параметры предобученных нейросетевых моделей

Название модели Скорость Средняя точность, % Выходы
ssd_mobilenet_v1_cocoБыстрая21Коробки
ssd_mobilenet_v1_ppn_cocoБыстрая24Коробки
ssd_mobilenet_v1_fpn_cocoСредняя30Коробки
ssd_resnet_50_fpn_cocoСредняя32Коробки
faster_rcnn_inception_resnet_v2_atrous_cocoМедленная37Коробки

Графа «Средняя точность» содержит результат измерения точности при построении ограничивающих объект рамок. Это хорошая комбинированная мера того, насколько чувствительна сеть к интересующим объектам и насколько хорошо она избегает ложных срабатываний. Чем выше оценка средней точности, тем точнее сеть, но ниже скорость работы сети [4].

Нейросетевая сегментация объектов и их классификация
Рисунок 1- Нейросетевая сегментация объектов и их классификация

Нейросетевая сегментация объектов и их классификация

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

Для исследования процесса нахождения и классификации объектов на изображении была разработана программная модель на языке Python с использованием библиотеки TensorFlow [5]. Модель позволяет обрабатывать графические изображения произвольных размеров.

Исходное изображение
Рисунок 2 - Исходное изображение
Обнаружение и классификация заданных объектов
Рисунок 3 - Обнаружение и классификация заданных объектов

Путём моделирования оценивались время и точность распознавания объектов на различных изображениях. В качестве примера на рисунках 2 и 4 приведены исходные изображения, а на рисунках 3 и 5 – результаты обнаружения объектов. Для каждого объекта модель определяет достоверность отнесения объекта к тому или иному классу (в процентах). Как видно на рисунках 3 и 5 модель правильно выделила легковые автомобили, автобус, людей и светофор.

Исходное изображение
Рисунок 4 - Исходное изображение
Обнаружение и классификация заданных объектов
Рисунок 5 - Обнаружение и классификация заданных объектов

Заключение

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

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

Модельные эксперименты продемонстрировали правильность работы алгоритма обнаружения заданных объектов на реальных графических изображениях. Алгоритм является надёжным и достоверным, что очень важно для практики, т.к. он формирует разумные ответы к задачам, которые не имеют чёткого решения.

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

Литература

1. Вандер Плас. Python для сложных задач: наука о данных и машинное обучение / Дж. Вандер Плас. – СПб.: Питер, 2019.

2. Шакла Нишант. Машинное обучение и TensorFlow / Шакла Нишант. – СПб.: Питер, 2019.

3. Силен Дэви. Основы Data Science и Big Data. Python и наука о данных / Мейсман Арно, Али Мохамед. – СПб.: Питер, 2018.

4. Антонио Джулли. Библиотека Keras – инструмент глубокого обучения. Реализация нейронных сетей с помощью библиотек Theano и TensorFlow / Антонио Джулли, Суджит Пал. – Москва: ДМК Пресс, 2018.

5. Жерон Орельен. Прикладное машинное обучение с помощью Scikit-Learn и TensorFlow. Концепции, инструменты и техники для создания интеллектуальных систем / Жерон Орельен. – СПб.: Диалектика-Вильямс, 2018.

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

Ключевые слова: обнаружение объектов на изображении, классификация, свёрточная нейронная сеть.

Reshetnyak Y.A., Fedyaev O.I. Detecting the boundaries of objects in an image using a convolutional neural network. This work solves the problem of searching and classifying objects in the image using the methods of computer vision. To solve the problem of object detection, the original image is divided into fragments. Fragmentation made it possible to simplify the solution of the object classification problem based on the use of a convolutional neural network. The performance of the neural network object detection system is confirmed by the simulation results.

Keywords: object detection in the image, classification, convolutional neural network.