Ultralytics YOLO27: Вступи в список ожидания.
Лицензия YOLO
Назад к глоссарию Ultralytics

CLIP (Contrastive Language-Image Pre-training)

CLIP — модель OpenAI, которая помещает изображения и текст в общее пространство представлений, позволяя классифицировать изображения по меткам на обычном языке. Разбираем обучение и работу в режиме zero-shot.

CLIP (контрастивное предварительное обучение на парах «изображение — текст») — модель от OpenAI, которая учится сопоставлять изображения с их текстовыми описаниями. Она объединяет кодировщик изображений с кодировщиком текста и обучает оба кодировщика так, чтобы изображение и подпись к нему кодировались векторами, близкими друг к другу, в общем пространстве эмбеддингов. Обученная на 400 миллионах пар изображений и подписей к ним, собранных в интернете, CLIP может классифицировать изображения по категориям, заданным только текстом, без размеченных примеров этих категорий; эта способность называется обучением с нулевым количеством примеров. В статье 2021 года лучшая модель достигла точности top-1 76,2% на ImageNet при классификации без размеченных примеров этих категорий, сравнявшись с исходной полностью обученной с учителем моделью ResNet-50 и не используя ни одного из 1,28 миллиона размеченных изображений, на которых обучалась ResNet-50.

Как обучается CLIP#

У CLIP два кодировщика. Кодировщик изображений — это ResNet или визуальный трансформер (ViT), а кодировщик текста — 12-слойный трансформер с 63 миллионами параметров в базовой конфигурации. Линейная проекция отображает выход каждого кодировщика в общее пространство, где длина каждого вектора нормализуется до единицы.

Обучение использует контрастивное обучение на пакетах из 32 768 пар изображений и подписей. Для пакета из N пар CLIP вычисляет косинусное сходство каждого изображения с каждой подписью, получая матрицу N×N, на диагонали которой расположены правильные пары. Функция потерь кросс-энтропии с softmax по каждой строке требует, чтобы каждое изображение выбрало свою подпись из N вариантов; вторая функция потерь по каждому столбцу требует, чтобы каждая подпись выбрала своё изображение. Обучаемый параметр температуры масштабирует сходства перед применением softmax.

Поскольку подписи представляют собой произвольный текст, CLIP учится на всём, что описывает интернет: объектах, сценах, художественных стилях, тексте на изображениях и действиях, — а не на фиксированном списке классов.

Классификация с нулевым числом примеров#

Чтобы классифицировать изображение, CLIP преобразует каждую возможную метку в короткое предложение, например «фотография собаки», преобразует изображение и выбирает метку с наибольшим косинусным сходством. Важна формулировка запроса: в статье указано, что один только шаблон «Фотография {label}.» повысил точность на ImageNet на 1,3%, а усреднение текстовых вложений 80 шаблонов добавило ещё 3,5%. Приведённый ниже конвейер Hugging Face Transformers оборачивает каждую метку в шаблон «Это фотография {}.» и запускает исходную модель ViT-B/32:

from transformers import pipeline

# Load OpenAI's CLIP ViT-B/32 for zero-shot image classification
classifier = pipeline("zero-shot-image-classification", model="openai/clip-vit-base-patch32")

# The classes are free-form text, chosen at inference time
labels = ["a city bus", "a tram", "a delivery truck", "a bicycle"]
predictions = classifier("https://ultralytics.com/images/bus.jpg", candidate_labels=labels)

# Scores are a softmax over the image's similarity to each caption
for prediction in predictions:
    print(f"{prediction['label']}: {prediction['score']:.3f}")

Скрипт выводит a city bus: 0.657, a tram: 0.341, a delivery truck: 0.001 и a bicycle: 0.000. Трамвай — ещё одно крупное пассажирское транспортное средство — получает почти всю оставшуюся вероятность, а для нового набора меток достаточно указать новый список строк.

