Шпаргалка по библиотеке
face_recognition
, которая поможет вам быстро начать работать с распознаванием лиц в Python.
### Установка
Убедитесь, что у вас установлены следующие зависимости:
pip install face_recognition
Если у вас возникают проблемы с установкой, убедитесь, что у вас также установлены
dlib
и
cmake
. Для установки
dlib
может потребоваться компилятор C++.
### Импорт библиотеки
import face_recognition
import cv2 # Для работы с изображениями
import numpy as np
### Основные функции
1.
Загрузка изображений - Загрузка изображения из файла:
image = face_recognition.load_image_file("your_image.jpg")
2.
Обнаружение лиц - Получение расположения лиц на изображении:
face_locations = face_recognition.face_locations(image)
3.
Извлечение признаков лиц - Получение векторов признаков для каждого обнаруженного лица:
face_encodings = face_recognition.face_encodings(image)
4.
Сравнение лиц - Сравнение векторов признаков для определения, совпадают ли лица:
results = face_recognition.compare_faces([known_face_encoding], unknown_face_encoding)
5.
Определение имен лиц - Определение имени на основе векторов признаков:
known_face_encodings = [face_recognition.face_encodings(face_recognition.load_image_file("known_face.jpg"))[0]]
known_face_names = ["Your Name"]
for unknown_face_encoding in face_encodings:
results = face_recognition.compare_faces(known_face_encodings, unknown_face_encoding)
if True in results:
first_match_index = results.index(True)
name = known_face_names[first_match_index]
### Пример использования
#### Полный пример распознавания лиц на изображении
import face_recognition
import cv2
# Загрузка изображения
image = face_recognition.load_image_file("your_image.jpg")
# Обнаружение лиц
face_locations = face_recognition.face_locations(image)
face_encodings = face_recognition.face_encodings(image)
# Конвертация изображения в формат OpenCV
image_cv2 = cv2.cvtColor(image, cv2.COLOR_RGB2BGR)
# Вывод результата
for (top, right, bottom, left), face_encoding in zip(face_locations, face_encodings):
# Нарисовать прямоугольник вокруг лица
cv2.rectangle(image_cv2, (left, top), (right, bottom), (0, 255, 0), 2)
# Сравнение с известными лицами (если есть)
# known_face_encodings - список известных векторов
# known_face_names - список имен известных лиц
results = face_recognition.compare_faces(known_face_encodings, face_encoding)
name = "Unknown"
if True in results:
first_match_index = results.index(True)
name = known_face_names[first_match_index]
# Отображение имени
cv2.putText(image_cv2, name, (left, top - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (255, 255, 255), 2)
# Показать изображение
cv2.imshow("Image", image_cv2)
cv2.waitKey(0)
cv2.destroyAllWindows()
### Полезные советы
-
Работа с видео: Чтобы распознавать лица в реальном времени, вы можете использовать библиотеку OpenCV для захвата видео с веб-камеры:
video_capture = cv2.VideoCapture(0)
while True:
ret, frame = video_capture.read()
# Обработка каждого кадра аналогично тому, как это сделано с изображениями
# ...
cv2.imshow('Video', frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
video_capture.release()
cv2.destroyAllWindows()
-
Сохранение векторов: Вы можете сохранять векторы признаков и имена в файл (например, JSON) для дальнейшего использования.
-
Оптимизация: Для улучшения производительности можно уменьшать размер изображения перед распознаванием.
### Заключение
Эта шпаргалка предоставляет основные команды и примеры использования библиотеки
face_recognition
. Вы можете исследовать документацию для более глубокого понимания и дополнительных возможностей.