Модели и платформы ИИ

Распаковка YOLOv8: шедевр компьютерного зрения от Ultralytics

mm
Добавьте Unite.AI в избранные источники в Google
Blog featured image for YOLOv8

До сих пор обнаружение объектов на изображениях с помощью моделей компьютерного зрения сталкивалось с серьезной проблемой – задержкой в несколько секунд из-за времени обработки. Эта задержка препятствовала практическому внедрению в таких областях, как автономное вождение. Однако выпуск модели компьютерного зрения YOLOv8 от Ultralytics разрушил эту задержку. Новая модель может обнаруживать объекты в реальном времени с беспрецедентной точностью и скоростью, что делает ее популярной в области компьютерного зрения.

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

YOLOv8: объяснение

YOLOv8-Ultralytics

YOLO (You Only Live Once) – популярная модель компьютерного зрения, способная обнаруживать и сегментировать объекты на изображениях. Модель прошла через несколько обновлений в прошлом, и YOLOv8 отмечает 8-ю версию.

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

От v1 до v8: краткая история

Yolov1: Выпущенная в 2015 году, первая версия YOLO была представлена как одностадийная модель обнаружения объектов. Функции включали чтение всей картинки для предсказания каждого ограничивающего прямоугольника в одном оценке.

Yolov2: Следующая версия, выпущенная в 2016 году, показала лучшие результаты на бенчмарках, таких как PASCAL VOC и COCO, и работает на высоких скоростях (67-40 FPS). Она также могла точно обнаруживать более 9000 категорий объектов, даже с ограниченными данными для обнаружения.

Yolov3: Выпущенная в 2018 году, Yolov3 представила новые функции, такие как более эффективная сеть-основание, несколько якорей и пространственная пирамидальная выборка для многочисленной экстракции функций.

Yolov4: С выпуском Yolov4 в 2020 году была введена новая техника aumentации данных Mosaic, которая предложила улучшенные возможности обучения.

Yolov5: Выпущенная в 2021 году, Yolov5 добавила мощные новые функции, включая оптимизацию гиперпараметров и интегрированную отслеживание экспериментов.

Yolov6: С выпуском Yolov6 в 2022 году модель была открыта для содействия развитию сообщества. Были введены новые функции, такие как новая стратегия само-растворения и стратегия Anchor-Aided Training (AAT).

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

Что делает YOLOv8 выдающимся?

Изображение, показывающее обнаружение транспортных средств

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

Но кроме этого, YOLOv8 поставляется с мощными возможностями, которые включают:

  1. Настраиваемая архитектура: YOLOv8 предлагает гибкую архитектуру, которую разработчики могут настроить в соответствии со своими конкретными требованиями.
  2. Адаптивное обучение: новые адаптивные возможности обучения YOLOv8, такие как балансировка функции потерь во время обучения и техники, улучшают скорость обучения. Возьмите, например, Adam, который способствует лучшей точности, более быстрому сходимости и общему лучшему результату модели.
  3. Продвинутый анализ изображений: благодаря новым возможностям семантической сегментации и предсказания классов модель может обнаруживать действия, цвет, текстуру и даже отношения между объектами, помимо своей основной функции обнаружения объектов.
  4. Аугментация данных: новые техники аугментации данных помогают решить проблемы, связанные с вариациями изображений, такими как низкое разрешение, осложнения и т. д., в реальных ситуациях обнаружения объектов, когда условия не идеальны.
  5. Поддержка основы: YOLOv8 предлагает поддержку нескольких основ, включая CSPDarknet (стандартную основу), EfficientNet (легковесную основу) и ResNet (классическую основу), которые пользователи могут выбрать.

Пользователи даже могут настроить основу, заменив CSPDarknet53 на любую другую архитектуру CNN, совместимую с входными и выходными размерами YOLOv8.

Обучение и настройка YOLOv8

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

Давайте исследуем, как вы можете выполнить обе эти операции.

Настройка YOLOv8 с помощью пользовательской базы данных

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

Модель YOLOv8 может быть настроена с помощью вашего кода на Python или через командную строку интерфейса (CLI).

1. Настройка модели YOLOv8 с помощью Python

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

Сначала установите библиотеку Ultralytics из официального распространения.

# Установите пакет ultralytics из PyPI
pip install ultralytics

Далее выполните следующий код в файле Python:

from ultralytics import YOLO

# Загрузите модель
model = YOLO(‘yolov8n.pt’) # загрузите предварительно обученную модель (рекомендуется для обучения)

# Обучите модель на базе данных MS COCO
results = model.train(data=’coco128.yaml’, epochs=100, imgsz=640)

По умолчанию код будет обучать модель, используя базу данных COCO для 100 эпох. Однако вы также можете настроить эти настройки, чтобы задать размер, эпоху и т. д., в файле YAML.

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

2. Настройка модели YOLOv8 с помощью CLI

Чтобы обучить модель, используя CLI, запустите следующий сценарий в командной строке:

yolo train model=yolov8n.pt data=coco8.yaml epochs=100 imgsz=640

Команда CLI загружает предварительно обученную модель `yolov8n.pt` и обучает ее дальше на базе данных, определенной в файле `coco8.yaml`.

Создание своей модели с помощью YOLOv8

Существует два способа создания пользовательской модели с помощью YOLO:

  • Обучение с нуля: этот подход позволяет использовать предопределенную архитектуру YOLOv8, но не будет использовать предварительно обученные веса. Обучение будет происходить с нуля.
  • Пользовательская архитектура: вы корректируете стандартную архитектуру YOLO и обучаете новую структуру с нуля.

Реализация обоих этих методов остается одинаковой. Чтобы обучить модель YOLO с нуля, запустите следующий код Python:

from ultralytics import YOLO

# Загрузите модель
model = YOLO(‘yolov8n.yaml’) # создайте новую модель из YAML

# Обучите модель
results = model.train(data=’coco128.yaml’, epochs=100, imgsz=640)

Обратите внимание, что на этот раз мы загрузили файл `.yaml` вместо файла `.pt`. Файл YAML содержит информацию об архитектуре модели, и не загружаются веса. Команда обучения начнет обучение этой модели с нуля.

Чтобы обучить пользовательскую архитектуру, вам необходимо определить пользовательскую структуру в файле `.yaml`, подобном `yolov8n.yaml` выше. Затем загрузите этот файл и обучите модель, используя тот же код, что и выше.

Чтобы узнать больше об обнаружении объектов с помощью ИИ и оставаться в курсе последних тенденций ИИ, посетите unite.ai.

Haziqa является Data Scientist с обширным опытом написания технического контента для компаний AI и SaaS.