Предпосылки

Прежде чем приступить к работе над концепциями OpenCV, необходимо практическое знание Numpy и Matplotlib. Перед установкой OpenCV убедитесь, что у вас установлены и запущены следующие пакеты.

  • питон
  • Нампи
  • Матплотлиб

Распознавание лиц с помощью OpenCV-Python

Давайте теперь воспользуемся библиотекой OpenCV для обнаружения лиц на изображении.

Загрузить необходимые библиотеки

Загрузка изображения для тестирования в оттенках серого

Преобразование в RGB из формата BGR

Поскольку мы знаем, что OpenCV загружает изображение в формате BGR, поэтому нам нужно преобразовать его в формат RBG, чтобы иметь возможность отображать его истинные цвета. Напишем для этого небольшую функцию.

Каскадные файлы Хаара

OpenCV поставляется с множеством предварительно обученных классификаторов. Например, существуют классификаторы для улыбки, глаз, лица и т. д. Они представлены в виде XML-файлов и находятся в папке OpenCV/data/haarcascades/. Однако для простоты вы также можете получить к ним доступ отсюда. Загрузите XML-файлы и поместите их в папку данных в том же рабочем каталоге, что и блокнот Jupyter.

Загрузка классификатора для анфас

Распознавание лиц

Мы будем использовать модуль detectMultiscale классификатора. Эта функция вернет прямоугольник с координатами (x, y, w, h) вокруг обнаруженного лица. Эта функция имеет два важных параметра, которые необходимо настроить в соответствии с данными.

  • коэффициент масштабирования На групповом снимке некоторые лица могут быть ближе к камере, чем другие. Естественно, такие лица будут казаться более заметными, чем те, что сзади. Этот фактор компенсирует это.
  • minNeighbors Этот параметр указывает количество соседей, которые прямоугольник должен называть гранью.

Код

Отображение исходного изображения в цвете