Как попробовать CLIP: классификатор изображений с нулевым снимком OpenAI

Опубликовано: 12/01/2021 Время на прочтение: 5 минут

Ранее на этой неделе OpenAI сбросил бомбу на мир компьютерного зрения: две новые новаторские модели, которые намекают на то, что произойдет, когда массивные трансформаторные модели GPT3-esque вторгнутся в область зрения. В то время как DALL-E (модель, которая может генерировать изображения из текстовых подсказок) привлекла большую часть внимания на этой неделе, этот пост фокусируется на CLIP: a zero-shot classifier, который, возможно, еще более последователен.

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

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

Введите клип OpenAI

Недавнее введение клипа (Контрастивной языковой подготовки к изображению) разрушило эту парадигму. Это модель нулевого выстрела, то есть она может идентифицировать огромный спектр вещей, которые никогда раньше не видела.

Клип-это как лучший автор субтитров ИИ. Он способен сказать, что находится на изображении из 32 768 выборочных подписей. Кредит изображения: OpenAI

В традиционных классификаторах значение меток игнорируется (на самом деле они часто просто отбрасываются и заменяются целыми числами внутри). Напротив, CLIP создает кодировку своих классов и предварительно обучается на более чем 400 миллионах пар текст-изображение. Это позволяет ему использовать способность трансформаторных моделей извлекать семантический смысл из текста, чтобы сделать классификацию изображений из коробки без тонкой настройки на пользовательские данные.

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

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

Ресурсы в этом учебнике:

Набор данных классификации общественных цветов

  • Клип бенчмаркинг Colab notebook
  • РЕПО клипа
  • Соответствующий YouTube

Сборка Вашего Набора Данных

Чтобы опробовать CLIP, вам нужно будет принести набор данных изображений, которые вы хотите классифицировать, разбить на классы, которые вы хотели бы видеть.

Если у вас еще нет набора данных и вы хотите просто опробовать новую технологию, взгляните на общедоступные наборы данных компьютерного зрения Roboflow.

В этом посте мы будем проводить бенчмаркинг клипа по набору данных классификации общественных цветов. Если вы используете свои собственные данные, то загрузить их в Roboflow легко и бесплатно (до 1000 изображений), а затем вы можете следовать тому же потоку в этом блоге.

Как только вы соберете свой набор данных, он попадет в блокнот CLIP benchmarking Colab.

Пример набора данных классификации цветов, используемого в этом посте

Установка зависимостей клипов

Чтобы попробовать CLIP out на ваших собственных данных, сделайте копию ноутбука на вашем диске и убедитесь, что в разделе Runtime выбран графический процессор (Google Colab предоставит вам бесплатный графический процессор для использования). Затем мы делаем несколько установок вместе с клонированием РЕПО клипа.

Загрузка вашего набора данных в Colab

Следующий шаг-загрузить ваш классификационный набор данных в Colab.

Загрузка классификационных данных в записную книжку

Если вы создали набор данных в Roboflow,это достигается нажатием кнопки Generate, а затем загрузкой в формате классификации клипов OpenAI. Это поместит все ваши тестовые изображения в папку под названием test с отдельными подкаталогами изображений для каждого класса в вашем наборе данных и даст вам _tokenization.txt файл, который позволяет вам экспериментировать с «быстрым проектированием», которое может резко улучшить или ухудшить производительность модели.



прокрутка вверх