YOLOX против YOLOv8: достижения в области высокопроизводительного обнаружения объектов
В быстро развивающейся области компьютерного зрения очень важно выбрать правильную архитектуру для конкретного приложения. В этом руководстве представлено подробное техническое сравнение YOLOX, высокопроизводительного детектора без анкоров 2021 года, и Ultralytics YOLOv8, современной модели, разработанной с учетом универсальности, скорости и простоты развертывания. Хотя обе модели внесли значительный вклад в эту область, понимание их архитектурных различий и поддержки экосистемы поможет разработчикам принимать обоснованные решения для реальных проектов.
Общий обзор
YOLOX стал значительным сдвигом в YOLO , перейдя на механизм без якорей и развязав головку прогнозирования. Это упростило процесс проектирования и улучшило производительность по сравнению с современными аналогами, такими как YOLOv3 и YOLOv5 v5.0). Однако YOLOv8 основан на многолетних отзывах сообщества и исследованиях, интегрируя такие передовые функции, как обнаружение без анкеров, унифицированную структуру для нескольких задач и превосходную эффективность обучения, все это при поддержке комплексной Ultralytics .
YOLOX
- Авторы: Чжэн Ге, Сунтао Лю, Фэн Ван, Цзэмин Ли и Цзянь Сунь
- Организация:Megvii
- Дата: 2021-07-18
- Arxiv:YOLOX: Exceeding YOLO Series in 2021
- GitHub:Megvii-BaseDetection/YOLOX
YOLOv8
- Авторы: Гленн Джокер, Аюш Чаурасия и Цзин Цю
- Организация:Ultralytics
- Дата: 2023-01-10
- GitHub:ultralytics/ultralytics
Архитектурные различия
Основное различие заключается в том, как эти модели обрабатывают прогнозирование объектов и извлечение признаков.
Архитектура YOLOX
YOLOX представил структуру «разделенной головы». Традиционные YOLO объединяли задачи классификации и локализации (регрессия ограничивающей рамки) в одну ветвь. YOLOX разделил их, argumenting that the conflict between classification and regression tasks limited performance. Он также перешел к дизайну без якорей, рассматривая обнаружение объектов как проблему точечной регрессии, что снизило сложность эвристической настройки для якорных рамок. Он использует SimOTA для динамического присвоения меток, оптимизируя, какие прогнозы соответствуют объектам ground truth.
Архитектура YOLOv8
Ultralytics YOLOv8 еще большеYOLOv8 концепцию без якорей. В его основе используется модуль C2f, который сочетает в себе лучшие качества C3 (из YOLOv5) и ELAN (из YOLOv7), чтобы улучшить градиентный поток, сохраняя при этом легкий вес. Как и YOLOX, он использует развязанную головку, но вводит Task-Aligned Assigner для присвоения меток, который более эффективно уравновешивает оценки классификации и локализации, чем SimOTA. Важно, YOLOv8 как унифицированная структура, изначально поддерживающая сегментацию экземпляров, оценку позы, ориентированное обнаружение объектов (OBB) и классификацию.
Баланс производительности
Ultralytics обеспечивают оптимальный баланс между скоростью и точностью. Магистраль C2f в YOLOv8 более богатую экстракцию признаков с уменьшенными вычислительными затратами по сравнению с CSPDarknet, используемой в более старых архитектурах.
Сравнение метрик производительности
В следующей таблице представлено сравнение стандартных моделей обнаружения на COCO . YOLOv8 , обеспечивает более высокийпоказатель mAPval при сопоставимой или более высокой скорости вывода, особенно на современном оборудовании с использованием TensorRT.
| Модель | размер (пиксели) | mAPval 50-95 | Скорость CPU ONNX (мс) | Скорость T4 TensorRT10 (мс) | параметры (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOXnano | 416 | 25.8 | - | - | 0.91 | 1.08 |
| YOLOXtiny | 416 | 32.8 | - | - | 5.06 | 6.45 |
| YOLOXs | 640 | 40.5 | - | 2.56 | 9.0 | 26.8 |
| YOLOXm | 640 | 46.9 | - | 5.43 | 25.3 | 73.8 |
| YOLOXl | 640 | 49.7 | - | 9.04 | 54.2 | 155.6 |
| YOLOXx | 640 | 51.1 | - | 16.1 | 99.1 | 281.9 |
| 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 |
Примечание: скорости YOLOX обычно указываются для графических процессоров V100, тогда как YOLOv8 стандартизированы на основеONNX T4 TensorRT10 и CPU ONNX . «params» означает параметры (в миллионах), а «FLOPs» — операции с плавающей запятой (в миллиардах).
Обучение и простота использования
Одним из наиболее значительных отличий между Ultralytics YOLOX и Ultralytics является опыт разработчиков.
Преимущество экосистемы Ultralytics
YOLOv8 благодаря высококачественному Python и интерфейсу командной строки (CLI). Разработчики могут за считанные минуты перейти от установки к обучению на настраиваемом наборе данных. Экосистема включает в себя бесшовную интеграцию с такими инструментами, как Weights & Biases для ведения журналов и Ultralytics для управления данными. Кроме того, Ultralytics позволяет обучать и развертывать модели через Интернет без необходимости сложной настройки локальной среды.
В отличие от этого, YOLOX является более традиционным хранилищем исследований. Несмотря на свою мощность, он часто требует более тщательной ручной настройки скриптов обучения и зависимостей среды, что делает его более сложным для начинающих или команд, которым требуется быстрая итерация.
Пример кода: Обучение YOLOv8
Простота Ultralytics позволяет создавать лаконичный код, который легко поддерживать.
from ultralytics import YOLO
# Load a model (YOLOv8n)
model = YOLO("yolov8n.pt")
# Train on COCO8 dataset
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference
results = model("https://ultralytics.com/images/bus.jpg")
Требования к памяти
Эффективность является основным принципом Ultralytics . YOLOv8 для более низкого потребления памяти во время обучения по сравнению со многими другими архитектурами, включая модели на основе трансформаторов, такие как RT-DETR. Это позволяет исследователям обучать большие партии данных на потребительских графических процессорах (например, NVIDIA 3060 или 4070), демократизируя доступ к высокопроизводительному обучению моделей.
Реальные примеры использования
Выбор подходящей модели часто зависит от среды развертывания и конкретных требований к задаче.
Где превосходит YOLOv8
- Многозадачные приложения: поскольку YOLOv8 поддерживает сегментацию и оценку позы, он идеально подходит для сложных приложений, таких как спортивная аналитика (отслеживание движений и позы игроков) или автономные транспортные средства (сегментация полос движения и обнаружение объектов).
- Развертывание на периферии: с помощью одной команды экспортируйте данные в такие форматы, как ONNX, TensorRT, CoreML и TFLite, YOLOv8 значительно YOLOv8 для периферийных устройств, таких как Raspberry Pi и мобильные телефоны.
- Быстрое прототипирование: простота использования и предварительно обученные веса делают его идеальным выбором для стартапов и гибких команд, которым необходимо быстро проверить свои идеи.
Где подходит YOLOX
- Базовые исследования: YOLOX остается надежной базой для научных работ, в которых сравниваются архитектуры без анкоров 2021 года.
- Конкретные пользовательские реализации: для пользователей, которые активно используют фреймворк MegEngine (хотя PyTorch также PyTorch ), YOLOX обеспечивает нативную совместимость.
Взгляд в будущее: Мощь YOLO26
Хотя YOLOv8 надежным и широко используемым стандартом, Ultralytics внедрять инновации. Недавно выпущенная версия YOLO26 представляет собой новый скачок вперед.
Для разработчиков, стремящихся к абсолютному превосходству в производительности, YOLO26 предлагает несколько важных преимуществ по сравнению с YOLOX и YOLOv8:
- Сквозное решение NMS: YOLO26 является сквозным решением, что исключает необходимость в постобработке с помощью алгоритма Non-Maximum Suppression (NMS). Это снижает изменчивость задержки и упрощает процессы развертывания.
- Более быстрое CPU : оптимизированная для пограничных вычислений, YOLO26 обеспечивает до 43% более быстрое CPU , что делает ее превосходной для устройств без специальных графических процессоров.
- Оптимизатор MuSGD: вдохновленный инновациями в области обучения LLM, оптимизатор MuSGD обеспечивает более стабильное обучение и более быструю конвергенцию.
- Улучшенное обнаружение мелких объектов: благодаря функциям ProgLoss + STAL, YOLO26 предлагает заметные улучшения в распознавании мелких объектов, что имеет решающее значение для аэрофотосъемки и задач инспектирования.
Заключение
Как YOLOX, так и YOLOv8 ключевую роль в развитии технологии обнаружения объектов. YOLOX успешно популяризировал механизмы обнаружения без анкоров. Однако YOLOv8 предлагает более комплексное, удобное и универсальное решение для современных разработок в области искусственного интеллекта. Его интеграция в Ultralytics , поддержка множества задач машинного зрения и возможности беспроблемного развертывания делают его предпочтительным выбором для большинства коммерческих и исследовательских приложений на сегодняшний день.
Тем, кто готов принять новейшие технологии искусственного интеллекта в области зрения, настоятельно рекомендуется ознакомиться с YOLO26, чтобы обеспечить будущее своих приложений с помощью скорости и эффективности NMS.