мы собираемся обнаруживать лица в видео. Как мы знаем, видео в основном создается из кадров, которые являются неподвижными изображениями. затем мы выполняем распознавание лиц для каждого кадра в видео

Прежде всего, вы устанавливаете OpenCV на свои машины. Если вы не знаете, как установить OpenCV. вы можете следить за моей предыдущей статьей Установка OpenCV для Python в Windows с помощью Anaconda

Обнаружение лиц с использованием каскадов Хаара — это подход, основанный на машинном обучении, при котором каскадная функция обучается на наборе входных данных. OpenCV уже содержит множество предварительно обученных классификаторов для лица, глаз, улыбки и т. д. Сегодня мы будем использовать классификатор лица. Вы также можете поэкспериментировать с другими классификаторами.

Вам необходимо скачать XML-файл обученного классификатора на GitHub (haarcascade_frontalface_default.xml), который доступен в репозитории OpenCV GitHub. вы можете перейти на страницу необработанных данных haarcascade_frontalface_default.xml, щелкнуть ее правой кнопкой мыши и сохранить как и сохранить этот файл в своем рабочем месте.

после этого запустите приглашение Anaconda из меню «Пуск».

Чтобы открыть блокнот Jupyter, нам нужно ввести следующую команду в командной строке:

Блокнот Юпитера

Когда записная книжка откроется в вашем браузере, вы увидите панель управления записной книжкой, которая покажет список записных книжек, файлов и подкаталогов в каталоге, где был запущен сервер записной книжки.

выберите путь к файлу и нажмите верхнюю часть правой кнопки «Создать» и выберите python 3 для создания файла записной книжки.

после этого вы можете увидеть файл блокнота Jupyter

после этого вы можете скопировать и вставить приведенный ниже код в этот пустой файл блокнота.

Чтобы обнаружить лица в видео:

после копирования и вставки кода в блокнот вы можете запустить этот файл, нажав кнопку «Выполнить».

после нажатия на кнопку запуска можно увидеть работу программы с использованием веб-камеры, распознавание лиц на видео с веб-камеры.

Несколько замечаний:

  • Обнаружение работает только на изображениях в градациях серого. Поэтому важно преобразовать цветное изображение в оттенки серого. (строка 15)
  • Функция detectMultiScale (строка 17) используется для обнаружения лиц. Он принимает 3 аргумента — входное изображение, коэффициент масштабирования и minNeighbours. scaleFactor указывает, насколько уменьшается размер изображения при каждом масштабировании. minNeighbours указывает, сколько соседей должно быть у каждого прямоугольника-кандидата, чтобы сохранить его. Вы можете подробно прочитать об этом здесь. Возможно, вам придется настроить эти значения, чтобы получить наилучшие результаты.
  • faces содержит список координат прямоугольных областей, в которых были найдены лица. Мы используем эти координаты для рисования прямоугольников на нашем изображении.
  • мы используем бесконечный цикл для просмотра каждого кадра в видео. Мы используем cap.read() для чтения каждого кадра. Первое возвращаемое значение — это флаг, указывающий, правильно ли был прочитан фрейм. Нам это не нужно. Второе возвращаемое значение — это неподвижный кадр, на котором мы будем выполнять обнаружение.

Социальные сети: LinkedIn, Twitter, Instagram, YouTube