Распознавание человека по лицу | Проекты по нейросетям

Поділитися
Вставка
  • Опубліковано 14 сер 2017
  • Проект распознавания и верификации человека по лицу с помощью глубоких нейронных сетей.
    Проекты по глубоким нейронным сетям - goo.gl/Bqnpco
    Текстовое описание проекта - www.asozykin.ru/deep_learning...
    Полная версия программы из проекта - github.com/sozykin/dlpython_c...
    Библиотека dlib - dlib.net/
    Обученные модели для выделения и распознавания лиц:
    - dlib.net/files/shape_predictor...
    - dlib.net/files/dlib_face_recog...
    Примеры людей в паспорте и в жизни - www.adme.ru/tvorchestvo-fotog...
    Учебный курс "Глубокое обучение на Python" - www.asozykin.ru/courses/nnpython
    Лекция "Сверточные нейронные сети" - • Сверточные нейронные с...
    Лекция "Предварительно обученные нейронные сети" - • Предварительно обученн...
    Мой канал с краткими и понятными объяснениями сложных тем в ИТ и компьютерных науках -
    goo.gl/kW93MA
  • Наука та технологія

КОМЕНТАРІ • 181

  • @user-dp3tu7nk3x
    @user-dp3tu7nk3x 3 роки тому +3

    Такое короткое видео и насколько все понятно! Спасибо большое, Андрей!

  • @daryamarkova5723
    @daryamarkova5723 6 років тому +13

    Андрей, замечательный проект! Спасибо!

  • @PseudoDev
    @PseudoDev 2 роки тому +2

    Андрей, большое вам спасибо. Благодаря вашему видео я смог написать курсовую работу по распознаванию лиц. Заслуженно - лайк

  • @user-pu4oy9pl9r
    @user-pu4oy9pl9r 6 років тому

    Добрый день, пытаюсь переписать пример на с++. Не могу найти аналог в с++ вот этой функции a = distance.euclidean(face_descriptor1, face_descriptor2). Какую аналогичную функцию можно написать в с++.

  • @Voha
    @Voha 6 років тому +5

    Очень полезное и познавательное видео!

  • @user-si1jl3xu5l
    @user-si1jl3xu5l 2 роки тому

    Здравствуйте. В Вашем примере, второе фото берется как снимок или Вы просто смотрите в камеру. У меня идея алгоритма: Человек подходит к камере и нейронка его определяет. Ваш вариант подходит для этого?

  • @user-hv3xc2wh7m
    @user-hv3xc2wh7m 4 роки тому

    Андрей,добрый день. А можно как-то создать базу данных,где будут храниться уже готовые фотографии и при вводе новой фотки,чтобы система сравнивала с уже имеющимися? Если можно так сделать, то где это поискать можно?

  • @alekseizorin
    @alekseizorin 5 років тому

    Ошибка, подскажите в чем причина и как можно исправить:
    AttributeError: module 'dask.array.numpy_compat' has no attribute 'nancumprod'

  • @user-kx5df7sn8x
    @user-kx5df7sn8x 5 років тому

    Спасибо за курс. Вот Вам вопрос, не знаю ответите ли на него: Как загрузить 1000 фотографий для вычисления среднего дескриптора между этими всеми 1000 фото? То есть с какими то определенными чертами

  • @feniks418
    @feniks418 4 роки тому

    Здравствуйте, мне пишет что вместо библиотеки skimage надо установить scikit

  • @user-en7rw9uf8d
    @user-en7rw9uf8d 4 роки тому

    Андрей, здравствуйте, вам случаем не известно, как можно определить смотрит ли человек прямо в камеру или нет ?? то есть, у нас есть видео поток , и мне надо определить смотрит ли человек в камеру или нет , я получаю 5 ландмарков человека, я пробовал просто измерять длину между точками глаз, но понял что это не подходит , так как у человека может быть просто врождённый дифект разности глаз , да и просто какогото среднего значения для множества людей не найти, если ещё способы определить смотрит ли человек прямо в камеру или нет ?

  • @svetoslav17
    @svetoslav17 6 років тому

    можно ли как-то фиксировать местоположение всплывающих окон ?

  • @lorem727
    @lorem727 2 роки тому +1

    Не думал что будет так просто)))

  • @user-rx8wy6sz3z
    @user-rx8wy6sz3z 5 років тому +1

    Андрей, пытаюсь разобраться как использовать dlib с gpu, но толковой информации по установка dlib с поддержкой cuda найти не могу. Может у вас есть какие-то решения на этот счет?

    • @AndreySozykin
      @AndreySozykin  5 років тому

      Dlib на GPU ни разу не запускал. Поэтому вряд ли смогу помочь.

  • @user-ej5up4bk8o
    @user-ej5up4bk8o 5 років тому +1

    Андрей, добрый день. Есть вопрос по Евклидовому расстоянию. На моём компьютере вычисление Евклидового расстояния между двумя массивами заняло 1 микросекунду. Соответственно для поиска изображения в БД из 10 000 понадобится 10 секунд. Может быть есть алгоритмы поиска или алгоритмы фильтрации массивов?

    • @user-ej5up4bk8o
      @user-ej5up4bk8o 5 років тому +1

      Нашел решение. Вот тут хорошо написано habr.com/company/rambler-co/blog/417329/

    • @AndreySozykin
      @AndreySozykin  5 років тому

      Отлично!

    • @user-cj5js1gz7v
      @user-cj5js1gz7v 5 років тому

      Николай, можете проверить так Путина 2000 года и Путина 2018? Очень нужен такой ролик.

  • @user-hv3xc2wh7m
    @user-hv3xc2wh7m 4 роки тому +1

    Андрей, добрый день. Смотрю ваши видео про нейронные сети и очень интересно и познавательно. Но у меня возник вот какой вопрос. По данной теме, что вы используете в этом видео. Возможно ли сверять не две фотографии, а какое-то количество сразу и при этом программа делала бы отсеивание и лишь оставляла ту, что дает вероятность, что на двух фотках один и тот же человек?

    • @AndreySozykin
      @AndreySozykin  4 роки тому

      Можно сравнивать фотографии попарно. Либо если фотографий очень много, то какой-нибудь метод кластеризации.

  • @imai_official
    @imai_official 4 роки тому +1

    Четко и очень полезно

  • @annmi268
    @annmi268 4 роки тому +1

    Здравствуйте. Возник вопрос, можно ли переучить сеть, чтобы лучше распознавала лица на фото плохого качества (темные, мутные)? Если да, то где можно почитать/посмотреть об этом? Или же мне все таки нужна другая сетка?

    • @AndreySozykin
      @AndreySozykin  4 роки тому +1

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

  • @panda19751
    @panda19751 6 років тому +1

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

    • @AndreySozykin
      @AndreySozykin  6 років тому

      Да, мои студенты обнаружили такой же эффект. Детей, в том числе мальчика и девочку, определяет как одного человека. Даже если возраст отличается сильно. Видимо, нужно понижать порог срабатывания до 0,5 или ниже.
      Интересная задача - собрать набор данных с фотографиями братьев и сестер и определить подходящую величину расстояния, чтобы их различать.

    • @panda19751
      @panda19751 6 років тому +1

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

    • @AndreySozykin
      @AndreySozykin  6 років тому

      В машинном обучении, к сожалению, всегда происходит именно так. Если в обучающем наборе не было данных, с которыми мы работаем, то будут проблемы и неоднозначности.

    • @svetoslav17
      @svetoslav17 5 років тому +1

      0,5 это много . В БД на 1 000 человек ложные срабатывания не редкость даже при 0,42-0,45. Уверенное срабатывание начинается от 0,4-0,39. Да, кстати - сеть вообще не работает под азиатский тип лица. Практически все азиатские женские лица ложатся в диапазон 0,44 - 0,57.

    • @AndreySozykin
      @AndreySozykin  5 років тому +1

      1. Граница - это ориентировочное значение, которое рекомендуется разработчиками dlib для конкретного набора данных. Для реальных задач нужно подбирать подходящую границу.
      2. Сеть в dlib обучена на лицах европейской внешности. С азиатскими или афроамериканскими работает плохо. Нужно на соответствующем наборе данных обучать.

  • @hayksardaryan
    @hayksardaryan 4 роки тому +2

    а как сохранить полученный фото?

  • @user-rk2wv6es6r
    @user-rk2wv6es6r 4 роки тому +1

    Здравствуйте, Андрей! Очень хорошее видео, спасибо Вам за труд!
    Хотела поинтересоваться, можно ли сделать такую программу, только используя CapsNet? Интересно было бы сравнить результаты.
    Что можете посоветовать для реализации капсульных нейросетей?

  • @TheNeocivic
    @TheNeocivic 6 років тому

    Андрей, спасибо за Ваш курс! Мне удалось таки установить библиотеки dlib, но при запуске Вашего кода получаю следующее сообщение:
    File "C:\Anaconda3\lib\site-packages\PIL\Image.py", line 58, in
    from . import _imaging as core
    ImportError: DLL load failed: Не найден указанный модуль.
    Прошу помощи в решении проблемы.

    • @user-hv3xc2wh7m
      @user-hv3xc2wh7m 4 роки тому

      Алексей,удалось решить данную проблему? Я тоже столкнулся с данной ошибкой: "DLL load failed: A dynamic link library (DLL) initialization routine failed.

  • @AndersonSilva-dg4mg
    @AndersonSilva-dg4mg 6 років тому +3

    Очень познавательно, спасибо, только начинаю изучать Python, классный язык, обязательно поэкспериментирую)

  • @sylar1223
    @sylar1223 6 років тому +3

    Андрей, доброго дня, подскажите, можно ли пользоваться dlib для работы с потоком видео? Распознавать лица в потоке? Или может быть есть более подходящие варианты?

    • @AndreySozykin
      @AndreySozykin  6 років тому +1

      +Сергей Матышев, напрямую в dlib средств для работы с видео нет. Но можно использовать, например, OpenCV. С помощью OpenCV читать видео с камеры или файла, разбивать на отдельные кадры и уже их обрабатывать dlib.

    • @panda19751
      @panda19751 6 років тому +1

      Мне показалось или dlib довольно медленная библиотека? Хаары конечно могут ухватить что нибудь не того (примерно как на сайте dlib они в ролике показывают) у меня так процентов 20 opencv нахватал кирпичей всяких (на фото были кирпичи) вместо лиц, в остальнм норм. При этом работает достаточно быстро и с видео тоже. К стати в этом же ролике ua-cam.com/video/LsK0hzcEyHI/v-deo.html они показывают как с помощью dlib обрабатывают видео, но там библиотека для С++ по моему, да и видео захват они видимо не библиотечными средствами делают.

    • @AndreySozykin
      @AndreySozykin  6 років тому

      +panda19751, да, dlib работает не очень быстро. Каждый кадр из видеопотока обрабатывать не получится.
      Dlib написан на C++, можно писать и на нем.

    • @textreanimator
      @textreanimator 24 дні тому

      Приветствую автора. Благодарность за видео. Есть несколько вопросов. 1. В 2024 актуальны ли все библиотеки Python? И вообще работает ли приведённый метод 2. Имеет ли значения фотографии - цветная или нет?

  • @user-rd5ff8gd2d
    @user-rd5ff8gd2d 6 років тому +1

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

    • @AndreySozykin
      @AndreySozykin  6 років тому

      Точно имеет смысл извлекать дескрипторы из каждой фотографии. Что с ними делать дальше это отдельный вопрос и он сильно зависит от каждой конкретной системы. Насколько я знаю, лучше работает, если сохранить несколько дексприпторов для одного человека, и сравнивать с каждым дескриптором отдельно. Но если людей и дескрипторов много, то процесс может занимать долгое время. Если это проблема, то лучше иметь только один дескриптор на каждого человека. Какой из нескольких дескрипторов выбрать и каким способом - это целое искусство. Нужно пробовать разные способы и выбрать тот, который лучше работает на ваших данных и задаче.

    • @user-rd5ff8gd2d
      @user-rd5ff8gd2d 6 років тому +1

      Andrey Sozykin Возможно, тогда имеет смысл извлечь все дескрипторы для каждого человека и обучить по ним какой-то классификатор, например SVM?

    • @AndreySozykin
      @AndreySozykin  6 років тому

      +Дмитрий Пластун, да, это один из возможных вариантов.

    • @user-rd5ff8gd2d
      @user-rd5ff8gd2d 6 років тому

      Спасибо за ответ. Последний вопрос- как влияет разрешение фотографий на точность/скорость извлечения дескрипторов? Правильно я понимаю, что первоначально выделяется лицо, и нейронная сеть, извлекающая дескрипторы, работает уже только с этим фрагментом изображения?
      Если я располагаю изображениями высокого разрешения, имеет ли смысл делать разумный resize перед получением дескрипторов для повышения скорости или это негативно отразится на точности?

    • @svetoslav17
      @svetoslav17 6 років тому

      Лучше из фото вырежь лица. Большие фото с меньшим от 3000 и выше обрабатывает очень медленно.

  • @TheCosmatos
    @TheCosmatos 6 років тому +1

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

    • @AndreySozykin
      @AndreySozykin  6 років тому

      Сохранить, конечно же, можно. Дексриптор - это просто numpy array, который содержит 128 чисел. Его можно записать в файл любым удобным способом, например, с помощью средств numpy или вручную циклом.
      Использовать в другой программе, конечно же, можно. Именно так и нужно делать.

  • @BlYur
    @BlYur 2 роки тому

    Можно ли этот код запустить под Android?

  • @user-vh3xp4rt5r
    @user-vh3xp4rt5r Рік тому

    Здравствуйте. При загрузке модели '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, было бы супер. Заранее спасибо.

  • @user-hv3xc2wh7m
    @user-hv3xc2wh7m 4 роки тому

    Или как вы говорите в конце видео, для использования идентификации личности. Как это можно реализовать?

    • @miremax0
      @miremax0 4 роки тому

      Очевидно, посчитать дескрипторы для всех людей (по фото) и так вот сравнивать.

  • @AshaevaAnastasiyaNeonNeoxin
    @AshaevaAnastasiyaNeonNeoxin 6 років тому +3

    В некоторых случаях обеспечить большую точность распознавания поможет увеличение тестируемой выборки (не обязательно рыться в параметрах библиотеки).
    p.s. Отличный курс с множеством примеров, спасибо.
    p.p.s Андрей, вы пробовали обучать и тестировать NN в Google Cloud Platform, AWS и прочих сервисах облачных технологий?

    • @AndreySozykin
      @AndreySozykin  6 років тому

      Да, увеличение количества данных универсальный способ повышения точности работы любого алгоритма машинного обучения.
      С облачными платформами не работал. Я использую суперкомпьютер "УРАН" (parallel.uran.ru/node/3 ), к которому у меня бесплатный доступ как у сотрудника.

  • @user-dp3tu7nk3x
    @user-dp3tu7nk3x 3 роки тому +1

    Андрей, супер урок! У меня сначала не хотела ставиться библиотека dlib для anaconda (у некоторых комментаторов тут тоже с этим ошибки были какие-то). В общем сделал conda update -all и после обновления библиотека уже встала. Я в экспериментальных целях подкорректировал код под себя, таким образом "скормил" нейросети ряд лиц коллег, потом по загружаемой фотографии определяю, кто же изображен на фото. Кстати, если на фото несколько лиц, "обнаружено" будет только последнее, точнее перезаписано в переменную. Можно и тут модифицировать код, путем записи в список, а не в одну переменную и таким образом "узнавать" на фото всех, если там несколько человек

    • @AndreySozykin
      @AndreySozykin  3 роки тому +1

      Да, именно так. Сейчас код работает только с одним фото. Но модифицировать довольно легко.

    • @user-vh3xp4rt5r
      @user-vh3xp4rt5r Рік тому

      Приветствую. А можно вариант оптимизированного кода в google collab получить?

  • @user-vh3xp4rt5r
    @user-vh3xp4rt5r Рік тому +1

    Спасибо за видео. А можно такой же проект на Google colab получить ссылку?

    • @AndreySozykin
      @AndreySozykin  Рік тому

      Вот ссылка на colab ноутбук - colab.research.google.com/drive/1vUqsckChVFos6Ei8Q7vr4hbZhCvoxZUv?usp=sharing
      Однако сейчас на Colab какие-то проблемы с dlib и ноутбук перестал работать.

  • @IvanMishalkin
    @IvanMishalkin 6 років тому +1

    Подскажите, пожалуйста, на каком этапе в коде обрезалась сеть? она уже скачивается обрезанной?

    • @AndreySozykin
      @AndreySozykin  6 років тому

      +Иван Мишалкин, скачали уже обрезанной и дополнительно обученной именно для распознавания лиц.

    • @SurenTamrazyan
      @SurenTamrazyan 6 років тому +1

      я так понял, что автор dlib взял 29 слоев из 34-слойной версии resNet, но как конфигурацию, а весы обучил с нуля на лицах. У меня к вам вопрос, Андрей, интересует ваше мнение: имеет ли смысл взять один из крутых сетей (vgg, inception, resnet) с весами, которые были обучены на широком ImageNet для использования в узком домене, скажем для тех же лиц? Естественно не все слои, а только начальные, которые представляют фильтры для общих фич, заморозить их от обучения и добавить слоями для обучения в своем наборе данных (базе лиц). Даст ли это эффект, или же лучше сделать как автор dlib, обнулить весы и обучать с нуля?

    • @AndreySozykin
      @AndreySozykin  6 років тому

      В dlib используется специальный подход к обучению, который придумали в Google для FaceNet - arxiv.org/pdf/1503.03832.pdf. Сеть обучается на наборах из трех фотографий - две фотографии одного человека, и одна другого. За счет этого удается создать такое представление, в котором евклидово расстояние между фотографиями одного человека небольшое. Вот пример обучения такой сети в dlib - dlib.net/dnn_metric_learning_on_images_ex.cpp.html

  • @bukievskiy9237
    @bukievskiy9237 2 роки тому

    Здравствуйте. Можно исходний код ?

  • @timur17771
    @timur17771 5 років тому +1

    в каком терминале я должен подключить модули с командой import dlib from skimage import io from scipy.spatial import distance?

    • @AndreySozykin
      @AndreySozykin  5 років тому

      В программе на Python.

    • @timur17771
      @timur17771 5 років тому

      @@AndreySozykin спасибо. Через anaconda или jupiter?

    • @timur17771
      @timur17771 5 років тому +1

      (base) C:\Users\Тимур>import dlib
      "import" не является внутренней или внешней
      командой, исполняемой программой или пакетным файлом.
      anaconda prompt выдает это сообщение.

    • @AndreySozykin
      @AndreySozykin  5 років тому

      Нужно сначала запустить python, и уже потом выполнять команды.

    • @timur17771
      @timur17771 5 років тому +1

      уже сделал. Никак понять не могу в какую именно папку скинуть файлы обученных моделей.

  • @user-px6vf3rm6i
    @user-px6vf3rm6i 5 років тому +1

    Здравствуйте, установил dlib как и вы, но теперь не работает spyder и anaconda navigator, не подскажете как можно исправить данную проблему?

    • @AndreySozykin
      @AndreySozykin  5 років тому

      Не сталкивался с таким.

    • @user-px6vf3rm6i
      @user-px6vf3rm6i 5 років тому

      @@AndreySozykin ок, спасибо за оперативность)

    • @user-px6vf3rm6i
      @user-px6vf3rm6i 5 років тому

      Если у кого-то будет такая же проблема просто создайте новую среду ( я создавал через anaconda navigator).
      Затем, через него же скачивайте jupyter или ещё что-то и все работает

  • @LasharteGor
    @LasharteGor 5 років тому +1

    Скажите пожалуйста можно ли с помощью "python face recognition" создать похожи сервис каким был Findface?? насколько это сложная задача для программистов?

    • @AndreySozykin
      @AndreySozykin  5 років тому +1

      Что имеется в виду под "python face recognition"? Библиотека pypi.org/project/face_recognition/ ?
      Если да, то теоретически можно. Нужно загрузить много фотографий, извлечь из них векторы, сохранить и обеспечить быстрый поиск похожих векторов.
      Это относительно просто, если лиц и соответсвующих векторов не много. Но если нужно обрабатывать несколько тысяч или миллионов лиц, то все становится гораздо сложнее.

    • @LasharteGor
      @LasharteGor 5 років тому +1

      @@AndreySozykin Спасибо за ответ! а без загрузки фото невозможно cделать так чтобы программа сама искала похожие векторы в социальных сетях? для этого наверно нужно огромные мощности?

    • @AndreySozykin
      @AndreySozykin  5 років тому

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

    • @LasharteGor
      @LasharteGor 5 років тому

      @@AndreySozykin То Есть например клиент сервиса кидает фото человека которого нужно найти и программа скачивает из соцсетей фотографии небольшими порциями временно загружает их на сервер для анализа и ищет в них вектор который на 90% схож с лицом на исходной фотографией, как то так да??

    • @LasharteGor
      @LasharteGor 5 років тому

      Или вы имели в виду что можно изымать из пакета фотографии векторы и хранить лишь их на сервере вместе с прикрепленной страницей соцсети откуда она взята?

  • @vorobushek6590
    @vorobushek6590 4 роки тому +1

    Здравствуйте, я столкнулся с проблемой: Я установил dlib в анаконде. Но когда я импортирую его в проект, возвращается ошибка ModuleNotFoundError . Помогите, пожалуйста, решить эту проблему. Андрею спасибо!

    • @AndreySozykin
      @AndreySozykin  4 роки тому

      Точно модуль установлен? Ошибка говорит, что такого модуля нет.

    • @vorobushek6590
      @vorobushek6590 4 роки тому

      @@AndreySozykin Я устанавливаю по команде, которую Вы посоветовали. Консоль показывает, что что-то устанавливается, все такое, но все равно в итоге при запуске проекта говорит, что не установлено

    • @vorobushek6590
      @vorobushek6590 4 роки тому

      @@AndreySozykin Это точно рабочая команда для установки? У меня все никак не получается установить эту библиотеку.

  • @user-rx8wy6sz3z
    @user-rx8wy6sz3z 5 років тому +1

    Спасибо! Это замечательно работает! Но возник впорос, может кто знает. Можно ли встроит этот код в хранимую процедуру sql server 2008, чтобы в рамках процедуры передевать в нее фото и получать расстояние?

    • @AndreySozykin
      @AndreySozykin  5 років тому

      К сожалению, в sql server 2008 совершенно не разбираюсь. Поэтому не смогу помочь...

  • @denyssemeniuk8350
    @denyssemeniuk8350 4 роки тому +1

    А на сколько высока точность?

  • @IgorOrlov
    @IgorOrlov 6 років тому +1

    всё работает, только не понятно как запустить скрипт к примеру через консоль cmd т.е. вне интерфейса juputera и как мне добраться до знаяения Евклидово расстояния для дальнейшего анализа? Может можно его как-тосохранить? Спасибо.

    • @AndreySozykin
      @AndreySozykin  6 років тому

      Можно сохранить программу в файл, например, verification.py и запускать с помощью интерпретатора python:
      python verification.py
      Тогда все, что выдает функция print останется в консоли.

    • @IgorOrlov
      @IgorOrlov 6 років тому +1

      спасибо, я нашёл другое решение, можно сконвертировать файл juputera в обычный питоновский. Ещё 2 вопроса:
      1) эта нейронная сеть не обучается? Она просто сравнивает 2 фотографии по признакам, верно. У меня стоит задача распознать определённого человека. Видел решения, которые подразумевали сначала обучение на множестве примеров фоток одно и того же человека, а потом его поиск на фотке. Как вы думаете какое решению лучше подходит?
      2) Может подскажите как оптимизировать скорость работы скрипта? У меня в среднем уходит 15 сек на поиск одного человека, а скрипт мне нужно запускать миниму 3 раза т.к. я ищу 3х людей.

    • @AndreySozykin
      @AndreySozykin  6 років тому +1

      1. Да, нейронная сеть не обучается. Судя по тестам, сеть обучена достаточно хорошо, ее точность на задаче Labeled Faces in the Wild 99.38%. Поэтому можно не тратить время на повторное обучение. Извлекаете дескриптор из фотографии нужного вам человека и сохраняете его. Затем извлекаете дескриптор из новой фотографии и сравниваете его с сохраненным ранее дексриптором нужного вам человека.
      2. Можно использовать dlib не на Python, а на C++, вот пример dlib.net/dnn_face_recognition_ex.cpp.html. Также можно в одной программе сразу сравнивать с тремя дескрипторами (или больше, если нужно) и выдавать идентификатор человека, который найден. Можно не показывать картинки и оставить только консольный режим, хотя наверняка это уже сделано.

    • @IgorOrlov
      @IgorOrlov 6 років тому

      подскажите пожалуйста как сохранить мои уже высчитаные значения face_descriptor1? Они всегда будут одни и теже и мне нужно их захардкодить прямо в код. Я хочу оптимизировать скрипт что бы он постоянно не высчитывал из фотки мои данные. Я ни как не могу нагуглить какой тип возвращаемых данных отдаёт функция facerec.compute_face_descriptor(). Пробовал запихивать в массив вот так face_descriptor1 = [-0.103657,0.112695,...] , но не работает. Спасибо.

    • @svetoslav17
      @svetoslav17 6 років тому

      попробуй в виде [-0.103657 0.112695 ...] в список. У меня так считывает из файла и работает. Причем хранится в виде ["Вася" "-0.103657" "0.112695" "..."] . Считывается в эталон, естественно , без первого значения. Ну и конвертируешь в float при считывании.

  • @guybrushskywalker
    @guybrushskywalker 6 років тому +5

    У меня на 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

    • @AndreySozykin
      @AndreySozykin  6 років тому

      +Ilya Pukhov, хорошо, что удалось разобраться! Спасибо за решение!

  • @user-sw3tc1gy9j
    @user-sw3tc1gy9j 4 роки тому +1

    как импортировать dlib в сод чтобы с него считывались данные?!

    • @AndreySozykin
      @AndreySozykin  4 роки тому

      Что иментся в виду под сод?

  • @user-rz6th9dn5c
    @user-rz6th9dn5c 4 роки тому +1

    А как решить ошибку при установки модуля dlib???

    • @AndreySozykin
      @AndreySozykin  4 роки тому

      Какую именно ошибку?

    • @infomed100
      @infomed100 4 роки тому

      @@AndreySozykin win1 = dlib.image_window()

  • @user-qv8gj7jj8r
    @user-qv8gj7jj8r 4 роки тому +1

    А на заказ можете написать что бы она по базе фото проходила и искала похожих ?

    • @AndreySozykin
      @AndreySozykin  4 роки тому

      Зависит от объема и сложности задачи. Пишите на sozykin@gmail.com.

  • @user-qt4un8qv9z
    @user-qt4un8qv9z 5 років тому +1

    Класс. Спасибо за ваш труд) Скажите пжл, Вы в курсе как делается сервис на подобе find face? Или как и из чего делается поиск людей по фотографии, чтоб парсело с вк или инсты? Хоть чуть-чуть в курсе? Очень дико интересно стало, а инфы в нете ноль. Спасибо

    • @AndreySozykin
      @AndreySozykin  5 років тому +1

      Такие сервисы делаются очень просто. Загружаются фотографии из профилей вк, из них извлекаются векторы. Создается база, в ней пары - вектор и ссылка на профиль в вк. Но сейчас это противоречит законодательству о приватности, поэтому лучше так не делать.

    • @user-qt4un8qv9z
      @user-qt4un8qv9z 5 років тому +1

      @@AndreySozykin Большое спасибо за Ваш ответ) Это делается при помощи OpneCV, язык python или на PHP тоже есть шансы такое сделать? Просто че-то дико интересно стало мне, не знаю почему, но как то наткнулся на эту тему и прям интересно.

    • @AndreySozykin
      @AndreySozykin  5 років тому +1

      Можно с помощью Dlib и Python. Про php не знаю.

    • @user-qt4un8qv9z
      @user-qt4un8qv9z 5 років тому +1

      @@AndreySozykin Спасибо Вам

    • @user-qt4un8qv9z
      @user-qt4un8qv9z 5 років тому +1

      @@AndreySozykin Андрей, последний вопросик к Вам, заранее извиняюсь) Я в этой теме полный ноль и в языке питон тоже. Какие книги вы бы посоветовали изучить, чтобы быстрее приблизиться к этой теме, которую я озвучил выше, а именно создание что-то похожего на findface.

  • @user-px6vf3rm6i
    @user-px6vf3rm6i 5 років тому +1

    Хотел бы узнать как создать нейронную сеть для детектирования лица?

    • @AndreySozykin
      @AndreySozykin  5 років тому

      Для обнаружения лица на фотографии, или для определения чьё это лицо?

    • @user-px6vf3rm6i
      @user-px6vf3rm6i 5 років тому +1

      @@AndreySozykin для нахождения лица и попутно находить глаза и рот

    • @AndreySozykin
      @AndreySozykin  5 років тому

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

    • @user-px6vf3rm6i
      @user-px6vf3rm6i 5 років тому

      @@AndreySozykin интересует как она создана и вообще как самому такое повторить. Я пытался найти как построить архитектуру такой сети, но что-то нет ничего (

    • @user-px6vf3rm6i
      @user-px6vf3rm6i 5 років тому

      Про самому повторить ,имел ввиду саму нейронку, для того чтобы обучать и экспериментировать

  • @IgorOrlov
    @IgorOrlov 6 років тому

    мне так и не удалось заставить работать опенфейс ((
    хоть у кого-то она взлетела?

  • @user-rr6vr3in4i
    @user-rr6vr3in4i 6 років тому +1

    Здравствуйте, а как можно скачать те файлы, по ссылке не могу скачать

    • @AndreySozykin
      @AndreySozykin  6 років тому

      Проверил, у меня все скачивается. Возможно, какие-то временные проблемы из-за блокировок Роскомнадзора.

  • @vladtamolov2292
    @vladtamolov2292 3 роки тому

    Красава

  • @user-uk7wf2xl7g
    @user-uk7wf2xl7g 4 роки тому +1

    А если сравнить дескрипторы двух одинаковых фотографий, чему они будут равны?

    • @AndreySozykin
      @AndreySozykin  4 роки тому

      Они должны быть очень похожи друг на друга.

    • @user-uk7wf2xl7g
      @user-uk7wf2xl7g 4 роки тому

      @@AndreySozykin сравнил они оказались равны 0.0 (я имел ввиду сравнить один и тот же файл)

  • @batubek
    @batubek 3 роки тому +1

    выдает ошибку "RuntimeError: Unable to open shape_predictor_68_face_landmarks.dat" кто то сталкивался?

    • @AndreySozykin
      @AndreySozykin  3 роки тому

      Нужно загрузить файл shape_predictor_68_face_landmarks.dat с сайта dlib.

    • @batubek
      @batubek 3 роки тому

      @@AndreySozykin с данной ошибкой я справился, но столкнулся с тем что критует при поиске по чернобелым фото.

  • @Voha
    @Voha 6 років тому +2

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

    • @AndreySozykin
      @AndreySozykin  6 років тому

      Да, попробуйте эксперименты разные провести и посмотреть, что получится. Об интересных результатах можно в комментариях написать!

    • @Rayvenor
      @Rayvenor 6 років тому +1

      А что не так с очками? Положение глаз определено верно.

  • @user-vm9wh9lw1h
    @user-vm9wh9lw1h 4 роки тому +1

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

    • @AndreySozykin
      @AndreySozykin  4 роки тому

      Да, именно так. Моя цель была показать ограничения алгоритма.

  • @takumifujiwara8551
    @takumifujiwara8551 4 роки тому +1

    Команды 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

  • @OnenessVoices
    @OnenessVoices 4 роки тому +2

    Или, такая технология может использоваться в силовых структурах, которые в нормальных ДЕМОКРАТИЧЕСКИХ обществах используются действительно для охраны правопорядка и противодействия криминальным и другим правонарушениям и находятся под пристальным постоянным мониторингом независимых общественных организаций.
    А в современной России такие технологии используются совершенно наоборот - для поддержки авторитарного режима, нарушения прав граждан и устранения демократической оппозиции. (Примеры распознавания, с реальными «посадками» студентов, которые были на митингах в Москве, мы все видели летом 2019).
    Осознание ответственности за последствия изобретений и практического применения технологий людьми науки и технологами - совершенно не новый вызов: последствия изобретения атомных бомб и химического оружия мы, как человечество, будем расхлебывать ещё долго.
    И планирование своей практической научной работы, построение внедрения технологий так, чтобы общество сохраняло контроль над такими технологиями - реальное требование и несомненно минимальное требование для ЛЮБОГО серьезного научного и технического специалиста.
    Инфантильность социальная, атомарность и искусственная аполитичность - совершенно недопустимое поведение для ответственного за будущее и своей страны и всего человечества в будущем специалиста в области IT или любой другой науки.

    • @AndreySozykin
      @AndreySozykin  4 роки тому

      Да, социальная ответственность за последствия использование технологий - это важный вопрос. Ещё важна этика искусственного интеллекта. Иначе мы через некоторое время можем оказаться в мире Черного зекрала.

  • @AngelA-jx6vf
    @AngelA-jx6vf Рік тому +2

    Андрей , а как можно обмануть эту систему ?

    • @AndreySozykin
      @AndreySozykin  Рік тому +1

      Вот статья на эту тему - nplus1.ru/news/2021/09/27/makeup/amp

  • @ABYRVALG911
    @ABYRVALG911 6 років тому +1

    Мы в институте lisp изучали - та еще жесть )))

    • @AndreySozykin
      @AndreySozykin  6 років тому +1

      List интересный функциональный язык, но на практике он бесполезен. Из функциональных лучше учить Scala.

    • @ABYRVALG911
      @ABYRVALG911 6 років тому

      это был 2000г. у ребят диплом был в котором они учили сеть распознавать рукописный текст.

    • @AndreySozykin
      @AndreySozykin  6 років тому

      +transformer7171, согласен, что лисп очень интересный язык и некоторые задачи на нем решать очень удобно. Но, все таки, область применения лисп сильно ограничена.

    • @transformer7171
      @transformer7171 6 років тому

      С этим трудно спорить. Но язык великолепен. Хотя порог вхождения, похож на пытку. Сначала мозг закипает, когда читаешь первые главы Common Lisp, к середине он взрывается, к концу книги наступает катарсис :-)

    • @user-xj6kk4gj3e
      @user-xj6kk4gj3e 6 років тому +1

      нам когда-то препод по лиспу говорила, что с ходу его схватывают студенты гуманитарных факультетов, не имеющие опыта программирования на других языках.:) А тем, кто на чем-то писал уже, понять его сложно. Но язык прекрасный, это да. Хотя дальше курса в универе его и не изучала, не было необходимости от практики. Но курс был с удовольствием и для шутки потом на нем мелочи писала.

  • @transformer7171
    @transformer7171 6 років тому +3

    ua-cam.com/video/6FdNgq-La3Y/v-deo.html вот современный ИИ. У вас прекрасный обучающий канал. Спасибо вам за вашу работу.

    • @AndreySozykin
      @AndreySozykin  6 років тому

      +transformer7171, пожалуйста! Рад, что понравилось!

  • @ivanivan9984
    @ivanivan9984 4 роки тому +1

    666 - лайков. Рука не поднимается испортить такую цифру.

    • @AndreySozykin
      @AndreySozykin  4 роки тому

      Пусть лучше будет 777 :-)

    • @ivanivan9984
      @ivanivan9984 4 роки тому

      @@AndreySozykin уговорил)

  • @alexjay1293
    @alexjay1293 2 роки тому

    о боже!
    это же Джейсон Борн

  • @user-cj5js1gz7v
    @user-cj5js1gz7v 5 років тому +11

    Привет, можете сравнить Путина и прочих, сомнения появились, он ли это сейчас управляет страной, по сравнению с 2000 годом. Это очень важно и нужно, просмотры увеличатся в разы!

  • @Ghios
    @Ghios 3 роки тому +1

    У кого не линк не пашет, тут можно скачать файлы
    dlib.net/files/
    Автору отдельное спасибо

    • @AndreySozykin
      @AndreySozykin  3 роки тому

      Вот ссылка на код в Colab с установкой dlib и загрузкой нужных файлов - colab.research.google.com/drive/1OB4pZ4_PbujxYz_wwPtan8q1dZ4mYGt5?usp=sharing

    • @anestaziya
      @anestaziya 3 роки тому

      @@AndreySozykin спасибо)

  • @klip122
    @klip122 5 років тому

    Стаття 182. Уголовного Кодекса Украины (УК) Порушення недоторканності приватного життя
    1. Незаконне збирання, зберігання, використання, знищення, поширення конфіденційної інформації про особу або незаконна зміна такої інформації, крім випадків, передбачених іншими статтями цього Кодексу, -
    караються штрафом від п'ятисот до однієї тисячі неоподатковуваних мінімумів доходів громадян або виправними роботами на строк до двох років, або арештом на строк до шести місяців, або обмеженням волі на строк до трьох років.
    2. Ті самі дії, вчинені повторно, або якщо вони заподіяли істотну шкоду охоронюваним законом правам, свободам та інтересам особи, -
    караються арештом на строк від трьох до шести місяців або обмеженням волі на строк від трьох до п'яти років, або позбавленням волі на той самий строк.
    Примітка. Істотною шкодою у цій статті, якщо вона полягає у заподіянні матеріальних збитків, вважається така шкода, яка в сто і більше разів перевищує неоподатковуваний мінімум доходів громадян.

  • @bukievskiy9237
    @bukievskiy9237 2 роки тому

    Здравствуйте. Можно исходний код ?

  • @bukievskiy9237
    @bukievskiy9237 2 роки тому

    Здравствуйте. Можно исходний код ?

  • @bukievskiy9237
    @bukievskiy9237 2 роки тому

    Здравствуйте. Можно исходний код ?

  • @bukievskiy9237
    @bukievskiy9237 2 роки тому

    Здравствуйте. Можно исходний код ?