• Что такое Deep Face?

Deepface - это легкая платформа для распознавания лиц и анализа лицевых атрибутов (возраст, пол, эмоции и раса) для Python.

Это гибридная структура распознавания лиц, включающая в себя самые современные модели: VGG-Face, Google FaceNet, OpenFace, Facebook DeepFace, DeepID, ArcFace и Dlib. Библиотека в основном основана на Keras и TensorFlow.

  • Используемый модуль:
  1. DeepFace
  2. OpenCV - (Чтобы прочитать входные изображения)
  3. Matplotlib - (для визуализаций)

Давайте посмотрим на реализацию:

  • Прежде всего вам необходимо установить необходимые библиотеки в среду Python.
pip install deepface
pip install opencv-python
pip install matplotlib
  • После установки импортируем установленные библиотеки.
from deepface import DeepFace
import cv2
import matplotlib.pyplot as plt
  • Теперь создайте одну функцию для чтения и проверки изображений.
def verify(img1_path,img2_path):
    img1= cv2.imread(img1_path)
    img2= cv2.imread(img2_path)
    
    plt.imshow(img1[:,:,::-1])
    plt.show()
    plt.imshow(img2[:,:,::-1])
    plt.show()
    output = DeepFace.verify(img1_path,img2_path)
    print(output)
    verification = output['verified']
    if verification:
       print('They are same')
    else:
       print('The are not same')
  • Давайте вызовем функцию проверки
verify('img36.jpg','img37.jpg')
  • Вот результат:

В приведенном выше результате вы можете видеть, что оба изображения одинаковы, и наша модель также предсказывает то же самое.

  • Теперь давайте посмотрим на другой пример с двумя разными изображениями.

  • Как я уже упоминал выше, модель Deepface поддерживает несколько моделей распознавания лиц. По умолчанию она использует модель VGG-Face. Теперь давайте посмотрим на другую модель и ее результат:
def verify(img1_path,img2_path,model_name):
    img1= cv2.imread(img1_path)
    img2= cv2.imread(img2_path)
    plt.imshow(img1[:,:,::-1])
    plt.show()
    plt.imshow(img2[:,:,::-1])
    plt.show()
   output=DeepFace.verify(img1_path,img2_path,model_name=model_name)
   print(output)
   verification = output['verified']
   
   if verification:
      print('They are same')
   else:
     print('The are not same')
  • Вот результат вывода модели Facenet.

Примечание. Здесь вы можете попробовать разные модели и увидеть разницу в точности.

  • Анализ лицевых атрибутов с помощью DeepFace

Используя DeepFace, вы также можете провести анализ лица, давайте разберемся на примере.

from deepface import DeepFace
img = cv2.imread('img12.jpg')
imgplot = plt.imshow(img)
obj = DeepFace.analyze(img_path = "img12.jpg", actions = ['age', 'gender', 'race', 'emotion'])

print(obj["age"]," years old ",obj["dominant_race"]," ",obj["dominant_emotion"]," ", obj["gender"])

Если вы хотите узнать больше о Deepface, вы можете изучить репозиторий Deepface на github.



Спасибо за чтение. Попробуйте и поделитесь своими ценными предложениями. Я ценю ваш честный отзыв!