Если вам кажется, что освоить работу с нейросетями сложно, эта статья для вас! Сегодня мы познакомим с одной из самых популярных моделей компьютерного зрения — YOLO (You Only Look Once), которая делает работу с объектами на изображениях доступной даже для тех, у кого минимальные навыки программирования на Python. Подробно про эффективный алгоритм и особенности его работы нам расскажет основатель школы робототехники RobotX и автор курсов по технологии компьютерного зрения на Stepik — Степан Бурмистров.
Что такое YOLO и какие задачи она решает?
YOLO — это нейронная сеть, которая используется для работы с изображениями и решает следующие задачи:
- Детекция объектов — обнаружение объектов и их местоположения на изображении.
- Сегментация — разделение изображения на области, относящиеся к каждому объекту.
- Классификация — определение того, что изображено на картинке.
- Поиск ключевых точек тела — определение позы человека.
- Трекинг объектов — потоковая обработка, позволяющая отслеживать и сохранять историю перемещений объектов.
Кроме того, YOLO может использоваться для таких задач, как предсказание движения объектов на основе трекинга и создание собственных датасетов для дообучения модели.
Легкий старт с YOLO: подготовка и установка
Одним из главных преимуществ YOLO является простота использования. Чтобы начать работать с этой нейросетью, вам будет достаточно базового понимания Python. Для установки YOLO выполните в консоли следующую команду:
pip install ultralytics
После этого все необходимые модули будут установлены, и вы сможете сразу перейти к работе.
Детекция объектов — это процесс определения местоположения объектов и их классов на изображении. Давайте разберем, как это работает на примере.
Для использования YOLO напишем небольшой скрипт. В начале мы подключим необходимые библиотеки и создадим словарь, который будет содержать цвета рамок для выделения найденных объектов.
В первой части кода выбирается модель. YOLO автоматически скачает её при первом запуске скрипта. Есть несколько моделей на выбор:
- yolov8n.pt
- yolov8s.pt
- yolov8m.pt
- yolov8l.pt
- yolov8x.pt
Каждая из них отличается размерами и скоростью работы: более лёгкие модели работают быстрее, но могут пропускать некоторые объекты, в то время как более тяжёлые определяют объекты точнее.
После запуска скрипта нейросеть определит объекты на изображении и вернёт их координаты и классы (например, "person", "car", "bus", "traffic light").
Итак, после выполнения данного скрипта видим результат:
Итак, после выполнения данного скрипта видим результат:
Кроме того, для дальнейшей обработки данные об объектах, обнаруженных на изображении, сохраняются в текстовый файл в следующем формате:
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 — впереди ещё много интересных статей из этой серии. Учитесь, развивайтесь и становитесь профессионалами!