Analisar, extrair e armazenar dados a partir de imagens

Bernardo Caldas
Data Hackers
Published in
3 min readMay 8, 2021

--

Photo by SpaceX on Unsplash

Neste post irei mostrar como extrair dados e extrair informações importantes para futuras análises a partir de fotos de rostos inicialmente.

para realizar as análises foi utilizado o framework em python chamado DeepFace: https://github.com/serengil/deepface

Em outro post foi mostrado como identificar fotos em em imagens, segue link :

https://medium.com/data-hackers/webapp-para-detectar-faces-8ee83a1442be

Porém seria interessante além de armazenar e contar os rostos extrair mais dados dessas imagens como;

  • Gênero
  • Idade
  • Raça
  • Humor

Para explicar melhor o que pretendemos fazer segue abaixo vídeo;

Face detector

Para fazer a detecção dos rostos em imagens usamos MTCNN ( Multi-Task Cascaded Convolutional Neural Network) igual no projeto anterior, porque MTCNN ? porque os resultados são melhores que outras tecnologias para detecção que foram testadas como ( haar cascades, dlib )

Para realizar a extração dos rostos em uma imagem foi usado a função abaixo;

após cada detecção iremos salvar cada detecção foto em um diretório local para realizar a análises dos atributos descritos;

salvando detecções individualmente

Reconhecimento Facial

Para realizar a análise dos atributos para cada foto de rosto salva usamos um framework chamado deepFace

img = 'sample.png'attributes = ['age', 'gender', 'race', 'emotion']demography = DeepFace.analyze(img, attributes)st.write(demography['age'])st.write(demography['dominant_emotion'])st.write(demography['gender'])st.write(demography['dominant_race'])
exemplo saída deepFace

Agora que temos as análises para cada foto iremos salvar essas informações em um dicionário, usamos um serviço gratuito chamado firebase, onde é possível usar funcionalidades do ‘storage’ para armazenar arquivos de fotos e o serviço ‘realtime-database’, para armazenar dados nosql.

Armazenamento

firebase

O serviço em nuvem para desenvolvedores móveis é um back-end completo para aplicações mobile (Android e iOS) e aplicações web. Com visual limpo e de uso simples, o Firebase é uma plataforma dedicada e SDK para a construção de aplicativos. Atualmente, o serviço suporta desenvolvimento nas linguagens de programação C++, Java, Javascript, Node.js, Objective-C e Swift.

incluindo informações no banco ex ;

data = {"name": "Mortimer 'Morty' Smith"}
db.child("users").push(data)
realtime database

incluindo imagens e arquivos no banco

for i in imageList:storage.child(str(i)).put(i)
storage

--

--

Bernardo Caldas
Data Hackers

Developer | AI | Driving innovation with development tools and AI. Making technology meaningful