Ultralytics YOLO27: Вступи в список ожидания.
Лицензия YOLO
Ultralytics YOLO

Пробуем YOLO-World на практике

Узнай о YOLO-World — модели обнаружения объектов с открытым словарём, работающей в реальном времени и находящей объекты по текстовым запросам, а также о её применении и простом примере кода.

Абирами ВинаAbirami Vina7 мин. чтения
Узнай о YOLO-World — модели обнаружения объектов с открытым словарём, работающей в реальном времени и находящей объекты по текстовым запросам, а также о её применении и простом примере кода.

В проектах компьютерного зрения часто приходится тратить много времени на разметку данных и обучение моделей обнаружения объектов. Но вскоре это может измениться. 31 января 2024 года лаборатория ИИ Tencent выпустила YOLO-World — модель обнаружения объектов в реальном времени с открытым словарём. YOLO-World — это модель обнаружения без примеров, то есть ты можешь запускать инференс для обнаружения объектов на изображениях без предварительного обучения модели.

Модели с обучением без примеров способны изменить наш подход к применению компьютерного зрения. В этой статье мы разберём, как работает YOLO-World, расскажем о возможных сценариях применения и приведём практический пример кода, с которого ты сможешь начать.

Знакомство с YOLO-World#

Передай модели YOLO-World изображение и текстовый запрос с описанием нужных объектов. Например, если на фотографии нужно найти «человека в красной рубашке», YOLO-World получит этот запрос и начнёт обработку.

Уникальная архитектура модели объединяет три основных компонента:

  • Детектор на основе модели обнаружения объектов Ultralytics YOLOv8, который анализирует визуальное содержимое изображения.
  • Текстовый энкодер, предварительно обученный с помощью CLIP от OpenAI и специально разработанный для понимания твоего текстового запроса.
  • Сеть Re-parameterizable Vision-Language Path Aggregation Network (RepVL-PAN), которая объединяет обработанные данные изображений и текстовые данные.

Детектор YOLO сканирует входное изображение и определяет возможные объекты. Текстовый энкодер преобразует описание в формат, понятный модели. Затем эти два потока информации объединяются с помощью RepVL-PAN посредством многоуровневого межмодального слияния. Это позволяет YOLO-World точно обнаруживать и локализовать на изображении объекты, описанные в запросе.

Пример результатов работы YOLO-World

Пример результатов работы YOLO-World.

Преимущества YOLO-World#

Одно из главных преимуществ YOLO-World — модель не нужно обучать для конкретного класса. Она уже обучилась на парах изображений и текстов, поэтому умеет находить объекты по описаниям. Тебе не придётся часами собирать и размечать данные, обучать модель на дорогих GPU и выполнять другие подобные задачи.

Вот ещё несколько преимуществ YOLO-World:

  • Работа в реальном времени — YOLO-World, как и исходная архитектура YOLO, поддерживает обработку в реальном времени. Она идеально подходит для задач, требующих мгновенного обнаружения объектов, например для автономных транспортных средств и систем видеонаблюдения.
  • Сегментация экземпляров — оригинальная версия YOLO-World включает варианты с сегментацией; в пакете Ultralytics YOLO-World выполняет обнаружение, а YOLOE добавляет сегментацию экземпляров с открытым словарём.
  • Эффективность — YOLO-World сочетает высокую точность с вычислительной эффективностью, что делает её практичным решением для реальных задач. Упрощённая архитектура обеспечивает быстрое обнаружение объектов без чрезмерной нагрузки на вычислительные ресурсы.

Применение YOLO-World#

Модели YOLO-World можно использовать для самых разных задач. Рассмотрим некоторые из них.

Контроль качества на производстве#

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

Модели YOLO-World — значительный шаг вперёд в этой области. Благодаря возможностям обнаружения без примеров они находят дефекты продукции, даже если не обучались решать конкретно эту задачу. Например, на фабрике по производству бутылок для воды YOLO-World может отличить бутылку с правильно закрученной крышкой от бутылки с отсутствующей или бракованной крышкой.

Камера машинного зрения над линией розлива; во вставке увеличен фрагмент, где отмечена бутылка с неплотно закрытой крышкой

Пример проверки крышек на бутылках.

Робототехника#

