Что такое распознавание лиц?

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

Технология распознавания лиц не является чем-то чужим в нашу эпоху. Эта технология применяется практически повсеместно. Например, Apple, Samsung и Xiaomi установили технологию распознавания лиц в свои смартфоны, в основном они использовали их для разблокировки телефона. Другой пример - функция автоматической пометки Facebook. Facebook автоматически распознает, когда людей следует отмечать на фотографиях. Существуют и другие реализации распознавания лиц, упрощение безопасных транзакций, идентификация лиц в банкоматах, распознавание лиц при проверке в аэропорту и многое другое.

Как работает распознавание лиц?

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

  1. Обнаружение

Съемка человеческих лиц осуществляется путем цифрового сканирования 2D-фотографий или использования видео для получения 3D-фотографий лиц.

2. Выравнивание

При успешном обнаружении лица программа определит положение, размер и положение головы. Голова должна быть обращена в камеру под углом от 35 до 90 градусов.

3. Измерение

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

4. Нормализация

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

5. Представительство

После формирования подписи лица система преобразует ее в уникальный код. Это кодирование упрощает вычислительное сравнение вновь полученных данных лица с сохраненными базами данных ранее записанных данных лица.

4. Соответствие

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

Знакомство с OpenCV (библиотека компьютерного зрения с открытым исходным кодом)

Компьютерное зрение - это способность машины / компьютера видеть, чтобы извлекать информацию из изображения. Одной из областей, связанных с компьютерным зрением, является обработка изображений или обычно называемая обработкой изображений. OpenCV - это библиотека (библиотека), которая используется для обработки изображений и видео, чтобы мы могли извлекать из них информацию. Слово Open в OpenCV означает открытый исходный код, т.е. бесплатный, а не платный, может быть загружен кем угодно.

Хотя CV в слове OpenCV является сокращением от Computer Vision, это означает, что компьютер используется для обработки изображений, снятых записывающим устройством (например, камерой или веб-камерой), которые преобразуют данные из аналогового в цифровой, а затем обрабатывают на компьютере. со строками кода. OpenCV может работать на различных языках программирования, таких как C, C ++, Java, Python, а также поддерживать на различных платформах, таких как Windows, Linux, Mac OS, iOS и Android.

Знакомство с Python

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

По сути, язык программирования, разработанный Гвидо ван Россумом, на самом деле очень широко используется для создания программ, которые очень часто используются широкой публикой. Назовите это программой GUI (настольный компьютер), приложениями для смартфонов, программами CLI, IoT, играми, Интернетом, программами для взлома и многим другим.

Способность Python обрабатывать изображения очень ограничена, для этого ему необходимо импортировать библиотеки из OpenCV. Вот где связь между OpenCV и Python.

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

Чтобы иметь возможность создавать распознавание лиц с помощью Python и OpenCV. Первый шаг - установить библиотеку OpenCV в Python с помощью pip install:

На этом шаге мы сначала попытаемся реализовать обнаружение лиц. Вот код с использованием Python OpenCV:

Чтобы использовать код, мы должны написать эту строку в командной строке:

Результат:

Другой пример с обнаружением глаз:

Результат:

* Обнаружение глаз неидеально, особенно на лицах Роберта Дауни-младшего, поскольку он носит очки, а Крис Хемсворт обнаруживает только один глаз, поскольку он смотрит в другое место.

Примечания:

Приведенный выше код представляет собой базовую реализацию Python OpenCV для распознавания лиц, то есть обнаружения лиц. Код успешно обнаруживает лицо на фотографии. Обратите внимание, что у этих двух кодов есть файлы xml. Фактически это Каскадный классификатор (функция типа Хаара). Обнаружение кода не будет работать без файлов xml, поэтому вам необходимо сначала загрузить его отсюда:



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

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

Метод, предложенный Виолой и Джонсом, объединяет четыре основных ключа для обнаружения объекта (Viola, Paul, & Jones, 2001):

  1. Простая квадратная функция, называемая функцией Хаара.
  2. Интегральное изображение для быстрого обнаружения особенностей
  3. Метод машинного обучения AdaBoost
  4. Каскадный классификатор для объединения многих функций

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

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

Ссылки

Виола, Пол и Джонс, М. (2001). Быстрое обнаружение объектов с помощью усиленного каскада простых функций. В: Proceedings IEEE Conf. по компьютерному зрению и распознаванию образов.

Https://www.facefirst.com/blog/amazing-uses-for-face-recognition-facial-recognition-use-cases/

Https://theconversation.com/facial-recognition-is-increasingly-common-but-how-does-it-work-61354

Https://www.scienceabc.com/innovation/facial-recognition-works.html

Https://opencv.org/

Https://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_tutorials.html