Ultralytics YOLO27: Entre na lista de espera.
Licenciar o YOLO
Voltar ao glossário da Ultralytics

CLIP (Contrastive Language-Image Pre-training)

CLIP é o modelo da OpenAI que incorpora imagens e texto em um mesmo espaço compartilhado, permitindo classificar imagens com rótulos em linguagem simples. Veja como funcionam o treinamento e o zero-shot.

CLIP (pré-treinamento contrastivo de linguagem e imagem) é um modelo da OpenAI que aprende a associar imagens às respectivas descrições textuais. Ele combina um codificador de imagem com um codificador de texto e treina ambos para que uma imagem e uma legenda que a descreva sejam mapeadas para vetores próximos em um espaço compartilhado de embeddings. Treinado com 400 milhões de pares de imagem e legenda coletados na internet, o CLIP pode classificar imagens em categorias fornecidas apenas como texto, sem exemplos rotulados dessas categorias — uma capacidade chamada aprendizado zero-shot. No artigo de 2021, seu melhor modelo alcançou 76,2% de precisão top-1 zero-shot no ImageNet, igualando o ResNet-50 original totalmente supervisionado sem usar nenhuma das 1,28 milhão de imagens rotuladas com que o ResNet-50 foi treinado.

Como o CLIP é treinado#

O CLIP tem dois codificadores. O codificador de imagem é um ResNet ou um Vision Transformer (ViT), e o codificador de texto é um transformer de 12 camadas com 63 milhões de parâmetros em sua versão base. Uma projeção linear mapeia a saída de cada codificador para o espaço compartilhado, onde cada vetor é normalizado para ter comprimento unitário.

O treinamento usa aprendizado contrastivo em lotes de 32.768 pares de imagem e legenda. Para um lote de N pares, o CLIP calcula a similaridade de cosseno entre cada imagem e cada legenda, gerando uma matriz N×N cuja diagonal contém os pares verdadeiros. Uma perda de entropia cruzada com softmax em cada linha faz com que cada imagem selecione sua própria legenda entre N opções; uma segunda perda em cada coluna faz com que cada legenda selecione sua imagem. Uma temperatura aprendida escala as similaridades antes do softmax.

Como as legendas são textos livres, o CLIP aprende com tudo o que a web descreve, incluindo objetos, cenas, estilos artísticos, texto em imagens e ações, em vez de uma lista fixa de classes.

Classificação zero-shot#

Para classificar uma imagem, o CLIP transforma cada rótulo candidato em um enunciado curto, como "uma foto de um cachorro", transforma a imagem em um embedding e escolhe o rótulo com a maior similaridade de cosseno. A formulação do prompt é importante: o artigo relata que apenas o modelo "Uma foto de {label}." melhorou a precisão no ImageNet em 1,3%, e que a média dos embeddings de texto de 80 modelos acrescentou mais 3,5%. O pipeline Hugging Face Transformers abaixo envolve cada rótulo no modelo "This is a photo of {}." e executa o modelo ViT-B/32 original:

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}")

Ele exibe a city bus: 0.657, a tram: 0.341, a delivery truck: 0.001 e a bicycle: 0.000. O bonde, outro veículo grande de passageiros, recebe quase toda a probabilidade restante, e um novo conjunto de rótulos exige apenas uma nova lista de strings.

Aplicações no mundo real#

  • Busca semântica: as coleções de imagens são convertidas em embeddings uma vez e armazenadas em um banco de dados vetorial. Uma consulta de texto, como "tênis vermelhos em um piso de madeira", é transformada em embedding no momento da busca e comparada com eles, permitindo encontrar imagens pelo conteúdo sem etiquetas manuais.
  • Geração de texto para imagem: o Stable Diffusion 1.x condiciona seu gerador de imagens aos embeddings de texto do CLIP ViT-L/14, e a similaridade do CLIP é amplamente usada para avaliar o quanto uma imagem gerada corresponde ao prompt.
  • Detecção de vocabulário aberto: Os modelos YOLO-World do Tencent AI Lab, executados no pacote Ultralytics, codificam os nomes das classes enviados para set_classes com o codificador de texto ViT-B/32 do CLIP, permitindo que um detector treinado uma única vez encontre "mochila vermelha" ou "empilhadeira" pelo nome. O OWLv2 do Google se baseia nos codificadores de imagem e texto pré-treinados do CLIP, e o VLM Leaderboard o compara com outros detectores de vocabulário aberto e VLMs em conjuntos de dados de detecção do mundo real.
  • Codificadores de visão para VLMs: muitos modelos de visão e linguagem partem de um codificador de imagem CLIP pré-treinado. O LLaVA, por exemplo, fornece recursos do CLIP ViT-L/14 a um modelo de linguagem.
  • Filtragem de conjuntos de dados: grandes conjuntos abertos de imagem e texto, como o LAION-5B, mantêm apenas os pares da web cuja similaridade entre imagem e texto no CLIP ultrapassa um limiar, removendo legendas que não descrevem a imagem.
  • Classificadores de aprendizado supervisionado: um classificador padrão tem uma saída por classe de treinamento e não consegue pontuar uma classe que nunca viu. O "classificador" do CLIP é o conjunto de embeddings de texto, portanto, muda sempre que os rótulos mudam.
  • SigLIP: a variante do Google substitui o softmax aplicado ao lote inteiro do CLIP por uma perda sigmoide que pontua cada par de imagem e texto independentemente; isso usa menos memória e funciona melhor com lotes pequenos.
  • Aprendizado contrastivo autossupervisionado: métodos como o SimCLR contrastam duas versões aumentadas da mesma imagem e aprendem apenas com imagens. O CLIP contrasta duas modalidades, associando os recursos da imagem às palavras.
  • VLMs generativos: o CLIP pontua a similaridade entre imagem e texto e não consegue escrever uma legenda nem responder a uma pergunta. Os modelos generativos conectam um modelo de linguagem a um codificador de imagem, muitas vezes o próprio codificador do CLIP.