Модели YOLO-World помогают роботам взаимодействовать с незнакомой средой. Даже без обучения на конкретных объектах, которые могут находиться в помещении, они способны определять, какие объекты там есть. Например, робот попадает в незнакомую комнату. Модель YOLO-World всё равно распознает и определит такие объекты, как стулья, столы или лампы, хотя её специально не обучали на этих предметах.

Помимо обнаружения объектов, YOLO-World также может определять их состояние благодаря функции «сначала запрос, затем обнаружение». Например, в сельскохозяйственной робототехнике модель можно использовать для обнаружения спелых и неспелых фруктов, задав соответствующую задачу роботу.

ИИ в автомобильной промышленности#

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

Ещё один вариант применения — обнаружение объектов без примеров в беспилотных автомобилях. Благодаря этой возможности YOLO-World может повысить способность автономного транспортного средства в реальном времени обнаруживать и классифицировать объекты на дороге, например пешеходов, дорожные знаки и другие автомобили. Это помогает выявлять препятствия и предотвращать аварии, делая поездки безопаснее.

Пример обнаружения объектов на дороге

Пример обнаружения объектов на дороге.

Управление запасами в розничных магазинах#

Распознавание объектов на полках в розничных магазинах важно для отслеживания запасов, поддержания наличия товаров и автоматизации процессов. Обнаружение объектов с открытым словарём в Ultralytics YOLO-World также полезно для управления запасами.

Например, при управлении запасами YOLO-World может быстро обнаруживать товары на полке и классифицировать их, например различать энергетические напитки разных брендов. Розничные магазины могут точнее учитывать товары, эффективно управлять запасами и оптимизировать работу цепочек поставок.

Все эти сценарии уникальны и показывают, насколько широко можно применять YOLO-World. Теперь давай перейдём к практике и рассмотрим пример кода для YOLO-World.

Разбор примера кода#

Как мы уже упоминали, YOLO-World можно использовать для обнаружения разных деталей автомобиля при техническом обслуживании. Приложение компьютерного зрения для выявления необходимости ремонта должно сфотографировать автомобиль, определить его детали, проверить каждую деталь на наличие повреждений и рекомендовать ремонт. В каждом компоненте такой системы использовались бы разные методы и подходы ИИ. В этом разборе кода сосредоточимся на обнаружении деталей автомобиля.

С помощью YOLO-World ты можешь обнаружить разные детали автомобиля на изображении менее чем за 5 минут. Ты также можешь доработать этот код и опробовать другие сценарии применения YOLO-World. Для начала установим пакет Ultralytics с помощью pip, как показано ниже.

pip install ultralytics

Подробные инструкции и рекомендации по установке смотри в руководстве Установка Ultralytics. Если при установке необходимых пакетов для YOLOv8 возникнут трудности, загляни в руководство Распространённые проблемы, чтобы найти решения и полезные советы.

После установки нужного пакета можно скачать из Интернета изображение, на котором мы выполним инференс. Используем изображение ниже.

Белый седан, припаркованный на городской улице; входное изображение для примера YOLO-World

Наше входное изображение.

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

Затем мы используем метод predict, передавая путь к изображению и параметры: максимальное число обнаружений, пороги пересечения над объединением (IoU) и уверенности (conf). После этого запускаем инференс на изображении. В завершение обнаруженные объекты сохраняются в файл с именем result.jpg.

from ultralytics import YOLOWorld

# Инициализируем модель YOLO-World
model = YOLOWorld("yolov8s-worldv2.pt")

# Задаём пользовательские классы для обнаружения
model.set_classes(["car", "wheel", "car door", "car mirror", "license plate"])

# Запускаем инференс, задав максимальное число обнаружений и пороги IoU и уверенности
results = model.predict("path/to/image.jpg", max_det=100, iou=0.5, conf=0.25)

# Сохраняем результат с аннотациями
results[0].save("result.jpg")

Следующее выходное изображение будет сохранено в твоих файлах.

Результат работы YOLO-World на изображении белого седана: рамки охватывают автомобиль, его колёса, боковое зеркало и номерной знак

Наше выходное изображение.

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

Прочитай документацию по YOLO-World, чтобы узнать, как сохранить модель с пользовательскими классами и использовать её в дальнейшем без повторного ввода этих классов.

Ты заметил, что двери автомобиля не обнаружились?#

Если ещё раз посмотреть на выходное изображение, можно заметить, что пользовательский класс «дверь автомобиля» не обнаружен. Несмотря на впечатляющие результаты, у YOLO-World есть определённые ограничения. Чтобы справиться с ними и эффективно использовать модель YOLO-World, важно правильно формулировать текстовые запросы.

