Python Face Detection - utilizando a biblioteca insightface e modelo Buffalo_l para detecção de faces em imagens
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 JSONdatetime
: 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:
- 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. - Inicializando o Modelo de Análise de Rosto: Em seguida, inicializamos o modelo de análise de rosto da InsightFace usando a classe
FaceAnalysis()
. - Preparando o Modelo: Preparamos o modelo para inferência, especificando o contexto de execução e o tamanho da detecção.
- 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. - 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.
- 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.
- Salvando a Imagem Processada: Salvamos a imagem processada com os círculos vermelhos e as informações adicionadas.
- 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.
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