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

YOLOv7 против YOLOv8: Эволюция обнаружения объектов в реальном времени

Ландшафт компьютерного зрения определяется быстрой итерацией и архитектурными прорывами. Двумя наиболее значимыми вехами в этой истории являются YOLOv7, выпущенная в середине 2022 года, и YOLOv8, выпущенный Ultralytics начале 2023 года. Хотя обе модели были передовыми (SOTA) на момент выпуска, они представляют разные философии в области проектирования моделей и опыта разработчиков.

YOLOv7 пик оптимизации подхода «bag-of-freebies» для детекторов на основе якорей, уделяя особое внимание стратегиям обучаемой архитектуры. Напротив, YOLOv8 подход, ориентированный на пользователя, перейдя к архитектуре без якорей, в которой приоритетом стали простота использования, развертывание моделей и унифицированная поддержка различных задач, таких как сегментация и оценка позы.

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

В следующей таблице представлены показатели производительности YOLOv8 YOLOv7 YOLOv8 . YOLOv8 превосходную эффективность, особенно по количеству параметров и FLOP, при этом сохраняя или превосходя точность (mAP) своей предшественницы.

Модельразмер
(пиксели)
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: мощный инструмент на основе якорей

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

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

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

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

Сложность обучения

YOLOv7 требует специальной структуры репозитория, ориентированной на исследования, и ручного управления вспомогательными головками во время обучения. Пользователи часто должны вручную настраивать гиперпараметры для «bag-of-freebies» (таких как MixUp Mosaic), чтобы они правильно функционировали на небольших наборах данных.

YOLOv8: унифицированная экосистема и конструкция без анкеров

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

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

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

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

  1. Модуль C2f: Заменяя модуль C3 предыдущих поколений, модуль C2f (вдохновленный ELAN) сочетает в себе высокоуровневые функции с контекстной информацией для улучшения градиентного потока, оставаясь при этом легким.
  2. Разделенная головка: YOLOv8 задачи объективизации, классификации и регрессии на разные ветви. Такое разделение позволяет модели сходиться быстрее и точнее.
  3. Универсальность задач: в отличие от YOLOv7, который в основном является моделью обнаружения, YOLOv8 поддерживает классификацию изображений, оценку позы, ориентированные ограничивающие рамки (OBB) и сегментацию экземпляров.

Подробное сравнение: почему разработчики выбирают Ultralytics

Хотя YOLOv7 эффективной моделью, Ultralytics , созданная вокруг YOLOv8 и более новой YOLO26), предлагает разработчикам и исследователям ряд явных преимуществ.

1. Простота использования и экосистема.

YOLOv7 в основном YOLOv7 как репозиторий для исследований. Для его обучения часто требуется клонировать определенный репозиторий GitHub, организовать папки в жесткой структуре и запустить сложные CLI .

В отличие от этого, Ultralytics доступны в виде стандартного Python (pip install ultralytics). Аргумент Ultralytics Platform еще больше упрощает этот процесс, предоставляя графический интерфейс для управления наборами данных и мониторинга обучения. Этот опыт «от нуля до героя» значительно снижает барьер для входа в сферу разработки ИИ.

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

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

YOLOv8 динамически YOLOv8 мозаичное увеличение, отключая его в последних эпохах для повышения точности. В сочетании с оптимизированным загрузчиком данных это позволяет пользователям запускать более крупные пакеты на потребительских графических процессорах по сравнению с YOLOv7 альтернативами на основе трансформаторов, такими как RT-DETR.

3. Развертывание и экспорт

Перенос модели из PyTorch на производственное устройство часто является самой сложной частью конвейера. YOLOv8 этот процесс благодаря унифицированному режиму экспорта.

С помощью одной строки кода разработчики могут экспортировать YOLOv8 :

  • ONNX для обеспечения общей кроссплатформенной совместимости.
  • TensorRT для максимальной скорости вывода на NVIDIA .
  • CoreML для интеграции в приложения iOS macOS.
  • TFLite для мобильных устройств и периферийных устройств на базе Android Raspberry Pi.

Пример экспорта

Экспорт YOLOv8 осуществляется без проблем через Python :

from ultralytics import YOLO

model = YOLO("yolov8n.pt")
model.export(format="onnx", opset=12)

Пример кода: унифицированный API

Python Ultralytics позволяет легко переключаться между архитектурами моделей. Вы можете загрузить YOLOv7 YOLOv8 или YOLOv7 (поддерживается для обратной совместимости) с помощью одного и того же интерфейса.

from ultralytics import YOLO

# Load the latest YOLOv8 Nano model for efficiency
model = YOLO("yolov8n.pt")

# Train the model on the COCO8 dataset
# The API handles dataset downloading and configuration automatically
results = model.train(data="coco8.yaml", epochs=50, imgsz=640)

# Run inference on a sample image
# Returns a list of Results objects containing boxes, masks, or keypoints
results = model.predict("https://ultralytics.com/images/bus.jpg")

# Display the results
results[0].show()

# NOTE: You can also load YOLOv7 weights using the same API
# model_v7 = YOLO("yolov7.pt")

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

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

  • Сравнительный анализ наследия: если вы воспроизводите академические статьи 2022/2023 годов, в которых проводится конкретное сравнение с архитектурой E-ELAN.
  • Специфические входы высокого разрешения: Параметр yolov7-w6 варианты были специально настроены для входных данных 1280px, хотя современные Ultralytics теперь обрабатывают Разрешение P6/1280 нативно.

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

  • Пограничные вычисления: Модели, такие как yolov8n идеально подходят для работает на Raspberry Pi или Jetson Nano из-за их низкого количества параметров и высокой скорости.
  • Многозадачные приложения: если ваше приложение требует отслеживания людей с одновременной идентификацией их позы (скелетов), то встроенная функция оценки позы YOLOv8 является идеальным выбором.
  • Промышленная автоматизация: для высокопроизводительных производственных линий, где задержка имеет критическое значение, простота экспорта в TensorRT делает YOLOv8 .
  • Быстрое прототипирование: Ultralytics позволяет командам быстро повторять операции с наборами данных и моделями без необходимости управления сложной инфраструктурой.

Взгляд в будущее: сила YOLO26

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

YOLO26 основан на простоте использования YOLOv8 имеет полностью интегрированную конструкцию NMS. Благодаря устранению постобработки Non-Maximum Suppression (NMS) YOLO26 обеспечивает значительно более простую логику развертывания и меньшую задержку в сложных сценах. Он также оснащен оптимизатором MuSGD, вдохновленным методами обучения Large Language Model (LLM), что обеспечивает еще более стабильную конвергенцию во время обучения.

Кроме того, благодаря устранению потери фокуса распределения (DFL) YOLO26 работает на 43 % быстрее при выводах CPU, что делает его идеальным выбором для приложений искусственного интеллекта на периферии, где GPU недоступны. Для специализированных задач в нем внедрены специфические усовершенствования, такие как оценка остаточной логарифмической вероятности (RLE) для Pose и специализированная потеря угла для OBB.

Для получения наиболее перспективного, эффективного и точного решения мы рекомендуем ознакомиться с YOLO26.


Комментарии