В настоящее время широко применяется язык программирования Python, который обладает потрясающими возможностями и широким набором инструментов для их использования: в задачах искусственного интеллекта, умного дома и в целом, нейронных сетей. Вместе с тем Python богат на библиотеки! Caleb Hattingh в своей книге «20 Python Libraries You Aren't Using (But Should) предупреждает, что «экосистема» Python обширна и перспективна как по масштабу, так и по глубине. Начинать в этом сумасшедшем лесу с открытым исходным кодом сложно, и даже людям с многолетним опытом все еще требуются постоянные усилия, чтобы идти в ногу с лучшими библиотеками и методами. Книга поможет изучить некоторые из менее известных библиотек и инструментов Python, включая сторонние модули и полезные инструменты в стандартной библиотеке, которые заслуживают большего внимания [1].
Распознавание лиц является актуальным направлением в современной науке и технологиях. Его преимущества заключаются в возможности достижения высокой точности и скорости идентификации, а также минимизации ошибок человеческого фактора.
В работе использована библиотека OpenCV c открытым исходным кодом, которая работает на многих платформах и которая позволяет загружать, обрабатывать и сохранять изображения в различных форматах. Целью исследования является разработка алгоритма распознавания лиц с использованием библиотеки OpenCV на Python. В связи с поставленной целью важно выделить следующие задачи: выбор используемых библиотек и инструментов; сбор и обработка данных; разработка и тестирование алгоритмов распознавания лиц; анализ результатов исследования.
Для структурирования информации об «известных лицах» используется база данных, представленная на рисунке 1.
Рис. 1. Каталог проекта
На рисунке 2 изображена база данных, содержащая информацию о людях, занесенных в базу: first_name, last_name, title, image_path.
Рис. 2. База данных employees
База данных используется для сбора информации об «известных лицах», такой как, индивидуальный номер, имя, фамилия, должность и наименование файла с фото необходимым для сравнения известного лица в последующей аутентификации. С помощью базы данных можно не только редактировать данные уже известных люде, но и удалять или создавать.
Алгоритмы распознавания образов из библиотеки OpenCV используются для определения местоположения и кодировки лиц на кадре, а затем для сопоставления обнаруженных лиц с известными из базы данных лиц (рисунок 3).
Рис. 3. Фото известных лиц
Если обнаруживается соответствие, то имя известного лица выводится на кадре видеопотока в окне с помощью функций OpenCV для рисования прямоугольника и надписи. Результат работы программы показан на рисунке 4.
Рис. 4. Результат работы программы, когда лицо известное и неизвестное
Тестирование алгоритмов на видео показало, что разработанная программа полностью отвечает поставленным задач, а данная методология исследования включает в себя все необходимые этапы для проведения исследования в области распознавания лиц с использованием библиотеки OpenCV на Python.
Результатом выполнения работы является программа, способная обнаруживать и распознавать лица в видеопотоке на основе сравнения с базой данных, что может быть использовано в различных областях, например, для управления доступом или для повышения безопасности на рабочем месте. Для повышения точности распознавания лиц может потребоваться доработка алгоритмов и использование более сложных моделей глубокого обучения. Также стоит учитывать, что наличие препятствий, таких как бороды, маски или солнцезащитные очки, может затруднить распознавание лиц.
Недостатком может быть невысокая скорость работы при большом количестве лиц, так как её алгоритм работает в последовательном режиме. Однако, существуют более сложные и эффективные алгоритмы обработки данных, которые могут быть использованы для повышения скорости работы таких программ. Можно отметить, что в данном коде продемонстрировано использование нескольких основных элементов Python, таких как работа с библиотекой OpenCV, файлами, обработка изображений, работа с базой данных и управление потоками вывода.
Литература:
- Caleb Hattingh. 20 Python Libraries You Aren't Using (But Should). Released August 2016 Publisher(s): O'Reilly Media, Inc.