Classificador de Faixas Etárias
Atividade 2
Para essa semana usamos imagens que obtemos do google para criar um modelo e exportá-lo para uma plataforma online.
Escolhi criar uma rede convolucional que classifica pessoas em relação a sua faixa etária com as classes:
[bebê, criança, adolescente, jovem adulto, adulto ou idoso]
Comecei com imagens a partir de queries simples do google, com isso era comum imagens desconectadas com a keyword requerida, como fotos de crianças ao se pesquisar sobre adultos ou imagens de cartoons e desenhos que divergem muito dos padrões do modelo.
Treinei o modelo por 2 estágios antes de modificar o dataset e a partir dos piores resultados limpei o dataset utilizando o método Image Cleaner mostrado no vídeo da lição 2 do fastai.
Após o treinamento olhei a matriz de confusão e o heatmap da análise de imagens.
O modelo erra ao reconhecer grupos próximos, como adultos e jovens adultos e crianças com adolescentes, o que são erros comuns que também cometemos.
O heatmap das imagens foca principalmente no rosto das pessoas, que era justamente o comportamento que esperava-se do classificador. Entretanto vemos que ainda há algumas discrepâncias no modelo, principalmente com a classe de idosos que tinha uma desproporcionalidade em ambos qualidade e quantidade de dados.
Finalmente testei o modelo com algumas fotos fora do dataset, como as do ator “Macauly Caulkin” dos filmes Esqueceram de Mim, onde o modelo identificou corretamente as diferentes etapas da vida do artista.
No geral foram pouco mais de 500 imagens e obtive cerca de 67% de acurácia, em versões futuras do problema um dataset melhor balanceado e com menos imagens discrepantes teria resultados ainda melhores para o problema. Você também pode testar o classificador no domínio: classificador disponível pelo Render.
Você também pode ver o código do classificador no meu repositório do github no link: repositório.