YOLOv8 vs. PP-YOLOE+: техническое сравнение
Выбор оптимальной архитектуры object detection — это важнейшее решение, которое влияет на точность, скорость и гибкость развертывания приложений компьютерного зрения. В этом руководстве представлен углубленный технический анализ Ultralytics YOLOv8 и PP-YOLOE+. Изучая их архитектурные инновации, эталонные показатели производительности и поддержку экосистемы, мы стремимся помочь разработчикам и исследователям выбрать правильный инструмент для их конкретных потребностей в области компьютерного зрения.
Ultralytics YOLOv8: Универсальность и производительность
Ultralytics YOLOv8 представляет собой значительный скачок вперед в семействе YOLO, разработанный как унифицированная платформа для широкого спектра задач компьютерного зрения. Разработанная Ultralytics, она отдает приоритет удобству использования без ущерба для современной (SOTA) производительности.
Авторы: Гленн Джохер, Аюш Чаурасия и Цзин Цю
Организация:Ultralytics
Дата: 2023-01-10
GitHub:https://github.com/ultralytics/ultralytics
Документация:https://docs.ultralytics.com/models/yolov8/
Архитектура и ключевые особенности
YOLOv8 представляет собой передовой детектирующий слой без anchor boxes, который устраняет необходимость в ручной настройке anchor boxes и улучшает сходимость. В магистральной сети используется модуль C2f — конструкция с частичным перекрестным соединением — который улучшает распространение градиента и эффективность извлечения признаков. В отличие от многих конкурентов, YOLOv8 не ограничивается только обнаружением объектов; она изначально поддерживает сегментацию экземпляров, классификацию изображений, оценку позы и ориентированные ограничивающие рамки (OBB).
YOLOv8, построенный на широко распространенном фреймворке PyTorch, выигрывает от огромной экосистемы инструментов и библиотек. Его конструкция ориентирована на эффективность обучения, требуя значительно меньше памяти и времени для сходимости по сравнению с моделями на основе трансформеров или более старыми архитектурами обнаружения.
Сильные стороны
- Экосистема и удобство использования: Ultralytics предоставляет возможность «все включено» с надежным Python API и CLI.
- Поддержка нескольких задач: Единый фреймворк для задач обнаружения, сегментации, классификации и определения позы упрощает процесс разработки.
- Гибкость развертывания: Бесшовный экспорт в такие форматы, как ONNX, TensorRT, CoreML и OpenVINO, обеспечивает совместимость с различным оборудованием, от периферийных устройств до облачных серверов.
- Активное сопровождение: Частые обновления и активное сообщество гарантируют актуальность модели и быстрое исправление ошибок.
PP-YOLOE+: Высокая точность в экосистеме PaddlePaddle
PP-YOLOE+ — это усовершенствованная версия PP-YOLOE, разработанная Baidu как часть пакета PaddleDetection. Он фокусируется на достижении высокой точности и скорости inference, специально оптимизированной для фреймворка глубокого обучения PaddlePaddle.
Авторы: Авторы PaddlePaddle
Организация:Baidu
Дата: 2022-04-02
ArXiv:https://arxiv.org/abs/2203.16250
GitHub:https://github.com/PaddlePaddle/PaddleDetection/
Документация:https://github.com/PaddlePaddle/PaddleDetection/blob/release/2.8.1/configs/ppyoloe/README.md
Архитектура и ключевые особенности
PP-YOLOE+ — это одноэтапный детектор без anchor. Он включает в себя CSPRepResNet backbone и Path Aggregation Network (PAN) neck для надежного слияния признаков. Определяющей особенностью является Efficient Task-aligned Head (ET-Head), который использует Task Alignment Learning (TAL) для лучшей синхронизации классификации и прогнозов локализации. Будучи мощной, модель глубоко укоренена в экосистеме Baidu, в значительной степени полагаясь на специфичные для PaddlePaddle операторы и инструменты оптимизации.
Сильные и слабые стороны
Преимущества:
- Высокая точность: Самые крупные варианты (например, PP-YOLOE+x) достигают впечатляющих показателей mAP на наборе данных COCO.
- Оптимизировано для оборудования Paddle: Исключительно хорошо работает на оборудовании, оптимизированном для фреймворка Baidu.
Слабые стороны:
- Зависимость от фреймворка: Ориентация на PaddlePaddle может стать препятствием для команд, стандартизированных на PyTorch или TensorFlow, ограничивая доступ к более широким ресурсам сообщества open-source.
- Интенсивность использования ресурсов: Как подробно описано в разделе производительности, модели PP-YOLOE+ часто требуют больше параметров и операций с плавающей запятой (FLOPs) для достижения результатов, сопоставимых с YOLOv8, что влияет на эффективность на edge AI устройствах с ограниченными ресурсами.
- Ограниченная область задач: В первую очередь ориентирован на detection, ему не хватает интегрированной, готовой к использованию поддержки segment и оценки позы, которая есть в экосистеме Ultralytics.
Анализ эталонных показателей производительности
При сравнении YOLOv8 и PP-YOLOE+ становится ясным компромисс между скоростью, точностью и размером модели. YOLOv8 демонстрирует превосходную инженерную эффективность, обеспечивая конкурентоспособную или более высокую точность при значительно меньшем количестве параметров и FLOPs. Эта эффективность приводит к более быстрому времени обучения, меньшему потреблению памяти и более высокой скорости инференса.
Например, YOLOv8n является идеальным кандидатом для мобильных и встроенных приложений, предлагая производительность в реальном времени с минимальными вычислительными затратами. В отличие от этого, в то время как модели PP-YOLOE+, такие как вариант «x», расширяют границы точности, они делают это за счет того, что становятся более тяжелыми и медленными, что может быть нецелесообразно для потоков видеоаналитики в реальном времени.
Эффективность имеет значение
Для производственных сред размер и скорость модели часто так же важны, как и исходная точность. Эффективная архитектура YOLOv8 позволяет развертывать ее на меньшем и менее дорогом оборудовании без значительного снижения качества обнаружения.
| Модель | размер (пиксели) | 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 |
| PP-YOLOE+t | 640 | 39.9 | - | 2.84 | 4.85 | 19.15 |
| PP-YOLOE+s | 640 | 43.7 | - | 2.62 | 7.93 | 17.36 |
| PP-YOLOE+m | 640 | 49.8 | - | 5.56 | 23.43 | 49.91 |
| PP-YOLOE+l | 640 | 52.9 | - | 8.36 | 52.2 | 110.07 |
| PP-YOLOE+x | 640 | 54.7 | - | 14.3 | 98.42 | 206.59 |
Рекомендации по вариантам использования
- Наблюдение в реальном времени: Используйте YOLOv8 за баланс скорости и точности. Он превосходен в мониторинге трафика и системах безопасности, где обработка видео с высокой частотой кадров имеет решающее значение.
- Промышленный контроль: Обе модели хорошо подходят для этой задачи, но простота обучения YOLOv8 на пользовательских наборах данных позволяет быстрее адаптироваться к конкретным типам производственных дефектов.
- Развертывание на периферии: YOLOv8n и YOLOv8s являются превосходным выбором для развертывания на таких устройствах, как Raspberry Pi или NVIDIA Jetson, благодаря их компактному размеру.
- Сложные конвейеры обработки изображений: Если ваш проект требует отслеживания объектов или segment наряду с detect, Ultralytics YOLOv8 предоставляет эти возможности изначально, избавляя от необходимости объединять разрозненные модели.
Использование и реализация
Одним из наиболее убедительных преимуществ Ultralytics YOLOv8 является ее удобный для разработчиков API. В то время как PP-YOLOE+ требует навигации по конфигурации экосистемы PaddlePaddle, YOLOv8 может быть реализована в нескольких строках кода python. Это снижает порог вхождения для новичков и ускоряет прототипирование для экспертов.
Ниже приведен пример того, насколько просто загрузить предварительно обученную модель YOLOv8 и запустить inference:
from ultralytics import YOLO
# Load a pre-trained YOLOv8 model
model = YOLO("yolov8n.pt")
# Run inference on an image
results = model.predict("https://ultralytics.com/images/bus.jpg")
# Display results
results[0].show()
Простое обучение
Обучение пользовательской модели так же просто. Ultralytics автоматически обрабатывает увеличение данных, настройку гиперпараметров и управление набором данных, что позволяет вам сосредоточиться на создании высококачественных данных.
Заключение
В то время как PP-YOLOE+ является грозным конкурентом, который расширяет границы точности обнаружения в экосистеме Baidu, Ultralytics YOLOv8 становится более практичным и универсальным выбором для глобального сообщества разработчиков. Его интеграция с PyTorch, превосходная эффективность на параметр и всесторонняя поддержка нескольких задач компьютерного зрения делают его универсальным инструментом для современных AI-приложений.
Экосистема Ultralytics ecosystem еще больше усиливает это преимущество. Благодаря таким инструментам, как Ultralytics HUB для легкого обучения и управления моделями, а также обширной документации, которая поможет вам на каждом этапе, YOLOv8 гарантирует, что ваш проект перейдет от концепции к развертыванию с минимальными трудностями. Независимо от того, создаете ли вы приложение для умного города или инструмент медицинской диагностики, YOLOv8 обеспечивает баланс производительности и простоту использования, необходимые для успеха.
Изучите другие модели
Если вы хотите расширить свое понимание ландшафта object detection, рассмотрите возможность изучения этих других сравнений: