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

Шаг 1. Предварительная обработка наборов данных

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

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

Шаг 2. Распознавание лиц

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

Шаг 3. Расчет отклонений

Чтобы определить, какая грань ближе всего, мы должны найти дисперсию или «расстояние» между гранями. Для этого нам нужно количественно оценить матрицы, которые мы получили ранее на этапе предварительной обработки, в одно число, что можно сделать, взяв норму Фробениуса. Затем мы сравниваем эти значения с тем, что находится на веб-камере, и лицо с наименьшим отклонением — это лицо, которое распознается.

Заключительные замечания

Этот процесс может показаться очень сложным, однако из-за его шаблонного характера Адам Гейтгей разработал библиотеку распознавания лиц, известную как face_recognition, которая использует подход переноса обучения. Библиотека очень хорошо документирована, и именно этот подход я использовал при создании моего трекера посещаемости на основе распознавания лиц. Я настоятельно рекомендую вам взглянуть, так как это фантастический первый взгляд на мир распознавания лиц.