Примеры применения в реальных условиях#

  • Семантический поиск: Коллекции изображений один раз преобразуют во вложения и сохраняют в векторной базе данных. Текстовый запрос, например «красные кроссовки на деревянном полу», преобразуется во вложение во время поиска и сопоставляется с ними, поэтому изображения находятся по содержимому без ручных тегов.
  • Генерация изображений по тексту: Stable Diffusion 1.x использует текстовые вложения CLIP ViT-L/14 для задания условий генератору изображений, а сходство CLIP широко применяется для оценки того, насколько созданное изображение соответствует запросу.
  • Обнаружение объектов с открытым словарем: модели YOLO-World от Tencent AI Lab, работающие в пакете Ultralytics, кодируют названия классов, переданные в set_classes, с помощью текстового энкодера CLIP ViT-B/32. Благодаря этому однажды обученный детектор может находить объекты по названиям «красный рюкзак» или «погрузчик». OWLv2 от Google использует предварительно обученные энкодеры изображений и текста CLIP, а таблица лидеров VLM сравнивает ее с другими детекторами с открытым словарем и VLM на реальных наборах данных для обнаружения объектов.
  • Кодировщики изображений для VLM: Многие визуально-языковые модели используют предварительно обученный кодировщик изображений CLIP. Например, LLaVA передаёт признаки CLIP ViT-L/14 языковой модели.
  • Фильтрация наборов данных: Крупные открытые наборы данных изображений и текста, например LAION-5B, оставляют только те пары из интернета, для которых сходство изображения и текста по CLIP превышает заданный порог, удаляя подписи, не описывающие изображение.
  • Классификаторы с обучением с учителем: у стандартного классификатора есть выход для каждого класса обучающей выборки, и он не может оценить класс, которого не встречал. «Классификатор» CLIP — это набор текстовых вложений, поэтому он меняется вместе с метками.
  • SigLIP: В варианте Google пакетный softmax CLIP заменён функцией потерь с сигмоидой, которая оценивает каждую пару изображения и текста независимо. Это требует меньше памяти и лучше работает с небольшими пакетами.
  • Самостоятельное контрастивное обучение: Такие методы, как SimCLR, сопоставляют два аугментированных представления одного изображения и обучаются только на изображениях. CLIP сопоставляет две модальности, связывая признаки изображения со словами.
  • Генеративные VLM: CLIP оценивает сходство изображения и текста, но не может написать подпись или ответить на вопрос. Генеративные модели объединяют языковую модель с кодировщиком изображений, часто с самим CLIP.

Ограничения#

Точность CLIP при классификации с нулевым числом примеров снижается на детализированных категориях, таких как модели самолётов или автомобилей, при подсчёте объектов и на абстрактных задачах, например оценке расстояний. Модель также перенимает смещения из подписей в интернете. Поскольку CLIP научилась читать текст на изображениях, её можно обмануть с помощью текста: в исследовании мультимодальных нейронов OpenAI яблоко с рукописной надписью «iPod» было классифицировано как iPod.

Изучи решения

Компьютерное зрение в спорте

Компьютерное зрение в спорте

Узнай, как Ultralytics YOLO обеспечивает компьютерное зрение в спорте: отслеживание игроков и мяча, аналитика результатов, полезные выводы для тренеров и реабилитация спортсменов.
Подробнее
Компьютерное зрение для аэросъёмки

Компьютерное зрение для аэросъёмки

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

Компьютерное зрение в аэрокосмической отрасли

Применяй компьютерное зрение в аэрокосмической отрасли с Ultralytics YOLO: для осмотра самолётов, обнаружения посторонних предметов на взлётно-посадочных полосах, наземного обслуживания аэропортов и выявления дефектов композитных материалов.
Подробнее
Компьютерное зрение в сфере безопасности

Компьютерное зрение в сфере безопасности

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

Компьютерное зрение в робототехнике

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

Компьютерное зрение в логистике

Оптимизируй логистику с моделями Ultralytics YOLO. Визуальный AI обеспечивает проверку посылок, сортировку, отслеживание транспорта и мониторинг безопасности на складе в реальном времени.
Подробнее
Компьютерное зрение в розничной торговле

Компьютерное зрение в розничной торговле

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

Компьютерное зрение в здравоохранении

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

Компьютерное зрение в производстве

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

Компьютерное зрение в автомобильной отрасли

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

Компьютерное зрение в сельском хозяйстве

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

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

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