Многие люди используют комбинации библиотек для работы с изображениями, например: OpenCV, Dlib, Pillow и другие. Но это очень запутанный и проблемный процесс. Например, установка Dlib может быть чрезвычайно сложной и разочаровывающей.
Эта Python—библиотека использует OpenCV для обнаружения, выравнивания и извлечения изображений лиц в целях классификации, используя HOG или нейронные сети.
OpenCV более чем способен делать все, что необходимо в области обработки изображений, например: обнаруживать лица, выравнивать и извлекать лица, создавая так называемые «Face Chips».
Установка
Клонируйте репозиторий! Если у вас установлена Anaconda, тогда вы можете просто создать среду с прикрепленным файлом:
conda env create -f newHogEnv.yml
Для тестирования просто запустите программу pythonfaces.py:
python pythonfaces.py |image.jpg|
У него есть два других аргумента:
python pythonfaces.py |image.jpg| |face cascade model| |eye cascade model|
А если вы введете только имя файла изображения, то программа будет использовать файлы, находящиеся в папке «./data/haarcascades».
Эта программа обнаруживает лица на переданном изображении, извлекая каждое из них в новое изображение. Затем происходит преобразование в монохромный режим, выравнивание лица (выравнивает глаза по горизонтали) и вырезает лицо человека в квадратную форму нужного вам размера.
Используем pythonfaces как библиотеку
В этом модуле есть несколько полезных функций, и вы можете импортировать его следующим образом:
import pythonfaces
detectfaces
Эта функция получает изображение OpenCV (это может быть видеокадр), затем обнаруживает лица в нем и возвращает список с изображениями. Первое — это оригинальное помеченное изображение (где находятся лица и глаза), а остальные — обрезанные изображения каждого найденного лица (Face Chips), правильно выровненные и масштабированные.
Вы можете сохранить изображения прописав:
cv2.imwrite(|path of the file to be written|, |OpenCV image object|)
Параметры:
- img: изображение OpenCV;
- img_h, img_w: размер «квадрата» каждого «Chip Face», который будет сгенерирован;
- face_cascade_file: каскад модели Хаара для обнаружения лица — включен в «/data/haarcascades»;
- eye_cascade_file: каскадная модель Хаара для обнаружения глаз — включена в «/data/haarcascades»;
Эти модели взяты из оригинального проекта OpenCV на Github. Смотрите код файла pythonfaces.py, если хотите рассмотреть другие методы.