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

YOLOv7 против YOLOv10: эволюция архитектуры и анализ производительности

Эволюция семейства YOLO (You Only Look Once) представляет собой захватывающую хронологию развития компьютерного зрения, балансирующую между вечным компромиссом между скоростью вывода и точностью обнаружения. В этом сравнении рассматриваются две важные вехи: YOLOv7надежная модель, установившая новые ориентиры в 2022 году, и YOLOv10выпуск 2024 года, в котором произойдет смена парадигмы благодаря обучению NMS.

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

YOLOv7: оптимизация градиентного пути

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

Авторы: Chien-Yao Wang, Alexey Bochkovskiy, and Hong-Yuan Mark Liao
Организация: Institute of Information Science, Academia Sinica, Taiwan
Date: 2022-07-06
ArXiv:YOLOv7: Trainable bag-of-freebies sets new state-of-the-the-art for real-time object detectors
GitHub:WongKinYiu/yolov7

Основные архитектурные особенности

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

Кроме того, в YOLOv7 активно используются методы "Bag-of-Freebies", которые повышают точность в процессе обучения без увеличения стоимости вывода. К ним относится перепараметризация модели, при которой сложная структура обучения упрощается в упрощенную структуру вывода, что позволяет сократить время ожидания при сохранении полученных результатов.

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

YOLOv10: Конец NMS

YOLOv10, выпущенная в мае 2024 года исследователями из Университета Цинхуа, устраняет давнее узкое место в обнаружении объектов: Немаксимальное подавлениеNMSНМП). Традиционные модели YOLO предсказывают несколько ограничивающих рамок для одного объекта и полагаются на NMS для отсеивания дубликатов. Этот шаг постобработки добавляет задержку, которая зависит от количества объектов в сцене.

Авторы: Ao Wang, Hui Chen, Lihao Liu, et al.
Организация: Университет Цинхуа
Дата: 2024-05-23
ArXiv:YOLOv10: End-to-End Detection Object Detection в реальном времени
GitHub:THU-MIG/yolov10

Основные архитектурные особенности

В YOLOv10 реализована стратегия последовательного двойного назначения. Во время обучения модель использует как голову "один ко многим" (для богатого наблюдения), так и голову "один к одному" (для сквозного предсказания). Во время вывода используется только головка "один к одному", что полностью устраняет необходимость в NMS . Это позволяет получить предсказуемый вывод с низкой задержкой, что делает его очень подходящим для пограничных приложений ИИ, где время обработки должно быть постоянным.

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

Техническое сравнение: Архитектура и производительность

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

Метрики производительности

Как показано в таблице ниже, YOLOv10 демонстрирует превосходную эффективность. Например, YOLOv10b достигает более высокого mAP (52,7%), чем YOLOv7l (51,4%), при этом используя значительно меньше параметров (24,4М против 36,9М) и операций с плавающей точкой (FLOPs).

Понимание задержки

Показатели "Скорость" подчеркивают влияние дизайна YOLOv10 NMS. Устраняя шаг NMS , YOLOv10 снижает вычислительные затраты во время вывода, что особенно полезно на аппаратных ускорителях, таких как TensorRT , где постобработка в противном случае может стать узким местом.

Модельразмер
(пиксели)
mAPval
50-95
Скорость
CPU ONNX
(мс)
Скорость
T4 TensorRT10
(мс)
параметры
(M)
FLOPs
(B)
YOLOv7l64051.4-6.8436.9104.7
YOLOv7x64053.1-11.5771.3189.9
YOLOv10n64039.5-1.562.36.7
YOLOv10s64046.7-2.667.221.6
YOLOv10m64051.3-5.4815.459.1
YOLOv10b64052.7-6.5424.492.0
YOLOv10l64053.3-8.3329.5120.3
YOLOv10x64054.4-12.256.9160.4

Сильные и слабые стороны

Сильные стороны YOLOv7 :

  • Проверенная надежность: Всестороннее тестирование в различных академических и промышленных условиях с 2022 года.
  • Поддержка высокого разрешения: Превосходная производительность на входах с высоким разрешением (например, 1280 пикселей) с помощью определенных вариантов W6/E6.
  • Ресурсы сообщества: В силу возраста существует большое количество учебников и сторонних реализаций.

