Yolo Vision Shenzhen
Шэньчжэнь
Присоединиться сейчас

Практическая работа с YOLO

Абирами Вина

4 мин чтения

5 апреля 2024 г.

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

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

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

Заглянуть в YOLO

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

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

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

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

Пример результатов YOLO.

Преимущества выбора YOLO

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

Вот некоторые другие преимущества использования YOLO:

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

Области применения YOLO

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

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

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

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

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

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

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

Помимо обнаружения объектов, YOLO может определять их состояние благодаря функции "подсказать, а detect обнаружить". Например, в сельскохозяйственной робототехнике ее можно использовать для определения спелых и недозрелых фруктов, запрограммировав робота на их detect .

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

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

Еще одно применение - обнаружение объектов с нулевого снимка в самоуправляемых автомобилях. Возможности YOLO по обнаружению объектов с нулевого снимка могут улучшить способность автономного автомобиля detect и classify объекты на дороге, такие как пешеходы, дорожные знаки и другие транспортные средства, в режиме реального времени. Это поможет detect препятствия и предотвратить аварии для более безопасного движения. 

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

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

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

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

Все приложения уникальны и показывают, насколько широко можно использовать YOLO. Далее давайте познакомимся с YOLO и рассмотрим пример кодирования.

Разбор кода

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

С помощью YOLO вы сможете определить различные части автомобиля на изображении менее чем за 5 минут. Вы можете расширить этот код, чтобы попробовать различные приложения с использованием YOLO! Чтобы начать, нам нужно установить пакетUltralytics с помощью pip, как показано ниже.

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

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

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

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

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

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

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

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

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

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

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

Вот немного информации об этом:

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

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

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

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

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

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

Начать бесплатно