Aula 03 – Python – Biblioteca Face Recognition – Identificando rostos

Aula 03 – Python – Face Recognition – Identificando faces

Biblioteca Face Recognition

Biblioteca Face Recognition

Biblioteca Face Recognition – Identificando rostos

Voltar para página principal do blog

Todas as aulas desse curso

Aula 02                            Aula 04 (Ainda não disponível)

Código da aula:

https://github.com/toticavalcanti/codigo-fluente-face-recognition-tutorial

Documentação oficial do Face Recognition:

https://github.com/ageitgey/face_recognition

Se gostarem do conteúdo dêem um joinha 👍 na página do Código Fluente no
Facebook

Link do código fluente no Pinterest

Meus links de afiliados:

Hostinger

Digital Ocean

One.com

Melhore seu NETWORKING

Participe de comunidades de desenvolvedores:

Aula 03

Biblioteca Face Recognition – Identificando rostos na imagem

Nessa aula vamos ver mais dois exemplos, o primeiro é o pullfaces.py, nele iremos usar uma das imagens de grupo, e fazer o face_recognition pegar cada rosto na foto, recortar e salvar na pasta /saved_images/, usando o PIL.

E o segundo exemplo é o identify.py, onde vamos identificar as pessoas em uma foto, desenhando um quadrado delimitador em torno do rosto,  colocando o nome delas em baixo de cada foto e salvando a foto como /saved_images/identified.jpg.

PIL

PIL é uma biblioteca da linguagem de programação Python que adiciona suporte à abertura e gravação de muitos formatos de imagem diferentes.

O módulo Image fornece uma classe com o mesmo nome, usada para representar uma imagem PIL.

O módulo também fornece várias funções, funções para carregar imagens de arquivos, para criar novas imagens, etc.

Vamos lá:

pullfaces.py


from PIL import Image
import face_recognition

image = face_recognition.load_image_file('./img/groups/team1.jpg')
face_locations = face_recognition.face_locations(image)

for face_location in face_locations:
    top, right, bottom, left = face_location

    face_image = image[top:bottom, left:right]
    pil_image = Image.fromarray(face_image)
    # pil_image.show()
    pil_image.save(f'./saved_images/{top}.jpg')

identify.py


import face_recognition
from PIL import Image, ImageDraw

image_of_silvio_santos = face_recognition.load_image_file('./img/known/silvio_santos.jpg')
silvio_santos_face_encoding = face_recognition.face_encodings(image_of_silvio_santos)[0]

image_of_faustao = face_recognition.load_image_file('./img/known/faustao.jpg')
faustao_face_encoding = face_recognition.face_encodings(image_of_faustao)[0]

image_of_xuxa = face_recognition.load_image_file('./img/known/xuxa.jpg')
xuxa_face_encoding = face_recognition.face_encodings(image_of_xuxa)[0]

#  Create arrays of encodings and names
known_face_encodings = [
  silvio_santos_face_encoding,
  faustao_face_encoding,
  xuxa_face_encoding
]

known_face_names = [
  "Silvio Santos",
  "Fausto Silva",
  "Xuxa"
]

# Load test image to find faces in
test_image = face_recognition.load_image_file('./img/groups/xuxa_fausto_silvio.jpg')

# Find faces in test image
face_locations = face_recognition.face_locations(test_image)
face_encodings = face_recognition.face_encodings(test_image, face_locations)

# Convert to PIL format
pil_image = Image.fromarray(test_image)

# Create a ImageDraw instance
draw = ImageDraw.Draw(pil_image)

# Loop through faces in test image
for(top, right, bottom, left), face_encoding in zip(face_locations, face_encodings):
  matches = face_recognition.compare_faces(known_face_encodings, face_encoding)

  name = "Unknown Person"

  # If match
  if True in matches:
    first_match_index = matches.index(True)
    name = known_face_names[first_match_index]
  
  # Draw box
  draw.rectangle(((left, top), (right, bottom)), outline=(255,255,0))

  # Draw label
  text_width, text_height = draw.textsize(name)
  draw.rectangle(((left,bottom - text_height - 10), (right, bottom)), fill=(255,255,0), outline=(255,255,0))
  draw.text((left + 6, bottom - text_height - 5), name, fill=(0,0,0))

del draw

# Display image
pil_image.show()

# Save image
pil_image.save('./saved_images/identified.jpg')

É isso, ficamos por aqui, na próxima, mais mão na massa.

Aula 02                            Aula 04 (Ainda não disponível)

Todas as aulas desse curso

Voltar para página principal do blog

Meu github:

https://github.com/toticavalcanti/codigo-fluente-face-recognition-tutorial

Documentação oficial do Face Recognition:

https://github.com/ageitgey/face_recognition

Se gostarem do conteúdo dêem um joinha 👍 na página do Código Fluente no
Facebook

Link do código fluente no Pinterest

Meus links de afiliados:

Hostinger

Digital Ocean

One.com

Valeu, obrigado e bons estudos 😉

About The Author
-

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>