| Nombre | Enlace |
|---|---|
| Extracción y clasificación de características de FashionClip | |
| Tutorial - FashionClip Evaluation with Replist |
Actualización (10/03/23): ¡Hemos actualizado el modelo! Descubrimos que Laion/Clip-VIT-B-32-LAion2B-S34B-B79k de control (¡gracias bin!) Funcionó mejor que el clip Operai original en la moda. Por lo tanto, ajustamos una versión más nueva (¡y mejor!) De FashionClip (en adelante, FashionClip 2.0), mientras mantenemos la arquitectura igual. Postulamos que las ganancias de Perofrmance brindadas por laion/CLIP-ViT-B-32-laion2B-s34B-b79K se deben al aumento de los datos de entrenamiento (5x datos de clip de OpenAI). Nuestra tesis, sin embargo, sigue siendo la misma: laion/CLIP ajuste en nuestro conjunto de datos de moda mejoró el perofrado de disparo cero en nuestros puntos de referencia. Consulte la tabla a continuación que compare la puntuación de macro F1 ponderada en los modelos. ``
| Modelo | Fmnist | Kagl | PROFUNDO |
|---|---|---|---|
| Clip de Openai | 0.66 | 0.63 | 0.45 |
| Clip de moda | 0.74 | 0.67 | 0.48 |
| Clip de laión | 0.78 | 0.71 | 0.58 |
| FashionClip 2.0 | 0.83 | 0.73 | 0.62 |
¡Ahora estamos en la cara abrazando! El modelo está disponible aquí.
¡Ahora estamos en los informes científicos de la naturaleza!
@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"
}
Estamos esperando el lanzamiento oficial del conjunto de datos Farfetch, sobre el cual se harán públicos los pesos del modelo ajustados, la imagen preprocesada y los vectores de texto. Mientras tanto, actualmente utilizamos la implementación de la cara de abrazo del CLIP y podemos usar los pesos del modelo de OpenAI siguiendo la Convención de Naming Standard Hugginface (es decir, fclip = FashionCLIP('<username>/<repo_name>', ... ) ). También apoyamos repositorios privados (es decir, fclip = FashionCLIP('<username>/<repo_name>', auth_token=<AUTH_TOKEN>, ... ) ).
¡Vea a continuación para obtener más detalles!
FashionCLIP es una modelo de clip para la industria de la moda. Hemos ajustado CLIP (Radford et al., 2021 en más de 700k <imagen, texto> pares del conjunto de datos Farfetch 1 .
Evaluamos el clip de moda aplicándolo para abrir problemas en la industria, como la recuperación, la clasificación y el análisis de la moda. Nuestros resultados demuestran que el ajuste fino ayuda a capturar conceptos específicos del dominio y los generaliza en escenarios de cero disparos. También complementamos las pruebas cuantitativas con análisis cualitativos y ofrecemos ideas preliminares sobre cómo los conceptos basados en un espacio visual desbloquean la generalización lingüística. Consulte nuestro artículo para obtener más detalles.
En este repositorio, encontrará una API para interactuar con FashionCLIP y una demostración interactiva construida con Aprille (¡Próximamente!) Que muestra las capacidades de FashionCLIP .
¿Necesita una forma rápida de generar incrustaciones? ¿Quieres probar el rendimiento de recuperación?
En primer lugar, debería poder instalar esto rápidamente con PIP.
$ pip install fashion-clip
Si tiene listas de textos y rutas de imagen, es muy fácil generar incrustaciones:
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 )Use nuestro cuaderno Colab para ver más funcionalidades.
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 )) Desde Project Root, instale el paquete fashion-clip localmente con
$ pip install -e .
Hay dos abstracciones principales para facilitar el uso fácil de FashionCLIP .
Primero, la clase FCLIPDataset que encapsula información relacionada con un catálogo dado y expone la información crítica para FashionCLIP . Además, proporciona funciones auxiliares para una exploración rápida y visualización de datos. Los principales parámetros de inicialización son
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']
Para facilitar el uso, la API también proporciona acceso al conjunto de datos ( una vez que se libera oficialmente ), utilizado en el documento para capacitar FahionCLIP , simplemente especificando el nombre del catálogo correspondiente.
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)
La segunda abstracción es la clase FashionCLIP , que requiere un nombre del modelo de clip de cara de abrazo y un FCLIPDataset , y proporciona funciones convenientes para realizar tareas como recuperación multimodal, clasificación de disparo cero y localización. Los parámetros de inicialización para FashionCLIP son los siguientes:
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
Similar a la abstracción FCLIPDataset , hemos incluido un modelo FashionCLIP previamente capacitado del documento, organizado aquí. Si se recibe un conjunto de datos desconocido y una combinación de modelo, los vectores de imagen y subtítulos se generarán en la instanciación de objetos, de lo contrario, se extraerán vectores/incrustaciones precomputados de 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)
Para obtener más detalles sobre cómo usar el paquete, ¡consulte el cuaderno adjunto!
Pensar el lanzamiento oficial. ↩