Топ

Библиотека Python для обнаружения и извлечения лиц с помощью OpenCV с использованием HOG/нейронных сетей

Многие люди используют комбинации библиотек для работы с изображениями, например: 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|)

Параметры:

  1. img: изображение OpenCV;
  2. img_h, img_w: размер «квадрата» каждого «Chip Face», который будет сгенерирован;
  3. face_cascade_file: каскад модели Хаара для обнаружения лица — включен в «/data/haarcascades»;
  4. eye_cascade_file: каскадная модель Хаара для обнаружения глаз — включена в «/data/haarcascades»;

Эти модели взяты из оригинального проекта OpenCV на Github. Смотрите код файла pythonfaces.py, если хотите рассмотреть другие методы.

fakeshluck

Recent Posts

10 удалённых Python-вакансий

Если вы ищете работу на Python, на Talanto.work сейчас есть варианты для junior, middle, senior…

6 месяцев ago

Где искать Python-вакансии в 2026 году: зачем на Talanto.work появился отдельный сценарий поиска

Рынок Python-вакансий большой, но удобным его назвать сложно. Формально вакансий много, однако в реальном поиске…

6 месяцев ago

Срезы в Python со всеми подробностями

Срезы в Python — это больше, чем a[2:7]. В статье — быстрый разбор полезных приёмов:…

8 месяцев ago

Возведение в степень в Python: полное руководство

В этой статье мы рассмотрим возведение в степень в Python с помощью различных методов, от…

9 месяцев ago

Как удалить дубликаты из списка Python?

Дубликаты в списке Python — частая проблема. В статье показано, как быстро убрать повторы, в…

9 месяцев ago

Виртуальный (shared) хостинг от SpaceWeb: технический обзор

Услуга виртуального хостинга на SpaceWeb позволяет арендовать часть сервера (shared-сервера) и разместить на нём свой…

11 месяцев ago