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

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

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

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

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






