YOLOv8 YOLOv7: эволюция архитектуры и анализ производительности
В быстро развивающейся области компьютерного зрения семейство моделей «You Only Look Once» (YOLO) неизменно устанавливает стандарты в области обнаружения объектов в реальном времени. В этом сравнении рассматриваются технические нюансы между Ultralytics YOLOv8 и ориентированной на исследования YOLOv7. Хотя обе модели представляют собой важные вехи в истории искусственного интеллекта, они удовлетворяют потребности разных этапов разработки и внедрения.
Для разработчиков, стремящихся к максимально плавному опыту, Ultralytics предоставляет унифицированный интерфейс. Однако понимание архитектурного сдвига от подхода YOLOv7, основанного на конкатенации, к дизайну YOLOv8 без анкоров имеет решающее значение для выбора правильного инструмента для ваших конкретных задач компьютерного зрения.
Сравнение метрик производительности
В следующей таблице представлены компромиссы в производительности. YOLOv8 обычно обеспечивает оптимальный баланс скорости и точности, особенно с учетом эффективности Ultralytics для обучения и развертывания.
| Модель | размер (пиксели) | 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 |
| YOLOv7l | 640 | 51.4 | - | 6.84 | 36.9 | 104.7 |
| YOLOv7x | 640 | 53.1 | - | 11.57 | 71.3 | 189.9 |
Ultralytics YOLOv8: Современный стандарт
YOLOv8 поворотный момент в YOLO благодаря использованию головки обнаружения без анкеров и развязанной архитектуры. Такой выбор упрощает процесс обучения, устраняя необходимость в ручном расчете анкерных рамок, что делает модель более устойчивой при работе с различными наборами данных.
YOLOv8 Детали:
- Авторы: Гленн Джокер, Аюш Чаурасия и Цзин Цю
- Организация:Ultralytics
- Дата: 2023-01-10
- GitHub:Репозиторий Ultralytics
Архитектура и инновации
YOLOv8 модуль C2f (Cross-Stage Partial Bottleneck с двумя свертками), который заменяет модуль C3, использовавшийся в предыдущих итерациях. Модуль C2f улучшает поток градиента и позволяет модели обучаться более сложным представлениям признаков, сохраняя при этом легкие характеристики.
Ключевой сильной стороной YOLOv8 его встроенная универсальность. В отличие от старых репозиториев, которые требовали отдельных ветвей для разных задач, YOLOv8 обнаружение объектов, сегментацию экземпляров, оценку позы, классификацию и ориентированные ограничивающие рамки (OBB) в рамках одной платформы.
YOLOv7: веха в научных исследованиях
Выпущенная в середине 2022 года, YOLOv7 большое YOLOv7 оптимизации архитектуры с помощью «Trainable bag-of-freebies». Она расширила границы возможностей детекторов на основе анкоров, существовавших на тот момент.
Детали YOLOv7:
- Авторы: Чен-Яо Ванг, Алексей Бочковский и Хонг-Юань Марк Ляо
- Организация: Institute of Information Science, Academia Sinica, Taiwan
- Дата: 2022-07-06
- Arxiv:YOLOv7: Trainable bag-of-freebies sets new state-of-the-art
- GitHub:WongKinYiu/yolov7
Архитектурный подход
YOLOv7 архитектуру E-ELAN (Extended Efficient Layer Aggregation Network). Эта конструкция ориентирована на управление самыми короткими и самыми длинными градиентными путями, что позволяет сети обучаться более эффективно. Несмотря на высокую точность, архитектура является сложной и зависит от анкерных рамок, которые могут потребовать специальной настройки для оптимальной работы с пользовательскими данными.
Техническое сравнение и примеры использования
1. Простота использования и экосистема.
Наиболее значительным отличительным фактором является экосистема. YOLOv8 распространяется через ultralytics пакет pip, предлагающий опыт «от нуля до героя». Разработчики могут получить доступ к предварительно обученные модели и начните тренироваться через несколько минут.
В отличие от этого, YOLOv7 в первую очередь YOLOv7 хранилищем исследований. Несмотря на свою мощность, ему не хватает стандартизированного API, бесшовной интеграции с такими инструментами, как TensorBoard, и обширной документации, которую Ultralytics .
2. Эффективность обучения и память
Ultralytics славятся своей эффективностью обучения. YOLOv8 использование CUDA , что часто позволяет использовать более крупные пакеты данных по сравнению с моделями на основе Transformer или более старой YOLOv7 . Эта эффективность приводит к снижению затрат на облачные вычисления и сокращению времени итерации.
Интегрированный экспорт
Одной из самых больших проблем при развертывании является преобразование моделей. YOLOv8 эту задачу с помощью одной команды для экспорта в ONNX, TensorRT, CoreML и TFLite, обеспечивая работу вашей модели на любом периферийном устройстве.
3. Идеальные варианты использования
- Выберите YOLOv8, если вам нужно готовое к производству решение, которое легко обслуживать, поддерживает несколько задач компьютерного зрения (таких как отслеживание и сегментация) и легко развертывается на периферийных устройствах, таких как Raspberry Pi.
- Выберите YOLOv7, если вы проводите академические исследования, специально сравнивающие устаревшие архитектуры на основе анкоров, или вам необходимо воспроизвести результаты тестов 2022 года.
Будущее: YOLO26
Хотя YOLOv8 YOLOv7 отличными моделями, эта область быстро развивается. Ultralytics выпустила YOLO26, рекомендуемую модель для всех новых проектов.
YOLO26 представляет собой сквозную конструкцию NMS, что устраняет необходимость в постобработке с помощью Non-Maximum Suppression. Это значительно упрощает процессы развертывания и снижает задержку. Кроме того, YOLO26 устраняет Distribution Focal Loss (DFL) и использует MuSGD Optimizer— гибрид SGD Muon, вдохновленный обучением LLM — для обеспечения стабильного обучения и более быстрой конвергенции.
Благодаря ProgLoss и STAL (Soft-Target Anchor Loss) YOLO26 обеспечивает на 43 % более быстрое CPU , что делает его идеальным выбором для пограничных вычислений и аналитики в реальном времени.
Примеры кода
Ultralytics унифицирует рабочий процесс. Вы можете обучить современную YOLOv8 или даже загрузить устаревшие конфигурации с минимальным количеством кода.
from ultralytics import YOLO
# Load the recommended model (YOLO26 or YOLOv8)
model = YOLO("yolov8n.pt")
# Train the model on the COCO8 dataset
# The unified API handles data augmentation and memory management automatically
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference on an image
results = model("https://ultralytics.com/images/bus.jpg")
# Export to ONNX for deployment
model.export(format="onnx")
Для исследователей, интересующихся другими архитектурами, в Ultralytics также рассматриваются YOLOv5, YOLOv9и YOLO11, что гарантирует вам наличие лучших инструментов для любого сценария.