YOLOv8 и YOLOv9: техническое сравнение для detect объектов
Выбор оптимальной модели компьютерного зрения является ключевым решением, которое влияет на успех проектов AI, балансируя требования к точности, скорости inference и вычислительной эффективности. В этом всестороннем руководстве сравниваются Ultralytics YOLOv8, универсальная и готовая к производству модель, с YOLOv9, архитектурой, ориентированной на максимизацию точности detection с помощью новых градиентов. Мы анализируем их архитектурные различия, показатели производительности и идеальные сценарии развертывания, чтобы помочь вам сделать осознанный выбор.
Ultralytics YOLOv8: Стандарт универсальности и простоты использования
YOLOv8, запущенный Ultralytics, представляет собой значительную эволюцию в серии YOLO, разработанный не просто как модель, а как полноценный фреймворк для практического AI. Он уделяет приоритетное внимание удобству использования, надежной работе на различном оборудовании и поддержке широкого спектра задач компьютерного зрения, выходящих за рамки простого detect.
- Авторы: Glenn Jocher, Ayush Chaurasia, Jing Qiu
- Организация:Ultralytics
- Дата: 10.01.2023
- GitHub:https://github.com/ultralytics/ultralytics
- Документация:https://docs.ultralytics.com/models/yolov8/
Архитектура и экосистема
YOLOv8 представляет детектирующий слой без anchor boxes и модуль C2f (Cross-Stage Partial with 2 convolutions), который улучшает интеграцию признаков, сохраняя при этом легкость выполнения. В отличие от моделей, ориентированных на исследования, YOLOv8 создана с учетом развертывания. Она изначально поддерживает классификацию изображений, сегментацию экземпляров, оценку позы и обнаружение ориентированных ограничивающих рамок (OBB).
Истинная сила YOLOv8 заключается в экосистеме Ultralytics. Разработчики получают выгоду от унифицированного Python API и CLI, которые стандартизируют обучение, валидацию и развертывание. Этот подход "все включено" значительно сокращает время выхода на рынок приложений компьютерного зрения.
Сильные стороны
- Непревзойденная универсальность: Обрабатывает detect, segment, classify и оценку позы в единой библиотеке.
- Готовность к развертыванию: Встроенная поддержка экспорта для ONNX, OpenVINO, TensorRT и CoreML упрощает интеграцию в периферийные устройства и облачные серверы.
- Эффективность памяти: Оптимизирован для снижения использования памяти CUDA во время обучения по сравнению с архитектурами на основе трансформеров, что делает его доступным на стандартных потребительских GPU.
- Баланс скорости и точности: Обеспечивает исключительную скорость инференса в реальном времени, часто превосходя конкурентов на CPU и периферийном оборудовании.
- Активная поддержка: Поддержка крупного сообщества open-source и частые обновления от Ultralytics, обеспечивающие совместимость с последними библиотеками и оборудованием.
YOLOv9: Архитектурные инновации для высокой точности
Выпуск YOLOv9 был нацелен на решение проблемы "информационного узкого места" в глубоком обучении. В нем представлены теоретические концепции, направленные на сохранение информационной ценности данных при их прохождении через глубокие слои, в первую очередь ориентированные на достижение максимальной точности detectирования объектов.
- Авторы: Чен-Яо Ванг, Хонг-Юань Марк Ляо
- Организация:Институт информатики, Academia Sinica, Тайвань
- Дата: 21.02.2024
- Arxiv:https://arxiv.org/abs/2402.13616
- GitHub:https://github.com/WongKinYiu/yolov9
- Документация:https://docs.ultralytics.com/models/yolov9/
Основные инновации
Архитектура YOLOv9 опирается на два основных компонента: Programmable Gradient Information (PGI) и Generalized Efficient Layer Aggregation Network (GELAN). PGI работает для предотвращения потери критической входной информации в процессе прямого распространения в глубоких сетях, обеспечивая генерацию надежных градиентов для обновлений. GELAN предназначен для оптимизации эффективности параметров, позволяя модели достигать высокой точности при достойном объеме вычислений.
Сильные стороны
- Высокая точность: Самый крупный вариант, YOLOv9-E, устанавливает впечатляющие эталонные показатели для mAP на наборе данных COCO, превосходно справляясь со сценариями, где точность имеет первостепенное значение.
- Эффективность параметров: Благодаря GELAN, модели YOLOv9 среднего размера достигают конкурентоспособной точности с меньшим количеством параметров, чем некоторые старые архитектуры.
- Теоретический прогресс: Решает фундаментальные проблемы в обучении глубоких сетей, касающиеся сохранения информации.
Слабые стороны
- Ограниченная универсальность: В первую очередь ориентирован на object detection. Несмотря на возможности, ему не хватает встроенной, оптимизированной поддержки segment, pose и classification, которые есть в основной линейке Ultralytics.
- Сложное обучение: Введение вспомогательных ветвей для PGI может сделать процесс обучения более ресурсоемким и сложным в настройке по сравнению с оптимизированным конвейером YOLOv8.
- Скорость инференса: Несмотря на эффективность, архитектурная сложность может приводить к более медленному времени инференса на определенном оборудовании по сравнению с высокооптимизированными блоками, используемыми в YOLOv8.
Прямое сравнение производительности
При сравнении YOLOv8 и YOLOv9 выбор часто сводится к конкретным ограничениям вашей среды развертывания. YOLOv8 доминирует в скорости инференса и гибкости развертывания, в то время как YOLOv9 поднимает потолок метрик обнаружения.
| Модель | размер (пиксели) | mAPval 50-95 | Скорость CPU ONNX (мс) | Скорость T4 TensorRT10 (мс) | параметры (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv8n | 640 | 37.3 | 80.4 | 1.47 | 3.2 | 8.7 |
| YOLOv8s | 640 | 44.9 | 128.4 | 2.66 | 11.2 | 28.6 |
| YOLOv8m | 640 | 50.2 | 234.7 | 5.86 | 25.9 | 78.9 |
| YOLOv8l | 640 | 52.9 | 375.2 | 9.06 | 43.7 | 165.2 |
| YOLOv8x | 640 | 53.9 | 479.1 | 14.37 | 68.2 | 257.8 |
| YOLOv9t | 640 | 38.3 | - | 2.3 | 2.0 | 7.7 |
| YOLOv9s | 640 | 46.8 | - | 3.54 | 7.1 | 26.4 |
| YOLOv9m | 640 | 51.4 | - | 6.43 | 20.0 | 76.3 |
| YOLOv9c | 640 | 53.0 | - | 7.16 | 25.3 | 102.1 |
| YOLOv9e | 640 | 55.6 | - | 16.77 | 57.3 | 189.0 |
Данные подчеркивают четкое различие: YOLOv8 предлагает превосходную скорость, особенно на GPU (TensorRT) и CPU (ONNX), что имеет решающее значение для периферийных AI-приложений. Например, YOLOv8n значительно быстрее, чем YOLOv9t, на T4 GPU (1,47 мс против 2,3 мс). И наоборот, YOLOv9e достигает наивысшего mAP (55,6%), что делает его пригодным для обработки на стороне сервера, где задержка менее важна, чем обнаружение мельчайших деталей.
Вы знали?
Ultralytics YOLOv8 разработана с нативной поддержкой для all основные задачи компьютерного зрения. Вы можете переключиться с обнаружения объектов на сегментация экземпляров просто изменив файл весов модели (например, yolov8n.pt в yolov8n-seg.pt), уровень гибкости, недоступный в стандартном репозитории YOLOv9.
Идеальные варианты использования
Выберите Ultralytics YOLOv8, если:
- Вам нужно готовое к производству решение: Обширная документация, поддержка сообщества и готовые интеграции (например, MLFlow и TensorBoard) упрощают путь от прототипа к продукту.
- Скорость имеет решающее значение: Для видеоаналитики в реальном времени, автономной навигации или мобильных приложений оптимизированная скорость инференса YOLOv8 обеспечивает явное преимущество.
- Вам требуется несколько задач компьютерного зрения: Проекты, включающие оценку позы или segment наряду с detect, лучше всего обслуживаются унифицированной структурой YOLOv8.
- Существуют ограничения по ресурсам: Модели YOLOv8 высоко оптимизированы для различного оборудования, что обеспечивает эффективную работу на устройствах от Raspberry Pi до NVIDIA Jetson.
Выберите YOLOv9, если:
- Максимальная точность - единственный показатель: Для академических исследований или специализированных задач инспекции, где каждая доля процента в mAP важнее скорости или удобства использования.
- Вы изучаете архитектуру: Концепции PGI и GELAN ценны для исследователей, изучающих поток градиента в глубоких сетях.
Реализация кода
Одним из основных преимуществ экосистемы Ultralytics является то, что она поддерживает обе модели с помощью одного и того же простого API. Это позволяет легко сравнивать их на ваших собственных пользовательских наборах данных.
Вот как можно обучить модель YOLOv8 всего в нескольких строках кода:
from ultralytics import YOLO
# Load a YOLOv8 model
model = YOLO("yolov8n.pt")
# Train the model on your data
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference on an image
results = model("path/to/image.jpg")
Поскольку Ultralytics интегрирует YOLOv9, вы можете заменить строку модели на yolov9c.pt для экспериментов с YOLOv9 в рамках того же надежного конвейера, хотя собственные модели YOLOv8 часто выигрывают от более тесной интеграции с инструментами развертывания.
Заключение
Для подавляющего большинства разработчиков и коммерческих приложений Ultralytics YOLOv8 остается рекомендуемым выбором. Его превосходный баланс скорости и точности в сочетании со зрелой, хорошо поддерживаемой экосистемой гарантирует, что проекты будут перспективными и простыми в обслуживании. Возможность обрабатывать detect, segment и оценку позы в рамках единой структуры предлагает беспрецедентную универсальность.
В то время как YOLOv9 представляет интересные архитектурные теории и достигает высокой пиковой точности, ее часто лучше всего использовать для конкретных исследовательских ниш или сценариев, где задержка при выводе не является ограничением.
Для тех, кто ищет самые последние достижения в области компьютерного зрения, обязательно ознакомьтесь с YOLO11, которая еще больше повышает эффективность и производительность, установленные YOLOv8. Кроме того, исследователи, интересующиеся подходами на основе трансформеров, могут изучить RT-DETR для различных архитектурных компромиссов.
Ознакомьтесь с другими сравнениями на нашей странице сравнения моделей.