Свяжитесь с нами:

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

Искусственный интеллект

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

mm
Изображение из блога для YOLOv8

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

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

Йолов8 объяснил

YOLOv8-Ультралитики

YOLO («Живешь только один раз») — популярная модель компьютерного зрения, способная обнаружение и сегментация объектов на изображениях. Модель прошла через несколько обновления в прошлом, где YOLOv8 обозначает 8-ю версию.

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

От версии 1 до версии 8: краткая история

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

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

Йолов3: Запущенный в 2018 году, Yolov3 представил новые функции, такие как более эффективная магистральная сеть, несколько привязок и объединение пространственных пирамид для многомасштабного извлечения признаков.

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

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

Йолов6: С выпуском Yolov6 в 2022 году исходный код модели был открыт для содействия развитию сообщества. Были представлены новые функции, такие как новая стратегия самоочистки и стратегия якорного обучения (AAT).

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

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

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

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

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

  1. Настраиваемая архитектура: YOLOv8 предлагает гибкую архитектуру, которую разработчики могут настроить в соответствии со своими конкретными требованиями.
  2. Адаптивное обучение: Новые возможности адаптивного обучения YOLOv8, такие как балансировка функции потерь во время обучения и техник, повышают скорость обучения. Возьмем, к примеру, Адама, который способствует повышению точности, ускорению сходимости и повышению общей производительности модели.
  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 ультралитики

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

от ультралитиков импортных YOLO

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

# Обучите модель на наборе данных MS COCO
результаты = 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:

от ультралитиков импортных YOLO

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

# Обучим модель
результаты = model.train(data='coco128.yaml', epochs=100, imgsz=640)

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

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

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

Хазика — Data Scientist с большим опытом написания технического контента для компаний, занимающихся искусственным интеллектом и SaaS.