Aumento de dados é uma técnica crucial em visão computacional que expande artificialmente o seu conjunto de dados de treino, aplicando várias transformações às imagens existentes. Ao treinar modelos de deep learning como o Ultralytics YOLO, o aumento de dados ajuda a melhorar a robustez do modelo, reduz o overfitting e melhora a generalização para cenários do mundo real.
Por que a Aumentação de Dados é Importante
O aumento de dados serve a múltiplos propósitos críticos no treinamento de modelos de visão computacional:
Dataset Expandido: Ao criar variações de imagens existentes, você pode aumentar efetivamente o tamanho do seu dataset de treinamento sem coletar novos dados.
Generalização Aprimorada: Os modelos aprendem a reconhecer objetos sob várias condições, tornando-os mais robustos em aplicações do mundo real.
Redução do Overfitting: Ao introduzir variabilidade nos dados de treino, os modelos são menos propensos a memorizar características específicas da imagem.
Desempenho Aprimorado: Modelos treinados com aumento adequado normalmente alcançam melhor precisão em conjuntos de validação e teste.
A implementação do Ultralytics YOLO fornece um conjunto abrangente de técnicas de aumento, cada uma servindo a propósitos específicos e contribuindo para o desempenho do modelo de diferentes maneiras. Este guia explorará cada parâmetro de aumento em detalhes, ajudando você a entender quando e como usá-los de forma eficaz em seus projetos.
Configurações de Exemplo
Você pode personalizar cada parâmetro usando a API Python, a interface de linha de comando (CLI) ou um arquivo de configuração. Abaixo estão exemplos de como configurar o aumento de dados em cada método.
Exemplos de Configuração
fromultralyticsimportYOLO# Load a modelmodel=YOLO("yolo11n.pt")# Training with custom augmentation parametersmodel.train(data="coco.yaml",epochs=100,hsv_h=0.03,hsv_s=0.6,hsv_v=0.5)# Training without any augmentations (disabled values omitted for clarity)model.train(data="coco.yaml",epochs=100,hsv_h=0.0,hsv_s=0.0,hsv_v=0.0,translate=0.0,scale=0.0,fliplr=0.0,mosaic=0.0,erasing=0.0,auto_augment=None,)
# Training with custom augmentation parameters
yolodetecttraindata=coco8.yamlmodel=yolo11n.ptepochs=100hsv_h=0.03hsv_s=0.6hsv_v=0.5
Usando um arquivo de configuração
Você pode definir todos os parâmetros de treinamento, incluindo aumentos, em um arquivo de configuração YAML (por exemplo, train_custom.yaml). O mode parâmetro só é necessário ao utilizar a CLI. Este novo ficheiro YAML irá, então, substituir o padrão localizado em ultralytics package.
# train_custom.yaml# 'mode' is required only for CLI usagemode:traindata:coco8.yamlmodel:yolo11n.ptepochs:100hsv_h:0.03hsv_s:0.6hsv_v:0.5
Em seguida, inicie o treinamento com a API Python:
Exemplo de comboio
fromultralyticsimportYOLO# Load a COCO-pretrained YOLO11n modelmodel=YOLO("yolo11n.pt")# Train the model with custom configurationmodel.train(cfg="train_custom.yaml")
# Train the model with custom configuration
yolodetecttrainmodel="yolo11n.pt"cfg=train_custom.yaml
Aumentos de Espaço de Cores
Ajuste de Matiz (hsv_h)
Gama: 0.0 - 1.0
Predefinição: 0.015
Utilização: Desloca as cores da imagem, preservando as suas relações. O hsv_h hiperparâmetro define a magnitude do deslocamento, com o ajuste final escolhido aleatoriamente entre -hsv_h e hsv_h. Por exemplo, com hsv_h=0.3, o deslocamento é selecionado aleatoriamente dentro de-0.3 para 0.3. Para valores acima de 0.5, a mudança de matiz envolve a roda de cores, e é por isso que os aumentos parecem os mesmos entre 0.5 e -0.5.
Objetivo: Particularmente útil para cenários ao ar livre onde as condições de iluminação podem afetar drasticamente a aparência do objeto. Por exemplo, uma banana pode parecer mais amarela sob a luz do sol brilhante, mas mais esverdeada em ambientes fechados.
Utilização: Modifica a intensidade das cores na imagem. O hsv_h hiperparâmetro define a magnitude do deslocamento, com o ajuste final escolhido aleatoriamente entre -hsv_s e hsv_s. Por exemplo, com hsv_s=0.7, a intensidade é selecionada aleatoriamente dentro de-0.7 para 0.7.
Objetivo: Ajuda os modelos a lidar com diferentes condições meteorológicas e configurações de câmara. Por exemplo, um sinal de trânsito vermelho pode parecer muito vívido num dia ensolarado, mas parecer baço e desbotado em condições de nevoeiro.
Utilização: Altera o brilho da imagem. O hsv_v hiperparâmetro define a magnitude do deslocamento, com o ajuste final escolhido aleatoriamente entre -hsv_v e hsv_v. Por exemplo, com hsv_v=0.4, a intensidade é selecionada aleatoriamente dentro de-0.4 para 0.4.
Objetivo: Essencial para treinar modelos que precisam de funcionar em diferentes condições de iluminação. Por exemplo, uma maçã vermelha pode parecer brilhante à luz do sol, mas muito mais escura na sombra.
Utilização: Roda as imagens aleatoriamente dentro do intervalo especificado. O degrees hiperparâmetro define o ângulo de rotação, com o ajuste final escolhido aleatoriamente entre -degrees e degrees. Por exemplo, com degrees=10.0, a rotação é selecionada aleatoriamente dentro de-10.0 para 10.0.
Objetivo: Crucial para aplicações onde os objetos podem aparecer em diferentes orientações. Por exemplo, em imagens aéreas de drones, os veículos podem estar orientados em qualquer direção, exigindo que os modelos reconheçam os objetos independentemente da sua rotação.
Utilização: Desloca as imagens horizontal e verticalmente por uma fração aleatória do tamanho da imagem. O translate hiperparâmetro define a magnitude do deslocamento, com o ajuste final escolhido duas vezes (uma para cada eixo) dentro do intervalo -translate e translate. Por exemplo, com translate=0.5, a translação é selecionada aleatoriamente dentro de-0.5 para 0.5 no eixo x, e outro valor aleatório independente é selecionado dentro do mesmo intervalo no eixo y.
Objetivo: Ajuda os modelos a aprender a detetar objetos parcialmente visíveis e melhora a robustez à posição do objeto. Por exemplo, em aplicações de avaliação de danos em veículos, as peças do carro podem aparecer total ou parcialmente no quadro, dependendo da posição e distância do fotógrafo, o aumento da tradução ensinará o modelo a reconhecer estas características, independentemente da sua integridade ou posição.
Nota: Para simplificar, as traduções aplicadas abaixo são as mesmas de cada vez para ambos x e y eixos. Valores -1.0 e 1.0não são mostrados, pois traduziriam a imagem completamente para fora do frame.
-0.5
-0.25
0.0
0.25
0.5
Escala (scale)
Gama: ≥0.0
Predefinição: 0.5
Utilização: Redimensiona as imagens por um fator aleatório dentro do intervalo especificado. O scale hiperparâmetro define o fator de escala, com o ajuste final escolhido aleatoriamente entre 1-scale e 1+scale. Por exemplo, com scale=0.5, o escalonamento é selecionado aleatoriamente dentro de0.5 para 1.5.
Objetivo: Permite que os modelos lidem com objetos a diferentes distâncias e tamanhos. Por exemplo, em aplicações de condução autónoma, os veículos podem aparecer a várias distâncias da câmara, exigindo que o modelo os reconheça independentemente do seu tamanho.
O valor -1.0 não é mostrado, pois faria a imagem desaparecer, enquanto 1.0 simplesmente resulta em um zoom de 2x.
Os valores exibidos na tabela abaixo são os aplicados através do hiperparâmetro scale, não o fator de escala final.
Se scale é maior que 1.0, a imagem pode ser muito pequena ou invertida, pois o fator de escala é escolhido aleatoriamente entre 1-scale e 1+scale. Por exemplo, com scale=3.0, o escalonamento é selecionado aleatoriamente dentro de-2.0 para 4.0. Se um valor negativo for escolhido, a imagem é invertida.
-0.5
-0.25
0.0
0.25
0.5
Cisalhamento (shear)
Gama: -180 para +180
Predefinição: 0.0
Utilização: Introduz uma transformação geométrica que distorce a imagem ao longo dos eixos x e y, deslocando efetivamente partes da imagem numa direção, mantendo as linhas paralelas. O shear hiperparâmetro define o ângulo de cisalhamento, com o ajuste final escolhido aleatoriamente entre -shear e shear. Por exemplo, com shear=10.0, o cisalhamento é selecionado aleatoriamente dentro de-10 para 10 no eixo x, e outro valor aleatório independente é selecionado dentro do mesmo intervalo no eixo y.
Objetivo: Ajuda os modelos a generalizar as variações nos ângulos de visão causadas por ligeiras inclinações ou pontos de vista oblíquos. Por exemplo, na monitorização de tráfego, objetos como carros e sinais de trânsito podem parecer inclinados devido a colocações de câmaras não perpendiculares. A aplicação do aumento de shear garante que o modelo aprende a reconhecer objetos apesar de tais distorções enviesadas.
shear valores podem distorcer rapidamente a imagem, por isso é recomendável começar com valores pequenos e aumentá-los gradualmente.
Ao contrário das transformações de perspetiva, o cisalhamento não introduz profundidade ou pontos de fuga, mas distorce a forma dos objetos alterando os seus ângulos, mantendo os lados opostos paralelos.
-10
-5
0.0
5
10
Perspectiva (perspective)
Gama: 0.0 - 0.001
Predefinição: 0.0
Utilização: Aplica uma transformação de perspectiva completa ao longo do eixo x e do eixo y, simulando como os objetos aparecem quando vistos de diferentes profundidades ou ângulos. O perspective hiperparâmetro define a magnitude da perspectiva, com o ajuste final escolhido aleatoriamente entre -perspective e perspective. Por exemplo, com perspective=0.001, a perspectiva é selecionada aleatoriamente dentro de-0.001 para 0.001 no eixo x, e outro valor aleatório independente é selecionado dentro do mesmo intervalo no eixo y.
Objetivo: O aumento de perspetiva é crucial para lidar com mudanças extremas de ponto de vista, especialmente em cenários onde os objetos aparecem encurtados ou distorcidos devido a mudanças de perspetiva. Por exemplo, na deteção de objetos baseada em drones, edifícios, estradas e veículos podem aparecer esticados ou comprimidos, dependendo da inclinação e altitude do drone. Ao aplicar transformações de perspetiva, os modelos aprendem a reconhecer objetos apesar destas distorções induzidas pela perspetiva, melhorando a sua robustez em implementações no mundo real.
Utilização: Executa uma inversão vertical invertendo a imagem ao longo do eixo y. Esta transformação espelha toda a imagem de cabeça para baixo, mas preserva todas as relações espaciais entre os objetos. O hiperparâmetro flipud define a probabilidade de aplicar a transformação, com um valor de flipud=1.0 garantindo que todas as imagens sejam invertidas e um valor de flipud=0.0 desativando a transformação completamente. Por exemplo, com flipud=0.5, cada imagem tem 50% de chance de ser invertida de cima para baixo.
Objetivo: Útil para cenários onde os objetos podem aparecer de cabeça para baixo. Por exemplo, em sistemas de visão robótica, os objetos em esteiras transportadoras ou braços robóticos podem ser recolhidos e colocados em várias orientações. O espelhamento vertical ajuda o modelo a reconhecer objetos independentemente do seu posicionamento de cima para baixo.
Utilização: Executa uma inversão horizontal espelhando a imagem ao longo do eixo x. Esta transformação troca os lados esquerdo e direito, mantendo a consistência espacial, o que ajuda o modelo a generalizar para objetos que aparecem em orientações espelhadas. O fliplr hiperparâmetro define a probabilidade de aplicar a transformação, com um valor de fliplr=1.0 garantindo que todas as imagens sejam invertidas e um valor de fliplr=0.0 desativando a transformação completamente. Por exemplo, com fliplr=0.5, cada imagem tem 50% de chance de ser invertida da esquerda para a direita.
Objetivo: O espelhamento horizontal é amplamente utilizado na deteção de objetos, estimativa de pose e reconhecimento facial para melhorar a robustez contra variações esquerda-direita. Por exemplo, na condução autónoma, veículos e peões podem aparecer em ambos os lados da estrada, e o espelhamento horizontal ajuda o modelo a reconhecê-los igualmente bem em ambas as orientações.
Utilização: Troca os canais de cor de uma imagem de RGB para BGR, alterando a ordem em que as cores são representadas. O bgr hiperparâmetro define a probabilidade de aplicar a transformação, com bgr=1.0 garantindo que todas as imagens passem pela troca de canais e bgr=0.0 desativando-o. Por exemplo, com bgr=0.5, cada imagem tem 50% de chance de ser convertida de RGB para BGR.
Objetivo: Aumenta a robustez a diferentes ordenações de canais de cor. Por exemplo, ao treinar modelos que devem funcionar em vários sistemas de câmaras e bibliotecas de imagem onde os formatos RGB e BGR podem ser usados de forma inconsistente, ou ao implementar modelos em ambientes onde o formato de cor de entrada pode diferir dos dados de treino.
Utilização: Combina quatro imagens de treino numa só. O mosaic hiperparâmetro define a probabilidade de aplicar a transformação, com mosaic=1.0 garantindo que todas as imagens sejam combinadas e mosaic=0.0 desativando a transformação. Por exemplo, com mosaic=0.5, cada imagem tem 50% de chance de ser combinada com outras três imagens.
Objetivo: Altamente eficaz para melhorar a deteção de pequenos objetos e a compreensão do contexto. Por exemplo, em projetos de conservação da vida selvagem, onde os animais podem aparecer a várias distâncias e escalas, o aumento de mosaico ajuda o modelo a aprender a reconhecer a mesma espécie em diferentes tamanhos, oclusões parciais e contextos ambientais, criando artificialmente amostras de treino diversificadas a partir de dados limitados.
Mesmo que o mosaic o aumento de dados torna o modelo mais robusto, também pode tornar o processo de treino mais desafiador.
O mosaic o aumento de dados pode ser desativado perto do final do treino definindo close_mosaic para o número de épocas antes da conclusão, quando deve ser desligado. Por exemplo, se epochs é definido como 200 e close_mosaic é definido como 20, o mosaic o aumento de dados será desativado após 180 épocas. Se close_mosaic é definido como 0, o mosaic o aumento de dados será ativado para todo o processo de treino.
O centro do mosaico gerado é determinado usando valores aleatórios e pode estar dentro ou fora da imagem.
A implementação atual do mosaic o aumento de dados combina 4 imagens escolhidas aleatoriamente do conjunto de dados. Se o conjunto de dados for pequeno, a mesma imagem pode ser usada várias vezes no mesmo mosaico.
mosaic desativado
mosaic em
Mixup (mixup)
Gama: 0.0 - 1.0
Predefinição: 0.0
Utilização: Mistura duas imagens e seus rótulos com uma determinada probabilidade. O mixup hiperparâmetro define a probabilidade de aplicar a transformação, com mixup=1.0 garantindo que todas as imagens sejam misturadas e mixup=0.0 desativando a transformação. Por exemplo, com mixup=0.5, cada imagem tem 50% de chance de ser misturada com outra imagem.
Objetivo: Melhora a robustez do modelo e reduz o overfitting. Por exemplo, em sistemas de reconhecimento de produtos de retalho, o mixup ajuda o modelo a aprender recursos mais robustos, misturando imagens de diferentes produtos, ensinando-o a identificar itens mesmo quando estão parcialmente visíveis ou obscurecidos por outros produtos em prateleiras de lojas lotadas.
O mixup ratio é um valor aleatório escolhido de um np.random.beta(32.0, 32.0) distribuição beta, o que significa que cada imagem contribui com aproximadamente 50%, com ligeiras variações.
Primeira imagem, mixup desativado
Segunda imagem, mixup desativado
mixup em
CutMix (cutmix)
Gama: 0.0 - 1.0
Predefinição: 0.0
Utilização: Corta uma região retangular de uma imagem e cola-a noutra imagem com uma determinada probabilidade. O cutmix hiperparâmetro define a probabilidade de aplicar a transformação, com cutmix=1.0 garantindo que todas as imagens passem por esta transformação e cutmix=0.0 desativando-o completamente. Por exemplo, com cutmix=0.5, cada imagem tem 50% de chance de ter uma região substituída por um patch de outra imagem.
Objetivo: Melhora o desempenho do modelo, criando cenários de oclusão realistas, mantendo a integridade dos recursos locais. Por exemplo, em sistemas de condução autónoma, o cutmix ajuda o modelo a aprender a reconhecer veículos ou peões, mesmo quando estão parcialmente ocluídos por outros objetos, melhorando a precisão da deteção em ambientes complexos do mundo real com objetos sobrepostos.
O tamanho e a posição da região de corte são determinados aleatoriamente para cada aplicação.
Ao contrário do mixup, que mistura os valores dos pixels globalmente, cutmix mantém as intensidades de pixel originais dentro das regiões de corte, preservando as características locais.
Uma região é colada na imagem de destino apenas se não se sobrepuser a nenhuma caixa delimitadora existente. Além disso, apenas as caixas delimitadoras que mantém pelo menos 0.1 (10%) de sua área original dentro da região colada são preservados.
Este limite mínimo de área da caixa delimitadora não pode ser alterado com a implementação atual e está definido para 0.1 por padrão.
Primeira imagem, cutmix desativado
Segunda imagem, cutmix desativado
cutmix em
Aumentos Específicos de Segmentação
Copiar e Colar (copy_paste)
Gama: 0.0 - 1.0
Predefinição: 0.0
Utilização: Funciona apenas para tarefas de segmentação, este aumento copia objetos dentro ou entre imagens com base numa probabilidade especificada, controlada pelo copy_paste_mode. O copy_paste hiperparâmetro define a probabilidade de aplicar a transformação, com copy_paste=1.0 garantindo que todas as imagens sejam copiadas e copy_paste=0.0 desativando a transformação. Por exemplo, com copy_paste=0.5, cada imagem tem 50% de chance de ter objetos copiados de outra imagem.
Objetivo: Particularmente útil para tarefas de segmentação de instâncias e classes de objetos raros. Por exemplo, na deteção de defeitos industriais, onde certos tipos de defeitos aparecem infrequentemente, o aumento de copiar e colar pode aumentar artificialmente a ocorrência destes defeitos raros, copiando-os de uma imagem para outra, ajudando o modelo a aprender melhor estes casos sub-representados sem necessitar de amostras defeituosas adicionais.
Como ilustrado no GIF abaixo, o copy_paste o aumento de dados pode ser usado para copiar objetos de uma imagem para outra.
Uma vez que um objeto é copiado, independentemente do copy_paste_mode, sua Intersecção sobre Área (IoA) é computada com todos os objetos da imagem de origem. Se todos os IoA estiverem abaixo 0.3 (30%), o objeto é colado na imagem de destino. Se apenas um dos IoA estiver acima 0.3, o objeto não é colado na imagem de destino.
O limite de IoA não pode ser alterado com a implementação atual e está definido para 0.3 por padrão.
copy_paste desativado
copy_paste ativado com copy_paste_mode=flip
Visualize o copy_paste processo
Modo Copiar e Colar (copy_paste_mode)
Opções: 'flip', 'mixup'
Predefinição: 'flip'
Utilização: Determina o método usado para copiar-colar aumento de dados. Se definido para 'flip', os objetos vêm da mesma imagem, enquanto 'mixup' permite que objetos sejam copiados de diferentes imagens.
Objetivo: Permite flexibilidade na forma como os objetos copiados são integrados nas imagens de destino.
Utilização: Aplica políticas de aumento automatizadas para classificação. O 'randaugment' option usa RandAugment, 'autoaugment' usa AutoAugment, e 'augmix' usa AugMix. Definindo para None desativa o aumento automatizado.
Propósito: Otimiza automaticamente as estratégias de aumento para tarefas de classificação. As diferenças são as seguintes:
AutoAugment: Este modo aplica políticas de aumento predefinidas aprendidas a partir de conjuntos de dados como ImageNet, CIFAR10 e SVHN. Os usuários podem selecionar essas políticas existentes, mas não podem treinar novas políticas dentro do Torchvision. Para descobrir estratégias de aumento ideais para conjuntos de dados específicos, bibliotecas externas ou implementações personalizadas seriam necessárias. Referência ao artigo AutoAugment.
RandAugment: Aplica uma seleção aleatória de transformações com magnitude uniforme. Esta abordagem reduz a necessidade de uma fase de pesquisa extensa, tornando-a mais eficiente em termos computacionais, ao mesmo tempo que melhora a robustez do modelo. Referência ao artigo do RandAugment.
AugMix: AugMix é um método de aumento de dados que melhora a robustez do modelo, criando diversas variações de imagem através de combinações aleatórias de transformações simples. Consulte o artigo do AugMix.
Essencialmente, a principal diferença entre os três métodos é a forma como as políticas de aumento são definidas e aplicadas.
Você pode consultar este artigo que compara os três métodos em detalhes.
Apagamento Aleatório (erasing)
Gama: 0.0 - 0.9
Predefinição: 0.4
Utilização: Apaga aleatoriamente porções da imagem durante o treino de classificação. O erasing hiperparâmetro define a probabilidade de aplicar a transformação, com erasing=0.9 garantindo que quase todas as imagens sejam apagadas e erasing=0.0 desativando a transformação. Por exemplo, com erasing=0.5, cada imagem tem 50% de chance de ter uma porção apagada.
Objetivo: Ajuda os modelos a aprender recursos robustos e evita a dependência excessiva de regiões específicas da imagem. Por exemplo, em sistemas de reconhecimento facial, o apagamento aleatório ajuda os modelos a tornarem-se mais robustos a oclusões parciais, como óculos de sol, máscaras faciais ou outros objetos que possam cobrir parcialmente as características faciais. Isto melhora o desempenho no mundo real, forçando o modelo a identificar indivíduos usando múltiplas características faciais, em vez de depender apenas de características distintivas que possam estar obscurecidas.
O erasing o aumento de dados vem com um scale, ratioe value hiperparâmetros que não podem ser alterados com o implementação atual. Seus valores padrão são (0.02, 0.33), (0.3, 3.3)e 0, respectivamente, conforme declarado no PyTorch documentação.
O limite superior do erasing o hiperparâmetro é definido como 0.9 para evitar aplicar a transformação a todas as imagens.
erasing desativado
erasing ativado (exemplo 1)
erasing ativado (exemplo 2)
erasing ativado (exemplo 3)
FAQ
Existem muitas aumentações para escolher. Como sei quais usar?
A escolha dos aumentos certos depende do seu caso de uso e conjunto de dados específicos. Aqui estão algumas diretrizes gerais para ajudá-lo a decidir:
Na maioria dos casos, pequenas variações de cor e brilho são benéficas. Os valores padrão para hsv_h, hsv_se hsv_v são um bom ponto de partida.
Se o ponto de vista da câmera for consistente e não mudar uma vez que o modelo for implementado, você provavelmente pode pular transformações geométricas como rotation, translation, scale, shear, ou perspective. No entanto, se o ângulo da câmera pode variar, e você precisa que o modelo seja mais robusto, é melhor manter esses aumentos.
Utilizar o mosaic aumento de dados apenas se tiver objetos parcialmente ocluídos ou vários objetos por imagem for aceitável e não alterar o valor do rótulo. Alternativamente, pode manter mosaic ativo, mas aumente o close_mosaic valor para desativá-lo mais cedo no processo de treinamento.
Resumindo: mantenha a simplicidade. Comece com um pequeno conjunto de aumentos e adicione gradualmente mais conforme necessário. O objetivo é melhorar a generalização e a robustez do modelo, não complicar demais o processo de treinamento. Além disso, certifique-se de que os aumentos que você aplica reflitam a mesma distribuição de dados que seu modelo encontrará em produção.
Ao iniciar um treinamento, vejo um albumentations: Blur[...] referência. Isso significa que o Ultralytics YOLO executa aumento de dados adicional, como blurring?
Se o albumentations pacote está instalado, o Ultralytics aplica automaticamente um conjunto de aumentos de imagem extra utilizando-o. Estes aumentos são tratados internamente e não requerem configuração adicional.
Você pode encontrar a lista completa de transformações aplicadas em nosso documentação técnica, bem como em nosso Guia de integração do Albumentations. Observe que apenas os aumentos com uma probabilidade p maior que 0 estão ativos. Estes são aplicados propositadamente em baixas frequências para imitar artefatos visuais do mundo real, como efeitos de desfoque ou escala de cinza.
Ao iniciar um treinamento, não vejo nenhuma referência a albumentations. Por quê?
Verifique se o albumentations pacote está instalado. Caso contrário, pode instalá-lo executando pip install albumentations. Uma vez instalado, o pacote deve ser detectado e utilizado automaticamente pela Ultralytics.
Como personalizo meus aumentos?
Você pode personalizar as aumentações criando uma classe de dataset e um treinador personalizados. Por exemplo, você pode substituir as aumentações de classificação Ultralytics padrão por torchvision.transforms.Resize do PyTorch ou outras transformações. Consulte o exemplo de treinamento personalizado na documentação de classificação para obter detalhes de implementação.