Documentos | Discórdia | Twitter | LinkedIn
Albumentations é uma biblioteca Python para aumento de imagens. O aumento de imagem é usado em tarefas de aprendizado profundo e visão computacional para aumentar a qualidade dos modelos treinados. O objetivo do aumento de imagem é criar novas amostras de treinamento a partir dos dados existentes.
Aqui está um exemplo de como você pode aplicar alguns aumentos em nível de pixel de Albumentações para criar novas imagens a partir da original:
Suporte completo à visão computacional : funciona com todas as principais tarefas de CV, incluindo classificação, segmentação (semântica e instância), detecção de objetos e estimativa de pose.
API simples e unificada : uma interface consistente para todos os tipos de dados - imagens RGB/tons de cinza/multiespectrais, máscaras, caixas delimitadoras e pontos-chave.
Biblioteca rica de aumentos : mais de 70 aumentos de alta qualidade para aprimorar seus dados de treinamento.
Rápido : consistentemente avaliado como a biblioteca de aumento mais rápida, com otimizações para uso em produção.
Integração de aprendizado profundo : funciona com PyTorch, TensorFlow e outras estruturas. Parte do ecossistema PyTorch.
Criado por especialistas : desenvolvido por desenvolvedores com profunda experiência em competições de visão computacional e aprendizado de máquina.
As albumentações prosperam com as contribuições dos desenvolvedores. Agradecemos nossos patrocinadores que ajudam a sustentar a infraestrutura do projeto.
? Patrocinadores Ouro |
---|
Sua empresa pode estar aqui |
? Patrocinadores Prata |
---|
? Patrocinadores Bronze |
---|
Seu patrocínio é uma forma de dizer “obrigado” aos mantenedores e contribuidores que dedicam seu tempo livre construindo e mantendo Albumentações. Os patrocinadores são apresentados em nosso site e no README. Veja os níveis de patrocínio em GitHub Sponsors
Albumentações
Informações do sistema
Parâmetros de referência
Versões da biblioteca
Segmentação semântica no conjunto de dados Inria
Imagens médicas
Detecção de objetos e segmentação semântica no conjunto de dados Mapillary Vistas
Aumento de pontos-chave
Transformações em nível de pixel
Transformadas em nível espacial
Veja também
Eu sou novo no aumento de imagens
Quero usar Albumentações para tarefas específicas, como classificação ou segmentação
Quero saber como usar Albumentações com frameworks de aprendizagem profunda
Quero explorar os aumentos e ver as albumentações em ação
Mantenedor Atual
Membros Eméritos da Equipe Principal
? Torne-se um patrocinador
Por que Albumentações
Projeto conduzido pela comunidade, apoiado por
Índice
Autores
Instalação
Documentação
Um exemplo simples
Começando
Quem está usando Albumentações
Lista de aumentos
Mais alguns exemplos de aumentos
Resultados de benchmarking
Comparação de desempenho
Contribuindo
Comunidade
Citando
Vladimir I. Iglovikov | Grande Mestre Kaggle
Mikhail Druzhinin | Especialista em Kaggle
Alex Parinov | Mestre Kaggle
Alexandre Buslaev | Mestre Kaggle
Eugene Khvedchenya | Grande Mestre Kaggle
Albumentações requerem Python 3.9 ou superior. Para instalar a versão mais recente do PyPI:
pip install -U albumentações
Outras opções de instalação estão descritas na documentação.
A documentação completa está disponível em https://albumentations.ai/docs/ .
importar albumentações como Aimport cv2# Declarar um pipeline de aumentotransform = A.Compose([A.RandomCrop(width=256, height=256),A.HorizontalFlip(p=0.5),A.RandomBrightnessContrast(p=0.2), ])# Ler uma imagem com OpenCV e convertê-la para RGB colorspaceimage = cv2.imread("image.jpg")image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)# Aumentar uma imagemtransformed = transform(image=image)transformed_image = transformado["imagem"]
Comece com os artigos introdutórios sobre por que o aumento de imagem é importante e como ele ajuda a construir modelos melhores.
Se você deseja usar Albumentações para uma tarefa específica como classificação, segmentação ou detecção de objetos, consulte o conjunto de artigos que contém uma descrição detalhada desta tarefa. Também temos uma lista de exemplos de aplicação de Albumentações para diferentes casos de uso.
Temos exemplos de uso de Albumentações junto com PyTorch e TensorFlow.
Confira a demonstração online da biblioteca. Com ele, você pode aplicar aumentos em diferentes imagens e ver o resultado. Além disso, temos uma lista de todos os aumentos disponíveis e seus alvos.
Uma lista de artigos que citam Albumentações.
Projetos de código aberto que usam Albumentações.
As transformações em nível de pixel alterarão apenas uma imagem de entrada e deixarão inalterados quaisquer alvos adicionais, como máscaras, caixas delimitadoras e pontos-chave. A lista de transformações em nível de pixel:
Aditivo Ruído
Desfoque avançado
AutoContraste
Borrão
CLAHE
CanalDropout
Aleatório de canais
Aberração Cromática
ColorJitter
Desfocar
Reduzir a escala
Gravar
Equalizar
FDA
FancyPCA
FromFloat
GaussNoise
Desfoque Gaussiano
Desfoque de vidro
Correspondência de histograma
MatizSaturaçãoValor
Ruído ISO
Iluminação
Compressão de imagem
InvertImg
Desfoque mediano
Desfoque de movimento
Ruído Multiplicativo
Normalizar
PixelDistributionAdaptação
PlanckianJitter
Brilho PlasmaContraste
Sombra de Plasma
Posterizar
Mudança RGB
AleatórioBrilhoContraste
Névoa Aleatória
RandomGamma
Cascalho Aleatório
chuva aleatória
Sombra Aleatória
Neve aleatória
RandomSunFlare
Curva de tom aleatório
Superação de toque
Sal e pimenta
Afiado
Barulho de tiro
Solarizar
Respingos
Superpixels
TemplateTransform
Imagem de texto
Para flutuar
ToGray
ParaRGB
ParaSépia
Máscara de nitidez
ZoomBlur
As transformações em nível espacial alterarão simultaneamente uma imagem de entrada e também alvos adicionais, como máscaras, caixas delimitadoras e pontos-chave. A tabela a seguir mostra quais destinos adicionais são suportados por cada transformação.
Transformar | Imagem | Máscara | BBoxes | Pontos-chave |
---|---|---|---|---|
Afim | ✓ | ✓ | ✓ | ✓ |
BBoxSafeRandomCrop | ✓ | ✓ | ✓ | ✓ |
CentroCrop | ✓ | ✓ | ✓ | ✓ |
GrossoDropout | ✓ | ✓ | ✓ | ✓ |
Cortar | ✓ | ✓ | ✓ | ✓ |
Cortar e Pad | ✓ | ✓ | ✓ | ✓ |
CropNonEmptyMaskIfExists | ✓ | ✓ | ✓ | ✓ |
D4 | ✓ | ✓ | ✓ | ✓ |
ElasticTransform | ✓ | ✓ | ✓ | ✓ |
Apagando | ✓ | ✓ | ✓ | ✓ |
Máscara de frequência | ✓ | ✓ | ✓ | ✓ |
Distorção de grade | ✓ | ✓ | ✓ | ✓ |
GradeDropout | ✓ | ✓ | ✓ | ✓ |
GradeElasticDeform | ✓ | ✓ | ✓ | ✓ |
HorizontalFlip | ✓ | ✓ | ✓ | ✓ |
lambda | ✓ | ✓ | ✓ | ✓ |
MaiorMaxSize | ✓ | ✓ | ✓ | ✓ |
MáscaraDropout | ✓ | ✓ | ✓ | ✓ |
Morfológico | ✓ | ✓ | ✓ | ✓ |
Sem operação | ✓ | ✓ | ✓ | ✓ |
Distorção óptica | ✓ | ✓ | ✓ | ✓ |
Elementos de sobreposição | ✓ | ✓ | ||
Almofada | ✓ | ✓ | ✓ | ✓ |
PadIfNeeded | ✓ | ✓ | ✓ | ✓ |
Perspectiva | ✓ | ✓ | ✓ | ✓ |
PiecewiseAffine | ✓ | ✓ | ✓ | ✓ |
PixelDropout | ✓ | ✓ | ✓ | ✓ |
Cortar Aleatório | ✓ | ✓ | ✓ | ✓ |
RandomCropFromBorders | ✓ | ✓ | ✓ | ✓ |
RandomCropNearBBox | ✓ | ✓ | ✓ | ✓ |
RandomGridShuffle | ✓ | ✓ | ✓ | ✓ |
RandomResizedCrop | ✓ | ✓ | ✓ | ✓ |
Rotação aleatória90 | ✓ | ✓ | ✓ | ✓ |
Escala Aleatória | ✓ | ✓ | ✓ | ✓ |
RandomSizedBBoxSafeCrop | ✓ | ✓ | ✓ | ✓ |
Corte de tamanho aleatório | ✓ | ✓ | ✓ | ✓ |
Redimensionar | ✓ | ✓ | ✓ | ✓ |
Girar | ✓ | ✓ | ✓ | ✓ |
Rotação segura | ✓ | ✓ | ✓ | ✓ |
ShiftScaleRodar | ✓ | ✓ | ✓ | ✓ |
MenorMaxSize | ✓ | ✓ | ✓ | ✓ |
ThinPlateSpline | ✓ | ✓ | ✓ | ✓ |
Máscara de tempo | ✓ | ✓ | ✓ | ✓ |
Tempo reverso | ✓ | ✓ | ✓ | ✓ |
Transpor | ✓ | ✓ | ✓ | ✓ |
VerticalFlip | ✓ | ✓ | ✓ | ✓ |
Máscara XY | ✓ | ✓ | ✓ | ✓ |
Plataforma: macOS-15.0.1-arm64-arm-64bit
Processador: braço
Contagem de CPU: 10
Versão Python: 3.12.7
Número de imagens: 1000
Execuções por transformação: 10
Máximo de iterações de aquecimento: 1000
albumentações: 1.4.20
agosto: 1.0.0
imagem: 0.4.0
coroa: 0.7.3
visão da tocha: 0.20.0
Número - é o número de imagens RGB uint8 processadas por segundo em um único núcleo de CPU. Quanto maior, melhor.
Transformar | albumentações 1.4.20 | feio 1.0.0 | imagem 0.4.0 | Kornia 0.7.3 | visão da tocha 0.20.0 |
---|---|---|---|---|---|
HorizontalFlip | 8618±1233 | 4807±818 | 6042±788 | 390±106 | 914 ± 67 |
VerticalFlip | 22847±2031 | 9153±1291 | 10931±1844 | 1212 ± 402 | 3198±200 |
Girar | 1146±79 | 1119±41 | 1136 ± 218 | 143±11 | 181 ± 11 |
Afim | 682±192 | - | 774±97 | 147±9 | 130±12 |
Equalizar | 892±61 | - | 581±54 | 152±19 | 479±12 |
Cortar Aleatório80 | 47341±20523 | 25272±1822 | 11503±441 | 1510±230 | 32109±1241 |
ShiftRGB | 2349±76 | - | 1582±65 | - | - |
Redimensionar | 2316±166 | 611±78 | 1806±63 | 232 ± 24 | 195±4 |
RandomGamma | 8675±274 | - | 2318±269 | 108 ± 13 | - |
Tons de cinza | 3056±47 | 2720±932 | 1681±156 | 289±75 | 1838±130 |
Perspectiva Aleatória | 412±38 | - | 554±22 | 86±11 | 96±5 |
Desfoque Gaussiano | 1728±89 | 242±4 | 1090±65 | 176±18 | 79±3 |
Desfoque mediano | 868±60 | - | 813±30 | 5±0 | - |
Desfoque de movimento | 4047±67 | - | 612±18 | 73±2 | - |
Posterizar | 9094±301 | - | 2097±68 | 430±49 | 3196±185 |
Compressão JPEG | 918±23 | 778±5 | 459±35 | 71±3 | 625±17 |
Ruído Gaussiano | 166±12 | 67±2 | 206±11 | 75 ± 1 | - |
Elástico | 201±5 | - | 235±20 | 1±0 | 2±0 |
Clahe | 454±22 | - | 335±43 | 94±9 | - |
GrossoDropout | 13368±744 | - | 671±38 | 536±87 | - |
Borrão | 5267 ± 543 | 246±3 | 3807±325 | - | - |
ColorJitter | 628±55 | 255±13 | - | 55±18 | 46±2 |
Brilho | 8956±300 | 1163±86 | - | 472±101 | 429±20 |
Contraste | 8879±1426 | 736±79 | - | 425±52 | 335±35 |
RandomResizedCrop | 2828±186 | - | - | 287±58 | 511±10 |
Normalizar | 1196±56 | - | - | 626±40 | 519±12 |
PlankianJitter | 2204±385 | - | - | 813 ± 211 | - |
Para criar uma solicitação pull para o repositório, siga a documentação em CONTRIBUTING.md
Discórdia
Se você achar esta biblioteca útil para sua pesquisa, considere citar Albumentações: Aumentos de imagens rápidos e flexíveis:
@Article{info11020125,AUTHOR = {Buslaev, Alexander e Iglovikov, Vladimir I. e Khvedchenya, Eugene e Parinov, Alex e Druzhinin, Mikhail e Kalinin, Alexandr A.},TITLE = {Albumentações: aumentos de imagens rápidos e flexíveis},JOURNAL = {Informações},VOLUME = {11},ANO = {2020},NÚMERO = {2},NÚMERO-ARTIGO = {125},URL = {https://www.mdpi.com/2078-2489/11/2/125},ISSN = {2078-2489},DOI = {10.3390/info11020125 }}