Comments 6
Помню эту оригинальную статью face_recognition, жаль что ссылки на нее нет в посте. Взяли пример из оригинальной статьи и даже не доработали. Из недостатков подхода - лицо есть файл без привязки кто. Добавить новое лицо без перезагрузки - невозможно. Чем больше база лиц - тем сильнее будет тупить. Каждый раз при запуске программы - считывается каталог фоток, считаются их расстояния, но тут даже об этом речи нет - входное изображение одно). Удачи.
Для написания функционала изучал много статей на хабре, но не плагиатил и не копировал не одну. Поэтому не надо писать "Взяли пример из оригинальной статьи и даже не доработали " - это 100% не так.
" ... лицо есть файл без привязки кто..." - есть привязка к одному лицу, для реализации мне достаточно было распознавать 1 лицо. Для реализации более сложного функционала использовал бы БД с лицами - в этом не было необходимости.
Важно заметить, что для работы системы требуется база эталонов(с разных ракурсов и прочего). Т.е. система применима только в местах куда доступ предоставлен строго определенному кругу лиц.
Не получится запускать людей, сразу присваивая им id в системе и узнавать при следующей встрече.
global
не должен использоваться так, как это делаете вы (хотя его использование в целом не особо приветствуется)Использование асинхронности для CPU/GPU-bound задач, которые как раз и являются явным боттлнеком функции в вашем случае - бесполезная идея
os, datetime и asyncio - стандартные встроенные модули Python, а представлены как сторонние библиотеки
Весьма ужасный стиль форматирования а-ля тяп-ляп и так сойдёт. Можно было перечитать хотя бы раз статью и убедиться самому?
Использование магических чисел - определенно бэд практис
По итогу мы имеем статью в стиле туториалов ХаудиХо или Гоши Дударя, где базовые вещи представляются как что-то сверхкрутое, а стиль кода и используемые практики оставляют желать лучшего. Стоит отметить, что у них своя ниша - популяризация разработки среди совсем начинающих. А Хабр - всё-таки больше для людей попродвинутее, им не стоит популяризировать плохие практики, а стоит приучать к тому, как правильно
Нужно добавить модель детектора лица, его преобразование в вектор (внезапно, биометрия) с последующим сохранением в векторную БД (chroma db, например). Модель вынести в отдельный процесс, запросы в бд делать асинхронно, сам сервис написать на fastapi и будет нормальный курсач.
Использование face_recognition и OpenCV для автоматического распознавания лиц и отправки уведомлений в Telegram