Зелёная проверка
Ссылка копируется в буфер обмена

Приступая к практическим занятиям с YOLO-World

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

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

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

Загляни в YOLO-World

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

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

  • Детектор, основанный на Ultralytics YOLOv8 Модель обнаружения объектов для анализа визуального содержимого изображения
  • Кодировщик текста, предварительно обученный OpenAI's 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- Мир

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

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

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

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

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

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

YOLO-Модели мира позволяют роботам взаимодействовать с незнакомым окружением. Не будучи обученными конкретным объектам, которые могут находиться в комнате, они все равно могут определить, какие предметы там присутствуют. Допустим, робот входит в комнату, в которой никогда раньше не был. С помощью модели 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, как показано ниже.

# Install ultralytics package
pip install ultralytics

Для получения дополнительных инструкций и лучших практик, связанных с процессом установки, ознакомься с нашим руководством по установкеUltralytics . Во время установки необходимых пакетов для YOLOv8, если у тебя возникнут какие-либо трудности, посмотри наше руководство по общим проблемам, чтобы найти решения и советы.

После того как ты установил нужный пакет, мы можем скачать из интернета изображение, на котором будем запускать наши умозаключения. Мы будем использовать изображение, представленное ниже.

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

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

# Import YOLOWorld class from ultralytics module
from ultralytics import YOLOWorld

# Initialize the model with pre-trained weights
model = YOLOWorld('yolov8s-world')

# Set the classes you'd like to find in your image
model.set_classes(["car", "wheel", "car door", "car mirror", "license plate"])

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

# Run object detection for your custom classes on your image
results = model.predict('path_to_your_image.jpg', max_det=100, iou=0.01, conf=0.01)

# Save the results
results[0].save(filename='result.jpg')

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

Наш выходной образ.

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

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

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

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

Вот некоторые сведения об этом:

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

Пределы бесконечны

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

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

Логотип FacebookЛоготип ТвиттераЛоготип LinkedInСимвол копирования-ссылки

Читайте больше в этой категории

Давай вместе построим будущее
искусственного интеллекта!

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