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

One-Shot Learning

O aprendizado one-shot reconhece uma nova classe a partir de um único exemplo rotulado, geralmente comparando embeddings. Abrange redes siamesas, usos e código.

A aprendizagem one-shot é a tarefa de reconhecer uma nova classe a partir de um único exemplo anotado. Um modelo convencional de classificação de imagens precisa de centenas de imagens anotadas por classe e de novo treino sempre que se adiciona uma classe, enquanto uma pessoa costuma conseguir reconhecer um rosto ou produto novo depois de o ver uma vez. Os sistemas one-shot aproximam-se dessa capacidade reutilizando conhecimento de muitas classes aprendidas anteriormente: uma rede treinada nessas classes mapeia imagens para embeddings em que imagens da mesma coisa ficam próximas, pelo que basta um único exemplo para indicar onde se situa uma nova classe. A verificação facial, a validação de assinaturas e o reconhecimento de produtos funcionam todos desta forma; nos modelos de linguagem de grande escala (LLMs), um prompt one-shot fornece ao modelo um único exemplo resolvido de uma tarefa no prompt.

Como funciona a aprendizagem one-shot#

A maioria dos sistemas one-shot substitui a classificação pela comparação. Uma rede neural executa a extração de características no exemplo armazenado e em cada nova consulta, e uma distância entre os dois embeddings, como a distância euclidiana ou a similaridade de cosseno, determina se correspondem. Uma rede neural siamesa formaliza isto com dois ramos que partilham os mesmos pesos. Jane Bromley, Yann LeCun e colegas usaram uma para verificar assinaturas em 1993, e Gregory Koch e colegas treinaram uma em 2015 para classificar caracteres manuscritos de novos alfabetos depois de verem um exemplo de cada:

A rede de embeddings é pré-treinada em muitas outras classes com perdas contrastivas ou triplet, que aproximam imagens da mesma classe e afastam imagens de classes diferentes, para que a distância aprendida generalize para classes que só aparecem mais tarde. Os métodos de meta-aprendizagem, como as Matching Networks, treinam com milhares de tarefas one-shot simuladas, cada uma com um exemplo de várias classes, para que o modelo pratique exatamente o problema que terá de resolver.

Classificação one-shot com embeddings#

Os modelos de classificação Ultralytics YOLO26 devolvem embeddings de imagem através de embed(), que aplica pooling à saída da camada anterior à head de classificação para obter um vetor por imagem. Este exemplo cria um classificador one-shot de 10 classes para CIFAR-10 a partir desses embeddings: uma imagem armazenada por classe é o único dado anotado, e cada consulta recebe o rótulo da imagem armazenada mais semelhante:

from pathlib import Path

import torch
import torch.nn.functional as F
from torchvision.datasets.utils import download_and_extract_archive
from ultralytics import YOLO

# CIFAR-10 test images, one folder per class
download_and_extract_archive("https://github.com/ultralytics/assets/releases/download/v0.0.0/cifar10.zip", "data")
images = [sorted(folder.glob("*.png")) for folder in sorted(Path("data/cifar10/test").iterdir()) if folder.is_dir()]
model = YOLO("yolo26n-cls.pt")

# Support set: the first image of each class is its only labeled example (one shot)
shots = torch.stack([model.embed(paths[0], verbose=False)[0] for paths in images])

# Query set: the next 50 images of each class, each labeled with the class of its most similar shot
correct = 0
for label, paths in enumerate(images):
    for path in paths[1:51]:
        query = model.embed(path, verbose=False)[0]
        correct += F.cosine_similarity(shots, query.unsqueeze(0)).argmax().item() == label
print(f"10-way 1-shot accuracy: {correct / 500:.1%} (random guessing: 10%)")

O modelo nunca treina com CIFAR-10, pelo que a precisão apresentada mede o grau em que um exemplo por classe define essa classe no espaço de embeddings do YOLO26, e adicionar uma décima primeira classe exigiria apenas mais um embedding armazenado.

Aplicações#

  • Verificação facial: Os portões de fronteira automatizados comparam uma imagem captada por uma câmara ao vivo com a única fotografia armazenada no chip de um passaporte, e os telemóveis e sistemas de controlo de acesso comparam cada tentativa com o rosto registado no momento da inscrição.
  • Reconhecimento de produtos no retalho: As lojas acrescentam novos produtos constantemente, e uma única fotografia de catálogo por artigo permite que um sistema o reconheça na prateleira sem novo treino.
  • Aprendizagem por imitação one-shot: Treina robôs para executar uma nova instância de uma tarefa, como empilhar blocos numa nova ordem, depois de observarem uma única demonstração.

Desafios#

Um único exemplo não mostra como uma classe varia, pelo que uma fotografia de referência tirada com pouca luz, de um ângulo invulgar ou com o objeto parcialmente oculto constitui uma referência fraca para todas as comparações seguintes. O limiar de correspondência determina o equilíbrio entre falsas aceitações e falsas rejeições e tem de ser ajustado com pares de validação para cada aplicação; além disso, um embedding treinado num domínio, como fotografias do dia a dia, distingue pior as classes noutro domínio, como o das imagens médicas.

  • Aprendizagem few-shot: O problema geral de aprender com poucos exemplos anotados por classe. A aprendizagem one-shot é o caso com exatamente um exemplo, indicado como 1-shot na notação N-way K-shot.
  • Aprendizagem zero-shot: Reconhece classes sem quaisquer exemplos, com base numa descrição textual ou de atributos.
  • Aprendizagem por transferência: Reutiliza um modelo pré-treinado numa nova tarefa, geralmente ajustando-o com muitos exemplos anotados. Os sistemas one-shot também dependem de características transferidas, mas comparam-nas diretamente sem atualizar quaisquer pesos.
  • Deteção de anomalias: Aprende o que é normal e assinala tudo o que se afasta desse padrão, respondendo se um elemento é invulgar em vez de indicar a classe a que pertence.

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