ОПТИМИЗАЦИЯ ПАРАМЕТРОВ МОДЕЛИ YOLOV9-S НА ОСНОВЕ ПОЛЬЗОВАТЕЛЬСКОГО ВВОДА: ПРОГРАММНАЯ РЕАЛИЗАЦИЯ И ЭКСПЕРИМЕНТАЛЬНОЕ ОБОСНОВАНИЕ

ОПТИМИЗАЦИЯ ПАРАМЕТРОВ МОДЕЛИ YOLOV9-S НА ОСНОВЕ ПОЛЬЗОВАТЕЛЬСКОГО ВВОДА: ПРОГРАММНАЯ РЕАЛИЗАЦИЯ И ЭКСПЕРИМЕНТАЛЬНОЕ ОБОСНОВАНИЕ

Авторы публикации

Рубрика

Информационные технологии

Просмотры

57

Журнал

Журнал «Научный лидер» выпуск # 17 (218), Апрель ‘25

Поделиться

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

Введение

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

Выбор стека технологий

Создание эффективного программного обеспечения для взаимодействия с моделью глубокого обучения требует осознанного выбора технологического стека, учитывающего как специфические задачи проекта, так и характеристики применяемых моделей. При разработке модуля настройки и запуска обучения модели YOLOv9-s были выбраны инструменты, обеспечивающие стабильность, расширяемость и простоту интеграции в существующую архитектуру.
 

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


Для взаимодействия с моделью YOLOv9-s был применён PyTorch — один из наиболее популярных фреймворков глубокого обучения, обладающий гибкой архитектурой, поддержкой динамических вычислительных графов и активной разработкой со стороны исследовательского сообщества и индустрии [2]. PyTorch используется в оригинальной реализации YOLOv9 и, таким образом, является естественным выбором для адаптации и обучения модели на новых данных.
 

Для обработки пользовательского ввода и генерации конфигурационных файлов была использована стандартная библиотека argparse, а также работа с YAML-файлами через модуль PyYAML. Конфигурационные файлы модели YOLOv9 представлены в формате .yaml, что делает работу с данной структурой предпочтительной и облегчает интеграцию пользовательских параметров.
 

Особое внимание было уделено модульности решения. Программа строится по принципу CLI-утилиты (command-line interface), что позволяет интегрировать её как в графические интерфейсы, так и в пайплайны автоматизации (например, через shell-скрипты, CI/CD или cron-задачи). Этот подход особенно важен в промышленных условиях, где автоматизация процессов играет ключевую роль.

Реализация и внедрение в проект

Основу реализованного решения составляет CLI-утилита на языке Python, логически разделённая на три функциональных блока:

  • ввод пользовательских параметров;
  • формирование конфигурационного YAML-файла;
  • запуск процедуры обучения с заданными параметрами.

Входные данные от пользователя собираются через простой и интуитивно понятный интерфейс (рис. 1), где пользователь указывает параметры модели (например, batch size, количество эпох, размер изображения и пути к данным). Эти данные автоматически сохраняются в соответствующем YAML-файле, предназначенном для модели YOLOv9-s. Использование PyYAML позволило эффективно адаптировать данные в нужный формат, соответствующий требованиям модели.


Рисунок 1. Интерфейс программы

На этапе инициализации код проверяет наличие базового файла data.yaml и весов модели. В случае отсутствия — модуль может предложить загрузить необходимые зависимости или уведомить пользователя об ошибке. Все переменные, влияющие на процесс обучения (размер батча, количество эпох, learning rate и др.), могут быть заданы вручную. Это делает систему гибкой и даёт пользователю возможность точно настраивать модель под специфику своей задачи.

Выбор конкретных параметров для первоначальной реализации основывался на серии экспериментов с использованием стандартной архитектуры YOLOv9-s на датасете дефектов листового проката компании «Северсталь». В этих экспериментах были получены следующие базовые метрики:

  • точность (P) — 0.763;
  • полнота (R) — 0.684;
  • mAP50 — 0.759;
  • mAP50–95 — 0.415.

Эти значения были использованы в качестве контрольных при дальнейших сравнениях.

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

  • точность увеличилась до 0.835;
  • полнота — до 0.771;
  • значение mAP50 — до 0.851;
  • а mAP50–95 — до 0.475.

Особенно ощутимое улучшение наблюдалось при детекции класса scratch, где mAP50 вырос с 0.75 до 0.903, а mAP50–95 — с 0.426 до 0.573. Это подтверждает эффективность автоматизированной настройки модели под конкретный набор данных и специфику дефектов.

Внедрение модуля в основную архитектуру проекта предполагает его использование как стартовой точки в пайплайне подготовки модели. Код может быть интегрирован в пользовательский интерфейс, реализованный, например, с помощью Tkinter или PyQt, где пользователь заполняет параметры через форму. После этого параметры передаются в генератор YAML-файла, а затем запускается процесс обучения через вызов subprocess с передачей скрипта train.py и соответствующих аргументов командной строки.

Инфраструктурно модуль совместим с большинством CI/CD-платформ (например, GitHub Actions или GitLab CI), что позволяет использовать его в регулярных тестах и сборках моделей. Это особенно актуально в случае многократного переобучения моделей на актуальных данных, поступающих с производственного оборудования (например, систем промышленного зрения на прокатных станах).

Кроме того, модуль может быть обёрнут в REST API с помощью Flask или FastAPI, что позволит вызывать обучение удалённо, передавая параметры через HTTP-запрос. Это решение уместно в случае построения централизованной платформы, где обучение происходит на выделенных серверах, а взаимодействие с клиентскими интерфейсами осуществляется удалённо.

Заключение

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

Список литературы

  1. Лутц М. Изучаем Python. — 5-е изд. — СПб.: Питер, 2021. — 1216 с.
  2. Paszke A., Gross S., Massa F., et al. PyTorch: An Imperative Style, High-Performance Deep Learning Library // Advances in Neural Information Processing Systems. — 2019. — Vol. 32
Справка о публикации и препринт статьи
предоставляется сразу после оплаты
Прием материалов
c по
Остался последний день
Размещение электронной версии
Загрузка материалов в elibrary
Публикация за 24 часа
Узнать подробнее
Акция
Cкидка 20% на размещение статьи, начиная со второй
Бонусная программа
Узнать подробнее