Распознавание человека по лицу | Проекты по нейросетям
HTML-код
- Опубликовано: 25 ноя 2024
- Проект распознавания и верификации человека по лицу с помощью глубоких нейронных сетей.
Проекты по глубоким нейронным сетям - goo.gl/Bqnpco
Текстовое описание проекта - www.asozykin.r...
Полная версия программы из проекта - github.com/soz...
Библиотека dlib - dlib.net/
Обученные модели для выделения и распознавания лиц:
dlib.net/files/...
dlib.net/files/...
Примеры людей в паспорте и в жизни - www.adme.ru/tv...
Учебный курс "Глубокое обучение на Python" - www.asozykin.r...
Лекция "Сверточные нейронные сети" - • Сверточные нейронные с...
Лекция "Предварительно обученные нейронные сети" - • Предварительно обученн...
Мой канал с краткими и понятными объяснениями сложных тем в ИТ и компьютерных науках -
goo.gl/kW93MA
Такое короткое видео и насколько все понятно! Спасибо большое, Андрей!
Пожалуйста!
Андрей, замечательный проект! Спасибо!
Пожалуйста!
Андрей, большое вам спасибо. Благодаря вашему видео я смог написать курсовую работу по распознаванию лиц. Заслуженно - лайк
Очень интересный курс, спасибо. Попробовал сравнить фотографии своих детей (мальчик и девочка, разного возраста), стабильно с разными фотками определяет, что это один и тот же человек. Коэффициент от 0.508 до 0.57 :)
Да, мои студенты обнаружили такой же эффект. Детей, в том числе мальчика и девочку, определяет как одного человека. Даже если возраст отличается сильно. Видимо, нужно понижать порог срабатывания до 0,5 или ниже.
Интересная задача - собрать набор данных с фотографиями братьев и сестер и определить подходящую величину расстояния, чтобы их различать.
Мне кажется не достаточно хорошо определяется линия бровей и в носогубном треугольнике (сильно уж они не совпадают с реальными на фото), кроме того думается, что самих параметров которые измеряют не достаточно. Можно конечно набрать такую статистику с братьями, но это по моему не решит проблему. Выбранные параметры должны однозначно определять уникальность, при недостаточности параметров возможны варианты.
В машинном обучении, к сожалению, всегда происходит именно так. Если в обучающем наборе не было данных, с которыми мы работаем, то будут проблемы и неоднозначности.
0,5 это много . В БД на 1 000 человек ложные срабатывания не редкость даже при 0,42-0,45. Уверенное срабатывание начинается от 0,4-0,39. Да, кстати - сеть вообще не работает под азиатский тип лица. Практически все азиатские женские лица ложатся в диапазон 0,44 - 0,57.
1. Граница - это ориентировочное значение, которое рекомендуется разработчиками dlib для конкретного набора данных. Для реальных задач нужно подбирать подходящую границу.
2. Сеть в dlib обучена на лицах европейской внешности. С азиатскими или афроамериканскими работает плохо. Нужно на соответствующем наборе данных обучать.
Очень полезное и познавательное видео!
Спасибо!
Не думал что будет так просто)))
Андрей, супер урок! У меня сначала не хотела ставиться библиотека dlib для anaconda (у некоторых комментаторов тут тоже с этим ошибки были какие-то). В общем сделал conda update -all и после обновления библиотека уже встала. Я в экспериментальных целях подкорректировал код под себя, таким образом "скормил" нейросети ряд лиц коллег, потом по загружаемой фотографии определяю, кто же изображен на фото. Кстати, если на фото несколько лиц, "обнаружено" будет только последнее, точнее перезаписано в переменную. Можно и тут модифицировать код, путем записи в список, а не в одну переменную и таким образом "узнавать" на фото всех, если там несколько человек
Да, именно так. Сейчас код работает только с одним фото. Но модифицировать довольно легко.
Приветствую. А можно вариант оптимизированного кода в google collab получить?
Очень познавательно, спасибо, только начинаю изучать Python, классный язык, обязательно поэкспериментирую)
Успехов!
Команды Linux для установки необходимых библиотек:
sudo apt-get install python3-pip
pip3 install bs4
pip3 install html2text
pip3 install requests
pip3 install numpy
pip3 install scipy
pip3 install scikit-image
sudo apt-get install build-essential cmake
sudo apt-get install libopenblas-dev liblapack-dev
sudo apt-get install libx11-dev libgtk-3-dev
sudo apt-get install python python-dev python-pip
sudo apt-get install python3-dev
pip3 install dlib
sudo apt-get install python3-pybind11
sudo apt-get install python-pybind11
pip install nmslib
У меня на windows 10, conda 4.5.29, команда conda install -c conda-forge dlib устанавливает dlib 19.0, в котором еще нет используемого вами метода face_recognition_model_v1. Я вижу, что этот метод появился, начиная с версии dlib 19.5, как обновить dlib?
UPD Оказалось, что я ставил dlib в окружающей среде Python 2.7, для среды Python 3.. устанавливается dlib 19.7.
Если кто-то хочет работать с потоковым видео (как я), вам поможет OpenCV, которая тоже есть под третий
Питон методом conda install -c conda-forge opencv
+Ilya Pukhov, хорошо, что удалось разобраться! Спасибо за решение!
Четко и очень полезно
Спасибо!
У меня такая мысль зародилась. Может финдфеис и работает по такому же принципу, по этому он и нашёл похожее фото и нейросеть не смогла его отличить т.к. та же нейросеть признала и у них одинаковый алгоритм.
Да, именно так. Моя цель была показать ограничения алгоритма.
Спасибо за видео. А можно такой же проект на Google colab получить ссылку?
Вот ссылка на colab ноутбук - colab.research.google.com/drive/1vUqsckChVFos6Ei8Q7vr4hbZhCvoxZUv?usp=sharing
Однако сейчас на Colab какие-то проблемы с dlib и ноутбук перестал работать.
В некоторых случаях обеспечить большую точность распознавания поможет увеличение тестируемой выборки (не обязательно рыться в параметрах библиотеки).
p.s. Отличный курс с множеством примеров, спасибо.
p.p.s Андрей, вы пробовали обучать и тестировать NN в Google Cloud Platform, AWS и прочих сервисах облачных технологий?
Да, увеличение количества данных универсальный способ повышения точности работы любого алгоритма машинного обучения.
С облачными платформами не работал. Я использую суперкомпьютер "УРАН" (parallel.uran.ru/node/3 ), к которому у меня бесплатный доступ как у сотрудника.
а как сохранить полученный фото?
У кого не линк не пашет, тут можно скачать файлы
dlib.net/files/
Автору отдельное спасибо
Вот ссылка на код в Colab с установкой dlib и загрузкой нужных файлов - colab.research.google.com/drive/1OB4pZ4_PbujxYz_wwPtan8q1dZ4mYGt5?usp=sharing
@@AndreySozykin спасибо)
Андрей, добрый день. Смотрю ваши видео про нейронные сети и очень интересно и познавательно. Но у меня возник вот какой вопрос. По данной теме, что вы используете в этом видео. Возможно ли сверять не две фотографии, а какое-то количество сразу и при этом программа делала бы отсеивание и лишь оставляла ту, что дает вероятность, что на двух фотках один и тот же человек?
Можно сравнивать фотографии попарно. Либо если фотографий очень много, то какой-нибудь метод кластеризации.
На фотографии жена улыбается и в очках, поэтому программа некорректно сравнила- это видно по синим линиям. Думаю нужна фотография с той же эмоцией и без очков
Да, попробуйте эксперименты разные провести и посмотреть, что получится. Об интересных результатах можно в комментариях написать!
А что не так с очками? Положение глаз определено верно.
Как сохранить вектор дексриптора который уже был вычислен? Можно ли его использовать в другой программе для идентификации человека, без повторной обработки фото?
Сохранить, конечно же, можно. Дексриптор - это просто numpy array, который содержит 128 чисел. Его можно записать в файл любым удобным способом, например, с помощью средств numpy или вручную циклом.
Использовать в другой программе, конечно же, можно. Именно так и нужно делать.
Андрей , а как можно обмануть эту систему ?
Вот статья на эту тему - nplus1.ru/news/2021/09/27/makeup/amp
Здравствуйте. В Вашем примере, второе фото берется как снимок или Вы просто смотрите в камеру. У меня идея алгоритма: Человек подходит к камере и нейронка его определяет. Ваш вариант подходит для этого?
можно ли как-то фиксировать местоположение всплывающих окон ?
Андрей, доброго дня, подскажите, можно ли пользоваться dlib для работы с потоком видео? Распознавать лица в потоке? Или может быть есть более подходящие варианты?
+Сергей Матышев, напрямую в dlib средств для работы с видео нет. Но можно использовать, например, OpenCV. С помощью OpenCV читать видео с камеры или файла, разбивать на отдельные кадры и уже их обрабатывать dlib.
Мне показалось или dlib довольно медленная библиотека? Хаары конечно могут ухватить что нибудь не того (примерно как на сайте dlib они в ролике показывают) у меня так процентов 20 opencv нахватал кирпичей всяких (на фото были кирпичи) вместо лиц, в остальнм норм. При этом работает достаточно быстро и с видео тоже. К стати в этом же ролике ruclips.net/video/LsK0hzcEyHI/видео.html они показывают как с помощью dlib обрабатывают видео, но там библиотека для С++ по моему, да и видео захват они видимо не библиотечными средствами делают.
+panda19751, да, dlib работает не очень быстро. Каждый кадр из видеопотока обрабатывать не получится.
Dlib написан на C++, можно писать и на нем.
Приветствую автора. Благодарность за видео. Есть несколько вопросов. 1. В 2024 актуальны ли все библиотеки Python? И вообще работает ли приведённый метод 2. Имеет ли значения фотографии - цветная или нет?
666 - лайков. Рука не поднимается испортить такую цифру.
Пусть лучше будет 777 :-)
@@AndreySozykin уговорил)
Добрый день, пытаюсь переписать пример на с++. Не могу найти аналог в с++ вот этой функции a = distance.euclidean(face_descriptor1, face_descriptor2). Какую аналогичную функцию можно написать в с++.
Андрей, здравствуйте, вам случаем не известно, как можно определить смотрит ли человек прямо в камеру или нет ?? то есть, у нас есть видео поток , и мне надо определить смотрит ли человек в камеру или нет , я получаю 5 ландмарков человека, я пробовал просто измерять длину между точками глаз, но понял что это не подходит , так как у человека может быть просто врождённый дифект разности глаз , да и просто какогото среднего значения для множества людей не найти, если ещё способы определить смотрит ли человек прямо в камеру или нет ?
Здравствуйте. Можно исходний код ?
Можно ли этот код запустить под Android?
Спасибо! Это замечательно работает! Но возник впорос, может кто знает. Можно ли встроит этот код в хранимую процедуру sql server 2008, чтобы в рамках процедуры передевать в нее фото и получать расстояние?
К сожалению, в sql server 2008 совершенно не разбираюсь. Поэтому не смогу помочь...
как импортировать dlib в сод чтобы с него считывались данные?!
Что иментся в виду под сод?
Здравствуйте. Возник вопрос, можно ли переучить сеть, чтобы лучше распознавала лица на фото плохого качества (темные, мутные)? Если да, то где можно почитать/посмотреть об этом? Или же мне все таки нужна другая сетка?
Нужна предварительная обработка изображений для повышения качества. Можно посмотреть классические методы компьютерного зрения. Например, выравнивание гистограммы.
Андрей, добрый день. Есть вопрос по Евклидовому расстоянию. На моём компьютере вычисление Евклидового расстояния между двумя массивами заняло 1 микросекунду. Соответственно для поиска изображения в БД из 10 000 понадобится 10 секунд. Может быть есть алгоритмы поиска или алгоритмы фильтрации массивов?
Нашел решение. Вот тут хорошо написано habr.com/company/rambler-co/blog/417329/
Отлично!
Николай, можете проверить так Путина 2000 года и Путина 2018? Очень нужен такой ролик.
Спасибо за курс. Вот Вам вопрос, не знаю ответите ли на него: Как загрузить 1000 фотографий для вычисления среднего дескриптора между этими всеми 1000 фото? То есть с какими то определенными чертами
А на сколько высока точность?
А если сравнить дескрипторы двух одинаковых фотографий, чему они будут равны?
Они должны быть очень похожи друг на друга.
@@AndreySozykin сравнил они оказались равны 0.0 (я имел ввиду сравнить один и тот же файл)
Ошибка, подскажите в чем причина и как можно исправить:
AttributeError: module 'dask.array.numpy_compat' has no attribute 'nancumprod'
Андрей,добрый день. А можно как-то создать базу данных,где будут храниться уже готовые фотографии и при вводе новой фотки,чтобы система сравнивала с уже имеющимися? Если можно так сделать, то где это поискать можно?
Или как вы говорите в конце видео, для использования идентификации личности. Как это можно реализовать?
Очевидно, посчитать дескрипторы для всех людей (по фото) и так вот сравнивать.
Здравствуйте, мне пишет что вместо библиотеки skimage надо установить scikit
Андрей, пытаюсь разобраться как использовать dlib с gpu, но толковой информации по установка dlib с поддержкой cuda найти не могу. Может у вас есть какие-то решения на этот счет?
Dlib на GPU ни разу не запускал. Поэтому вряд ли смогу помочь.
в каком терминале я должен подключить модули с командой import dlib from skimage import io from scipy.spatial import distance?
В программе на Python.
@@AndreySozykin спасибо. Через anaconda или jupiter?
(base) C:\Users\Тимур>import dlib
"import" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
anaconda prompt выдает это сообщение.
Нужно сначала запустить python, и уже потом выполнять команды.
уже сделал. Никак понять не могу в какую именно папку скинуть файлы обученных моделей.
Добрый день. Скажите, а если я располагаю несколькими фотографиями одного и того же человека, но планирую верифицировать его позже по другой, новой фотографии, есть ли смысл усреднить дескрипторы по всем фото и сравнивать со средним значением для повышения точности. Или правильнее сравнить с каждым отдельно?
Точно имеет смысл извлекать дескрипторы из каждой фотографии. Что с ними делать дальше это отдельный вопрос и он сильно зависит от каждой конкретной системы. Насколько я знаю, лучше работает, если сохранить несколько дексприпторов для одного человека, и сравнивать с каждым дескриптором отдельно. Но если людей и дескрипторов много, то процесс может занимать долгое время. Если это проблема, то лучше иметь только один дескриптор на каждого человека. Какой из нескольких дескрипторов выбрать и каким способом - это целое искусство. Нужно пробовать разные способы и выбрать тот, который лучше работает на ваших данных и задаче.
Andrey Sozykin Возможно, тогда имеет смысл извлечь все дескрипторы для каждого человека и обучить по ним какой-то классификатор, например SVM?
+Дмитрий Пластун, да, это один из возможных вариантов.
Спасибо за ответ. Последний вопрос- как влияет разрешение фотографий на точность/скорость извлечения дескрипторов? Правильно я понимаю, что первоначально выделяется лицо, и нейронная сеть, извлекающая дескрипторы, работает уже только с этим фрагментом изображения?
Если я располагаю изображениями высокого разрешения, имеет ли смысл делать разумный resize перед получением дескрипторов для повышения скорости или это негативно отразится на точности?
Лучше из фото вырежь лица. Большие фото с меньшим от 3000 и выше обрабатывает очень медленно.
Здравствуйте, я столкнулся с проблемой: Я установил dlib в анаконде. Но когда я импортирую его в проект, возвращается ошибка ModuleNotFoundError . Помогите, пожалуйста, решить эту проблему. Андрею спасибо!
Точно модуль установлен? Ошибка говорит, что такого модуля нет.
@@AndreySozykin Я устанавливаю по команде, которую Вы посоветовали. Консоль показывает, что что-то устанавливается, все такое, но все равно в итоге при запуске проекта говорит, что не установлено
@@AndreySozykin Это точно рабочая команда для установки? У меня все никак не получается установить эту библиотеку.
А как решить ошибку при установки модуля dlib???
Какую именно ошибку?
@@AndreySozykin win1 = dlib.image_window()
Или, такая технология может использоваться в силовых структурах, которые в нормальных ДЕМОКРАТИЧЕСКИХ обществах используются действительно для охраны правопорядка и противодействия криминальным и другим правонарушениям и находятся под пристальным постоянным мониторингом независимых общественных организаций.
А в современной России такие технологии используются совершенно наоборот - для поддержки авторитарного режима, нарушения прав граждан и устранения демократической оппозиции. (Примеры распознавания, с реальными «посадками» студентов, которые были на митингах в Москве, мы все видели летом 2019).
Осознание ответственности за последствия изобретений и практического применения технологий людьми науки и технологами - совершенно не новый вызов: последствия изобретения атомных бомб и химического оружия мы, как человечество, будем расхлебывать ещё долго.
И планирование своей практической научной работы, построение внедрения технологий так, чтобы общество сохраняло контроль над такими технологиями - реальное требование и несомненно минимальное требование для ЛЮБОГО серьезного научного и технического специалиста.
Инфантильность социальная, атомарность и искусственная аполитичность - совершенно недопустимое поведение для ответственного за будущее и своей страны и всего человечества в будущем специалиста в области IT или любой другой науки.
Да, социальная ответственность за последствия использование технологий - это важный вопрос. Ещё важна этика искусственного интеллекта. Иначе мы через некоторое время можем оказаться в мире Черного зекрала.
Мы в институте lisp изучали - та еще жесть )))
List интересный функциональный язык, но на практике он бесполезен. Из функциональных лучше учить Scala.
это был 2000г. у ребят диплом был в котором они учили сеть распознавать рукописный текст.
+transformer7171, согласен, что лисп очень интересный язык и некоторые задачи на нем решать очень удобно. Но, все таки, область применения лисп сильно ограничена.
С этим трудно спорить. Но язык великолепен. Хотя порог вхождения, похож на пытку. Сначала мозг закипает, когда читаешь первые главы Common Lisp, к середине он взрывается, к концу книги наступает катарсис :-)
нам когда-то препод по лиспу говорила, что с ходу его схватывают студенты гуманитарных факультетов, не имеющие опыта программирования на других языках.:) А тем, кто на чем-то писал уже, понять его сложно. Но язык прекрасный, это да. Хотя дальше курса в универе его и не изучала, не было необходимости от практики. Но курс был с удовольствием и для шутки потом на нем мелочи писала.
Скажите пожалуйста можно ли с помощью "python face recognition" создать похожи сервис каким был Findface?? насколько это сложная задача для программистов?
Что имеется в виду под "python face recognition"? Библиотека pypi.org/project/face_recognition/ ?
Если да, то теоретически можно. Нужно загрузить много фотографий, извлечь из них векторы, сохранить и обеспечить быстрый поиск похожих векторов.
Это относительно просто, если лиц и соответсвующих векторов не много. Но если нужно обрабатывать несколько тысяч или миллионов лиц, то все становится гораздо сложнее.
@@AndreySozykin Спасибо за ответ! а без загрузки фото невозможно cделать так чтобы программа сама искала похожие векторы в социальных сетях? для этого наверно нужно огромные мощности?
В социальных сетях нет векторов, только фотографии. Поэтому на первом этапе обязательно фотографии скачать и векторы извлечь.
Не обязательно иметь очень большие мощности. Можно обрабатывать фотографии небольшими порциями. После изалечения вектора исходную фотографию хранить не обязательно, так что дискового пространство нужно не очень много.
@@AndreySozykin То Есть например клиент сервиса кидает фото человека которого нужно найти и программа скачивает из соцсетей фотографии небольшими порциями временно загружает их на сервер для анализа и ищет в них вектор который на 90% схож с лицом на исходной фотографией, как то так да??
Или вы имели в виду что можно изымать из пакета фотографии векторы и хранить лишь их на сервере вместе с прикрепленной страницей соцсети откуда она взята?
Хотел бы узнать как создать нейронную сеть для детектирования лица?
Для обнаружения лица на фотографии, или для определения чьё это лицо?
@@AndreySozykin для нахождения лица и попутно находить глаза и рот
В примере же есть про ключевые точки на лице, часть из них на глазах и рту. Можно выбрать нужные.
Или интересует, как создана такая сеть?
@@AndreySozykin интересует как она создана и вообще как самому такое повторить. Я пытался найти как построить архитектуру такой сети, но что-то нет ничего (
Про самому повторить ,имел ввиду саму нейронку, для того чтобы обучать и экспериментировать
А на заказ можете написать что бы она по базе фото проходила и искала похожих ?
Зависит от объема и сложности задачи. Пишите на sozykin@gmail.com.
Здравствуйте, Андрей! Очень хорошее видео, спасибо Вам за труд!
Хотела поинтересоваться, можно ли сделать такую программу, только используя CapsNet? Интересно было бы сравнить результаты.
Что можете посоветовать для реализации капсульных нейросетей?
Подскажите, пожалуйста, на каком этапе в коде обрезалась сеть? она уже скачивается обрезанной?
+Иван Мишалкин, скачали уже обрезанной и дополнительно обученной именно для распознавания лиц.
я так понял, что автор dlib взял 29 слоев из 34-слойной версии resNet, но как конфигурацию, а весы обучил с нуля на лицах. У меня к вам вопрос, Андрей, интересует ваше мнение: имеет ли смысл взять один из крутых сетей (vgg, inception, resnet) с весами, которые были обучены на широком ImageNet для использования в узком домене, скажем для тех же лиц? Естественно не все слои, а только начальные, которые представляют фильтры для общих фич, заморозить их от обучения и добавить слоями для обучения в своем наборе данных (базе лиц). Даст ли это эффект, или же лучше сделать как автор dlib, обнулить весы и обучать с нуля?
В dlib используется специальный подход к обучению, который придумали в Google для FaceNet - arxiv.org/pdf/1503.03832.pdf. Сеть обучается на наборах из трех фотографий - две фотографии одного человека, и одна другого. За счет этого удается создать такое представление, в котором евклидово расстояние между фотографиями одного человека небольшое. Вот пример обучения такой сети в dlib - dlib.net/dnn_metric_learning_on_images_ex.cpp.html
Класс. Спасибо за ваш труд) Скажите пжл, Вы в курсе как делается сервис на подобе find face? Или как и из чего делается поиск людей по фотографии, чтоб парсело с вк или инсты? Хоть чуть-чуть в курсе? Очень дико интересно стало, а инфы в нете ноль. Спасибо
Такие сервисы делаются очень просто. Загружаются фотографии из профилей вк, из них извлекаются векторы. Создается база, в ней пары - вектор и ссылка на профиль в вк. Но сейчас это противоречит законодательству о приватности, поэтому лучше так не делать.
@@AndreySozykin Большое спасибо за Ваш ответ) Это делается при помощи OpneCV, язык python или на PHP тоже есть шансы такое сделать? Просто че-то дико интересно стало мне, не знаю почему, но как то наткнулся на эту тему и прям интересно.
Можно с помощью Dlib и Python. Про php не знаю.
@@AndreySozykin Спасибо Вам
@@AndreySozykin Андрей, последний вопросик к Вам, заранее извиняюсь) Я в этой теме полный ноль и в языке питон тоже. Какие книги вы бы посоветовали изучить, чтобы быстрее приблизиться к этой теме, которую я озвучил выше, а именно создание что-то похожего на findface.
Здравствуйте, установил dlib как и вы, но теперь не работает spyder и anaconda navigator, не подскажете как можно исправить данную проблему?
Не сталкивался с таким.
@@AndreySozykin ок, спасибо за оперативность)
Если у кого-то будет такая же проблема просто создайте новую среду ( я создавал через anaconda navigator).
Затем, через него же скачивайте jupyter или ещё что-то и все работает
всё работает, только не понятно как запустить скрипт к примеру через консоль cmd т.е. вне интерфейса juputera и как мне добраться до знаяения Евклидово расстояния для дальнейшего анализа? Может можно его как-тосохранить? Спасибо.
Можно сохранить программу в файл, например, verification.py и запускать с помощью интерпретатора python:
python verification.py
Тогда все, что выдает функция print останется в консоли.
спасибо, я нашёл другое решение, можно сконвертировать файл juputera в обычный питоновский. Ещё 2 вопроса:
1) эта нейронная сеть не обучается? Она просто сравнивает 2 фотографии по признакам, верно. У меня стоит задача распознать определённого человека. Видел решения, которые подразумевали сначала обучение на множестве примеров фоток одно и того же человека, а потом его поиск на фотке. Как вы думаете какое решению лучше подходит?
2) Может подскажите как оптимизировать скорость работы скрипта? У меня в среднем уходит 15 сек на поиск одного человека, а скрипт мне нужно запускать миниму 3 раза т.к. я ищу 3х людей.
1. Да, нейронная сеть не обучается. Судя по тестам, сеть обучена достаточно хорошо, ее точность на задаче Labeled Faces in the Wild 99.38%. Поэтому можно не тратить время на повторное обучение. Извлекаете дескриптор из фотографии нужного вам человека и сохраняете его. Затем извлекаете дескриптор из новой фотографии и сравниваете его с сохраненным ранее дексриптором нужного вам человека.
2. Можно использовать dlib не на Python, а на C++, вот пример dlib.net/dnn_face_recognition_ex.cpp.html. Также можно в одной программе сразу сравнивать с тремя дескрипторами (или больше, если нужно) и выдавать идентификатор человека, который найден. Можно не показывать картинки и оставить только консольный режим, хотя наверняка это уже сделано.
подскажите пожалуйста как сохранить мои уже высчитаные значения face_descriptor1? Они всегда будут одни и теже и мне нужно их захардкодить прямо в код. Я хочу оптимизировать скрипт что бы он постоянно не высчитывал из фотки мои данные. Я ни как не могу нагуглить какой тип возвращаемых данных отдаёт функция facerec.compute_face_descriptor(). Пробовал запихивать в массив вот так face_descriptor1 = [-0.103657,0.112695,...] , но не работает. Спасибо.
попробуй в виде [-0.103657 0.112695 ...] в список. У меня так считывает из файла и работает. Причем хранится в виде ["Вася" "-0.103657" "0.112695" "..."] . Считывается в эталон, естественно , без первого значения. Ну и конвертируешь в float при считывании.
выдает ошибку "RuntimeError: Unable to open shape_predictor_68_face_landmarks.dat" кто то сталкивался?
Нужно загрузить файл shape_predictor_68_face_landmarks.dat с сайта dlib.
@@AndreySozykin с данной ошибкой я справился, но столкнулся с тем что критует при поиске по чернобелым фото.
Привет, можете сравнить Путина и прочих, сомнения появились, он ли это сейчас управляет страной, по сравнению с 2000 годом. Это очень важно и нужно, просмотры увеличатся в разы!
Андрей, спасибо за Ваш курс! Мне удалось таки установить библиотеки dlib, но при запуске Вашего кода получаю следующее сообщение:
File "C:\Anaconda3\lib\site-packages\PIL\Image.py", line 58, in
from . import _imaging as core
ImportError: DLL load failed: Не найден указанный модуль.
Прошу помощи в решении проблемы.
Алексей,удалось решить данную проблему? Я тоже столкнулся с данной ошибкой: "DLL load failed: A dynamic link library (DLL) initialization routine failed.
ruclips.net/video/6FdNgq-La3Y/видео.html вот современный ИИ. У вас прекрасный обучающий канал. Спасибо вам за вашу работу.
+transformer7171, пожалуйста! Рад, что понравилось!
мне так и не удалось заставить работать опенфейс ((
хоть у кого-то она взлетела?
о боже!
это же Джейсон Борн
Красава
Здравствуйте, а как можно скачать те файлы, по ссылке не могу скачать
Проверил, у меня все скачивается. Возможно, какие-то временные проблемы из-за блокировок Роскомнадзора.
Стаття 182. Уголовного Кодекса Украины (УК) Порушення недоторканності приватного життя
1. Незаконне збирання, зберігання, використання, знищення, поширення конфіденційної інформації про особу або незаконна зміна такої інформації, крім випадків, передбачених іншими статтями цього Кодексу, -
караються штрафом від п'ятисот до однієї тисячі неоподатковуваних мінімумів доходів громадян або виправними роботами на строк до двох років, або арештом на строк до шести місяців, або обмеженням волі на строк до трьох років.
2. Ті самі дії, вчинені повторно, або якщо вони заподіяли істотну шкоду охоронюваним законом правам, свободам та інтересам особи, -
караються арештом на строк від трьох до шести місяців або обмеженням волі на строк від трьох до п'яти років, або позбавленням волі на той самий строк.
Примітка. Істотною шкодою у цій статті, якщо вона полягає у заподіянні матеріальних збитків, вважається така шкода, яка в сто і більше разів перевищує неоподатковуваний мінімум доходів громадян.
Здравствуйте. При загрузке модели 'dlib_face_recognition_resnet_model_v1.dat') выдает ошибку: RuntimeError: Error while calling cudaGetDevice(&the_device_id) in file /tmp/pip-install-np2cx2kc/dlib_e91f47c29c4949128cf6fcb594d4bca3/dlib/cuda/gpu_data.cpp:204. code: 100, reason: no CUDA-capable device is detected
Путь на файл загруженной модели указываю, но все равно выдает ошибку. Подскажите, что можно сделать?
В идеале можно указывать ссылку на google colab, было бы супер. Заранее спасибо.
Здравствуйте. Можно исходний код ?
Здравствуйте. Можно исходний код ?
Здравствуйте. Можно исходний код ?
Здравствуйте. Можно исходний код ?