O blog da AWS

Utilizando image classification e Augmented AI em imagens de raio-x para detecção de COVID-19 – Parte 2

Por Thiago Couto, Arquiteto de Soluções na AWS

 

Na parte 1 dessa série de blogposts, utilizamos o algoritmo built-in da AWS, image classification, para classificar imagens de exames de raios-X de pacientes buscando por indícios de Covid-19. Embora nosso classificador tenha demonstrado um alto valor de confiabilidade com as imagens testadas, podemos ter imagens em que o modelo não tenha uma acurácia aceitável e uma validação de um especialista se faz necessário.

A validação humana é um caso comum em problemas que envolvem machine learning, para isso a AWS conta com o serviço Amazon Augmented AI (Amazon A2I), que provê as features necessárias para atribuir tarefas a um grupo de usuários que serão responsáveis pela tomada de decisão.

Nesse blogpost criaremos uma workforce com um usuário, criaremos um template para o usuário interagir com a tarefa, criaremos uma tarefa para o usuário com uma imagem da nossa pasta de teste e simularemos um usuário realizando a classificação. o Notebook com todos os passos desse post você pode encontrar aqui: https://github.com/thiagomcouto/covid19_image_classification_part2_amazon_a2i

 

Criando a workforce privada

Para iniciarmos nosso trabalho, vamos criar uma workforce privada. Vamos seguir o tutorial do link: https://docs.thinkwithwp.com/sagemaker/latest/dg/sms-workforce-create-private-console.html#create-workforce-sm-console

E preencher com os seguintes valores:

  • Private team creation: Selecione “Create a private team with AWS Cognito”
  • Team Name: Escolha um nome para sua equipe como “Medical-Private-Team”
  • Add Workers: Selecione “Invite new workers by email”
  • Email Addresses: insire seu e-mail (importante ter acesso a esse e-mail para executar a validação)
  • Organization name: Insira um nome relevante para sua organização
  • Contact email: insira seu e-mail novamente

Segue exemplo dos campos preenchidos:

 

Com a private team criada, copie o ARN da sua private team como na imagem abaixo:

 

Copie o campo na variável abaixo:

 

Agora vamos confirmar nosso e-mail e validar que conseguimos logar na aplicação com sucesso. O e-mail tem o título: “You’re invited by YOURORGANIZATION to work on a labeling project”. Clique no link, digite o usuário e senha no e-mail e escolhe uma nova senha.

 

Inicializando

Com nossa private team devidamente criada e com nosso cadastro validado, vamos iniciar a criação de um workflow de review de uma imagem, simulando o papel de um médico verificando a imagem de um raio-X e tomando a decisão.

Abaixo vamos fazer inicializar nossas bibliotecas e configurar variáveis para posterior utilização. Para esse blogpost estamos utilizando a região us-east-1.

 

 

Criando o template

Com as variáveis e libs inicializadas, vamos criar o template, esse template será a base da nossa interface gráfica para validação. uma lista de templates de exemplo pode ser encontrada aqui: https://github.com/aws-samples/amazon-a2i-sample-task-uis

 

 

Com o template definido vamos criar uma taskUI

Definindo o workflow

Na célula abaixo, vamos criar definir um workflow. Basicamente nosso workflow relaciona uma interface para uma tarefa humana, uma equipe (no nosso caso privada) criada anteriormente e um bucket onde vamos armazenar a resposta do nosso usuário que fará a interação com a tarefa. Mais detalhes sobre workflow aqui: https://docs.thinkwithwp.com/sagemaker/latest/dg/a2i-create-flow-definition.html

 

 

Na célula abaixo validaremos se nosso flow já se encontra ativo o pronto para o uso

 

Criando um human loop

Após as etapas anteriores, vamos criar um human loop, enviando uma imagem de um raio-x do post anterior para um usuário de nossa private team validar e dar o veredito. Nesse post estou utilizando uma das imagens da nossa pasta de teste da part 1 desse post, para utilizar outra imagem basta alterar o endereço abaixo.

 

 

Executando a tarefa

Com a tarefa criada, vamos abri-la e selecionar a classificação correta, para acessar as tarefas pendentes, vamos até o e-mail e abriremos o link recebido (o mesmo que utilizamos para trocar a senha anteriormente). Após logarmos teremos uma visão similar a tela abaixo:

 

Ao selecionarmos a tarefa e clicarmos em Start working, teremos a tela abaixo:

 

No caso acima, a imagem pertencia a classe “Detectado”. Selecionamos a opção correta (1) e clicamos em “Submit”. A tarefa vai ser finalizada e o resultado vai ser armazenado do s3 informado no momento da criação do flow.

Interessante observar que a tela foi formada com base no nosso template e é amplamente customizável para conter outras categorias, textos, descrições e afins. No link citado anteriormente temos outras sugestões de templates para criarmos a interface da nossa tarefa.

 

Analisando o resultado

Após submeter a tarefa com nossa resposta, os dados da nossa análise são armazenados no S3 que informamos para output, seguindo o padrão YYYY/MM/DD/hh/mm/ss. Essa estrutura torna a resposta particionada e facilmente integrável com AWS Glue e Athena. Mais informações no link: https://docs.thinkwithwp.com/sagemaker/latest/dg/a2i-monitor-humanloop-results.html

Vamos utilizar o nome do human loop que armazenamos anteriormente para buscar o local exato do json, faremos a leitura de seu conteúdo e armazenaremos itens importantes para a análise da resposta.

 

Na célula abaixo temos a imagem que foi usada para análise e a resposta que submetemos na tarefa.

 

Conclusão e próximos passos

Nessa série de blogposts utilizamos um dataset de raios-x torácico previamente classificados entre pacientes detectados ou não com o Covid-19.

Na primeira parte exploramos o algoritmo de image classification built-in da AWS, baseado em ResNet, para treinarmos um modelo e fazermos a validação de seu desempenho.

Na segunda parte exploramos a necessidade de termos uma avaliação humana para casos de respostas não assertivas do modelo. Criando um fluxo de análise manual que recebe como input a imagem previamente analisada, cria uma tarefa para um grupo de usuários privados e possibilita que esses usuários analisem as imagens e classifiquem-na corretamente.

Abaixo seguem alguns links relevantes e próximos passos:

Documentação para human review: https://docs.thinkwithwp.com/sagemaker/latest/dg/a2i-use-augmented-ai-a2i-human-review-loops.html

Algoritmo de classificação de imagem: https://docs.thinkwithwp.com/sagemaker/latest/dg/image-classification.html

Treinamentos oficiais de machine learning: https://thinkwithwp.com/training/learn-about/machine-learning/

 

 


Sobre o autor

Thiago Couto é arquiteto de soluções na AWS e atua no segmento Enterprise auxiliando clientes de Retail e CPG em suas jornadas para nuvem. Possui mais de 10 anos de experiência atuando em arquiteturas que englobam AI/ML, integrações, IoT e correlatos.