← Ко всем open source проектам

face_recognition

ageitgey/face_recognition

face_recognition — Python-библиотека и консольная утилита для распознавания лиц, построенная поверх dlib.

Форки 13,694
Автор ageitgey
Язык Python
Лицензия Не указано
Обновлено 2026-06-27

Что это такое

face_recognition — Python-библиотека для распознавания и сравнения лиц на изображениях. Она построена поверх dlib и дает более простой слой для задач, которые иначе требуют заметно больше кода и знаний о компьютерном зрении.

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

В описании проекта отдельно указана точность 99,38% на наборе Labeled Faces in the Wild для используемой модели. Это важный факт, но его нельзя переносить бездумно на любую камеру, освещение, группу людей и качество исходных данных.

Что внутри репозитория

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

Проект закрывает два уровня использования: Python API для приложений и команду для пакетной обработки файлов. Это удобно, когда нужно быстро проверить набор фотографий без написания полноценного интерфейса.

Как это обычно используют

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

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

Сравнение лиц в Python

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

Язык: Python
import face_recognition

known = face_recognition.load_image_file('known.jpg')
unknown = face_recognition.load_image_file('unknown.jpg')
known_encoding = face_recognition.face_encodings(known)[0]
unknown_encoding = face_recognition.face_encodings(unknown)[0]

print(face_recognition.compare_faces([known_encoding], unknown_encoding))

Что получается на практике

Сильная сторона проекта — очень понятный API. Библиотека не заставляет сразу изучать все детали нейросетевой модели, но оставляет достаточно гибкости для поиска лиц, кодирования признаков и сравнения результатов.

Еще один плюс — консольная утилита. Иногда нужно не встроить распознавание в сервис, а просто пройтись по каталогу изображений и получить быстрый ответ; для этого отдельная команда экономит много времени.

Ограничения и аккуратные места

Главное ограничение — чувствительность темы. Распознавание лиц связано с биометрическими данными, согласием людей, хранением признаков и ошибками модели. Техническая библиотека не решает юридические и этические вопросы за команду.

Есть и инженерные ограничения: установка dlib может быть сложнее обычного Python-пакета, особенно на машинах без подготовленных компиляторов и системных библиотек. Это стоит учитывать до выбора проекта для массового использования.

Кому подойдет

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

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