| Имя | Связь |
|---|---|
| Извлечение и классификация модных функций | |
| Учебное пособие - оценка FashionClip с Reclist |
Обновление (10/03/23): мы обновили модель! Мы обнаружили, что контрольная точка Laion/Clip-Vit-B-32-LAION2B-S34B-B79K (спасибо Bin!) Таким образом, мы настраиваем более новую (и лучшую!) Версию FashionClip (дальнейшего модного клипа 2.0), сохраняя при этом архитектуру одинаковой. Мы постулируем, что получение Perofrmance, предоставленные laion/CLIP-ViT-B-32-laion2B-s34B-b79K связаны с увеличением данных обучения (5-кратные данные COLIP). Наш тезис, однако, остается прежним-тонкая настройка laion/CLIP в нашем модном наборе данных улучшил нулевой выстрел в наших критериях. См. Таблицу ниже, сравнивающую взвешенную оценку Macro F1 по моделям. `
| Модель | Фмнист | Кагл | ГЛУБОКИЙ |
|---|---|---|---|
| Openai Clip | 0,66 | 0,63 | 0,45 |
| FashionClip | 0,74 | 0,67 | 0,48 |
| Laion Clip | 0,78 | 0,71 | 0,58 |
| FashionClip 2.0 | 0,83 | 0,73 | 0,62 |
Сейчас мы обнимаем лицо! Модель доступна здесь.
Сейчас мы находимся в научных отчетах природы!
@Article{Chia2022,
title="Contrastive language and vision learning of general fashion concepts",
author="Chia, Patrick John
and Attanasio, Giuseppe
and Bianchi, Federico
and Terragni, Silvia
and Magalh{~a}es, Ana Rita
and Goncalves, Diogo
and Greco, Ciro
and Tagliabue, Jacopo",
journal="Scientific Reports",
year="2022",
month="Nov",
day="08",
volume="12",
number="1",
pages="18958",
abstract="The steady rise of online shopping goes hand in hand with the development of increasingly complex ML and NLP models. While most use cases are cast as specialized supervised learning problems, we argue that practitioners would greatly benefit from general and transferable representations of products. In this work, we build on recent developments in contrastive learning to train FashionCLIP, a CLIP-like model adapted for the fashion industry. We demonstrate the effectiveness of the representations learned by FashionCLIP with extensive tests across a variety of tasks, datasets and generalization probes. We argue that adaptations of large pre-trained models such as CLIP offer new perspectives in terms of scalability and sustainability for certain types of players in the industry. Finally, we detail the costs and environmental impact of training, and release the model weights and code as open source contribution to the community.",
issn="2045-2322",
doi="10.1038/s41598-022-23052-9",
url="https://doi.org/10.1038/s41598-022-23052-9"
}
Мы ждем официального выпуска набора данных Farbetch, на котором будут обнаружены тонко настроенные веса модели, предварительно обработанные изображения и текстовые векторы. Между тем, в настоящее время мы используем реализацию CLIP обнимающего лица и можем использовать веса модели от Openai, следуя стандартному соглашению об именах Hugginface (то есть fclip = FashionCLIP('<username>/<repo_name>', ... ) ). Мы также поддерживаем частные репозитории (то есть fclip = FashionCLIP('<username>/<repo_name>', auth_token=<AUTH_TOKEN>, ... ) ).
Смотрите ниже для получения более подробной информации!
FashionCLIP -это клип, похожая на клип, настроенная для индустрии моды. Мы отличная настройка CLIP (Radford et al., 2021 на более чем 700K <изображение, текст> Пары из набора данных Farfetch 1 .
Мы оцениваем FashionClip, применяя его для открытия проблем в отрасли, таких как поиск, классификация и анализ моды. Наши результаты демонстрируют, что тонкая настройка помогает захватить концепции, специфичные для домена, и обобщать их в сценариях с нулевым выстрелом. Мы также дополняем количественные тесты качественным анализом и предлагаем предварительное представление о том, как концепции, основанные на визуальном пространстве, открывают лингвистическое обобщение. Пожалуйста, смотрите нашу газету для получения более подробной информации.
В этом репозитории вы найдете API для взаимодействия с FashionCLIP и интерактивной демонстрацией, созданной с использованием Streamlit (скоро!), Который демонстрирует возможности FashionCLIP .
Нужен быстрый способ генерировать вторжения? Вы хотите проверить результаты поиска?
Прежде всего, вы сможете быстро установить это с помощью PIP.
$ pip install fashion-clip
Если у вас есть списки текстов и путей изображения, очень легко генерировать встраивание:
from fashion_clip . fashion_clip import FashionCLIP
fclip = FashionCLIP ( 'fashion-clip' )
# we create image embeddings and text embeddings
image_embeddings = fclip . encode_images ( images , batch_size = 32 )
text_embeddings = fclip . encode_text ( texts , batch_size = 32 )
# we normalize the embeddings to unit norm (so that we can use dot product instead of cosine similarity to do comparisons)
image_embeddings = image_embeddings / np . linalg . norm ( image_embeddings , ord = 2 , axis = - 1 , keepdims = True )
text_embeddings = text_embeddings / np . linalg . norm ( text_embeddings , ord = 2 , axis = - 1 , keepdims = True )Используйте наш ноутбук Colab , чтобы увидеть больше функциональных возможностей.
from PIL import Image
import requests
from transformers import CLIPProcessor , CLIPModel
model = CLIPModel . from_pretrained ( "patrickjohncyh/fashion-clip" )
processor = CLIPProcessor . from_pretrained ( "patrickjohncyh/fashion-clip" )
image = Image . open ( "images/image1.jpg" )
inputs = processor ( text = [ "a photo of a red shoe" , "a photo of a black shoe" ],
images = image , return_tensors = "pt" , padding = True )
outputs = model ( ** inputs )
logits_per_image = outputs . logits_per_image # this is the image-text similarity score
probs = logits_per_image . softmax ( dim = 1 )
print ( probs )
image . resize (( 224 , 224 )) Из Project Root установите пакет fashion-clip на локально
$ pip install -e .
Существует две основные абстракции, чтобы облегчить использование FashionCLIP .
Во -первых, класс FCLIPDataset , который инкапсулирует информацию, связанную с данным каталогом, и раскрывает информацию, критическую для FashionCLIP . Кроме того, он предоставляет вспомогательные функции для быстрого исследования и визуализации данных. Основные параметры инициализации
name: str -> Name of dataset
image_source_path: str -> absolute path to images (can be local or s3)
image_source_type: str -> type of source (i.e. local or s3)
catalog: List[dict] = None -> list of dicts containing at miniumum the keys ['id', 'image', 'caption']
Для простоты использования API также обеспечивает доступ к набору данных ( после его официального выпуска ), используемый в статье для обучения FahionCLIP , просто указав соответствующее имя каталога.
from fashion_clip import FCLIPDataset
dataset = FCLIPDataset(name='FF',
image_source_path='path/to/images',
image_source_type='local')
from fashion_clip import FCLIPDataset
my_catalog = [{'id': 1, 'image': 'x.jpg', 'caption': 'image x'}]
dataset = FCLIPDataset(name='my_dataset',
image_source_path='path/to/images',
image_source_type='local',
catalog=my_catalog)
Вторая абстракция-это класс FashionCLIP , который принимает название модели обнимающего лица и FCLIPDataset , и обеспечивает удобные функции для выполнения таких задач, как многомодальный поиск, нулевая классификация и локализация. Параметры инициализации для FashionCLIP следующие:
model_name: str -> Name of model OR path to local model
dataset: FCLIPDataset -> Dataset,
normalize: bool -> option to convert embeddings to unit norm
approx: bool -> option to use approximate nearest neighbors
Подобно абстракции FCLIPDataset , мы включили предварительно обученную модель FashionCLIP из бумаги, размещенную здесь. Если будет получена неизвестная комбинация набора данных и модели, векторы изображения и подписи будут генерироваться при создании объекта, в противном случае предварительно вычитанные векторы/встраивания будут извлечены из S3.
from fashion_clip import FCLIPDataset, FashionCLIP
dataset = FCLIPDataset(name='FF',
image_source_path='path/to/images',
image_source_type='local')
fclip = FashionCLIP('fasihon-clip', ff_dataset)
Для получения дополнительной информации о том, как использовать пакет, см. В сопроводительном ноутбуке!
В ожидании официального релиза. ↩