YOLOv8 и YOLOv9#
Развитие детекции объектов в реальном времени характеризуется постоянным стремлением к повышению точности, снижению задержки и более эффективному использованию оборудования. Важные вехи на этом пути — Ultralytics YOLOv8 и YOLOv9. Обе модели демонстрируют передовые возможности в области компьютерного зрения, но рассчитаны на разные требования к развертыванию, архитектурные подходы и экосистемы разработчиков.
В этом подробном руководстве рассматриваются технические различия, архитектурные нововведения и практические аспекты развертывания, чтобы помочь тебе выбрать подходящую модель для следующего проекта в области искусственного интеллекта.
Происхождение моделей и основные принципы#
Прежде чем переходить к метрикам, важно понять происхождение каждой модели и основные цели, которые лежали в основе ее разработки.
Ultralytics YOLOv8: универсальный стандарт экосистемы#
Команда Ultralytics создала YOLOv8 не просто как отдельную модель для детекции объектов, а как унифицированную платформу для решения множества задач. В ее основе — удобство работы разработчика, низкие требования к памяти и широкая совместимость с оборудованием.
- Авторы: Glenn Jocher, Ayush Chaurasia и Jing Qiu
- Организация: Ultralytics
- Дата: 2023-01-10
- GitHub: ultralytics/ultralytics
- Документация: Документация YOLOv8
YOLOv9: программируемая информация о градиентах#
YOLOv9 независимо разработали исследователи из Академии Синика. В основе модели лежат архитектурные исследования, в частности изучение информационного узкого места в глубоких нейронных сетях.
- Авторы: Chien-Yao Wang и Hong-Yuan Mark Liao
- Организация: Институт информатики, Academia Sinica, Тайвань
- Дата: 2024-02-21
- Arxiv: 2402.13616
- GitHub: WongKinYiu/yolov9
Если ты планируешь крупномасштабное коммерческое развертывание, изучи Ultralytics Platform: платформа упрощает облачное обучение и управление наборами данных, а также позволяет создавать конечные точки API одним щелчком.
Подробный разбор архитектуры#
Архитектурные решения в глубоком обучении определяют, насколько эффективно модель обучается и быстро работает на целевом оборудовании, например на NVIDIA Jetson или CPU Intel.
Архитектура YOLOv8: C2f и разделенные головы#
В YOLOv8 появился модуль C2f (узкое место с частичным межэтапным соединением и двумя свертками), заменивший более ранний модуль C3. Это улучшает распространение градиента и позволяет сети изучать более содержательные представления признаков без чрезмерной нагрузки на память GPU.
Кроме того, YOLOv8 использует архитектуру без анкерных рамок с разделенной головой. Обрабатывая классификацию и регрессию по отдельным путям, модель быстрее сходится при обучении и лучше обобщает данные из разных пользовательских наборов данных.
Архитектура YOLOv9: PGI и GELAN#
В YOLOv9 используются программируемая информация о градиентах (PGI) и обобщенная эффективная сеть агрегации слоев (GELAN). PGI помогает сохранять важные данные при прохождении через слои сети и обеспечивает надежные градиенты для обновления весов. GELAN повышает эффективность использования параметров, позволяя модели достигать высокой точности, сохраняя при этом приемлемое количество операций с плавающей точкой (FLOPs).
Несмотря на математическую изощренность, зависимость YOLOv9 от специфических вспомогательных обратимых ветвей при обучении может усложнить настройку кода обучения по сравнению со стандартными конвейерами.
Показатели производительности и результаты тестирования#
В таблице ниже сравниваются модели разных размеров. Производительность измеряется на наборе данных MS COCO — стандартном бенчмарке для детекции объектов.
| Модель | размер (пиксели) | 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.1 |
| 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.2 | 26.7 |
| YOLOv9m | 640 | 51.4 | - | 6.43 | 20.1 | 76.8 |
| YOLOv9c | 640 | 53.0 | - | 7.16 | 25.5 | 102.8 |
| YOLOv9e | 640 | 55.6 | - | 16.77 | 58.1 | 192.5 |
Примечание: лучшие значения в каждом столбце выделены полужирным.
Анализ компромиссов#
YOLOv9 немного превосходит другие модели по максимальной точности (mAP), особенно в крупном варианте e. Однако за это приходится платить. Ultralytics YOLOv8 значительно выигрывает в скорости инференса, особенно при компиляции в такие форматы, как TensorRT или ONNX. Для приложений, которым нужна высокая частота кадров (FPS) на периферийных устройствах с ограниченными ресурсами, например на Raspberry Pi или старых мобильных чипах, варианты YOLOv8 n и s обеспечивают гораздо более практичный баланс производительности.
Эффективность обучения и интеграция в экосистему#
При выборе модели важно не только сравнивать таблицы точности: удобство работы разработчика имеет первостепенное значение.
Преимущества Ultralytics: простота использования#
Для обучения YOLOv9 часто приходится клонировать сложные репозитории GitHub, тщательно настраивать окружения PyTorch и вручную задавать веса вспомогательных функций потерь.
В отличие от нее, Ultralytics YOLOv8 поддерживает невероятно удобный Python API. Он разработан для простоты использования и изначально обеспечивает аугментацию данных, ведение журналов (в таких инструментах, как Weights & Biases и Comet ML), а также распределение вычислений по оборудованию.
from ultralytics import YOLO
# Загрузи предварительно обученную малую модель YOLOv8
model = YOLO("yolov8s.pt")
# Эффективно обучи модель на пользовательских данных
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Экспортируй модель для развертывания на периферийных устройствах
model.export(format="engine", quantize=16) # Экспорт в TensorRTЭтот единый API значительно сокращает путь от прототипа до готового продукта. Кроме того, YOLOv8 обычно требует меньше памяти CUDA при обучении, поэтому разработчики могут использовать более крупные пакеты на обычном потребительском оборудовании.
Универсальность в решении задач#
YOLOv9 отлично справляется с детекцией ограничивающих рамок, но для ИИ компьютерного зрения в реальных условиях часто требуется больше возможностей. Ultralytics YOLOv8 — универсальная мощная платформа с встроенной поддержкой сегментации экземпляров, оценки позы, классификации изображений и ориентированных ограничивающих рамок (OBB). Использование одной платформы для решения множества задач существенно сокращает объем программного обеспечения и затраты на его поддержку.
Если ты начинаешь новый проект, рассмотри Ultralytics YOLO11 или передовую YOLO26, которая поддерживает опциональный сквозной инференс без NMS.
Примеры применения в реальных условиях#
Как эти модели проявляют себя в промышленной эксплуатации?
Автономные дроны и робототехника#
Для робототехники, которой требуется быстро обходить препятствия, лучше всего подходит YOLOv8. Сверхнизкая задержка YOLOv8n позволяет автономным системам реагировать на окружающую среду в реальном времени и избегать столкновений. Благодаря встроенным возможностям экспорта в OpenVINO и CoreML развернуть модель на маломощных чипах, типичных для коммерческих дронов, очень просто.
Обнаружение дефектов высокого разрешения#
В специализированных производственных условиях, где крайне важно обнаруживать микроскопические аномалии, а обработка данных не в реальном времени допустима, YOLOv9 может быть очень эффективной. Архитектура PGI помогает сети сохранять мелкие детали изображения, необходимые для выявления тонких трещин и дефектов пайки печатных плат.
Умная розничная торговля и аналитика безопасности#
Для отслеживания покупателей в торговых залах или управления системами автоматизированной оплаты оптимальный баланс предлагает YOLOv8. Модель одновременно выполняет детекцию и отслеживание нескольких объектов с помощью стандартных алгоритмов, таких как BoT-SORT, что делает ее надежным решением для розничных систем с несколькими камерами.
Сценарии использования и рекомендации#
Выбор между YOLOv8 и YOLOv9 зависит от требований твоего проекта, ограничений развертывания и предпочтений в отношении экосистемы.
Когда выбрать YOLOv8#
YOLOv8 — хороший выбор для:
- Универсальное решение для нескольких задач: проекты, которым нужна проверенная модель для обнаружения объектов, сегментации, классификации и оценки позы в экосистеме Ultralytics.
- Уже работающие системы: существующие промышленные среды, построенные на архитектуре YOLOv8 и использующие стабильные, тщательно проверенные конвейеры развертывания.
- Широкая поддержка сообщества и экосистемы: приложения, которым помогают многочисленные руководства по YOLOv8, сторонние интеграции и активное сообщество.
Когда выбирать YOLOv9#
YOLOv9 рекомендуется для таких задач:
- Исследование информационного узкого места: Академические проекты, изучающие архитектуры программируемой информации о градиентах (PGI) и обобщённой эффективной сети агрегации слоёв (GELAN).
- Исследования оптимизации потока градиентов: Работы, посвящённые изучению и устранению потери информации в глубоких слоях сети во время обучения.
- Сравнительное тестирование точного детектирования: Сценарии, в которых высокая результативность YOLOv9 на тестах COCO нужна в качестве ориентира для сравнения архитектур.
Когда выбирать Ultralytics (YOLO26)#
Для большинства новых проектов Ultralytics YOLO26 предлагает оптимальное сочетание производительности и удобства разработки:
- Развертывание на периферийных устройствах без NMS: Приложения, которым необходим стабильный инференс с низкой задержкой без усложнения постобработки подавлением немаксимумов.
- Среды только с CPU: Устройства без выделенного ускорителя GPU, где до 43% более быстрый инференс YOLO26 на CPU даёт решающее преимущество.
- Обнаружение небольших объектов: Сложные сценарии, например съёмка с дронов или анализ данных IoT-датчиков, где ProgLoss и STAL заметно повышают точность обнаружения крошечных объектов.
Следующий этап развития: YOLO26#
YOLOv8 и YOLOv9 — мощные модели, однако сфера ИИ стремительно развивается. Для команд, которым нужна максимальная производительность, недавно выпущенная YOLO26 развивает успех предыдущих поколений.
В YOLO26 появилась опциональная сквозная архитектура без NMS (nms=False), устраняющая сложные узкие места на этапе постобработки и упрощающая развертывание с более предсказуемой задержкой. Новый оптимизатор MuSGD, улучшенные функции потерь ProgLoss + STAL и отказ от DFL (Distribution Focal Loss удалена, чтобы упростить экспорт и улучшить совместимость с периферийными устройствами и устройствами с низким энергопотреблением) обеспечивают до 43% более быстрый инференс на CPU и улучшают распознавание мелких объектов. Разработчикам, которые стремятся раскрыть потенциал периферийных вычислений, настоятельно рекомендуем оценить YOLO26.
Подводя итог: YOLOv9 предлагает интересные архитектурные исследования и отличную максимальную точность, но Ultralytics YOLOv8 остается наиболее практичным, хорошо поддерживаемым и универсальным решением для большинства специалистов по компьютерному зрению, которым нужно быстро выпускать надежное программное обеспечение.