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

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

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

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

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

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

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






