Сравнение моделей: 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) |
|---|---|---|---|---|---|---|
| YOLOv7l | 640 | 51.4 | - | 6.84 | 36.9 | 104.7 |
| YOLOv7x | 640 | 53.1 | - | 11.57 | 71.3 | 189.9 |
| 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 |
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, с меньшей интегрированной поддержкой других задач по сравнению с новыми фреймворками.
Ultralytics YOLOv8: унифицированный фреймворк и современная архитектура
YOLOv8, запущенный Ultralytics в начале 2023 года, представляет собой серьезную переработку архитектуры YOLO. Он был разработан не просто как модель, а как унифицированный фреймворк, способный беспрепятственно выполнять detect, segment экземпляров, оценку позы и классификацию.
- Авторы: Гленн Джокер, Аюш Чаурасия и Цзин Цю
- Организация: Ultralytics
- Дата: 10.01.2023
- Ссылки:Документация Ultralytics | Репозиторий GitHub
Архитектурные инновации
В YOLOv8 отказались от обнаружения на основе anchor boxes, которое использовалось в предыдущих версиях (включая YOLOv7), в пользу механизма detector без anchor boxes. Этот переход упрощает процесс обучения, устраняя необходимость вычисления anchor boxes, что делает модель более устойчивой к изменениям формы и размера объектов.
В качестве основы была использована модернизированная версия модулей C2f (Cross-Stage Partial Bottleneck с двумя свертками), которые заменяют модули C3 в YOLOv5. Это изменение улучшает градиентный поток и позволяет модели оставаться легкой, захватывая при этом более богатую информацию о признаках.
Подробное техническое сравнение
На основе якорей и без якорей
Одним из наиболее определяющих различий является голова detect. YOLOv7 полагается на anchor boxes — предопределенные формы, которые модель пытается сопоставить с объектами. Хотя это и эффективно, это требует настройки гиперпараметров для пользовательских наборов данных.
В отличие от этого, YOLOv8 использует подход без якорей, предсказывая центр объекта напрямую. Это уменьшает количество предсказаний рамок, ускоряя Non-Maximum Suppression (NMS) и облегчая обучение модели на разнообразных данных без ручной настройки якорей.
Эффективность обучения и использование памяти
Модели Ultralytics известны своей инженерной эффективностью. YOLOv8 использует интеллектуальную стратегию увеличения данных, которая отключает аугментацию Mosaic на последних эпохах обучения. Этот метод стабилизирует потерю обучения и повышает точность.
Эффективность памяти
Значительным преимуществом Ultralytics YOLOv8 перед сложными архитектурами, такими как трансформеры (например, RT-DETR), является более низкое требование к памяти CUDA. Это позволяет пользователям обучать большие размеры пакетов на GPU потребительского класса, демократизируя доступ к современной подготовке моделей.
Экосистема и простота использования
В то время как YOLOv7 является мощным исследовательским репозиторием, Ultralytics YOLOv8 предлагает отлаженный пользовательский интерфейс. Экосистема Ultralytics предоставляет:
- Оптимизированный API: Единый интерфейс на python для всех задач.
- Развертывание: Экспорт в один клик в такие форматы, как ONNX, TensorRT, CoreML и TFLite, через режим экспорта.
- Поддержка сообщества: Активное 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) для обучения глубоких сетей.