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

Проекты в области компьютерного зрения часто требуют много времени на разметку данных и обучение моделей обнаружения объектов. Но вскоре это может остаться в прошлом. AI Lab компании Tencent выпустила YOLO-World — модель обнаружения объектов в реальном времени с открытым словарём — 31 января 2024 года. YOLO-World — это модель с обучением по нулевому образцу, то есть ты можешь выполнять инференс обнаружения объектов на изображениях без предварительного обучения модели.
Модели с обучением по нулевому образцу могут изменить наш подход к приложениям компьютерного зрения. В этой статье мы разберёмся, как работает YOLO-World, рассмотрим варианты его применения и приведём практический пример кода, который поможет тебе начать работу.
Краткий обзор YOLO-World#
Ты можешь передать в модель YOLO-World изображение и текстовый запрос с описанием объектов, которые нужно найти. Например, если ты хочешь найти на фотографии «человека в красной рубашке», YOLO-World принимает эти данные и приступает к работе.
Уникальная архитектура модели объединяет три основных элемента:
- Детектор на основе модели Ultralytics YOLOv8 для обнаружения объектов, который анализирует визуальное содержимое изображения.
- Текстовый энкодер, предварительно обученный с помощью CLIP от OpenAI и специально предназначенный для понимания твоего текстового запроса.
- Сеть Vision-Language Path Aggregation Network (RepVL-PAN), которая объединяет обработанные данные изображения с текстовыми данными.
Детектор YOLO сканирует входное изображение, чтобы найти потенциальные объекты. Текстовый энкодер преобразует твоё описание в формат, понятный модели. Затем эти два информационных потока объединяются через RepVL-PAN с помощью многоуровневого слияния модальностей. Это позволяет YOLO-World точно обнаруживать и локализовать на изображении объекты, описанные в твоём запросе.

Пример результатов работы YOLO-World.
Преимущества выбора YOLO-World#
Одно из главных преимуществ YOLO-World заключается в том, что тебе не нужно обучать модель для конкретного класса. Она уже обучена на парах изображений и текстов, поэтому умеет находить объекты по описаниям. Ты можешь сэкономить часы на сборе и разметке данных, обучении на дорогих GPU и других подобных задачах.
Вот ещё несколько преимуществ YOLO-World:
- Производительность в реальном времени — YOLO-World поддерживает работу в реальном времени, как и исходная архитектура YOLO. Она идеально подходит для приложений, требующих немедленного обнаружения объектов, например автономных транспортных средств и систем видеонаблюдения.
- Сегментация экземпляров — YOLO-World может точно обводить и разделять объекты на изображениях, даже если эти объекты не использовались при обучении модели.
- Эффективность — YOLO-World сочетает высокую точность с вычислительной эффективностью, что делает её практичным решением для реальных приложений. Оптимизированная архитектура позволяет быстро обнаруживать объекты без чрезмерной нагрузки на вычислительные ресурсы.
Применение YOLO-World#
Модели YOLO-World можно использовать в самых разных приложениях. Давай рассмотрим некоторые из них.
Контроль качества на производстве#
Визуальная проверка изделий, изготовленных на конвейере, на наличие дефектов выполняется до их упаковки. Обнаружением дефектов часто занимаются вручную, что требует времени и может приводить к ошибкам. Такие ошибки могут повлечь высокие затраты, необходимость ремонта или отзыва продукции. Чтобы решить эту проблему, были разработаны специальные камеры машинного зрения и системы AI для выполнения таких проверок.
Модели YOLO-World значительно расширяют возможности в этой области. Благодаря обучению по нулевому образцу они могут находить дефекты в изделиях, даже если не обучались на конкретной проблеме. Например, на фабрике по производству бутылок для воды YOLO-World может легко отличить бутылку с правильно установленной крышкой от бутылки с отсутствующей или неисправной крышкой.

Пример проверки крышки бутылки.
Робототехника#
Модели YOLO-World позволяют роботам взаимодействовать с незнакомой средой. Даже без обучения на конкретных объектах, которые могут находиться в комнате, они способны определить, какие объекты присутствуют. Например, робот входит в комнату, где раньше не был. С моделью YOLO-World он всё равно может распознавать и идентифицировать такие объекты, как стулья, столы или лампы, даже если специально не обучался на них.
Помимо обнаружения объектов, YOLO-World может также определять их состояние благодаря функции «сначала запрос — затем обнаружение». Например, в сельскохозяйственной робототехнике её можно использовать для различения спелых и неспелых фруктов, задав роботу соответствующую задачу обнаружения.
AI в автомобильной промышленности#
Автомобильная промышленность включает множество подвижных компонентов, и YOLO-World можно использовать для решения различных задач, связанных с автомобилями. Например, при техническом обслуживании автомобилей способность YOLO-World распознавать широкий спектр объектов без ручной разметки или длительного предварительного обучения оказывается чрезвычайно полезной. YOLO-World можно применять для выявления деталей автомобиля, требующих замены. Модель даже может автоматизировать такие задачи, как контроль качества, обнаруживая дефекты или отсутствующие детали в новых автомобилях.
Ещё один вариант применения — обнаружение объектов с обучением по нулевому образцу в беспилотных автомобилях. Возможности YOLO-World по обнаружению с обучением по нулевому образцу могут повысить способность автономного транспортного средства обнаруживать и классифицировать объекты на дороге, например пешеходов, дорожные знаки и другие автомобили, в реальном времени. Это помогает выявлять препятствия и предотвращать аварии, делая поездки безопаснее.

