Предпосылки
Прежде чем приступить к работе над концепциями 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 Этот параметр указывает количество соседей, которые прямоугольник должен называть гранью.