Технологии компьютерного зрения

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

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

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

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

Анализ лица:

Он пытается понять что-то о людях по чертам их лица, таким как возраст, пол, эмоции.

Отслеживание лица:

Он в основном присутствует в видеоанализе и пытается проследить за лицом и его чертами (глазами, носом и губами) от кадра к кадру. Самыми популярными приложениями являются различные фильтры, доступные в мобильных приложениях, таких как Snapchat, Instagram.

Здесь мы сосредоточимся на распознавании лиц: -

Теория:

Наименьший элемент изображения называется пикселем или элементом изображения. По сути, это точка на картинке. Изображение состоит из нескольких пикселей, расположенных в ряды и столбцы.

Вы часто будете видеть количество строк и столбцов, выраженное как разрешение изображения. Например, телевизор Ultra HD имеет разрешение 3840 x 2160 пикселей, что означает ширину 3840 пикселей и высоту 2160 пикселей.

Но компьютер не воспринимает пиксели как цветные точки. Он понимает только числа. Для преобразования цветов в числа компьютер использует различные цветовые модели.

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

В изображениях в градациях серого (черно-белых) каждый пиксель представляет собой одно число, представляющее количество света или интенсивность, которую он несет. Во многих приложениях диапазон интенсивности составляет от 0 (черный) до 255 (белый). Все значения от 0 до 255 - это разные оттенки серого.

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

Функция:

Функция - это часть информации на изображении, которая имеет отношение к решению определенной проблемы. Это может быть что-то простое, например значение одного пикселя, или более сложное, например края, углы и формы. Вы можете объединить несколько простых функций в сложную.

Применение определенных операций к изображению дает информацию, которую также можно рассматривать как функцию. Компьютерное зрение и обработка изображений имеют большой набор полезных функций и операций по извлечению признаков.

По сути, любое неотъемлемое или производное свойство изображения может использоваться как функция для решения задач.

Алгоритм:

Алгоритм Виолы-Джонса назван в честь двух исследователей компьютерного зрения, предложивших этот метод в 2001 году: Пола Виолы и Майкла Джонса.

Они разработали общую структуру обнаружения объектов, которая смогла обеспечить конкурентоспособные показатели обнаружения объектов в режиме реального времени. Его можно использовать для решения множества задач обнаружения, но основная мотивация исходит от обнаружения лиц.

Алгоритм Виолы-Джонса состоит из 4 основных шагов, и мы узнаем больше о каждом из них в следующих разделах:

  1. Выбор функций типа Хаара
  2. Создание целостного образа
  3. Запуск обучения AdaBoost
  4. Создание каскадов классификаторов

Учитывая изображение, алгоритм просматривает множество более мелких подобластей и пытается найти лицо, ища конкретные особенности в каждой подобласти. Ему необходимо проверить множество разных положений и масштабов, потому что изображение может содержать много лиц разных размеров. Виола и Джонс использовали черты Хаара для распознавания лиц.

Харр-подобная функция:

Все человеческие лица имеют некоторое сходство. Если вы посмотрите на фотографию лица человека, вы увидите, например, что область глаз темнее переносицы. Щеки также светлее области вокруг глаз. Мы можем использовать эти свойства, чтобы понять, есть ли на изображении человеческое лицо.

Простой способ узнать, какая область светлее или темнее, - это суммировать значения пикселей обеих областей и сравнить их. Сумма значений пикселей в более темной области будет меньше суммы пикселей в более светлой области. Это может быть выполнено с помощью функций, подобных Хаару.

Функция, похожая на Хаара, представлена ​​выделением прямоугольной части изображения и разделением этого прямоугольника на несколько частей. Они часто визуализируются как черные и белые смежные прямоугольники.

Если разница между средним значением белого и средним черным близка к 255. Это означает, что все, что представляет собой функция Harr-Like, присутствует.

Код:

Этот фрагмент в основном импортирует необходимый пакет (CV2) для процесса каскадирования.

Face_cascade читает haarcascade_frontface из репозитория OpenCV GitHub

Преобразование цветного изображения в оттенки серого: -

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

Рисование прямоугольника вокруг изображения:

Отображает окончательное изображение: -

Вывод: