Перейти к содержанию

Сравнение моделей: YOLOv7 и YOLOv8 для Object Detection

В быстро развивающемся мире компьютерного зрения семейство моделей "You Only Look Once" (YOLO) последовательно устанавливает стандарты для обнаружения объектов в реальном времени. Двумя важными вехами в этой линейке являются YOLOv7 и Ultralytics YOLOv8. Хотя обе модели расширили границы точности и скорости после своего выпуска, они представляют собой различные философии проектирования и зрелость экосистемы.

В этом руководстве представлено подробное техническое сравнение, которое поможет разработчикам и исследователям выбрать правильный инструмент для их конкретных потребностей, начиная от академических исследований и заканчивая развертыванием в производственной среде.

Сравнение метрик производительности

В следующей таблице представлено прямое сравнение показателей производительности между ключевыми моделями YOLOv7 и YOLOv8. YOLOv8 демонстрирует значительное преимущество в скорости инференса и благоприятное количество параметров, особенно в вариантах моделей меньшего размера, которые имеют решающее значение для приложений edge AI.

Модельразмер
(пиксели)
mAPval
50-95
Скорость
CPU ONNX
(мс)
Скорость
T4 TensorRT10
(мс)
параметры
(M)
FLOPs
(B)
YOLOv7l64051.4-6.8436.9104.7
YOLOv7x64053.1-11.5771.3189.9
YOLOv8n64037.380.41.473.28.7
YOLOv8s64044.9128.42.6611.228.6
YOLOv8m64050.2234.75.8625.978.9
YOLOv8l64052.9375.29.0643.7165.2
YOLOv8x64053.9479.114.3768.2257.8

YOLOv7: Эволюция "Bag-of-Freebies"

Выпущенная в июле 2022 года, YOLOv7 была разработана в основном авторами YOLOv4 и YOLOR. В ней появилось несколько архитектурных новшеств, направленных на оптимизацию процесса обучения без увеличения стоимости выводов - концепция, получившая название "обучаемый мешок бесплатных вещей".

  • Авторы: Чен-Яо Ванг, Алексей Бочковский и Хонг-Юань Марк Ляо
  • Организация: Institute of Information Science, Academia Sinica, Taiwan
  • Дата: 06.07.2022
  • Ссылки:Статья на Arxiv | Репозиторий GitHub

Ключевые архитектурные особенности

YOLOv7 представила Extended Efficient Layer Aggregation Network (E-ELAN). Эта архитектура контролирует кратчайшие и длиннейшие пути градиента, чтобы позволить сети изучать более разнообразные функции. Кроме того, он использовал методы масштабирования модели, которые одновременно изменяют глубину и ширину архитектуры, обеспечивая оптимальную производительность для разных размеров.

Несмотря на впечатляющие результаты на момент запуска, YOLOv7 в основном ориентирован на object detection, с меньшей интегрированной поддержкой других задач по сравнению с новыми фреймворками.

Узнайте больше о YOLOv7

Ultralytics YOLOv8: унифицированный фреймворк и современная архитектура

YOLOv8, запущенный Ultralytics в начале 2023 года, представляет собой серьезную переработку архитектуры YOLO. Он был разработан не просто как модель, а как унифицированный фреймворк, способный беспрепятственно выполнять detect, segment экземпляров, оценку позы и классификацию.

Архитектурные инновации

В YOLOv8 отказались от обнаружения на основе anchor boxes, которое использовалось в предыдущих версиях (включая YOLOv7), в пользу механизма detector без anchor boxes. Этот переход упрощает процесс обучения, устраняя необходимость вычисления anchor boxes, что делает модель более устойчивой к изменениям формы и размера объектов.

В качестве основы была использована модернизированная версия модулей C2f (Cross-Stage Partial Bottleneck с двумя свертками), которые заменяют модули C3 в YOLOv5. Это изменение улучшает градиентный поток и позволяет модели оставаться легкой, захватывая при этом более богатую информацию о признаках.

Узнайте больше о YOLOv8

Подробное техническое сравнение

На основе якорей и без якорей

Одним из наиболее определяющих различий является голова detect. YOLOv7 полагается на anchor boxes — предопределенные формы, которые модель пытается сопоставить с объектами. Хотя это и эффективно, это требует настройки гиперпараметров для пользовательских наборов данных.

В отличие от этого, YOLOv8 использует подход без якорей, предсказывая центр объекта напрямую. Это уменьшает количество предсказаний рамок, ускоряя Non-Maximum Suppression (NMS) и облегчая обучение модели на разнообразных данных без ручной настройки якорей.

Эффективность обучения и использование памяти

Модели Ultralytics известны своей инженерной эффективностью. YOLOv8 использует интеллектуальную стратегию увеличения данных, которая отключает аугментацию Mosaic на последних эпохах обучения. Этот метод стабилизирует потерю обучения и повышает точность.

Эффективность памяти

Значительным преимуществом Ultralytics YOLOv8 перед сложными архитектурами, такими как трансформеры (например, RT-DETR), является более низкое требование к памяти CUDA. Это позволяет пользователям обучать большие размеры пакетов на GPU потребительского класса, демократизируя доступ к современной подготовке моделей.

Экосистема и простота использования

В то время как YOLOv7 является мощным исследовательским репозиторием, Ultralytics YOLOv8 предлагает отлаженный пользовательский интерфейс. Экосистема Ultralytics предоставляет:

  1. Оптимизированный API: Единый интерфейс на python для всех задач.
  2. Развертывание: Экспорт в один клик в такие форматы, как ONNX, TensorRT, CoreML и TFLite, через режим экспорта.
  3. Поддержка сообщества: Активное Discord community и частые обновления, обеспечивающие совместимость с последними версиями PyTorch.

Сравнение кода

Разрыв в удобстве использования очевиден при сравнении кода, необходимого для запуска inference. Ultralytics отдает приоритет подходу с низким объемом кода, позволяя разработчикам интегрировать vision AI в приложения с минимальными накладными расходами.

Запуск YOLOv8 с python

from ultralytics import YOLO

# Load a pre-trained YOLOv8 model
model = YOLO("yolov8n.pt")

# Run inference on an image
results = model("https://ultralytics.com/images/bus.jpg")

# Display the results
for result in results:
    result.show()

Реализация CLI

YOLOv8 также может быть запущена непосредственно из командной строки, функция, которая упрощает интеграцию конвейера и быстрое тестирование.

# Detect objects in an image using the nano model
yolo predict model=yolov8n.pt source='https://ultralytics.com/images/zidane.jpg' imgsz=640

Идеальные варианты использования

Когда использовать YOLOv7

YOLOv7 остается жизнеспособным вариантом для исследователей, проводящих бенчмаркинг по стандартам 2022/2023 годов или поддерживающих устаревшие системы, построенные специально на архитектуре в стиле Darknet. Его подход "bag-of-freebies" предлагает интересные идеи для тех, кто изучает стратегии оптимизации нейронных сетей.

Когда использовать YOLOv8

YOLOv8 — рекомендуемый выбор для подавляющего большинства новых проектов, включая:

  • Приложения реального времени: Модель YOLOv8n (нано) предлагает невероятную скорость (примерно 80 мс на CPU), что делает ее идеальной для мобильных приложений и встроенных систем.
  • Multi-Task Pipelines: Проекты, требующие оценку позы или segmentation наряду с detect, могут использовать единый API.
  • Коммерческое развертывание: Надежная совместимость экспорта гарантирует, что модели, обученные в PyTorch, могут быть эффективно развернуты в производственной среде с использованием TensorRT или OpenVINO.

Заключение

В то время как YOLOv7 внесла значительный вклад в область компьютерного зрения за счет оптимизации обучаемых параметров, Ultralytics YOLOv8 представляет собой современный стандарт для практической разработки ИИ.

Превосходный баланс скорости и точности YOLOv8, в сочетании с архитектурой без привязки к anchor boxes и обширной экосистемой поддержки Ultralytics, делает ее более доступной для новичков и более мощной для экспертов. Для разработчиков, стремящихся создавать масштабируемые, поддерживаемые и высокопроизводительные приложения машинного зрения, YOLOv8 — и ее преемники, такие как YOLO11 — предлагают наиболее перспективный путь развития.

Дополнительная литература

Для тех, кто заинтересован в изучении последних достижений в области detectирования объектов, рекомендуем ознакомиться со следующими связанными моделями:

  • YOLO11: Последняя итерация от Ultralytics, усовершенствующая архитектуру для еще большей эффективности.
  • YOLOv6: Еще одна модель без привязки к якорям, ориентированная на промышленные приложения.
  • YOLOv9: Ориентирован на программируемую градиентную информацию (PGI) для обучения глубоких сетей.

Комментарии