- Что такое Deep Face?
Deepface - это легкая платформа для распознавания лиц и анализа лицевых атрибутов (возраст, пол, эмоции и раса) для Python.
Это гибридная структура распознавания лиц, включающая в себя самые современные модели: VGG-Face, Google FaceNet, OpenFace, Facebook DeepFace, DeepID, ArcFace и Dlib. Библиотека в основном основана на Keras и TensorFlow.
- Используемый модуль:
- DeepFace
- OpenCV - (Чтобы прочитать входные изображения)
- 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.
Спасибо за чтение. Попробуйте и поделитесь своими ценными предложениями. Я ценю ваш честный отзыв!