Crie um modelo de detecção de objetos com rótulos personalizados do Amazon Rekognition e Roboflow
Mark McQuade
A tecnologia de visão computacional tem se mostrado útil em todos setores — desde garantir a observância do uso de capacetes nos canteiros de obras e diferenciar entre plantas e ervas daninhas para uso direcionado de herbicidas até identificar e contar populações de células em experimentos de laboratório.
Ao treinarmos os computadores para interpretar o mundo visual tão bem quanto — ou melhor do que — os humanos conseguem, podemos identificar e classificar rapidamente os objetos e agir automaticamente com base nessas informações. Isso possibilita melhorar a segurança no local de trabalho, proteger nosso meio ambiente e acelerar a inovação em todos os setores.
Tipos de problema da visão computacional
Embora o resultado gerado pela visão computacional seja relativamente simples ("tal pessoa está ou não usando o capacete corretamente no canteiro de obras"), treinar o backend do sistema pode ser desafiador. Ele deve ser capaz de identificar e organizar os objetos com precisão de acordo com vários fatores, tais como:
- Classificação: "Isto é uma pessoa".
- Classificação + localização: "Isto é uma pessoa, e ela está num canteiro de obras".
- Detecção de objetos: "Há duas pessoas e mais um capacete no canteiro de obras".
- Segmentação semântica: "Há duas pessoas e mais um capacete, e esta é a forma de cada um."
- Detecção de pontos-chave e estimativa de postura: "Há duas pessoas. Um delas está usando capacete, mas ele não está posicionado corretamente. A outra não está usando capacete."
Para obter o resultado certo, os dados certos precisam ser inseridos. E isso geralmente requer sete etapas importantes. Vamos dar uma olhada nelas.
Sete etapas para treinar um modelo de detecção de objetos a partir do zero
1. Definir o problema
Comece definindo exatamente o que deseja fazer. Qual é o caso de uso? Isso ajudará a guiar cada uma das etapas seguintes.
2. Coleta de dados
Em seguida, será preciso coletar fotos e vídeos que sejam representativos do problema que você está tentando resolver. Por exemplo, se a intenção for criar um detector de capacete, será preciso coletar imagens de vários tipos de capacete, bem como as situações em que as pessoas vão usá-los. Lembre-se de fornecer imagens em várias de condições: brilhante vs. escura, interna vs. externa, ensolarada vs. chuvosa, pessoas sozinhas vs. em grupo, etc. Quanto maior a variedade, mais seu modelo poderá aprender.
3. Rotular
Existem dezenas de formatos de anotação de imagem, com rótulos de inúmeras formas e tamanhos. Algumas são populares, como Pascal VOC, COCO JSON e YOLO TXT. Mas cada estrutura de modelo espera um certo tipo de anotação. Por exemplo, o TensorFlow espera registros TF, e o serviço de reconhecimento espera um arquivo manifest.json que é específico para a anotação da AWS.
Então, acima de tudo, certifique-se de que as imagens estejam rotuladas em um formato consistente com o que a estrutura do seu modelo requer. E use uma ferramenta como o Amazon SageMaker Ground Truth para simplificar o processo.
Algumas dicas de rotulagem para ter em mente:
- Rotule ao redor da totalidade do objeto. É melhor incluir um pouco de buffer não objeto do que excluir parte do objeto dentro de um rótulo retangular. Seu modelo entenderá as bordas muito melhor dessa maneira.
- Rotule inteiramente objetos ocultos/ocluídos. Se um objeto estiver fora da vista por haver outro objeto na frente dele, rotule o objeto mesmo assim, como se fosse possível vê-lo na íntegra. Dessa maneira, seu modelo começará a entender os verdadeiros limites dos objetos.
- Para objetos parcialmente fora do quadro, o normal é rotular. Isso depende do problema que você está tentando resolver. Mas, em geral, até mesmo um objeto parcial deve ser rotulado.
4. Pré-processamento de dados
Agora precisamos formatar os dados corretamente para o modelo — redimensionar, reorientar, corrigir as cores, etc., conforme necessário. Por exemplo: se o modelo exige proporção quadrada, você deve formatar as fotos/vídeos para que preencham uma área quadrada — talvez usando pixels pretos ou brancos para ocupar o espaço vazio.
Também é recomendável remover os dados EXIF ou metadados das imagens, já que às vezes eles podem confundir o modelo. Ou, se quiser que o modelo seja insensível a cores (para que, por exemplo, a cor do capacete não influencie), poderá formatar as imagens/vídeos em tons de cinza para eliminar esse fator.
5. Aumento dos dados
Em seguida, você deve aplicar formatações diferentes ao conteúdo existente, para expor seu modelo a uma variedade mais ampla de exemplos de treinamento. Ao virar, girar, distorcer, desfocar e ajustar a cor das imagens, você está, na verdade, criando novos dados.
Então, em vez de tirar fotos de pessoas usando capacetes em diferentes condições de iluminação, você pode usar o aumento de dados para simular uma luz mais intensa ou suave no ambiente. O modelo também pode ser treinado para ficar insensível à oclusão, a fim de conseguir detectar um objeto mesmo que esteja bloqueado por outro. Você pode fazer isso adicionando "recortes" de caixa preta às fotos/vídeos para ajudar a treinar o modelo.
6. Treinar o modelo
Para treinar o modelo, você usará uma ferramenta como o Amazon Rekognition Custom Labels, que processará os dados criados durante as cinco primeiras etapas. Contudo, será preciso decidir o que é mais importante no seu caso de uso: a precisão, a velocidade ou o tamanho do modelo? Em geral, esses fatores são excludentes entre si.
7. Inferência
Agora é hora de colocar de fato o modelo em produção. Esta etapa varia dependendo do tipo de implantação. Por exemplo: você usará dispositivos incorporados, tais como câmeras numa linha de fábrica? Ou a implantação se dará no lado do servidor com o uso de APIs?
Veja o processo em ação
No ano passado, gravamos um webinar explicando como usar o Amazon Rekognition Custom Labels com Roboflow para implantar um sistema que detecta se as pessoas estão ou não usando máscara facial. Você pode aplicar as mesmas etapas aos seus modelos de detecção de objetos, a fim de atender aos seus casos de uso específicos.
Assista ao webinar sob demanda para acompanhar o processo integral de criar um modelo de detecção de objetos de trabalho.
Recent Posts
Destaques da palestra do Dr. Werner Vogels: Gerir a Complexidade com Simplicidade
Dezembro 6th, 2024
O poder das parcerias: Palestra do parceiro AWS re:Invent 2024 da Dra. Ruba Borno
Dezembro 5th, 2024
Principais destaques do AWS re: Invent 2024: A visão do Dr. Swami Sivasubramanian para a IA de geração
Dezembro 5th, 2024
Principais destaques do AWS re:Invent 2024: Keynote do CEO com Matt Garman
Dezembro 4th, 2024
Destaques da apresentação do AWS re:Invent 2024 com Peter DeSantis
Dezembro 4th, 2024