Python Face Detection - utilizando a biblioteca insightface e modelo Buffalo_l para detecção de faces em imagens

Python Face Detection - utilizando a biblioteca insightface e modelo Buffalo_l para detecção de faces em imagens
Identificando faces com a biblioteca insightface

Neste artigo, vamos explorar um exemplo de código em Python para detectar faces em uma imagem, desenhar círculos vermelhos ao redor das faces detectadas, adicionar informações sobre as faces detectadas à imagem e salvar essas informações em um arquivo JSON. Vamos utilizar a biblioteca InsightFace para detectar as faces e a biblioteca PIL para manipular as imagens.

Pré-requisitos:

Certifique-se de ter as seguintes bibliotecas instaladas:

  • insightface: Para a detecção de faces.
  • PIL: Para manipulação de imagens.
  • numpy: Para operações numéricas.
  • json: Para manipulação de arquivos JSON
  • datetime: Para obter informações de data e hora.
  • os: Para manipulação de caminhos de arquivo.
  • buffalo_l: última versão do modelo buffalo_l.

Você pode instalar as bibliotecas necessárias usando o gerenciador de pacotes pip.

Passo a Passo:

  1. Carregando a Imagem: Começamos carregando uma imagem usando a biblioteca PIL. Definimos o caminho da imagem e usamos a função Image.open() para carregar a imagem.
  2. Inicializando o Modelo de Análise de Rosto: Em seguida, inicializamos o modelo de análise de rosto da InsightFace usando a classe FaceAnalysis().
  3. Preparando o Modelo: Preparamos o modelo para inferência, especificando o contexto de execução e o tamanho da detecção.
  4. Detectando Faces: Usamos o método get() do modelo de análise de rosto para detectar as faces na imagem carregada. O resultado é uma lista de objetos de face.
  5. Desenhando Círculos Vermelhos: Se faces forem detectadas na etapa anterior, desenhamos círculos vermelhos ao redor das faces detectadas na imagem usando a biblioteca PIL.
  6. Adicionando Informações: Adicionamos informações sobre as faces detectadas à imagem, incluindo o número de faces detectadas e a data e hora da detecção.
  7. Salvando a Imagem Processada: Salvamos a imagem processada com os círculos vermelhos e as informações adicionadas.
  8. Salvando Informações em um Arquivo JSON: Salvamos as informações sobre as faces detectadas em um arquivo JSON, incluindo o caminho da imagem processada, o número de faces e a data e hora da detecção.
Resultado final do processamento da imagem com a marcação das faces identificadas e marcação das quantidades de faces identificadas no top da image

Conclusão:Neste artigo, exploramos um exemplo de código para detectar faces em uma imagem, desenhar círculos vermelhos ao redor das faces detectadas, adicionar informações sobre as faces detectadas à imagem e salvar essas informações em um arquivo JSON. Este exemplo demonstra como usar a biblioteca InsightFace e a biblioteca PIL para realizar essas tarefas de forma eficiente.

Repositório para download do código

GitHub - jaccon/facedetectionInsightFace: Face detection using Python with lib insightFace and model Buffalo_L
Face detection using Python with lib insightFace and model Buffalo_L - GitHub - jaccon/facedetectionInsightFace: Face detection using Python with lib insightFace and model Buffalo_L