Limitações#

A precisão zero-shot do CLIP cai em categorias detalhadas, como modelos de aeronaves ou carros, ao contar objetos e em tarefas abstratas, como estimar distâncias. Ele também aprende os vieses das legendas da web. Como o CLIP aprendeu a ler texto em imagens, esse texto pode enganá-lo: na pesquisa sobre neurônios multimodais da OpenAI, uma maçã com uma etiqueta manuscrita dizendo "iPod" foi classificada como um iPod.

Explore as soluções

Visão computacional no desporto

Visão computacional no desporto

Descubra como o Ultralytics YOLO impulsiona a visão computacional no esporte com rastreamento de jogadores e bolas, análise de desempenho, insights para treinadores e reabilitação de atletas.
Saiba mais
Visão computacional para imagens aéreas

Visão computacional para imagens aéreas

Transforma imagens de drones e aéreas em informações em tempo real para a agricultura, a aquacultura, a conservação e a análise geoespacial com Ultralytics YOLO.
Saiba mais
Visão computacional no setor aeroespacial

Visão computacional no setor aeroespacial

Aplica visão computacional na indústria aeroespacial com Ultralytics YOLO para inspecionar aeronaves, detetar objetos estranhos na pista (FOD), apoiar operações aeroportuárias em terra e detetar defeitos em materiais compósitos.
Saiba mais
Visão computacional na segurança

Visão computacional na segurança

Protege todas as instalações com os modelos Ultralytics YOLO. A IA visual permite monitorizar perímetros, detetar ameaças, reconhecer matrículas e melhorar a segurança no local de trabalho.
Saiba mais
Visão computacional na robótica

Visão computacional na robótica

Potencia máquinas mais inteligentes com os modelos Ultralytics YOLO. A IA visual na robótica permite navegação autónoma, perceção, rastreamento de objetos e controlo em tempo real.
Saiba mais
Visão computacional na logística

Visão computacional na logística

Otimize a logística com os modelos Ultralytics YOLO. A IA de visão permite inspecionar pacotes, fazer triagem, rastrear veículos e monitorar a segurança em tempo real nos armazéns.
Saiba mais
Visão computacional no varejo

Visão computacional no varejo

Reinvente o varejo com os modelos Ultralytics YOLO. A IA de visão permite rastrear o estoque, monitorar prateleiras, gerenciar filas e obter insights mais inteligentes sobre clientes.
Saiba mais
Visão computacional na área da saúde

Visão computacional na área da saúde

Desenvolva soluções de saúde com os modelos Ultralytics YOLO. A IA de visão na área da saúde permite obter imagens médicas mais rapidamente, diagnósticos mais inteligentes e monitoramento de pacientes.
Saiba mais
Visão computacional na manufatura

Visão computacional na manufatura

Otimize a manufatura com modelos Ultralytics YOLO. A IA visual impulsiona o controle de qualidade, a detecção de defeitos, a conformidade com o uso de EPI e a automação da linha de montagem.
Saiba mais
Visão computacional no setor automotivo

Visão computacional no setor automotivo

Aplique visão computacional no setor automotivo com modelos Ultralytics YOLO. A IA visual aumenta a segurança viária, aprimora a assistência ao condutor e viabiliza a automação de veículos para estradas mais inteligentes.
Saiba mais
Visão computacional na agricultura

Visão computacional na agricultura

Leve a IA de visão à agricultura inteligente com os modelos Ultralytics YOLO. Aprimore o monitoramento de plantações, o rastreamento de animais e a agricultura de precisão para obter safras maiores e mais inteligentes.
Saiba mais

Vamos construir juntos o futuro da IA!

Comece sua jornada rumo ao futuro do aprendizado de máquina