Neste post, discutimos as melhores práticas para melhorar o desempenho de seus modelos de visão computacional usando Rótulos personalizados do Amazon Rekognition. O Rekognition Custom Labels é um serviço totalmente gerenciado para criar modelos personalizados de visão computacional para casos de uso de classificação de imagens e detecção de objetos. O Rekognition Custom Labels baseia-se nos modelos pré-treinados em Reconhecimento da Amazônia, que já são treinados em dezenas de milhões de imagens em muitas categorias. Em vez de milhares de imagens, você pode começar com um pequeno conjunto de imagens de treinamento (algumas centenas ou menos) específicas para seu caso de uso. O Rekognition Custom Labels abstrai a complexidade envolvida na construção de um modelo personalizado. Ele inspeciona automaticamente os dados de treinamento, seleciona os algoritmos de ML corretos, seleciona o tipo de instância, treina vários modelos candidatos com várias configurações de hiperparâmetros e gera o melhor modelo treinado. Os rótulos personalizados do Rekognition também fornecem uma interface fácil de usar do Console de gerenciamento da AWS para gerenciar todo o fluxo de trabalho de ML, incluindo rotular imagens, treinar o modelo, implantar o modelo e visualizar os resultados do teste.
Há momentos em que a precisão de um modelo não é a melhor e você não tem muitas opções para ajustar os parâmetros de configuração do modelo. Nos bastidores, existem vários fatores que desempenham um papel fundamental para construir um modelo de alto desempenho, como os seguintes:
- Ângulo da imagem
- Resolução de imagem
- Proporção da imagem
- Exposição à luz
- Clareza e vivacidade do fundo
- Contraste da cor
- Tamanho dos dados da amostra
A seguir estão as etapas gerais a serem seguidas para treinar um modelo Rekognition Custom Labels em nível de produção:
- Revisar taxonomia – Isso define a lista de atributos/itens que você deseja identificar em uma imagem.
- Colete dados relevantes – Esta é a etapa mais importante, onde você precisa coletar imagens relevantes que devem se assemelhar ao que você veria em um ambiente de produção. Isso pode envolver imagens de objetos com planos de fundo, iluminação ou ângulos de câmera variados. Em seguida, você cria conjuntos de dados de treinamento e teste dividindo as imagens coletadas. Você só deve incluir imagens do mundo real como parte do conjunto de dados de teste e não deve incluir imagens geradas sinteticamente. As anotações dos dados coletados são cruciais para o desempenho do modelo. Certifique-se de que as caixas delimitadoras estejam apertadas ao redor dos objetos e que os rótulos estejam corretos. Discutimos algumas dicas que você pode considerar ao criar um conjunto de dados apropriado posteriormente nesta postagem.
- Revise as métricas de treinamento – Use os conjuntos de dados anteriores para treinar um modelo e revisar as métricas de treinamento para pontuação F1, precisão e recuperação. Discutiremos em detalhes sobre como analisar as métricas de treinamento posteriormente neste post.
- Avalie o modelo treinado – Use um conjunto de imagens não vistas (não usadas para treinar o modelo) com rótulos conhecidos para avaliar as previsões. Essa etapa sempre deve ser executada para garantir que o modelo funcione conforme o esperado em um ambiente de produção.
- Retreinamento (opcional) – Em geral, treinar qualquer modelo de aprendizado de máquina é um processo iterativo para alcançar os resultados desejados, um modelo de visão computacional não é diferente. Revise os resultados na Etapa 4, para ver se mais imagens precisam ser adicionadas aos dados de treinamento e repita as Etapas 3 a 5 acima.
Neste post, focamos nas práticas recomendadas para coletar dados relevantes (Etapa 2) e avaliar suas métricas treinadas (Etapa 3) para melhorar o desempenho do seu modelo.
Colete dados relevantes
Este é o estágio mais crítico do treinamento de um modelo de Rekognition Custom Labels de nível de produção. Especificamente, existem dois conjuntos de dados: treinamento e teste. Os dados de treinamento são usados para treinar o modelo e você precisa se esforçar para criar um conjunto de treinamento apropriado. Os modelos de etiquetas personalizadas do Rekognition são otimizados para Pontuação F1 no conjunto de dados de teste para selecionar o modelo mais preciso para seu projeto. Portanto, é essencial selecionar um conjunto de dados de teste que se assemelhe ao mundo real.
Número de imagens
Recomendamos ter um mínimo de 15 a 20 imagens por etiqueta. Ter mais imagens com mais variações que reflitam seu caso de uso melhorará o desempenho do modelo.
Conjunto de dados balanceado
Idealmente, cada rótulo no conjunto de dados deve ter um número semelhante de amostras. Não deve haver uma grande disparidade no número de imagens por rótulo. Por exemplo, um conjunto de dados em que o número mais alto de imagens para um rótulo é 1,000 versus 50 imagens para outro rótulo se assemelha a um conjunto de dados desequilibrado. Recomendamos evitar cenários com proporção desigual de 1:50 entre o rótulo com o menor número de imagens e o rótulo com o maior número de imagens.
Vários tipos de imagens
Inclua imagens no conjunto de dados de treinamento e teste que se assemelhem ao que você usará no mundo real. Por exemplo, se você deseja classificar imagens de salas de estar versus quartos, deve incluir imagens vazias e mobiliadas de ambos os cômodos.
A seguir está uma imagem de exemplo de uma sala de estar mobiliada.
Em contraste, o seguinte é um exemplo de uma sala de estar sem mobília.
O seguinte é uma imagem de exemplo de um quarto mobiliado.
O seguinte é uma imagem de exemplo de um quarto sem mobília.
Planos de fundo variados
Inclua imagens com fundos diferentes. Imagens com contexto natural podem fornecer melhores resultados do que o plano de fundo simples.
O seguinte é uma imagem de exemplo do jardim da frente de uma casa.
O seguinte é uma imagem de exemplo do jardim da frente de uma casa diferente com um fundo diferente.
Variando as condições de iluminação
Inclua imagens com iluminação variável para cobrir as diferentes condições de iluminação que ocorrem durante a inferência (por exemplo, com e sem flash). Você também pode incluir imagens com saturação, matiz e brilho variados.
O seguinte é uma imagem de exemplo de uma flor sob luz normal.
Em contraste, a imagem a seguir é da mesma flor sob luz forte.
Ângulos variados
Inclua imagens tiradas de vários ângulos do objeto. Isso ajuda o modelo a aprender diferentes características dos objetos.
As imagens a seguir são do mesmo quarto de diferentes ângulos.
Pode haver ocasiões em que não seja possível adquirir imagens de vários tipos. Nesses cenários, as imagens sintéticas podem ser geradas como parte do conjunto de dados de treinamento. Para obter mais informações sobre técnicas comuns de aumento de imagem, consulte Aumento de dados.
Adicionar rótulos negativos
Para classificação de imagens, adicionar rótulos negativos pode ajudar a aumentar a precisão do modelo. Por exemplo, você pode adicionar um rótulo negativo, que não corresponde a nenhum dos rótulos necessários. A imagem a seguir representa os diferentes rótulos usados para identificar flores totalmente crescidas.
Adicionando o rótulo negativo not_fully_grown
ajuda o modelo a aprender características que não fazem parte do fully_grown
rótulo.
Lidando com a confusão de rótulos
Analise os resultados no conjunto de dados de teste para reconhecer quaisquer padrões perdidos no conjunto de dados de treinamento ou teste. Às vezes é fácil identificar esses padrões examinando visualmente as imagens. Na imagem a seguir, o modelo está lutando para resolver entre um rótulo de quintal vs. pátio.
Nesse cenário, adicionar mais imagens a esses rótulos no conjunto de dados e também redefinir os rótulos para que cada rótulo seja distinto pode ajudar a aumentar a precisão do modelo.
Aumento de dados
Dentro do Rekognition Custom Labels, realizamos vários aumentos de dados para treinamento de modelos, incluindo corte aleatório da imagem, instabilidade de cores, ruídos gaussianos aleatórios e muito mais. Com base em seus casos de uso específicos, também pode ser benéfico adicionar aumentos de dados mais explícitos aos seus dados de treinamento. Por exemplo, se você estiver interessado em detectar animais em imagens coloridas e em preto e branco, poderá obter uma precisão melhor adicionando versões em preto e branco e coloridas das mesmas imagens aos dados de treinamento.
Não recomendamos aumentos nos dados de teste, a menos que os aumentos reflitam seus casos de uso de produção.
Revise as métricas de treinamento
Pontuação F1, precisão, recall e limiar assumido são os métrica que são gerados como uma saída do treinamento de um modelo usando os Rótulos personalizados do Rekognition. Os modelos são otimizados para a melhor pontuação F1 com base no conjunto de dados de teste fornecido. O limite assumido também é gerado com base no conjunto de dados de teste. Você pode ajustar o limite com base em seus requisitos de negócios em termos de precisão ou recall.
Como os limites assumidos são definidos no conjunto de dados de teste, um conjunto de teste apropriado deve refletir o caso de uso de produção do mundo real. Se o conjunto de dados de teste não for representativo do caso de uso, você poderá ver pontuações F1 artificialmente altas e um desempenho insatisfatório do modelo em suas imagens do mundo real.
Essas métricas são úteis ao realizar uma avaliação inicial do modelo. Para um sistema de nível de produção, recomendamos avaliar o modelo em relação a um conjunto de dados externo (500–1,000 imagens não vistas) representativo do mundo real. Isso ajuda a avaliar como o modelo funcionaria em um sistema de produção e também identificar quaisquer padrões ausentes e corrigi-los por meio do retreinamento do modelo. Se você observar uma incompatibilidade entre as pontuações da F1 e a avaliação externa, sugerimos que você examine se os dados do seu teste estão refletindo o caso de uso do mundo real.
Conclusão
Nesta postagem, apresentamos as práticas recomendadas para melhorar os modelos de rótulos personalizados do Rekognition. Nós encorajamos você a aprender mais sobre Etiquetas personalizadas de reconhecimento e experimentá-lo para seus conjuntos de dados específicos de negócios.
Sobre os autores
Amit Gupta é arquiteto sênior de soluções de serviços de IA na AWS. Ele é apaixonado por capacitar os clientes com soluções de aprendizado de máquina bem arquitetadas em escala.
Yogesh Chaturvedi é Arquiteto de Soluções na AWS com foco em visão computacional. Ele trabalha com clientes para enfrentar seus desafios de negócios usando tecnologias de nuvem. Fora do trabalho, ele gosta de caminhar, viajar e assistir a esportes.
Hao Yang é um Cientista Aplicado Sênior da equipe Amazon Rekognition Custom Labels. Seus principais interesses de pesquisa são detecção de objetos e aprendizado com anotações limitadas. Fora dos trabalhos, Hao gosta de assistir a filmes, fotografia e atividades ao ar livre.
Mistério Pashmeen é gerente de produto sênior para rótulos personalizados do Amazon Rekognition. Fora do trabalho, Pashmeen gosta de caminhadas de aventura, fotografia e passar tempo com sua família.
- AI
- arte ai
- gerador de arte ai
- ai robô
- Reconhecimento da Amazônia
- inteligência artificial
- certificação de inteligência artificial
- inteligência artificial em bancos
- robô de inteligência artificial
- robôs de inteligência artificial
- software de inteligência artificial
- Aprendizado de máquina da AWS
- Console de gerenciamento da AWS
- blockchain
- conferência blockchain ai
- Coingenius
- inteligência artificial conversacional
- conferência de criptografia ai
- dall's
- deep learning
- google ai
- Intermediário (200)
- aprendizado de máquina
- platão
- platão ai
- Inteligência de Dados Platão
- Jogo de Platão
- PlatãoData
- jogo de platô
- escala ai
- sintaxe
- zefirnet