Пример обнаружения объектов на дороге.
Управление запасами в розничных магазинах#
Идентификация объектов на полках розничных магазинов — важная часть отслеживания запасов, поддержания их уровня и автоматизации процессов. Способность Ultralytics YOLO-World распознавать широкий спектр объектов без ручной разметки или длительного предварительного обучения чрезвычайно полезна для управления запасами.
Например, в управлении запасами YOLO-World может быстро находить и классифицировать товары на полке, например энергетические напитки разных брендов. Розничные магазины могут поддерживать точный учёт запасов, эффективно управлять их уровнями и оптимизировать работу цепочек поставок.
Все эти варианты применения уникальны и показывают, насколько широко можно использовать YOLO-World. Теперь давай перейдём к практической работе с YOLO-World и рассмотрим пример кода.
Разбор кода#
Как мы уже упоминали, YOLO-World можно использовать для обнаружения различных деталей автомобиля при техническом обслуживании. Приложение компьютерного зрения, выявляющее необходимость ремонта, должно сфотографировать автомобиль, определить его детали, проверить каждую деталь на наличие повреждений и рекомендовать ремонт. Для каждого этапа этой системы применялись бы разные методы и подходы AI. В этом разборе кода сосредоточимся на обнаружении деталей автомобиля.
С помощью YOLO-World ты можешь определить различные детали автомобиля на изображении менее чем за 5 минут. Ты также можешь расширить этот код и попробовать другие варианты применения YOLO-World. Для начала установим пакет Ultralytics с помощью pip, как показано ниже.
Дополнительные инструкции и рекомендации по процессу установки смотри в нашем руководстве по установке Ultralytics. Если при установке необходимых пакетов для YOLOv8 у тебя возникнут трудности, загляни в наше руководство по распространённым проблемам, где приведены решения и советы.
После установки нужного пакета мы можем скачать изображение из Интернета, чтобы выполнить на нём инференс. Будем использовать изображение ниже.

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

Наше выходное изображение.
Если ты хочешь посмотреть, на что способен YOLO-World без написания кода, перейди на страницу демонстрации YOLO-World, загрузи входное изображение и укажи пользовательские классы.
Прочитай нашу страницу документации по YOLO-World, чтобы узнать, как сохранить модель с пользовательскими классами и впоследствии использовать её напрямую, не вводя пользовательские классы повторно.
Ты заметил, что двери автомобиля не были обнаружены?#
Если снова посмотреть на выходное изображение, станет заметно, что пользовательский класс «дверь автомобиля» не был обнаружен. Несмотря на значительные достижения, YOLO-World имеет определённые ограничения. Чтобы справиться с ними и эффективно использовать модель YOLO-World, важно выбирать правильные типы текстовых запросов.
Вот несколько рекомендаций:
- Для точных предсказаний YOLO-World может не требоваться высокая уверенность, поэтому снижение порогов уверенности способно повысить частоту обнаружений.
- Добавляй классы, которые тебя не интересуют. Это поможет улучшить основное обнаружение объектов, сократив количество ложных срабатываний для второстепенных объектов.
- Сначала обнаруживай крупные объекты, а затем переходи к небольшим деталям — это может повысить точность обнаружения.
- Указывай цвета в названиях классов, чтобы обнаруживать объекты по цветовым признакам.
- Описание размеров объектов в запросах также может помочь YOLO-World точнее идентифицировать конкретные объекты.
- Методы постобработки, такие как фильтрация предсказаний по размеру или настройка уровней уверенности для каждого класса, могут дополнительно улучшить результаты обнаружения объектов.
Предела возможностям нет#
В целом модели YOLO-World благодаря продвинутым возможностям обнаружения объектов можно превратить в мощный инструмент. Они обеспечивают высокую эффективность и точность, а также помогают автоматизировать различные задачи в самых разных приложениях, например определение деталей автомобиля, которое мы рассмотрели на практическом примере.
Изучи наш репозиторий на GitHub, чтобы узнать больше о нашем вкладе в компьютерное зрение и AI. Если тебе интересно, как AI меняет такие отрасли, как технологии в сфере здравоохранения, ознакомься со страницами наших решений. Возможности инноваций вроде YOLO-World, кажется, безграничны!









