Найти в Дзене
Stepik

Начало работы с YOLO: просто и понятно

Оглавление

Если вам кажется, что освоить работу с нейросетями сложно, эта статья для вас! Сегодня мы познакомим с одной из самых популярных моделей компьютерного зрения — YOLO (You Only Look Once), которая делает работу с объектами на изображениях доступной даже для тех, у кого минимальные навыки программирования на Python. Подробно про эффектив­ный алго­ритм и особенности его работы нам расскажет основатель школы робототехники RobotX и автор курсов по технологии компьютерного зрения на Stepik — Степан Бурмистров.

Что такое YOLO и какие задачи она решает?

YOLO — это нейронная сеть, которая используется для работы с изображениями и решает следующие задачи:

  1. Детекция объектов — обнаружение объектов и их местоположения на изображении.
  2. Сегментация — разделение изображения на области, относящиеся к каждому объекту.
  3. Классификация — определение того, что изображено на картинке.
  4. Поиск ключевых точек тела — определение позы человека.
  5. Трекинг объектов — потоковая обработка, позволяющая отслеживать и сохранять историю перемещений объектов.

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

Легкий старт с YOLO: подготовка и установка

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

pip install ultralytics

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

Детекция объектов — это процесс определения местоположения объектов и их классов на изображении. Давайте разберем, как это работает на примере.

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

-2

В первой части кода выбирается модель. YOLO автоматически скачает её при первом запуске скрипта. Есть несколько моделей на выбор:

  • yolov8n.pt
  • yolov8s.pt
  • yolov8m.pt
  • yolov8l.pt
  • yolov8x.pt

Каждая из них отличается размерами и скоростью работы: более лёгкие модели работают быстрее, но могут пропускать некоторые объекты, в то время как более тяжёлые определяют объекты точнее.

-3

После запуска скрипта нейросеть определит объекты на изображении и вернёт их координаты и классы (например, "person", "car", "bus", "traffic light").
Итак, после выполнения данного скрипта видим результат:

Итак, после выполнения данного скрипта видим результат:

-4

Кроме того, для дальнейшей обработки данные об объектах, обнаруженных на изображении, сохраняются в текстовый файл в следующем формате:

car:

Coordinates: (254, 849, 524, 971)

Coordinates: (49, 620, 425, 857)

stop sign:

Coordinates: (407, 560, 470, 626)

Coordinates: (267, 494, 341, 557)

traffic light:

Coordinates: (334, 157, 451, 426)

Coordinates: (938, 97, 1031, 312)

Coordinates: (86, 481, 130, 602)

person:

Coordinates: (578, 711, 710, 990)

Coordinates: (715, 723, 750, 798)

Coordinates: (715, 852, 864, 976)

Coordinates: (241, 897, 385, 1012)

truck:

Coordinates: (52, 620, 425, 859)

Такой формат позволяет легко работать с координатами объектов и использовать их для дальнейшего анализа или обработки.

Полный код можно найти по этой ссылке.

Дополнительные возможности YOLO

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

Ну а если вы всерьез задумались об изучении основ компьютерного зрения, а также хотите разобраться со всеми техническими нюансами и избежать типичных ошибок, вам точно этом помогут Технологии компьютерного зрения: Python, Numpy, OpenCV. Курс включает практические задания и проекты с автоматической проверкой, доступ к датасетам и полезные инструменты для реальных задач.

Бонус: При покупке курса до 10 ноября используйте промокод YOLODISCOUNT и получите скидку 15%!

Не упустите шанс начать изучение компьютерного зрения и нейросетей вместе с нами! Следите за обновлениями на нашем блоге и платформе Stepik — впереди ещё много интересных статей из этой серии. Учитесь, развивайтесь и становитесь профессионалами!