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

CutMix

O CutMix cola um recorte retangular de uma imagem de treinamento em outra e combina os rótulos de acordo com a área do recorte, melhorando a precisão e a localização.

CutMix é uma técnica de aumento de dados que recorta uma região retangular de uma imagem de treinamento, cola essa região sobre a mesma área de outra imagem e combina os dois rótulos proporcionalmente à área ocupada por cada imagem. Sangdoo Yun e colegas da NAVER Clova AI Research apresentaram a técnica em um artigo da ICCV de 2019 como uma combinação de duas ideias anteriores: a remoção de uma região aleatória do Cutout e a combinação de rótulos do MixUp. No ImageNet, o CutMix reduziu o erro top-1 de um ResNet-50 de 23,68% para 21,40%, superando o MixUp, com 22,58%, e o Cutout, com 22,93%; além disso, os modelos pré-treinados com essa técnica também foram mais bem transferidos para detecção de objetos e legendas de imagens.

Como funciona o CutMix#

Para cada par de imagens A e B, o CutMix amostra uma proporção de combinação λ de uma distribuição Beta, que, com o parâmetro padrão α = 1, é uniforme entre 0 e 1. Em seguida, desenha uma caixa cuja largura e altura correspondem à largura e à altura da imagem multiplicadas por √(1 − λ), centraliza a caixa em um ponto aleatório, limita-a às bordas da imagem e copia essa região de B para A. Após o recorte, λ é recalculado como a fração de A que permanece, e o rótulo passa a conter λ partes de A e (1 − λ) partes de B; assim, um recorte de 30% de um gato em uma imagem de cachorro resulta em um alvo de 0,7 para cachorro e 0,3 para gato. O treinamento minimiza a função de perda em relação a esse rótulo suave, da mesma forma que com o suavizamento de rótulos.

O torchvision do PyTorch aplica CutMix a um lote inteiro, pareando cada imagem com a vizinha no lote:

import torch
from torchvision.transforms import v2

# A batch of 4 random 224x224 images labeled with classes 0-3 of 10
torch.manual_seed(0)
images = torch.rand(4, 3, 224, 224)
labels = torch.tensor([0, 1, 2, 3])

# Paste a random box from each image's neighbor in the batch and mix the labels by area
cutmix = v2.CutMix(num_classes=10)
mixed_images, mixed_labels = cutmix(images, labels)

# Image 0 received its patch from image 3
pasted = (mixed_images[0] != images[0]).any(dim=0).float().mean()
print(f"pasted area: {pasted:.3f}")
print(f"label weights for classes 0-3: {mixed_labels[0, :4].numpy().round(3)}")

A saída mostra uma área colada de 0,187 e pesos de rótulo de 0,813 para a classe 0 e 0,187 para a classe 3: a parcela do alvo atribuída a cada classe corresponde à parcela de pixels que ela fornece.

Por que o CutMix ajuda#

Um modelo de classificação de imagens treinado com imagens inteiras pode acertar ao reconhecer uma parte pequena e altamente discriminativa, como o rosto de um cachorro. Quando o CutMix cobre essa parte com outra imagem, o modelo precisa reconhecer o cachorro pelo corpo, pelas patas ou pelo pelo; assim, aprende a usar mais partes de cada objeto, melhorando a localização fracamente supervisionada e a robustez à oclusão. Cada pixel da imagem combinada ainda vem de uma foto real, então o modelo nunca treina com regiões vazias ou misturas fantasmagóricas. Como outras ampliações fortes, o CutMix atua como regularização que reduz o sobreajuste, e receitas modernas de treinamento para transformadores de visão (ViT), incluindo a usada nos Data-efficient Image Transformers (DeiT) da Meta, aplicam CutMix e MixUp em conjunto.

  • MixUp: Combina duas imagens inteiras pixel a pixel com peso λ e mistura seus rótulos da mesma forma, produzindo sobreposições semitransparentes que não se parecem com nenhuma cena real.
  • Cutout: Mascara um quadrado aleatório com zeros e mantém o rótulo original; assim, os pixels mascarados não fornecem informação para o treinamento.
  • Mosaic: Junta quatro imagens redimensionadas em uma só; é um aumento padrão para treinar detectores de objetos que mantém o rótulo da caixa de cada objeto ainda visível no quadro.
  • Copiar e colar para segmentação de instâncias: Cola instâncias de objetos segmentadas, em vez de retângulos, de uma imagem em outra.

CutMix na detecção de objetos#

Na detecção, todos os rótulos permanecem categóricos: em vez de um vetor de classes combinado, são mantidas as caixas de ambas as imagens onde seus objetos continuam visíveis. A ampliação cutmix do Ultralytics YOLO, desativada por padrão, recebe uma probabilidade entre 0 e 1. A implementação escolhe uma região de recorte que não se sobrepõe a nenhuma das caixas existentes na imagem de destino, copia a mesma região de uma segunda imagem e mantém cada caixa delimitadora colada que preserve pelo menos 10% de sua área dentro da região, ou 1% para rótulos de segmentação. Por padrão, o CutMix é desativado junto com o mosaic nas 10 épocas finais do treinamento, conforme definido por close_mosaic=10.

Explore solutions

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 aéreas e de drones em informações em tempo real para agricultura, aquicultura, monitoramento ambiental, conservação e análise geoespacial com o Ultralytics YOLO.
Saiba mais
Visão computacional no setor aeroespacial

Visão computacional no setor aeroespacial

Leva a IA de visão ao monitoramento aéreo com modelos Ultralytics YOLO. Impulsiona drones, fluxos de trabalho aeroespaciais, conservação ambiental e setores geoespaciais com soluções de visão computacional.
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