YOLOv7 и YOLOv5#
При создании современных конвейеров компьютерного зрения важно правильно выбрать архитектуру обнаружения объектов, чтобы сбалансировать точность, скорость инференса и использование ресурсов. В этом подробном сравнении рассмотрены две весьма влиятельные модели в сфере компьютерного зрения: YOLOv7 и Ultralytics YOLOv5.
Мы рассмотрим различия в архитектуре, метрики производительности и оптимальные сценарии развертывания, чтобы помочь разработчикам и исследователям выбрать модель, которая лучше всего соответствует их требованиям.
История и происхождение моделей#
Знание происхождения этих моделей помогает понять заложенные в них принципы проектирования и целевые сценарии использования.
YOLOv5#
Выпущенная Гленном Джочером и командой Ultralytics 26 июня 2020 года, YOLOv5 произвела революцию в этой области, предложив нативную реализацию на PyTorch, в которой удобство использования не достигалось за счет производительности. Благодаря чрезвычайно лаконичной экосистеме и надежной динамике обучения модель быстро стала отраслевым стандартом. Изучи исходный код в репозитории YOLOv5 на GitHub или получи прямой доступ к модели через платформу Ultralytics.
YOLOv7#
Представленная 6 июля 2022 года Чиен-Яо Вангом, Алексеем Бочковским и Хун-Юань Марком Ляо из Института информационных наук Академии Синика (Тайвань), YOLOv7 сосредоточилась на архитектурных инновациях, таких как расширенные сети эффективной агрегации слоев (E-ELAN) и обучаемый «набор бесплатных приемов», чтобы вывести точность на передовой уровень. Подробности доступны в официальной статье на arXiv и репозитории YOLOv7 на GitHub. Для простой интеграции ознакомься с документацией Ultralytics по YOLOv7.
YOLOv5 полностью интегрирована в пакет Ultralytics для Python. YOLOv7 не поддерживается нативно для обучения и инференса на PyTorch, но чекпойнты YOLOv7 из исходного проекта, экспортированные в ONNX или TensorRT, можно запускать с Ultralytics, как описано в документации по YOLOv7.
Архитектурные инновации#
Архитектура Ultralytics YOLOv5#
В YOLOv5 используется модифицированная основа CSPDarknet53 и шея на основе сети агрегации путей (PANet). Эта архитектура оптимизирована для быстрого извлечения признаков и эффективного использования памяти. В отличие от старых архитектур и ресурсоемких моделей Transformer, YOLOv5 требует значительно меньше памяти CUDA во время обучения, что позволяет использовать более крупные размеры батчей на обычных потребительских GPU. Кроме того, фреймворк Ultralytics изначально поддерживает широкий спектр задач помимо стандартного обнаружения ограничивающих рамок, включая сегментацию изображений и классификацию изображений.
Архитектура YOLOv7#
В YOLOv7 появились несколько структурных перепараметризаций и архитектура E-ELAN, позволяющая сети изучать более разнообразные признаки, не нарушая исходный путь градиента. Кроме того, во время обучения реализована вспомогательная голова для промежуточного контроля. Эти улучшения обеспечивают высокое среднее значение точности (mAP), однако часто создают сложные тензорные структуры, из-за которых экспорт в форматы для периферийных устройств, например ONNX или TensorRT, может быть немного сложнее, чем экспорт, встроенный в модели Ultralytics.
Анализ производительности#
При сравнении этих моделей разработчикам нужно учитывать mAPval, скорость инференса и вычислительную сложность (FLOPs). В таблице ниже показана производительность обеих архитектур при оценке на наборе данных COCO.
| Модель | размер (пиксели) | mAPval 50-95 | Скорость CPU ONNX (мс) | Скорость T4 TensorRT10 (мс) | параметры (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv7l | 640 | 51.4 | - | 6.84 | 36.9 | 104.7 |
| YOLOv7x | 640 | 53.1 | - | 11.57 | 71.3 | 189.9 |
| YOLOv5n | 640 | 28.0 | - | 1.12 | 1.9 | 4.5 |
| YOLOv5s | 640 | 37.4 | - | 1.92 | 7.2 | 16.5 |
| YOLOv5m | 640 | 45.4 | - | 4.03 | 21.2 | 49.0 |
| YOLOv5l | 640 | 49.0 | - | 6.61 | 46.5 | 109.1 |
| YOLOv5x | 640 | 50.7 | - | 11.89 | 86.7 | 205.7 |
Основные выводы#
- Предел точности: YOLOv7x обеспечивает наивысшую общую точность — впечатляющие 53,1 mAPval, — поэтому модель отлично подходит для сценариев, где главная цель — максимально повысить качество обнаружения.
- Скорость и эффективность: Ultralytics YOLOv5n впечатляет своей эффективностью: модель обеспечивает чрезвычайно низкую задержку инференса (1,12 мс на T4 TensorRT) и занимает совсем немного памяти благодаря всего 1,9 млн параметров. Это непревзойденный выбор для периферийных устройств с жесткими ограничениями.
- Баланс производительности: В серии YOLOv5 есть модели с широким диапазоном характеристик. YOLOv5l — отличный компромисс: по точности она немного уступает YOLOv7l, но предлагает очень зрелый конвейер развертывания.
Преимущества экосистемы Ultralytics#
Архитектура модели — лишь часть уравнения: ее практическую применимость определяет окружающая ее экосистема. Именно здесь модели Ultralytics действительно выделяются.
Простота использования: Ultralytics предоставляет единый и интуитивно понятный API для Python. Ты можешь обучать, валидировать и развертывать модели с минимальным количеством шаблонного кода, используя подробную официальную документацию. Развитая экосистема: Активная разработка обеспечивает постоянные обновления, исправления ошибок и простую интеграцию с современными инструментами отслеживания, такими как Weights & Biases. Эффективность обучения: Оптимизированные загрузчики данных и интеллектуальное кэширование значительно сокращают время обучения YOLOv5. Кроме того, готовые предварительно обученные веса ускоряют трансферное обучение в различных областях.
Пример кода: упрощенное обучение#
При использовании пакета Ultralytics запуск обучения практически не зависит от выбранной архитектуры.
from ultralytics import YOLO
# Загрузи предварительно обученную модель YOLOv5
model = YOLO("yolov5su.pt") # YOLOv5u: веса YOLOv5 без якорей для пакета ultralytics
# Обучи модель на примере набора данных COCO8
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Экспортируй обученную модель в формат ONNX для развёртывания
success = model.export(format="onnx")Оптимальные сценарии применения#
Когда выбирать YOLOv7#
- Академические бенчмарки: Отличный выбор для исследователей, которым нужно сравнить новые методы с хорошо документированной базовой моделью 2022 года.
- Обработка в облаке на мощных GPU: Подходит для развертывания на мощных серверных системах, когда максимальное значение mAP на сложных сценах важнее простоты экспорта.
Когда стоит выбрать YOLOv5#
- Промышленное развертывание: Идеально для коммерческих приложений, которым необходимы высокая стабильность, простые варианты развертывания модели и широкая совместимость с платформами.
- Периферийные устройства: Компактные варианты (YOLOv5n и YOLOv5s) отлично работают на мобильных телефонах и встроенных системах.
- Требования к нескольким задачам: Выбирай эту модель, если проект должен выйти за рамки простого обнаружения и поддерживать сегментацию экземпляров или классификацию в едином фреймворке.
Интересуют более новые версии? Изучи Ultralytics YOLOv8 или Ultralytics YOLO11, чтобы узнать о дальнейших улучшениях обнаружения без якорей и возможностей многозадачного обучения.
Следующее поколение: Ultralytics YOLO26#
YOLOv5 и YOLOv7 занимают важное место в истории ИИ для компьютерного зрения, но эта область постоянно развивается. Выпущенная в январе 2026 года Ultralytics YOLO26 представляет собой передовую технологию обнаружения объектов и превосходит предыдущие поколения по всем метрикам.
В YOLO26 появились несколько принципиально новых возможностей:
- Сквозная архитектура без NMS: Развивая идеи, заложенные в предыдущих версиях, YOLO26 предлагает нативную сквозную голову (
nms=False), которая исключает постобработку с подавлением немаксимумов (NMS), устраняет узкие места, связанные с задержкой, и значительно упрощает логику развертывания. - Оптимизатор MuSGD: Вдохновленный Kimi K2 от Moonshot AI, этот революционный оптимизатор сочетает стабильность стандартного SGD с ускоренным импульсом Muon и переносит передовые разработки в обучении LLM непосредственно в компьютерное зрение.
- Повышенная скорость на CPU: Благодаря продуманному отказу от Distribution Focal Loss (DFL) инференс YOLO26 на CPU выполняется до 43% быстрее, что делает модель бесспорным лидером для развертывания на периферийных устройствах и IoT-устройствах с низким энергопотреблением.
- ProgLoss + STAL: Эти продвинутые функции потерь значительно улучшают распознавание мелких объектов, что важно для аэросъемки и высокоточной робототехники.
- Улучшения для отдельных задач: Используются функция потерь для семантической сегментации при создании масок, оценка остаточного логарифмического правдоподобия (RLE) для оценки позы и специализированная функция потерь угла для решения сложных проблем с границами ориентированных ограничивающих рамок (OBB).
Заключение#
YOLOv5 и YOLOv7 — надежные решения для обнаружения объектов в реальном времени. YOLOv7 остается сильным выбором для максимальной точности на мощном оборудовании, а YOLOv5 выделяется как удобный для разработчиков инструмент, сочетающий высокую скорость и эффективность с первоклассной экосистемой.
Однако разработчикам, которые хотят подготовить свои конвейеры к будущим изменениям и добиться оптимального сочетания скорости, простоты и передовой точности, мы настоятельно рекомендуем перейти на Ultralytics YOLO26. Модель сочетает легендарную простоту платформы Ultralytics с революционными архитектурными инновациями.