Статья опубликована в рамках: CXXXVII Международной научно-практической конференции «Научное сообщество студентов XXI столетия. ТЕХНИЧЕСКИЕ НАУКИ» (Россия, г. Новосибирск, 13 мая 2024 г.)
Наука: Информационные технологии
Скачать книгу(-и): Сборник статей конференции
дипломов
РАЗРАБОТКА БЛОКА ФОРМИРОВАНИЯ ОБУЧАЮЩЕЙ ВЫБОРКИ ДЛЯ РАСПОЗНАВАНИЯ ОБЪЕКТОВ НА КАРТИНКЕ
DEVELOPMENT OF A TRAINING DATA FORMATION BLOCK FOR OBJECT RECOGNITION ON IMAGES
Alina Deryushova
student, Department of Electronic Computing Machines, Vyatka State University,
Russia, Kirov
Alexander Krutikov
scientific supervisor, senior lecturer, Vyatka State University,
Russia, Kirov
АННОТАЦИЯ
В данной статье представлена разработка блока формирования обучающей выборки с целью распознавания объектов на изображениях, с использованием искусственной свёрточной нейронной сети. Анализируется эффективность разработанной системы формирования обучающей выборки, проводится сравнение с уже существующими методами. Полученные результаты подчеркивают значимость предлагаемого подхода и его потенциал для улучшения и автоматизации процессов обработки изображений.
ABSTRACT
This article presents the development of a block for the formation of a training sample for the purpose of recognizing objects in images using an artificial convolutional neural network. The effectiveness of the developed system for the formation of a training sample is analyzed, and a comparison with existing methods is carried out. The results obtained underline the importance of the proposed approach and its potential for improving and automating image processing processes.
Ключевые слова: обучающая выборка, нейронные сети, изображение.
Keywords: training sample, neural networks, image.
В современном мире, на фоне стремительного развития технологий и внедрения машинного обучения, задача распознавания объектов на изображениях играет ключевую роль во многих областях. Особенно важной становится разработка блока формирования обучающей выборки для эффективного обучения моделей распознавания. Правильная подготовка обучающей выборки - это основополагающий этап, который напрямую влияет на точность и производительность моделей машинного обучения.
Разработка эффективного блока формирования обучающей выборки открывает возможности для создания более точных, надежных и применимых к реальным сценариям моделей распознавания объектов. Этот процесс может быть крайне полезен для исследователей в области машинного обучения, инженеров, разрабатывающих системы компьютерного зрения, а также для предприятий, которые стремятся внедрить инновационные технологии в свои продукты и сервисы.
Использование нейронных сетей в контексте распознавания объектов на изображениях обусловлено их способностями. Нейронные сети являются эффективными инструментами благодаря своей способности обрабатывать сложные структуры изображений, автоматически извлекать признаки, обучаться на разнообразных данных и обеспечивать высокую гибкость в решении задач распознавания объектов. Несколько ключевых причин, по которым использование нейронных сетей в данной области является важным:
- способность извлекать сложные зависимости в данных, что позволяет модели эффективно распознавать объекты с различными характеристиками;
- автоматическое извлечение важных признаков из изображений в процессе обучения, что снижает необходимость вручную проектировать признаки для каждого объекта и упрощает процесс моделирования;
- возможность обучения на больших объемах данных, что способствует лучшей обобщающей способности модели и повышает ее точность на новых данных;
Эти преимущества делают использование нейронных сетей важным инструментом для успешного решения задач распознавания объектов на изображениях, подчеркивая их значимость в области компьютерного зрения и обработки изображений.
Для улучшения качества распознавания изображений природных объектов было принято решение разработать модуль, блок, который формирует обучающую выборку для нейронной сети на основе изображений различных природных элементов.
Функциональные возможности разрабатываемого программного продукта включают:
- предварительная обработка изображения: инструменты для предварительной обработки изображений, такие как изменение размеров, повороты, отражения и другие трансформации, функционал для устранения шумов и повышения качества изображений;
- обучающая выборка должна содержать данные, представляющие различные природные объекты, такие как горы, реки, виды деревьев и др.;
- записи для каждого природного объекта в блоке обучающей выборки должны быть сбалансированными, отражая различные ситуации и вариации природных элементов, которые могут встречаться на изображениях;
В ходе разработки были проанализированы виды нейронных сетей и выбрана сверточная нейронная сеть. Сверточные нейронные сети предназначены в основном для обработки и анализа данных, представленных в виде изображений.
Сверточная нейронная сеть представляет собой класс нейронных сетей, который специализируется на обработке изображений и видео. Такие нейросети хорошо улавливают локальный контекст, когда информация в пространстве непрерывна, то есть её носители находятся рядом. Например, пиксели — части изображения, которые расположены близко друг к другу и содержат визуальные данные: яркость и цвет.
При проектировании была выбрана модель YOLO, которая является алгоритмом, использующим сверточные нейронные сети. Она может эффективно работать с различными объектами на одном изображении, что делает ее подходящей для сценариев, где важна скорость обработки и точность определения объектов.
В основе работы YOLO лежит уникальная архитектура, позволяющая обнаруживать объекты на изображении целиком, а не разбивая его на сетку. Это обеспечивает более точное определение положения объектов и эффективную обработку сцен с множеством разнообразных объектов.
YOLOv8 базируется на сверточной нейронной сети, разделенной на две основные компоненты: позвоночник (backbone) и голову (head). Позвоночник представляет собой модифицированную версию архитектуры CSPDarknet53, состоящую из 53 сверточных слоев с частичными межэтапными соединениями, улучшающими информационный поток между слоями.
Голова YOLOv8 включает несколько сверточных слоев, за которыми следует ряд полносвязных. Эти слои отвечают за прогнозирование ограничивающих прямоугольников (bounding boxes), оценку объектности (objectness scores) и вероятности классов для объектов на изображении. Важной особенностью YOLOv8 является использование механизма самоконтроля, который позволяет модели фокусироваться на различных частях изображения и определять важность различных признаков в зависимости от их релевантности к задаче.
Другой важной характеристикой YOLOv8 является его способность к многомасштабному обнаружению объектов. Модель использует пирамидальную сеть признаков для обнаружения объектов разных размеров и масштабов на изображении, что позволяет обнаруживать как крупные, так и мелкие объекты.
YOLOv8 внедряет ряд улучшений и инноваций, улучшая производительность, точность и эффективность, и утверждая свои позиции как передовая модель в области обнаружения объектов в компьютерном зрении. Эти усовершенствования оптимизируют производительность, точность и эффективность, совершая революцию в области компьютерного зрения. На рисунке 1 показана детальная визуализация архитектуры YOLOv8.
Рисунок 1. Детальная визуализация архитектуры сети
YOLO использует глубокую нейросетевую архитектуру, что позволяет ей обучаться на больших объемах данных и извлекать сложные признаки для точного распознавания объектов. Эта архитектура также обеспечивает способность эффективно работать с объектами разных размеров на изображении, что является важным фактором в сценариях с разнообразными масштабами объектов.
Простота структуры YOLO делает ее отличным выбором для быстрой реализации и обучения, что особенно важно при ее интеграции в различные приложения. Совокупность этих особенностей сделала YOLO востребованным инструментом для распознавания объектов.
Для визуализации и подробного анализа процессов в системе используем детализированную диаграмму потоков данных. Она позволяет отслеживать потоки данных от входных источников к конечным выходам, подробно описывает преобразования данных на каждом этапе и выявляет зависимости и взаимосвязи между компонентами системы.
Основные шаги, которые необходимо выполнить для формирования блока обучающей выборки:
Сбор данных. Для формирования блока обучающей выборки необходим набор данных, содержащих изображения. Нужно обеспечить разнообразие объектов, фонов, освещения и ракурсов.
Аннотация данных. Необходимо добавить аннотации к изображениям, указывая местоположение и класс каждого объекта. Это может быть прямоугольная рамка вокруг объекта с указанием его класса.
Обработка данных. Нужно выполнить предварительную обработку данных, включая изменение размеров изображений, нормализацию яркости и цвета. Это может также включать в себя аугментацию данных для увеличения разнообразия обучающей выборки.
Формирование блока обучающей выборки. Данные необходимо разбить на две выборки – обучающую (обычно 70-80%) и тестовую (20-30%). Обучающая выборка будет использоваться для обучения нейронной сети, а тестовая – для проверки ее эффективности и точности, это гарантирует, что модель будет обучена на одних данных и проверена на других.
Приведем пример структуры выборки для эффективного обучения модели YOLOv8 на нескольких видах деревьев.
Изображения:
Все изображения деревьев должны быть храниться в каталоге images/. Каждое изображение должно иметь уникальное имя, отражающее вид дерева на изображении (например, birch1.jpg, fir1.jpg, и т.д.).
Аннотации:
Файлы аннотаций для каждого изображения должны храниться в каталоге labels/. Каждый файл аннотации должен содержать информацию о метках объектов (Bounding Boxes) на соответствующем изображении. Формат файла аннотации должен быть следующим: class_id x_center y_center width height.
Файл конфигурации данных (data.yaml):
Файл data.yaml используется для определения дополнительной информации о наборе данных, включая список классов объектов. Файл должен содержать следующие параметры: train и val - пути к файлам, содержащим списки обучающих и валидационных изображений, nc - количество классов объектов, names - список имен классов объектов.
Пример содержимого файла data.yaml:
train: proverka/train/images
val: proverka/valid/images
nc: 4
names: ['birch', 'cedar', 'fir', 'pine']
Обучение нейронной сети. Модель обучается на обучающей выборке с использованием алгоритма обратного распространения ошибки. Процесс обучения включает передачу входных данных через сеть, вычисление предсказаний, вычисление потерь и обновление весов сети так, чтобы уменьшить потери.
Таким образом, диаграмма потоков данных демонстрирует последовательность действий, которые необходимо выполнить для формирования блока обучающей выборки и использования нейронной сети (рисунок 2).
Рисунок 2. Диаграмма потоков данных
В настоящее время, продолжается тестирование приложения. Оцениваются возможности его модернизации и масштабирования.
Список литературы:
- Ultralytics YOLOv8 Docs. URL - https://docs.ultralytics.com/ru/models/yolov8/
- What is YOLOv8? The Ultimate Guide. [2024]. URL - https://blog.roboflow.com/whats-new-in-yolov8/
- Краткое описание структуры модели YOLOv8. URL - https://github.com/ultralytics/ultralytics/issues/189
дипломов
Оставить комментарий