Вот несколько советов:

  • Для точных предсказаний YOLO-World может не требоваться высокий порог уверенности, поэтому его снижение может повысить частоту обнаружения объектов.
  • Добавь классы, которые тебя не интересуют. Это поможет улучшить обнаружение основных объектов за счёт сокращения числа ложных срабатываний для второстепенных объектов.
  • Сначала обнаруживай крупные объекты, а затем переходи к мелким деталям — это может повысить точность обнаружения.
  • Указывай цвета в названиях классов, чтобы обнаруживать объекты по цветовым признакам.
  • Описание размеров объектов в запросах также может помочь YOLO-World точнее определять нужные объекты.
  • Методы постобработки, например фильтрация предсказаний по размеру или настройка порогов уверенности для каждого класса, могут дополнительно повысить качество обнаружения объектов.

Возможности безграничны#

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

Загляни в наш репозиторий GitHub, чтобы узнать больше о нашем вкладе в компьютерное зрение и ИИ. Если тебе интересно, как ИИ меняет такие отрасли, как технологии здравоохранения, посмотри страницы с нашими решениями. YOLO-World открывает множество новых возможностей для ИИ в области компьютерного зрения.

Автор

Abirami Vina
Abirami Vina

Создатель контента · Ultralytics

Начав карьеру инженером по компьютерному зрению, Абирами Вина заложила прочную основу в области ИИ для компьютерного зрения и машинного обучения. Она создает контент для Ultralytics и является основательницей и главным автором Scribe of AI, где готовит качественные технические материалы для компаний, работающих в сфере ИИ. Стремясь сделать ИИ понятным и увлекательным, она помогает связать передовые технологии с их практическим применением.

Комментарии

Задай вопрос, поделись результатами или помоги кому-нибудь.

Изучи решения

Компьютерное зрение в спорте

Компьютерное зрение в спорте

Узнай, как Ultralytics YOLO обеспечивает компьютерное зрение в спорте: отслеживание игроков и мяча, аналитика результатов, полезные выводы для тренеров и реабилитация спортсменов.
Подробнее
Компьютерное зрение для аэросъёмки

Компьютерное зрение для аэросъёмки

Превращай снимки с дронов и аэрофотоснимки в полезные данные в реальном времени для сельского хозяйства, аквакультуры, охраны природы и геопространственного анализа с Ultralytics YOLO.
Подробнее
Компьютерное зрение в аэрокосмической отрасли

Компьютерное зрение в аэрокосмической отрасли

Применяй компьютерное зрение в аэрокосмической отрасли с Ultralytics YOLO: для осмотра самолётов, обнаружения посторонних предметов на взлётно-посадочных полосах, наземного обслуживания аэропортов и выявления дефектов композитных материалов.
Подробнее
Компьютерное зрение в сфере безопасности

Компьютерное зрение в сфере безопасности

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

Компьютерное зрение в робототехнике

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

Компьютерное зрение в логистике

Оптимизируй логистику с моделями Ultralytics YOLO. Визуальный AI обеспечивает проверку посылок, сортировку, отслеживание транспорта и мониторинг безопасности на складе в реальном времени.
Подробнее
Компьютерное зрение в розничной торговле

Компьютерное зрение в розничной торговле

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

Компьютерное зрение в здравоохранении

Создавай решения для здравоохранения с моделями Ultralytics YOLO. Визуальный AI в здравоохранении ускоряет медицинскую визуализацию, улучшает диагностику и мониторинг пациентов.
Подробнее
Компьютерное зрение в производстве

Компьютерное зрение в производстве

Оптимизируй производство с моделями Ultralytics YOLO. Компьютерное зрение на базе ИИ обеспечивает контроль качества, обнаружение дефектов, контроль использования СИЗ и автоматизацию сборочных линий.
Подробнее
Компьютерное зрение в автомобильной отрасли

Компьютерное зрение в автомобильной отрасли

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

Компьютерное зрение в сельском хозяйстве

Внедряй ИИ для компьютерного зрения в умное сельское хозяйство с моделями Ultralytics YOLO. Используй их для мониторинга посевов, отслеживания скота и точного земледелия, чтобы повысить урожайность и эффективность.
Подробнее

Давай вместе строить будущее ИИ!

Начни свой путь в будущее машинного обучения