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](/content/images/size/w1200/2024/01/img_2024-01-2800-54-58.jpg)
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
.
![](https://www.jaccon.com.br/content/images/2024/01/image-7.png)
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.
![](https://www.jaccon.com.br/content/images/2024/01/img_2024-01-2800-54-58-1.jpg)
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