Слабые стороны YOLOv7 :

  • Сложность: Перепараметризация и структура вспомогательной головы могут усложнить конвейер обучения по сравнению с современными моделями Ultralytics .
  • Зависимость отNMS : Скорость вывода частично зависит от плотности сцены благодаря NMS.

Сильные стороны YOLOv10 :

  • Самая низкая задержка: Архитектура NMS обеспечивает чрезвычайно быстрое получение результатов, что идеально подходит для получения результатов в режиме реального времени.
  • Эффективность: Достижение современной точности при меньшем количестве параметров и меньшем объеме памяти.
  • Простота развертывания: Удаление этапа NMS упрощает процесс экспорта в такие форматы, как ONNX и TensorRT.

Слабые стороны YOLOv10 :

  • Специфика задачи: в основном ориентирована на обнаружение объектов, в то время как другие модели в экосистеме Ultralytics (например, YOLO11) поддерживают сегментацию, оценку положения и OBB в единой структуре.

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

Выбор между YOLOv7 и YOLOv10 часто зависит от конкретных ограничений среды развертывания.

  • Используйте YOLOv7 , если: Вы работаете над старым проектом, в который уже интегрирована архитектура v7, или если вам нужны специальные варианты высокого разрешения (например, YOLOv7) для обнаружения мелких объектов на больших изображениях, где скорость вывода вторична по отношению к точности.
  • Используйте YOLOv10 , если: Вы развертываете систему на граничных устройствах с ограниченными ресурсами (Raspberry Pi, Jetson Nano, мобильные телефоны) или вам требуется абсолютно минимальная задержка для таких приложений, как автономное вождение или высокоскоростная робототехника. Меньший объем памяти также удешевляет работу в облачных средах.

Преимущество Ultralytics

Будь то YOLOv7 или YOLOv10, их использование через Ultralytics Python API дает значительные преимущества по сравнению с использованием исходного кода репозитория. Ultralytics объединила эти модели в единую экосистему, в которой приоритетом является простота использования, эффективность обучения и универсальность.

Оптимизированный пользовательский опыт

Обучение сложных моделей глубокого обучения исторически требовало управления сложными конфигурационными файлами и зависимостями. Фреймворк Ultralytics стандартизирует этот процесс. Разработчики могут переключаться между архитектурами (например, с YOLOv10n на YOLOv10s или даже на YOLO11) путем изменения одного строкового аргумента, не переписывая загрузчики данных или скрипты проверки.

Пример кода

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

from ultralytics import YOLO

# Load a pre-trained YOLOv10 model (NMS-free)
model_v10 = YOLO("yolov10n.pt")

# Load a pre-trained YOLOv7 model
model_v7 = YOLO("yolov7.pt")

# Run inference on an image
# The API handles underlying differences automatically
results_v10 = model_v10("https://ultralytics.com/images/bus.jpg")
results_v7 = model_v7("https://ultralytics.com/images/bus.jpg")

# Print results
for result in results_v10:
    result.show()  # Display predictions

Экосистема и защита от будущего

Хотя YOLOv7 и YOLOv10 являются мощными, экосистема Ultralytics постоянно развивается. Новейший YOLO11 основана на уроках, извлеченных из v7 (агрегирование функций) и v10 (эффективность).

  • Поддерживается в рабочем состоянии: Частые обновления обеспечивают совместимость с последними версиями PyTorch, CUDA и форматами экспортаCoreML, ONNX, TensorRT).
  • Эффективность использования памяти: Модели Ultralytics разработаны таким образом, чтобы минимизировать использование VRAM на GPU во время обучения, что позволяет использовать большие объемы партий на потребительском оборудовании по сравнению со многими альтернативами на базе трансформеров (например, RT-DETR).
  • Эффективность обучения: Благодаря предварительно настроенным гиперпараметрам и "умному" сканированию наборов данных сходимость обучения часто происходит быстрее, что экономит вычислительные затраты.

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

Изучите другие модели

Если вас интересуют дальнейшие сравнения или различные архитектуры, обратите внимание на эти ресурсы:

  • YOLO11 против YOLOv8 - сравнение последних современных моделей.
  • RT-DETR против YOLOv10 - обнаружение на основе трансформатора против эффективности на основе CNN.
  • YOLOv9 против YOLOv10 - исследование программируемой градиентной информации (PGI) в сравнении с дизайнами NMS.

Комментарии