Как узнать человека по фотографии: Метаданные – как узнать, где была сделана фотография? – withSecurity.ru

Содержание

Как проверить человека по фотографии Это совершенно не сложно!

Приветствую всех моих читателей! Сегодня поговорим о том, как проверить человека по фотографии. Конечно, мы не самого человека будем проверять, а лишь информацию о нём. Иногда это бывает нужно.

Зачем, спросите вы? Ну, ситуации могут быть разными, лично я таким образом проверяю "на вшивость" некоторые сайты.

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

Проверить человека по фотографии

Как говорится: "Фильм основан на реальных событиях" 🙂

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

Листаю страницу сайта дальше и дохожу до отзывов...

Счастливые клиенты оставили отзывы

Эти жизнерадостные люди уже стали обладателями книги и написали восторженные отзывы о ней.

При наведении курсора мыши на фотографию появляется и текст отзыва.

Ольга, 25 лет.

Неплохая реализация, правда?

Особенно, если учесть то, что вот этот всплывающий текст отзыва, полностью перекрывает фотографию и не даёт совершить над ней какие-либо действия.

Например, открыть контекстное меню для фото, а не для перекрывшего его текста...

А ведь это не просто красивая фишка.

Видимо, по замыслу разработчиков, это не позволит получить URL изображения и проверить человека по фотографии...

Ну детский сад, ей-богу...  😉

И что-то мне это здорово напомнило мою же статью про инфобизнес...

Получаем URL фотографии простым способом

Несколько секунд "мышиной" возни и мне удалось-таки обмануть эту "всплывалку"... 😉

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

Фl

Узнайте, как найти человека по фотографии

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

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

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

Как подготовить фотографии для поиска

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

Ищем знакомого с помощью сервиса «Google-картинки»

На вопрос о том, как найти человека по фотографии, могут ответить поисковые системы Google и Яндекс. Давайте рассмотрим принцип их работы на основе системы «Гугл».

«Google-картинки» - это специальный поисковик для изображений. В поисковую строку можно водить название или описание фотографии, использовать голосовой поиск и даже добавлять готовые изображения.

Рассмотрим подробнее поиск по готовым картинкам. Добавлять фотографии в «Гугл» можно четырьмя разными способами:

  1. Загрузить фото с вашего ПК.
  2. Указать адрес изображения на компьютере.
  3. Загрузить изображение на фото-хостинг, а затем вписать адрес фотографии в поисковик «Google-картинки».
  4. Добавить к своему браузеру специальное приложение, помогающее искать картинки. Например, в «Гугл Хроме» есть приложение Search by image for Google. Как работает данная программка? Если вы наведёте мышку на какое-нибудь изображение в интернете, появится ярлычок для перехода в «Гугл-поисковик».

Вам будет представлено множество изображений, удовлетворяющих результатам поиска. Останется лишь выбрать из них подходящие фотографии. Обратите внимание на то, что «Яндекс-картинки» работают аналогично своему собрату!

Поиск людей по фотографии на сайте Tineye.com

Узнать, как найти человека по фотографии, поможет специальный сайт Tineye.com. Здесь также можно загружать подготовленное изображение или указывать его адрес на вашем любимом хостинге для картинок. Этот сервис неспособен определять местонахождение ваших знакомых, но сайты, на которых такое фото есть, выдаст. Быть может, среди результатов поиска окажутся адреса соц. сетей, где имеется страничка искомого человека.

Аналогом этого сервиса является сайт Gazopa.com. Отличие в том, что данный ресурс помогает найти копии вашей картинки. А Tineye.com ищет все изображения, похожие на предоставленное вами. Оба сервиса предоставляют удобные расширения для вашего браузера.

Как искать знакомых «ВКонтакте», используя фотографии

Искать людей из «ВКонтакте» можно с помощью сервиса Tofinder.ru, который выдаёт также подходящих людей с сайта «ВК». Данный ресурс работает аналогично сайту Tineye.com.

Для того чтобы отыскать человека в данной соц. сети, надо знать его имя и фамилию, а также иметь качественное фото. Если всё это у вас есть, зайдите на «ВКонтакте» и воспользуйтесь формой поиска «Люди». Введите в поисковик соц. сети известные данные, а затем отсортируйте найденных людей, сравнив их с имеющейся у вас фотографией.

Оказывается, найти человека «ВКонтакте» по фотографии можно с помощью специальной функции, которая имеется в данной сети! Для этого зайдите на свою страницу «ВК», а затем перейдите в раздел «Новости». Здесь надо выбрать вкладку «Фотографии». Если такого пункта у вас нет, нажмите на плюсик, расположенный перед всеми остальными заголовками. Теперь выберите в появившемся списке надпись «Фотографии».

После всех описанных выше действий у вас должна появиться поисковая строка с подписью «Поиск по фотографиям». Здесь имеется пять функций поиска:

1. Поиск по описанию.

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

2. Поиск с использованием фотофильтров.

На «ВКонтакте» есть шесть фильтров, которые можно увидеть, редактируя свои фотографии. выберите нужный вид фильтра, а затем введите в поисковик следующие символы: «filter:название выбранного фильтра». Перед этими знаками можно также ввести текст.

3. Поиск с использованием геолокации.

Перейдите во вкладку «Поиск», а затем выберите кнопку «Геолокация». Выберите место, где предположительно находится ваш знакомый, а потом нажмите кнопку «Искать по записям неподалёку». Теперь надо скопировать координаты, высветившиеся в поисковой строке, и вставить их в поисковик для фото.

4. Поиск с исключением ненужных слов.

Введите в поисковую строку описание к фотографии, а после него вставьте символы: «-исключаемое слово –dr». Так вы сможете сузить поиск людей.

5. Поиск похожих фотографий.

Загрузите подготовленное изображение в любой из своих альбомов, а потом скопируйте последние знаки от ссылки на загруженное фото. У вас должно получиться что-то вроде этого: «photo-12345_6789». Вставьте данную комбинацию в поисковую строку, прописав перед ней «copy:». Теперь в поисковой выдаче вы увидите картинки, похожие на вашу.

Используйте описанные выше функции с учётом тех данных о человеке, которые вам известны.

Другие способы поиска

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

  1. Обратиться в передачу «Жди меня», описав при этом все обстоятельства знакомства с этой девушкой.
  2. Разместить объявления в различных соц. сетях и на форумах.
  3. Искать людей можно также на сайтах: Photodate.ru, Alipr.com, Picitup.com.

Обман во Всемирной паутине

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

Вместо предоставления обещанной услуги у вас просто снимут деньги со счёта мобильного. Теоретически можно вычислить преступника по его IP-адресу, но на практике любой умелый мошенник может изменить свой IP. Так что не следует использовать подобные ресурсы.

Как найти человека по фотографии – обзор действенных способов

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

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

Специальные сайты поиска людей

Осознавая потребность в подобных розыскных работах, люди создали целые проекты по данному вопросу. Среди них выделим два сайта. Первый — это findface.ru. Что он из себя представляет, и как им правильно пользоваться? Давайте узнаем.

Ищем с findface.ru

Портал findface.ru является инновационным сервисом для поиска людей по фотографии. Ориентирован этот сайт на социальную сеть «Вконтакте». Пользователи ВК могут осуществить розыск других юзеров сети. Что нужно для работы с findface.ru?

  • Аккаунт в соц. сети «Вконтакте».
  • Фотография искомого пользователя. Да, именно пользователя — если нужный человек не имеет профиля ВК, то необходимо будет перейти на другой ресурс.
  • Кстати, фото может быть далеко не лучшего качества. Сайт findface.ru имеет замечательное свойство, такое как работа с некачественными материалами.

Что необходимо сделать для поиска через findface.ru?

  • Перейдите на главную страницу.
  • Авторизуйтесь через социальную сеть «Вконтакте».
  • Загрузите картинку. Для этого можно просто перетащить ее в окно браузера. Либо нажмите на «Загрузите» и укажите путь к файлу.
  • Впишите адрес электронной почты по требованию сайта.
  • Далее перед вами откроется список подходящих пользователей. Выберите нужного человека, просмотрев другие фото пользователей.
  • В результатах юзеры расположены по убыванию схожести.

Данный сайт является условно бесплатным. Пройдя несложную регистрацию, вы получаете 30 бесплатных поисков. Этого вполне достаточно для обычного пользователя. Если же вам нужно больше, потребуется купить премиум- или VIP-аккаунт. Заплатив небольшую сумму, вы получите больше поисков в месяц, а также другие возможности.

Цены на findface.ru

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

Сайт помощи pomogitenayti.ucoz.ru

Другой вариант поиска человека — это сайт pomogitenayti.ucoz.ru. В отличие от предыдущего, этот проект строится исключительно на помощи сторонних людей. Смысл проекта в следующем: юзер оставляет запрос на поиск, а другие люди помогают его найти.

Помогайте другим в поисках

Фотография, город, имя и фамилия, возраст или другие любые известные данные — это все, что требуется от человека, решившего добавить статью на pomogitenayti.ucoz.ru. Будьте максимально точны и просматривайте ленту — вдруг кто-то ищет вашего соседа!

Гугл Картинки

Компания «Гугл» задает темп всем остальным последующим ресурсам. В частности, поиск по картинкам уже давно доступен в этой системе. Давайте узнаем, как проделать эту процедуру в Google.

  • Перейдите на сайт «Гугл.Картинки» — images.google.com. Это можно сделать, кликнув по данной ссылке, или зайти на главную страницу Google, а оттуда — в подраздел «Картинки».
  • В строке поиска следует нажать на значок фотоаппарата.
Правильная кнопка
  • Загрузите файл для поиска, нажав на правильную кнопку, или вставьте ссылку на изображение из сети.
  • Как получить ссылку на изображение? Достаточно найти картинку в интернете, кликнуть по ней правой кнопкой мыши и в контекстном меню выбрать «Копировать адрес изображения». В зависимости от браузера, в строке может быть написано «Копировать URL картинки» или что-то другое.
  • Поисковая система выдаст результат — все похожие фото. Дальше необходимо самостоятельно определить по источнику файла, что это за материал. Например, если ссылка на социальную сеть, значит это профиль человека ВК, ОК, ФБ или других сетей, и вам повезло.
  • Если же фото указывает на официальный сайт известной личности, то человек, использовавший изображение, является обманщиком.

«Яндекс» не отстает

Российский поисковик Yandex не желает проигрывать иностранному конкуренту. Поиск по фото также доступен и на странице yandex.ru/images. Рассмотрим в деталях использование этого сервиса.

  • Перейдите на нужную страницу — yandex.ru/images.
  • Кликните в поисковой строке на значок фотоаппарата с лупой посредине.
  • В нужном поле можно вставлять ссылки на изображения из интернета. Также можно загрузить картинку из локальных источников.
  • Нажмите «Найти». Результаты схожи с «Гуглом» — найти требуемый файл нужно самому по источнику.
Поиск картинок в «Яндексе»

Где человек взял фото?

Порой возникает необходимость узнать первоисточник определенного изображения. Как оно появилось? Кто сфотографировал и выложил в интернет? Такую возможность предоставляет сайт «Тин Ай».

Порядок действий на этом ресурсе схож с двумя предыдущими. Пользователю необходимо зайти на главный сайт tineye.com. Хотя ресурс представляется на английском языке, его интерфейс понятен интуитивно. Строка позволяет вставить URL картинки, а кнопка, на которой изображен кружок со стрелкой вверх — загрузить файл из персонального компьютера. Также можно просто перетащить файл.

Для знающих английский язык есть страница с инструкцией по работе с сайтом. Здесь мы не будем ее пересказывать, можете прочитать по ссылке  tineye.com/how. Также стоит помнить, что сервис не всегда сможет найти все фото, особенно свежие.

Так бывает со свежими фото

Пользуйтесь всеми доступными методами поиска людей по фото в различном сочетании. Тогда вы получите нужный результат!

Как найти человека по фото Вконтакте

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

Также рекомендую к прочтению:

Как найти человека по фамилии и имени в вк

Как найти человека по id в вк

Как найти человека не регистрируясь в вк

Поиск по фотографиям Вконтакте

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

После того, как фотка подгрузится, смотрим на адресную строку браузера и копируем адрес фотографии. Адрес фото нужно копировать не весь, а лишь только те цифры, что идут после слова photo (вместе с ним) и до знака %. Смотрите на скриншот и все станет ясно:

Теперь заходим на свою страничку главную и нажимаем на пункт меню «Новости»

Далее в открывшемся окошке в правом меню ищем подпункт «Фотографии» и нажимаем на него:

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

См. скриншот:

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

Вот и все, мы с вами справились с задачей.

Поиск по картинкам от Яндекса

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

Переходим по адресу https://yandex.ua/images/ и нажимаем на кнопочку со значком фотоаппарата под названием «Поиск по картинке»:

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

Через Проводник найдите на компьютере нужное изображение, выделите его и жмите «Открыть».

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

Пролистайте ниже и увидите список сайтов, где встречается картинка. Выберите любой из предложенных. В примере я остановился на poisksocial.ru. Нажмите правой кнопкой мыши по заголовку и выберите из списка «Открыть ссылку в новой вкладке».

На открывшемся сайте можно выполнить поиск человека в любой из социальных сетей, которые есть в списке слева. У нас уже выбрана Вконтакте и указаны ФИО, для которых отображаются результаты (кстати, я их не вводил, они уже были прописаны, когда я открыл сайт. Хоть ищу человека с другими ФИО, для чистоты эксперимента ничего менять не стал).

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

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

Поиск по картинкам в Google

Точно такой же сервис, как и у Яндекса, есть у поисковой системы Google. Давайте точно также попробуем найти по фотографии, которая стоит у меня на аватарке, мою страничку Вконтакте.

Заходим на главную страницу Гугла и в правом верхнем углу нажимаем на ссылку «Картинки»:

У нас открывается сервис поиска по картинкам, подводим курсор в правый угол поисковой строки и нажимаем на значок фотоаппарата. Эта кнопочка называется «Поиск по картинке».

В открывшемся окне переходим во вкладку «Загрузить файл» и нажимаем на кнопку «Выберите файл»:

Загружаем фотографию, по которой хотим искать аккаунт Вконтакте и наблюдаем результаты.

У меня отобразились запросы, связанные с официальным стилем в одежде (поскольку на фото люди в черно-белом). И в «Похожих изображениях» ничего не было.

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

Теперь у меня появилось похожее изображение. Нужно нажать на него.

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

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

Как читать по фотографии?

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

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

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

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

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

Если вы хотите узнать не только об изменениях, произошедших с человеком, но еще и об его состоянии в данный момент, повторите первое упражнение, но с небольшими дополнениями. Вместо фразы «Этот человек сейчас» думайте о том, как он себя ощущает, где он находится, что с ним происходит.Чтобы понять, как исследуемый человек относится к тому или иному событию, сфокусируйтесь на фотографии. Смотреть нужно также за фото, но одновременно через него. Дальше все зависит от того, на что вы привыкли опираться. Если это визуальные образы, то вы сможете увидеть, как изменяется выражение лица того человека, о котором вы получаете информацию. В случае, когда вы привыкли больше доверять ощущениям, при правильной концентрации вы сможете почувствовать чувства объекта внутри себя.

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

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

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

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

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

Фотографии с моей страницы

Снимок для размещения в соцсетях человек выбирает на подсознательном уровне: нравится — не нравится. На самом деле фото соответствует основным чертам его характера и душевному состоянию в определенный момент.

Редакция собрала для тебя информацию о том, как можно проанализировать состояние человека по его профилю в Интернете. Всё как на ладони! Кто бы мог подумать…

 

 

  • Разнообразные селфи
    Под обилием таких фотографий скрывается повышенная потребность в признании и одобрении, самовлюбленность и склонность к самолюбованию.

     

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

     

  • Фото пары
    Может указывать на два варианта душевного состояния человека. Первый — нехватка уверенности в том, что его может кто-то любить, и страх потерять то, что он имеет. Второй — зацикленность на отношениях, полное растворение в своем партнере.

     

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

     

  • Дети
    Аватарка профиля с детской фотографией говорит об усталости человека от взрослой жизни, ответственности, кредитов и ипотеки. За этим стоит подсознательное желание вернуться в детство и потребность в заботе.

     

    Большим количеством фотографий со своими детьми или детей по отдельности мы транслируем в мир такое послание: «Я — мама (папа), это большое достижение в моей жизни!»

  • Животные и фото с ними
    Когда парень ставит в своем профиле изображение дикого волка, грациозного гепарда — это попытка выдать желаемое за действительное. Владелец странички хочет казаться смелым и сильным.

     

    Девушки любят ставить фото из разряда «милота». Обычно это говорит о сентиментальности или легкой инфантильности хозяйки страницы.

  • Природа
    Такие фото создают посыл об удовлетворенности миром. Жизнь удалась, можно и природой полюбоваться. Но может также говорить об усталости от бешеного повседневного ритма, потребности в уединении и созерцании красот природы.

     

  • Гламурные образы
    Налицо потребность в нарциссической поддержке, в эмоциональных поглаживаниях в виде лайков и лестных комментариев. А это повод задуматься о своей самооценке и альтернативных способах ее укрепления, не приводящих к зависимости от виртуального мира.

     

  • Фотографии из путешествий
    Такие фото — показатель высокого статуса или стремления к нему. «Я отдыхаю на море, умею хорошо жить» — общий подтекст подобных снимков.

     

    Подтверждение факта, что ты побывал там, где побывали миллионы других. Но ты здесь впервые, и это твое личное достижение — вот ты и сделал фото на фоне Эйфелевой башни или других известных достопримечательностей.

  • На фоне предметов роскоши, яхт и дорогих машин
    Успешные люди не будут выставлять фото своих материальных благ, они привыкли к своей благополучной жизни. Для них «Мазерати» — это просто машина. А вот те, кому комфорта в жизни не хватает, обязательно сделают селфи с крутой тачкой.

     

  • Фото еды
    Снимки изысканной еды из дорогого ресторана — попытка самоутверждения. Обилие таких фотографий в профиле мамы в декрете или домохозяйки зачастую показывает стремление доказать (в первую очередь самой себе), что дела обстоят не хуже, чем у других. Что и на кухне может быть не менее интересно, чем на переговорах, в офисе и на фестивалях.

     

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

     

  • Свои забавные фото
    Человека одолевают проблемы, и веселым снимком он призывает посмеяться вместе с ним и расслабиться. Он как бы высмеивает свои проблемы. Зато общаться с такой личностью будет куда приятнее, чем с нытиком или ворчуном.

     

  • На рабочем месте
    Человеку не хватает общественного признания. Он, скорее всего, хороший специалист и профессионал, но, как ему кажется, об этом знают не все.

     

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

     

  • Реальные фото без фотошопа и фильтров
    Такие фото говорят о том, что человек воспринимает себя таким, какой он есть. Он использует соцсети для общения с друзьями или для работы, а не как повод показать себя во всей красе. Предпочитает не фотографировать моменты и делиться ими, а проживать их во всей полноте.

     

 

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

А что ты думаешь по этому поводу? Согласен ли с этим исследованием психологов? Будем рады, если ты поделишься своими размышлениями в комментариях.

published on cemicvet.ru according to the materials takprosto.cc

Мой мир

Facebook

Вконтакте

Twitter

Одноклассники

java - Как распознать человека по изображению в OpenCv

Переполнение стека
  1. Около
  2. Продукты
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
  3. Вакансии Программирование и связанные с ним технические возможности карьерного роста
  4. Талант Нанимайте технических специалистов и создавайте свой бренд работодателя
  5. Реклама Обратитесь к разработчикам и технологам со всего мира
  6. О компании

Распознавание лиц OpenCV - PyImageSearch

Щелкните здесь, чтобы загрузить исходный код этого сообщения

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

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

Чтобы отпраздновать это событие и показать ей, как много для меня значит ее поддержка меня, блога PyImageSearch и сообщества PyImageSearch, я решил использовать OpenCV для распознавания лиц в наборе данных наших лиц.

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

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

Чтобы узнать, как выполнять распознавание лиц OpenCV, просто продолжайте читать!

Распознавание лиц OpenCV

В сегодняшнем руководстве вы узнаете, как выполнять распознавание лиц с помощью библиотеки OpenCV.

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

Ну, имейте в виду, что сообщение о распознавании лиц dlib опиралось на две важные внешние библиотеки:

  1. длб (очевидно)
  2. face_recognition (простой в использовании набор утилит для распознавания лиц, охватывающий dlib)

Хотя мы использовали OpenCV для для облегчения распознавания лиц , сам OpenCV не отвечал за идентификацию лиц.

В сегодняшнем руководстве мы узнаем, как мы можем применить глубокое обучение и OpenCV вместе (без каких-либо других библиотек, кроме scikit-learn) к:

  1. Обнаружение лиц
  2. Вычислить 128-мерные вложения граней для количественной оценки лица
  3. Обучите машину опорных векторов (SVM) поверх вложений
  4. Распознавать лица на изображениях и видеопотоках

Все эти задачи будут выполнены с помощью OpenCV, что позволит нам получить «чистый» конвейер распознавания лиц OpenCV.

Как работает распознавание лиц OpenCV

Рисунок 1: Обзор конвейера распознавания лиц OpenCV. Ключевым шагом является экстрактор функций CNN, который генерирует 128-мерные вложения лиц. (источник)

Чтобы создать конвейер распознавания лиц OpenCV, мы будем применять глубокое обучение в два основных этапа:

  1. Для применения обнаружения лица , который определяет присутствие и местоположение лица на изображении, но не идентифицирует его
  2. Для извлечения 128-мерных векторов признаков (называемых «внедрениями»), которые количественно определяют каждого лица на изображении

Я уже обсуждал, как работает распознавание лиц OpenCV, поэтому, пожалуйста, обратитесь к нему, если вы раньше не обнаруживали лица.

Модель, отвечающая за фактическую количественную оценку каждого лица на изображении, взята из проекта OpenFace, реализации Python и Torch распознавания лиц с глубоким обучением. Эта реализация взята из публикации Шроффа и др. CVPR 2015 года: FaceNet: A Unified Embedding for Face Recognition and Clustering .

Обзор всей реализации FaceNet выходит за рамки этого руководства, но суть конвейера можно увидеть на рис. 1 выше.

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

При желании мы можем вычислить лицевые ориентиры, что позволит нам предварительно обработать и выровнять лицо.

Выравнивание лица, как следует из названия, - это процесс (1) определения геометрической структуры лиц и (2) попытки получить каноническое выравнивание лица на основе перемещения, поворота и масштаба.

Хотя это и необязательно, выравнивание лиц было продемонстрировано для повышения точности распознавания лиц в некоторых конвейерах.

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

Рисунок 2: Как модель распознавания лиц с глубоким обучением вычисляет встраивание лиц.

Модель глубокого обучения FaceNet вычисляет 128-мерное вложение, которое количественно определяет само лицо.

Но как сеть на самом деле вычисляет вложение лица?

Ответ кроется в самом тренировочном процессе, в том числе:

  1. Входные данные в сеть
  2. Триплетная функция потерь

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

  1. Анкер
  2. позитивное изображение
  3. негатив изображение

Якорь - это наше нынешнее лицо и имеет идентификационный номер A .

Второе изображение - это наше позитивное изображение - это изображение также содержит лицо человека A .

Негативное изображение, с другой стороны, не имеет такой же идентичности и может принадлежать человеку B , C или даже Y !

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

Нейронная сеть вычисляет 128-мерные вложения для каждого лица, а затем настраивает веса сети (с помощью функции потерь триплета) так, чтобы:

  1. 128-дневные вложения якоря и позитивного изображения лежат ближе друг к другу
  2. В то же время отталкивая вложения для негативного изображения отца

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

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

Несмотря на то, что модель глубокого обучения, которую мы используем сегодня (очень вероятно), никогда не видела лица, через которые мы собираемся пройти, все равно сможет вычислять вложения для каждого лица - в идеале, эти вложения лиц будет достаточно отличаться, чтобы мы могли обучать «стандартный» классификатор машинного обучения (SVM, SGD classifier, Random Forest и т. д.) поверх вложения лиц и, следовательно, получаем наш конвейер распознавания лиц OpenCV.

Если вам интересно узнать больше о деталях, связанных с потерей триплетов и о том, как их можно использовать для обучения модели встраивания лиц, обязательно обратитесь к моему предыдущему сообщению в блоге, а также к статье Schroff et al. публикация.

Наш набор данных распознавания лиц

Рисунок 3: Небольшой пример набора данных лиц для распознавания лиц с помощью OpenCV.

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

  • Я
  • Триша (моя жена)
  • «Неизвестно», который используется для представления лиц людей, которых мы не знаем и хотим обозначить как таковые (здесь я только что взял образцы лиц из фильма « Парк Юрского периода », которые я использовал в предыдущем посте - вы можете вставить свои собственный «неизвестный» набор данных).

Как я уже упоминал во введении к сегодняшнему посту по распознаванию лиц, я только что женился на выходных, так что этот пост - «подарок» моей новой жене?

Каждый класс содержит всего шесть изображений.

Если вы создаете свой собственный набор данных для распознавания лиц, в идеале я бы предложил иметь 10-20 изображений на человека, которого вы хотите распознать - обязательно обратитесь к «Недостатки, ограничения и способы повышения точности распознавания лиц». раздел этого сообщения в блоге для получения более подробной информации.

Структура проекта

После того, как вы загрузили zip из раздела «Загрузки» этого сообщения, распакуйте архив и перейдите в каталог.

Оттуда вы можете использовать команду tree , чтобы распечатать структуру каталогов в вашем терминале:

 $ дерево --dirsfirst
.
├── набор данных
│ ├── адриан [6 изображений]
│ ├── trisha [6 изображений]
│ └── неизвестно [6 изображений]
├── изображения
│ ├── adrian.jpg
│ ├── patrick_bateman.jpg
│ └── trisha_adrian.jpg
├── face_detection_model
│ ├── deploy.prototxt
│ └── res10_300x300_ssd_iter_140000.caffemodel
├── выход
│ ├── embeddings.pickle
│ ├── лепешка
│ └── распознаватель.пик
├── extract_embeddings.py
├── openface_nn4.small2.v1.t7
├── train_model.py
├── признать.py
└── признать_video.py

7 каталогов, 31 файл
 

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

У нашего проекта в корневой папке четыре каталога:

  • dataset / : Содержит изображения лиц, организованные во вложенные папки по имени.
  • изображений / : Содержит три тестовых изображения, которые мы будем использовать для проверки работы нашей модели.
  • face_detection_model / : содержит предварительно обученную модель глубокого обучения Caffe, предоставленную OpenCV для обнаружения лиц. Эта модель обнаруживает , а локализует лиц на изображении.
  • output / : Содержит мои выходные файлы рассола. Если вы работаете со своим собственным набором данных, вы также можете хранить здесь свои выходные файлы. Выходные файлы включают:
    • embeddings.pickle : сериализованный файл изображений лица. Вложения были вычислены для каждого лица в наборе данных и сохранены в этом файле.
    • le.pickle : Наш кодировщик этикеток. Содержит именные метки людей, которых наша модель может распознать.
    • распознаватель.pickle : Наша модель машины линейных опорных векторов (SVM). Это модель машинного обучения, а не модель глубокого обучения, и она отвечает за фактическое распознавание лиц лиц.

Подведем итоги пяти файлов в корневом каталоге:

  • extract_embeddings.py : Мы рассмотрим этот файл на этапе Step # 1 , который отвечает за использование экстрактора функций глубокого обучения для создания 128-мерного вектора, описывающего лицо.Все лица в нашем наборе данных будут переданы через нейронную сеть для создания встраиваемых изображений.
  • openface_nn4.small2.v1.t7 : модель глубокого обучения Torch, которая создает 128-мерные вложения лиц. Мы будем использовать эту модель глубокого обучения в Шагах №1, №2 и №3 , а также в разделе Bonus .
  • train_model.py : Наша линейная модель SVM будет обучена этим скриптом на этапе Step # 2 . Мы обнаружим лиц , извлечем вложений и подгоним нашу модель SVM к данным вложений.
  • распознавать.py : в Шаге № 3 , и мы распознаем лиц на изображениях. Мы будем обнаруживать лиц, извлекать вложений и запрашивать нашу модель SVM, чтобы определить , кто находится на изображении. Мы нарисуем рамки вокруг лиц и снабдим каждую рамку именем.
  • признать_video.py : В нашем разделе Bonus описывается, как распознать, кто находится в кадре видеопотока, как это было в шаге № 3 для статических изображений.

Приступим к первому шагу!

Шаг № 1: Извлечь вложения из набора данных лиц

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

Откройте файл extract_embeddings.py и вставьте следующий код:

 # импортируем необходимые пакеты
из путей импорта imutils
импортировать numpy как np
import argparse
импорт imutils
импортный рассол
импорт cv2
импорт ОС

# создать парсер аргументов и проанализировать аргументы
ap = argparse.ArgumentParser ()
ap.add_argument ("- i", "--dataset", required = True,
help = "путь к каталогу ввода лиц + изображений")
ap.add_argument ("- e", "--embeddings", required = True,
help = "путь для вывода сериализованных db изображений лица")
ap.add_argument ("- d", "--detector", required = True,
help = "путь к детектору лиц глубокого обучения OpenCV")
ap.add_argument ("- m", "--embedding-model", required = True,
help = "путь к модели встраивания лиц глубокого обучения OpenCV")
ap.add_argument ("- c", "--confidence", type = float, по умолчанию = 0.5,
help = "минимальная вероятность отфильтровать слабые обнаружения")
args = vars (ap.parse_args ())
 

Мы импортируем необходимые пакеты по линиям 2-8 . Вам потребуется установить OpenCV и imutils . Чтобы установить OpenCV, просто следуйте одному из моих руководств (я рекомендую OpenCV 3.4.2, поэтому обязательно загрузите правильную версию, пока будете следовать инструкциям). Мой пакет imutils можно установить с помощью pip:

 $ pip install - обновить imutils
 

Затем мы обрабатываем аргументы нашей командной строки:

  • --dataset : путь к нашему входному набору данных изображений лиц.
  • --embeddings : Путь к нашему выходному файлу вложений. Наш скрипт вычислит вложения лиц, которые мы сериализуем на диск.
  • --detector : путь к детектору лиц с глубоким обучением OpenCV, основанному на Caffe, который используется для локализации лиц на изображениях.
  • --embedding-model : путь к модели встраивания Torch с глубоким обучением OpenCV. Эта модель позволит нам извлечь 128-мерный вектор вложения лица.
  • --confidence : Дополнительный порог для фильтрации обнаружения лица за неделю.

Теперь, когда мы импортировали наши пакеты и проанализировали аргументы командной строки, давайте загрузим детектор лиц и программу для внедрения с диска:

 # загрузить наш сериализованный детектор лиц с диска
print ("[ИНФОРМАЦИЯ] загрузка детектора лиц ...")
protoPath = os.path.sep.join ([args ["детектор"], "deploy.prototxt"])
modelPath = os.path.sep.join ([args ["детектор"],
"res10_300x300_ssd_iter_140000.caffemodel"])
детектор = cv2.dnn.readNetFromCaffe (protoPath, modelPath)

# загружаем нашу сериализованную модель встраивания лица с диска
print ("[ИНФОРМАЦИЯ] загрузка распознавателя лиц ...")
embedder = cv2.dnn.readNetFromTorch (args ["модель_встраивания"])
 

Здесь загружаем детектор лиц и эмбеддер:

  • Детектор : загружается через линии 26-29 . Мы используем детектор лиц DL на базе Caffe для локализации лиц на изображении.
  • embedder : загружено на строке 33 .Эта модель основана на Torch и отвечает за извлечение встраиваемых изображений лица посредством извлечения функций глубокого обучения.

Обратите внимание, что мы используем соответствующие функции cv2.dnn для загрузки двух отдельных моделей. Модуль dnn не был доступен до OpenCV 3.3, но я рекомендую вам использовать OpenCV 3.4.2 или выше для этого сообщения в блоге.

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

 # захватываем пути к входным изображениям в нашем наборе данных
print ("[ИНФОРМАЦИЯ] количественная оценка лиц... ")
imagePaths = list (paths.list_images (args ["набор данных"]))

# инициализируем наши списки извлеченных эмбеддингов лиц и
# соответствующих имен людей
knownEmbeddings = []
knownNames = []

# инициализируем общее количество обработанных лиц
всего = 0
 

Список imagePaths , построенный на строке 37 , содержит путь к каждому изображению в наборе данных. Я упростил это с помощью функции imutils , paths.list_images .

Наши вложения и соответствующие имена будут храниться в двух списках: известных вложений и известных имен ( строки 41 и 42, ).

Мы также будем отслеживать количество обработанных лиц с помощью переменной с именем всего ( строка 45 ).

Давайте начнем цикл по путям изображения - этот цикл будет отвечать за извлечение вложений из лиц, найденных на каждом изображении:

 # цикл по путям изображения
для (i, imagePath) в перечислении (imagePaths):
# извлекаем имя человека из пути к изображению
print ("[INFO] обработка изображения {} / {}". format (i + 1,
len (imagePaths)))
имя = путь к изображению.split (os.path.sep) [- 2]

# загружаем изображение, изменяем его размер до ширины 600 пикселей (пока
# сохраняя соотношение сторон), а затем возьмите изображение
# Габаритные размеры
изображение = cv2.imread (imagePath)
image = imutils.resize (изображение, ширина = 600)
(h, w) = image.shape [: 2]
 

Мы начинаем перебирать imagePaths на Line 48 .

Сначала мы извлекаем имя человека из пути (, строка 52, ). Чтобы объяснить, как это работает, рассмотрим следующий пример в моей оболочке Python:

 $ питон
>>> из путей импорта imutils
>>> import os
>>> imagePaths = list (paths.list_images ("набор данных"))
>>> imagePath = imagePaths [0]
>>> imagePath
'dataset / adrian / 00004.jpg'
>>> imagePath.split (os.path.sep)
['набор данных', 'Адриан', '00004.jpg']
>>> imagePath.split (os.path.sep) [- 2]
'Адриан'
>>>
 

Обратите внимание, как, используя imagePath.split и предоставляя разделительный символ (разделитель путей ОС - «/» в unix и «\» в Windows), функция создает список имен папок / файлов (строк), которые идут вниз дерево каталогов.Мы берем предпоследний индекс, лица зовут , в данном случае это «адриан» .

Наконец, мы завершаем приведенный выше блок кода, загружая изображение и изменяем размер до известной ширины ( строки 57 и 58, ).

Обнаружим и локализуем лица:

 # построить каплю из изображения
imageBlob = cv2.dnn.blobFromImage (
cv2.resize (изображение, (300, 300)), 1.0, (300, 300),
(104,0, 177,0, 123.0), swapRB = False, crop = False)

# применить детектор лиц на основе глубокого обучения OpenCV для локализации
# лица на входном изображении
Detector.setInput (imageBlob)
обнаружения = детектор.forward ()
 

На строках 62-64 мы создаем blob. Чтобы узнать больше об этом процессе, прочтите Глубокое обучение: как работает blobFromImage в OpenCV .

Отсюда мы обнаруживаем лица на изображении, пропуская imageBlob через детектор сети ( строки 68 и 69, ).

Давайте обработаем обнаружений :

 # убедитесь, что было найдено хотя бы одно лицо
если len (обнаружений)> 0:
# мы предполагаем, что каждое изображение имеет только ОДИН
# лицо, поэтому найдите ограничивающую рамку с наибольшей вероятностью
i = np.argmax (обнаружения [0, 0,:, 2])
уверенность = обнаружения [0, 0, i, 2]

# убедитесь, что обнаружение с наибольшей вероятностью также
# означает наш минимальный вероятностный тест (помогающий отфильтровать
# слабое обнаружение)
если уверенность> args ["уверенность"]:
# вычислить (x, y) -координаты ограничивающего прямоугольника для
# лицо
коробка = обнаружения [0, 0, i, 3: 7] * np.массив ([ш, в, ш, в])
(startX, startY, endX, endY) = box.astype ("int")

# извлекаем ROI лица и получаем размеры ROI
лицо = изображение [начало: конецY, началоX: конецX]
(fH, fW) = face.shape [: 2]

# убедитесь, что ширина и высота лица достаточно большие
если fW <20 или fH <20:
Продолжить
 

Список обнаружений содержит вероятности и координаты для локализации лиц на изображении.

Предполагая, что у нас есть хотя бы одно обнаружение, мы перейдем к телу оператора if (, строка 72, ).

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

Предполагая, что мы достигли этого порога, мы извлекаем рентабельность инвестиций для лица и захватываем / проверяем размеры, чтобы убедиться, что рентабельность инвестиций для лица достаточно велика ( строки 84-93 ).

Оттуда мы воспользуемся нашим встроенным устройством CNN и извлечем вложения лиц:

 # построить каплю для области интереса лица, затем передать каплю
# через нашу модель вложения лиц, чтобы получить 128-дневный
# количественная оценка лица
faceBlob = cv2.dnn.blobFromImage (лицо, 1.0 / 255,
(96, 96), (0, 0, 0), swapRB = True, crop = False)
embedder.setInput (faceBlob)
vec = embedder.forward ()

# добавляем имя человека + соответствующее лицо
# встраивание в соответствующие списки
известные имена.добавить (имя)
knownEmbeddings.append (vec.flatten ())
всего + = 1
 

Мы создаем еще один blob, на этот раз из области интереса к лицу (а не всего изображения, как мы делали раньше) на строках 98 и 99 .

Затем мы пропускаем faceBlob через модуль внедрения CNN ( строки 100 и 101, ). Это генерирует 128-D вектор ( vec ), который описывает лицо. Мы будем использовать эти данные, чтобы распознавать новые лица с помощью машинного обучения.

А затем мы просто добавляем имя и встраиваем vec в известных имен и knownEmbeddings соответственно ( строки 105 и 106 ).

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

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

Все, что остается, когда цикл завершается, - это выгрузить данные на диск:

 # дамп лицевых эмбеддингов + имен на диск
print ("[ИНФОРМАЦИЯ] сериализация {} кодировок... ". формат (всего))
data = {"вложения": knownEmbeddings, "names": knownNames}
f = open (args ["вложения"], "wb")
f.write (pickle.dumps (данные))
f.close ()
 

Мы добавляем имя и встраиваемые данные в словарь, а затем сериализуем данные в файле pickle в строках 110-114 .

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

Чтобы следовать этому руководству по распознаванию лиц, используйте раздел «Загрузки» сообщения, чтобы загрузить исходный код, модели OpenCV и пример набора данных для распознавания лиц.

Оттуда откройте терминал и выполните следующую команду, чтобы вычислить вложения лица с помощью OpenCV:

 $ python extract_embeddings.py --dataset набор данных \
--embeddings output / embeddings.pickle \
--detector face_detection_model \
--embedding-модель openface_nn4.small2.v1.t7
[ИНФОРМАЦИЯ] загрузка детектора лиц ...
[ИНФОРМАЦИЯ] загрузка распознавателя лиц ...
[ИНФОРМАЦИЯ] количественная оценка лиц ...
[INFO] обработка изображения 1/18
[INFO] обработка изображения 2/18
[INFO] обработка изображения 3/18
[INFO] обработка изображения 4/18
[INFO] обработка изображения 5/18
[INFO] обработка изображения 6/18
[INFO] обработка изображения 7/18
[INFO] обработка изображения 8/18
[INFO] обработка изображения 9/18
[INFO] обработка изображения 10/18
[INFO] обработка изображения 11/18
[INFO] обработка изображения 12/18
[INFO] обработка изображения 13/18
[INFO] обработка изображения 14/18
[INFO] обработка изображения 15/18
[INFO] обработка изображения 16/18
[INFO] обработка изображения 17/18
[INFO] обработка изображения 18/18
[INFO] сериализация 18 кодировок...
 

Здесь вы можете видеть, что мы извлекли 18 встраиваний лиц, по одному для каждого изображения (6 на класс) в нашем входном наборе данных лиц.

Шаг № 2: Обучите модель распознавания лиц

На этом этапе мы извлекли 128-мерные вложения для каждого лица - , но как мы на самом деле узнаем человека на основе этих встраиваний? Ответ заключается в том, что нам нужно обучить «стандартную» модель машинного обучения (такую ​​как SVM, классификатор k-NN, случайный лес и т. Д.) Поверх встраиваний.

В моем предыдущем руководстве по распознаванию лиц мы узнали, как модифицированную версию k-NN можно использовать для распознавания лиц на 128-мерных вложениях, созданных с помощью библиотек dlib и face_recognition.

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

Откройте файл train_model.py и вставьте следующий код:

 # импортируем необходимые пакеты
из склеарна.предварительная обработка импорта LabelEncoder
из sklearn.svm импортировать SVC
import argparse
импортный рассол

# создать парсер аргументов и проанализировать аргументы
ap = argparse.ArgumentParser ()
ap.add_argument ("- e", "--embeddings", required = True,
help = "путь к сериализованной базе данных вложения лиц")
ap.add_argument ("- r", "--recognizer", required = True,
help = "путь к выходной модели, обученной распознавать лица")
ap.add_argument ("- l", "--le", required = True,
help = "путь к кодировщику выходной метки")
args = vars (ap.parse_args ())
 

Нам потребуется scikit-learn, библиотека машинного обучения, установленная в нашей среде перед запуском этого скрипта.Вы можете установить его через pip:

 $ pip установить scikit-learn
 

Мы импортируем наши пакеты и модули на строк 2-5 . Мы будем использовать реализацию опорных векторных машин (SVM) scikit-learn, распространенной модели машинного обучения.

Оттуда мы анализируем аргументы командной строки:

  • --embeddings : путь к сериализованным вложениям (мы экспортировали его, выполнив предыдущий сценарий extract_embeddings.py ).
  • --recognizer : это будет наша выходная модель, в которой распознает лиц.Он основан на SVM. Мы сохраним его, чтобы использовать в следующих двух скриптах распознавания.
  • --le : Путь к выходному файлу кодировщика этикеток. Мы сериализуем наш кодировщик этикеток на диск, чтобы мы могли использовать его и модель распознавателя в наших сценариях распознавания лиц изображений / видео.

Каждый из этих аргументов - требуется .

Давайте загрузим наши лицевые вложения и закодируем наши метки:

 # загрузить вложения лица
print ("[ИНФОРМАЦИЯ] загружает вложения лиц... ")
data = pickle.loads (open (args ["вложения"], "rb"). read ())

# закодировать метки
print ("[ИНФОРМАЦИЯ] метки кодировки ...")
le = LabelEncoder ()
label = le.fit_transform (данные ["имена"])
 

Здесь мы загружаем наши вложения из Step # 1 на Line 19 . Мы не будем создавать вложения в этом сценарии обучения модели - мы будем использовать ранее созданные и сериализованные вложения.

Затем мы инициализируем наш scikit-learn LabelEncoder и кодируем наше имя , метки ( строки 23 и 24, ).

Пришло время обучить нашу модель SVM распознаванию лиц:

 # обучить модель, используемую для принятия 128-мерных вложений лица и
# затем произвести фактическое распознавание лиц
print ("[ИНФОРМАЦИЯ] обучающая модель ...")
распознаватель = SVC (C = 1.0, ядро ​​= "linear", вероятность = True)
распознаватель.fit (данные ["вложения"], метки)
 

На Строке 29, мы инициализируем нашу модель SVM, а на Строке 30, мы подгоняем модель (также известную как «обучение модели»).

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

После обучения модели мы выводим модель и кодирующее устройство меток на диск в виде файлов pickle.

 # записываем актуальную модель распознавания лиц на диск
f = open (args ["распознаватель"], "wb")
f.write (pickle.dumps (распознаватель))
f.close ()

# записываем кодировщик этикеток на диск
f = open (args ["le"], "wb")
f.write (pickle.dumps (le))
f.close ()
 

В этом блоке мы записываем на диск два файла pickle - распознаватель лиц модели и кодировщик этикеток .

На этом этапе убедитесь, что вы сначала выполнили код из Step # 1 . Вы можете получить почтовый индекс, содержащий код и данные из раздела «Загрузки» .

Теперь, когда мы закончили кодирование train_model.py , давайте применим его к нашим извлеченным вложениям лица:

 $ python train_model.py - вывод эмбеддингов / embeddings.pickle \
- вывод распознавателя / распознаватель.pickle \
--le вывод / le.pickle
[ИНФОРМАЦИЯ] загрузка эмбеддингов лиц...
[ИНФОРМАЦИЯ] метки кодировки ...
[ИНФОРМАЦИЯ] обучающая модель ...
$ ls output /
embeddings.pickle le.pickle распознаватель.pickle
 

Здесь вы можете видеть, что наша SVM обучена встраиванию, и как (1) сама SVM, так и (2) кодировка метки были записаны на диск, что позволяет нам применять их к входным изображениям и видео.

Шаг № 3: Распознать лица с OpenCV

Теперь мы готовы выполнять распознавание лиц с помощью OpenCV!

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

Откройте в своем проекте файл identify.py и вставьте следующий код:

 # импортируем необходимые пакеты
импортировать numpy как np
import argparse
импорт imutils
импортный рассол
импорт cv2
импорт ОС

# создать парсер аргументов и проанализировать аргументы
ap = argparse.ArgumentParser ()
ap.add_argument ("- i", "--image", required = True,
help = "путь к входному изображению")
ap.add_argument ("- d", "--detector", required = True,
help = "путь к детектору лиц глубокого обучения OpenCV")
ap.add_argument ("- m", "--embedding-model", required = True,
help = "путь к модели встраивания лиц глубокого обучения OpenCV")
ap.add_argument ("- r", "--recognizer", required = True,
help = "путь к модели, обученной распознавать лица")
ap.add_argument ("- l", "--le", required = True,
help = "путь к кодировщику меток")
ap.add_argument ("- c", "--confidence", type = float, по умолчанию = 0,5,
help = "минимальная вероятность отфильтровать слабые обнаружения")
args = vars (ap.parse_args ())
 

Мы, , импортируем наших необходимых пакетов на строках 2-7 .На этом этапе у вас должен быть установлен каждый из этих пакетов.

Наши шесть аргументов командной строки анализируются в строках 10-23 :

  • --image : путь к входному изображению. Мы попытаемся распознать лица на этом изображении.
  • --detector : путь к детектору лиц с глубоким обучением OpenCV. Мы будем использовать эту модель, чтобы обнаружить , где на изображении находятся области интереса лица.
  • --embedding-model : путь к модели встраивания лиц глубокого обучения OpenCV.Мы будем использовать эту модель для извлечения 128-D вложения лица из области интереса лица - мы введем данные в распознаватель.
  • --recognizer : Путь к нашей модели распознавателя. Мы обучили наш распознаватель SVM в Step # 2 . Это то, что на самом деле будет определять, кто такое лицо.
  • --le : Путь к нашему кодировщику этикеток. Он содержит наши лицевые метки, такие как 'adrian' или 'trisha' .
  • --confidence : необязательный порог для фильтрации обнаружения слабых лиц .

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

Теперь, когда мы обработали наш импорт и аргументы командной строки, давайте загрузим три модели с диска в память:

 # загружаем наш сериализованный детектор лиц с диска
print ("[ИНФОРМАЦИЯ] загрузка детектора лиц ...")
protoPath = os.path.sep.присоединиться ([args ["детектор"], "deploy.prototxt"])
modelPath = os.path.sep.join ([args ["детектор"],
"res10_300x300_ssd_iter_140000.caffemodel"])
детектор = cv2.dnn.readNetFromCaffe (protoPath, modelPath)

# загружаем нашу сериализованную модель встраивания лица с диска
print ("[ИНФОРМАЦИЯ] загрузка распознавателя лиц ...")
embedder = cv2.dnn.readNetFromTorch (args ["модель_встраивания"])

# загружаем реальную модель распознавания лиц вместе с кодировщиком этикеток
распознаватель = pickle.loads (open (args ["распознаватель"], "rb"). read ())
le = рассол.загружает (open (args ["le"], "rb"). read ())
 

В этот блок загружаем три модели. Рискуя оказаться лишним, я хочу прямо напомнить вам о различиях между моделями:

  1. Детектор : Модель , предварительно обученная Caffe DL, для определения , где на изображении находятся лица. ( линии 27-30 ).
  2. embedder : предварительно обученная модель Torch DL для расчета наших 128-D граней встраивания ( Line 34 ).
  3. Распознаватель : Наша модель распознавания лиц Linear SVM ( Line 37 ). Мы обучили эту модель в Step 2 .

И 1, и 2 являются предварительно обученными , что означает, что они предоставляются вам как есть OpenCV. Они похоронены в проекте OpenCV на GitHub, но я включил их для вашего удобства в раздел «Загрузки» сегодняшнего сообщения. Я также пронумеровал модели в том порядке, в котором мы будем применять их для распознавания лиц с помощью OpenCV.

Мы также загружаем наш кодировщик этикеток, который содержит имена людей, которых может узнать наша модель (, строка 38, ).

Теперь загрузим наше изображение и определим лиц:

 # загружаем изображение, изменяем его размер до ширины 600 пикселей (в то время как
# сохраняя соотношение сторон), а затем возьмите размеры изображения
image = cv2.imread (args ["изображение"])
image = imutils.resize (изображение, ширина = 600)
(h, w) = image.shape [: 2]

# построить каплю из изображения
imageBlob = cv2.dnn.blobFromImage (
cv2.resize (изображение, (300, 300)), 1.0, (300, 300),
(104.0, 177.0, 123.0), swapRB = False, crop = False)

# применить детектор лиц на основе глубокого обучения OpenCV для локализации
# лица на входном изображении
Detector.setInput (imageBlob)
обнаружения = детектор.forward ()
 

Здесь мы:

  • Загрузите изображение в память и создайте большой двоичный объект (, строки 42-49, ). Узнайте о cv2.dnn.blobFromImage здесь.
  • Локализуйте лица на изображении с помощью нашего детектора ( строки 53 и 54 ).

С учетом наших новых обнаружений , давайте распознаем лица на изображении. Но сначала нам нужно отфильтровать слабые обнаружения и извлечь лицо ROI:

 # перебрать обнаружение
для i в диапазоне (0, Detections.shape [2]):
# извлекаем уверенность (т.е. вероятность), связанную с
# прогноз
уверенность = обнаружения [0, 0, i, 2]

# отфильтровать слабые обнаружения
если уверенность> args ["уверенность"]:
# вычислить (x, y) -координаты ограничивающей рамки для
# лицо
коробка = обнаружения [0, 0, i, 3: 7] * np.массив ([ш, в, ш, в])
(startX, startY, endX, endY) = box.astype ("int")

# извлекаем ROI лица
лицо = изображение [начало: конецY, началоX: конецX]
(fH, fW) = face.shape [: 2]

# убедитесь, что ширина и высота лица достаточно большие
если fW <20 или fH <20:
Продолжить
 

Вы узнаете этот блок из Step # 1 . Я объясню это еще раз:

  • Мы перебираем обнаружений в строке 57, и извлекаем достоверность каждого из них в строке 60 .
  • Затем мы сравниваем доверительную вероятность с минимальным порогом обнаружения вероятности, содержащимся в нашем словаре командной строки args , гарантируя, что вычисленная вероятность больше минимальной вероятности ( строка 63 ).
  • Оттуда мы извлекаем лицо ROI ( строки 66-70 ), а также проверяем его пространственные размеры ( строки 74 и 75, ).

Распознавание имени лица ROI требует всего нескольких шагов:

 # создать каплю для области интереса к лицу, затем передать каплю
# через нашу модель вложения лиц, чтобы получить 128-дневный
# количественная оценка лица
faceBlob = cv2.dnn.blobFromImage (лицо, 1.0 / 255, (96, 96),
(0, 0, 0), swapRB = True, crop = False)
embedder.setInput (faceBlob)
vec = embedder.forward ()

# выполнить классификацию для распознавания лица
preds = распознаватель.predict_proba (vec) [0]
j = np.argmax (пред.)
proba = preds [j]
name = le.classes_ [j]
 

Сначала мы конструируем объект faceBlob (из области интереса face ) и пропускаем его через устройство для внедрения , чтобы сгенерировать 128-D вектор, который описывает лицо ( строки 80-83, )

Затем мы пропускаем vec через нашу модель распознавателя SVM ( Line 86 ), результатом чего являются наши прогнозы для , который находится в лицевой области ROI.

Мы берем индекс максимальной вероятности (, строка 87, ) и запрашиваем наш кодировщик меток, чтобы найти имя ( строка 89 ). Между тем, я извлекаю вероятность по , Строка 88, .

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

Теперь давайте отобразим результаты распознавания лиц OpenCV:

 # рисуем ограничивающую рамку лица вместе с соответствующим
# вероятность
text = "{}: {: .2f}%". format (имя, вероятность * 100)
y = startY - 10, если startY - 10> 10, иначе startY + 10
cv2.rectangle (изображение, (startX, startY), (endX, endY),
(0, 0, 255), 2)
cv2.putText (изображение, текст, (startX, y),
cv2.FONT_HERSHEY_SIMPLEX, 0.45, (0, 0, 255), 2)

# показать выходное изображение
cv2.imshow ("Изображение", изображение)
cv2.waitKey (0)
 

На каждое лицо, которое мы узнаем в цикле (включая «неизвестных») людей:

  • Мы создаем строку text , содержащую имя и вероятность на строке 93 .
  • Затем мы рисуем прямоугольник вокруг лица и помещаем текст над рамкой (, строки 94-98, ).

И, наконец, мы визуализируем результаты на экране, пока не будет нажата клавиша ( строки 101 и 102, ).

Пора распознавать лица на изображениях с помощью OpenCV!

Чтобы применить наш конвейер распознавания лиц OpenCV к предоставленным мной изображениям (или вашему собственному набору данных + тестовым изображениям), убедитесь, что вы используете раздел «Загрузки» сообщения в блоге, чтобы загрузить код, обученные модели и примеры изображений. .

Оттуда откройте терминал и выполните следующую команду:

 $ python распознавать.py --detector face_detection_model \
--embedding-model openface_nn4.small2.v1.t7 \
- вывод распознавателя / распознаватель.pickle \
--le вывод / le.pickle \
--image images / adrian.jpg
[ИНФОРМАЦИЯ] загрузка детектора лиц ...
[ИНФОРМАЦИЯ] загрузка распознавателя лиц ...
 
Рисунок 4: Распознавание лиц OpenCV распознало me на показе фильма Jurassic World: Fallen Kingdom .

Здесь вы можете увидеть, как я потягиваю пиво и одет в одну из моих любимых рубашек Jurassic Park , а также специальный бокал Jurassic World и памятную книгу. Мое предсказание лица имеет достоверность только 47,15%; однако эта уверенность выше, чем у класса «Неизвестно» .

Давайте попробуем еще один пример распознавания лиц OpenCV:

 $ python распознавать.py --detector face_detection_model \
--embedding-model openface_nn4.small2.v1.t7 \
- вывод распознавателя / распознаватель.соленый огурец \
--le вывод / le.pickle \
--image images / trisha_adrian.jpg
[ИНФОРМАЦИЯ] загрузка детектора лиц ...
[ИНФОРМАЦИЯ] загрузка распознавателя лиц ...
 
Рисунок 5: Меня и мою жену Тришу узнают на селфи-фотографии в самолете с распознаванием лиц с глубоким обучением OpenCV +.

Мы с Тришей готовы начать отпуск!

В последнем примере давайте посмотрим, что происходит, когда наша модель не может распознать настоящее лицо:

 $ python распознавать.py --detector face_detection_model \
- встраиваемая модель openface_nn4.small2.v1.t7 \
- вывод распознавателя / распознаватель.pickle \
--le вывод / le.pickle \
--image images / patrick_bateman.jpg
[ИНФОРМАЦИЯ] загрузка детектора лиц ...
[ИНФОРМАЦИЯ] загрузка распознавателя лиц ...
 
Рисунок 6: Распознавание лиц с помощью OpenCV определило, что этот человек «неизвестен».

Третье изображение - это пример «неизвестного» человека, который на самом деле является Патриком Бейтманом из American Psycho - поверьте мне, это не тот человек, которого вы хотели бы видеть в своих изображениях или видеопотоках!

БОНУС: Распознавать лица в видеопотоках

В качестве бонуса я решил включить раздел, посвященный распознаванию лиц OpenCV в видеопотоках!

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

Откройте файл identify_video.py и приступим:

 # импортируем необходимые пакеты
из imutils.video импорт VideoStream
из imutils.video импорт FPS
импортировать numpy как np
import argparse
импорт imutils
импортный рассол
время импорта
импорт cv2
импорт ОС

# создать парсер аргументов и проанализировать аргументы
ap = argparse.ArgumentParser ()
ap.add_argument ("- d", "--detector", required = True,
help = "путь к детектору лиц глубокого обучения OpenCV")
ap.add_argument ("- m", "--embedding-model", required = True,
help = "путь к модели встраивания лиц глубокого обучения OpenCV")
ap.add_argument ("- r", "--recognizer", required = True,
help = "путь к модели, обученной распознавать лица")
ap.add_argument ("- l", "--le", required = True,
help = "путь к кодировщику меток")
ap.add_argument ("- c", "--confidence", type = float, по умолчанию = 0,5,
help = "минимальная вероятность отфильтровать слабые обнаружения")
args = vars (ap.parse_args ())
 

Наш импорт такой же, как и в разделе Step # 3 выше, за исключением строк 2 и 3 , где мы используем модуль imutils.video .Мы будем использовать VideoStream для захвата кадров с нашей камеры и FPS для расчета статистики кадров в секунду.

Аргументы командной строки такие же, за исключением того, что мы не передаем путь к статическому изображению через командную строку. Скорее мы возьмем ссылку на нашу веб-камеру, а затем обработаем видео. Обратитесь к Шаг # 3 , если вам нужно просмотреть аргументы.

Здесь загружены три наши модели и кодировщик этикеток:

 # загрузить наш сериализованный детектор лиц с диска
print ("[ИНФОРМАЦИЯ] загружает детектор лиц... ")
protoPath = os.path.sep.join ([args ["детектор"], "deploy.prototxt"])
modelPath = os.path.sep.join ([args ["детектор"],
"res10_300x300_ssd_iter_140000.caffemodel"])
детектор = cv2.dnn.readNetFromCaffe (protoPath, modelPath)

# загружаем нашу сериализованную модель встраивания лица с диска
print ("[ИНФОРМАЦИЯ] загрузка распознавателя лиц ...")
embedder = cv2.dnn.readNetFromTorch (args ["модель_встраивания"])

# загружаем реальную модель распознавания лиц вместе с кодировщиком этикеток
распознаватель = pickle.loads (open (args ["распознаватель"], "rb").читать())
le = pickle.loads (open (args ["le"], "rb"). read ())
 

Здесь мы загружаем детектор лица , устройство для внедрения лица модель , модель распознавателя лица модель (Linear SVM) и кодировщик этикеток.

Опять же, обязательно обратитесь к Шаг № 3 , если вы не уверены в трех моделях или кодировщике этикеток.

Давайте инициализируем наш видеопоток и начнем обработку кадров:

 # инициализировать видеопоток, затем дать сенсору камеры прогреться
print ("[INFO] запускает видеопоток... ")
vs = VideoStream (src = 0) .start ()
time.sleep (2.0)

# запускаем оценку пропускной способности FPS
fps = FPS (). start ()

# перебирать кадры из потока видеофайлов
в то время как True:
# взять кадр из потокового видеопотока
frame = vs.read ()

# изменить размер кадра, чтобы он имел ширину 600 пикселей (в то время как
# сохраняя соотношение сторон), а затем возьмите изображение
# Габаритные размеры
frame = imutils.resize (рамка, ширина = 600)
(h, w) = frame.shape [: 2]

# построить каплю из изображения
imageBlob = cv2.dnn.blobFromImage (
cv2.изменить размер (кадр, (300, 300)), 1.0, (300, 300),
(104.0, 177.0, 123.0), swapRB = False, crop = False)

# применить детектор лиц на основе глубокого обучения OpenCV для локализации
# лица на входном изображении
Detector.setInput (imageBlob)
обнаружения = детектор.forward ()
 

Наш объект VideoStream инициализируется и запускается в строке , 43, . Дожидаемся прогрева сенсора камеры на Line 44 .

Мы также инициализируем наш счетчик кадров в секунду (, строка 47, ) и начинаем зацикливаться на кадрах на , строка 50, .Мы берем кадр с веб-камеры на Line 52 .

Отсюда все то же, что и Step 3 . Мы изменяем размер кадра ( L ine 57 ), а затем создаем blob из кадра + определяем, где находятся лица ( строки 61-68, ).

Теперь займемся обработкой обнаружений:

 # перебрать детекции
для i в диапазоне (0, Detections.shape [2]):
# извлекаем уверенность (т.е. вероятность), связанную с
# предсказание
уверенность = обнаружения [0, 0, i, 2]

# отфильтровать слабые обнаружения
если уверенность> args ["уверенность"]:
# вычислить (x, y) -координаты ограничивающего прямоугольника для
# лицо
коробка = обнаружения [0, 0, i, 3: 7] * np.массив ([ш, в, ш, в])
(startX, startY, endX, endY) = box.astype ("int")

# извлекаем ROI лица
face = frame [начало: конецY, началоX: конецX]
(fH, fW) = face.shape [: 2]

# убедитесь, что ширина и высота лица достаточно большие
если fW <20 или fH <20:
Продолжить
 

Как и в предыдущем разделе, мы начинаем перебирать обнаружений и отфильтровывать слабые ( строки 71-77, ). Затем мы извлекаем область интереса для лица , а также проверяем, достаточно ли пространственные размеры для следующих шагов ( строки 84-89, ).

Пришло время выполнить распознавание лиц OpenCV:

 # создайте blob для области интереса лица, затем передайте blob
# через нашу модель вложения лиц, чтобы получить 128-дневный
# количественная оценка лица
faceBlob = cv2.dnn.blobFromImage (лицо, 1.0 / 255,
(96, 96), (0, 0, 0), swapRB = True, crop = False)
embedder.setInput (faceBlob)
vec = embedder.forward ()

# выполнить классификацию для распознавания лица
preds = распознаватель.predict_proba (vec) [0]
j = np.argmax (пред.)
proba = preds [j]
name = le.классы_ [j]

# рисуем ограничивающую рамку лица вместе с
# связанная вероятность
text = "{}: {: .2f}%". format (имя, вероятность * 100)
y = startY - 10, если startY - 10> 10, иначе startY + 10
cv2.rectangle (frame, (startX, startY), (endX, endY),
(0, 0, 255), 2)
cv2.putText (кадр, текст, (startX, y),
cv2.FONT_HERSHEY_SIMPLEX, 0.45, (0, 0, 255), 2)

# обновить счетчик FPS
fps.update ()
 

Здесь мы:

  • Создайте faceBlob ( строки 94 и 95, ) и вычислите вложения лиц с помощью глубокого обучения ( строки 96 и 97, ).
  • Распознайте наиболее вероятное имя лица при вычислении вероятности ( Строка 100-103 ).
  • Нарисуйте ограничительную рамку вокруг лица и имени человека + вероятность ( строки 107–112 ).

Наш счетчик кадров в секунду и обновлен в строке , строка 115, .

Давайте отобразим результаты и очистим:

 # показать выходной кадр
cv2.imshow ("Фрейм", фрейм)
ключ = cv2.waitKey (1) & 0xFF

# если была нажата клавиша `q`, выйти из цикла
если ключ == ord ("q"):
сломать

# остановить таймер и отобразить информацию о FPS
кадров в секунду.стоп()
print ("[ИНФОРМАЦИЯ] истекшее время: {: .2f}". format (fps.elapsed ()))
print ("[ИНФОРМАЦИЯ] прибл. FPS: {: .2f}". format (fps.fps ()))

# немного почистить
cv2.destroyAllWindows ()
против остановки ()
 

Чтобы закрыть сценарий, мы:

  • Отобразите аннотированный кадр (, строка 118, ) и дождитесь нажатия клавиши «q», после чего мы выйдем из цикла ( строки 119-123 ).
  • Остановите наш счетчик кадров в секунду и распечатайте статистику в терминале ( строки 126-128, ).
  • Очистка путем закрытия окон и освобождения указателей (, строки 131 и 132, ).

Чтобы запустить конвейер распознавания лиц OpenCV в видеопотоке, откройте терминал и выполните следующую команду:

 $ python распознавать_video.py --detector face_detection_model \
--embedding-model openface_nn4.small2.v1.t7 \
- вывод распознавателя / распознаватель.pickle \
--le вывод / le.pickle
[ИНФОРМАЦИЯ] загрузка детектора лиц ...
[ИНФОРМАЦИЯ] загрузка распознавателя лиц ...
[INFO] запускает видеопоток...
[INFO] истекшее время: 12.52
[ИНФОРМАЦИЯ] прибл. Кадров в секунду: 16,13
 

Рисунок 7: Распознавание лиц в видео с OpenCV.

Как видите, и Триша, и мое лицо опознаны правильно! Наш конвейер распознавания лиц OpenCV также дает ~ 16 FPS на моем iMac. На моем MacBook Pro я получал скорость ~ 14 FPS.

Недостатки, ограничения и способы повышения точности распознавания лиц

Рисунок 8: Все системы распознавания лиц подвержены ошибкам.Никогда не будет 100% точной системы распознавания лиц.

Неизбежно вы столкнетесь с ситуацией, когда OpenCV неправильно распознает лицо.

Что вы делаете в таких ситуациях?

А как повысить точность распознавания лиц в OpenCV? В этом разделе я подробно расскажу о некоторых из предлагаемых методов повышения точности конвейера распознавания лиц

Вам могут понадобиться дополнительные данные
Рисунок 9: Большинство людей не обучают свои модели распознавания лиц OpenCV с достаточным количеством данных.(источник изображения)

Мое первое предложение, вероятно, наиболее очевидное, но им стоит поделиться.

В моем предыдущем руководстве по распознаванию лиц несколько читателей PyImageSearch спросили, почему их точность распознавания лиц была низкой, а лица классифицировались неправильно - разговор проходил примерно так (перефразировано):

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

Я: Сколько изображений лиц у вас на человека?

Их: Всего один или два.

Me: Соберите больше данных.

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

Так не работает.

Если вы обнаружите, что у вас низкая точность распознавания лиц и у вас есть только несколько примеров лиц на человека, соберите больше данных - нет «уловок компьютерного зрения», которые избавят вас от процесса сбора данных.

Инвестируйте в свои данные, и у вас будет лучший конвейер распознавания лиц OpenCV. В общем, я бы рекомендовал минимум 10-20 лиц на человека.

Примечание: Вы можете подумать: «Но, Адриан, в сегодняшнем посте вы собрали только 6 изображений на человека!» Да, вы правы - и я сделал это, чтобы доказать свою точку зрения. Система распознавания лиц OpenCV, которую мы обсуждали сегодня, работает, но всегда может быть улучшена. Бывают случаи, когда меньшие наборы данных дают желаемые результаты, и нет ничего плохого в том, чтобы попробовать небольшой набор данных, но когда вы не достигнете желаемой точности, вы захотите собрать больше данных.

Выполнить выравнивание лица
Рисунок 9: Выполнение выравнивания лиц для распознавания лиц OpenCV может значительно улучшить производительность распознавания лиц.

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

Модель OpenFace будет лучше работать с выровненными гранями.

Выравнивание лица происходит в процессе:

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

Как видно из Рисунок 9 вверху этого раздела, у меня есть:

  1. Обнаружил лица на изображении и извлек области интереса (на основе координат ограничивающей рамки).
  2. Прикладное определение лицевых ориентиров для извлечения координат глаз.
  3. Вычислил центр тяжести для каждого соответствующего глаза вместе со средней точкой между глазами.
  4. И на основе этих точек применил аффинное преобразование, чтобы изменить размер лица до фиксированного размера и размера.

Если мы применим выравнивание граней к каждой грани в нашем наборе данных, то в пространстве выходных координат все грани должны:

  1. Расположить по центру изображения.
  2. Повернуть так, чтобы глаза лежали на горизонтальной линии (т. Е. Лицо повернуто так, что глаза лежат по одной и той же координате y ).
  3. Масштабируйте таким образом, чтобы размеры граней были примерно одинаковыми.

Применение выравнивания лиц к нашему конвейеру распознавания лиц OpenCV выходило за рамки сегодняшнего руководства, но если вы хотите еще больше повысить точность распознавания лиц с помощью OpenCV и OpenFace, я бы порекомендовал вам применить выравнивание лиц.

Ознакомьтесь с моим сообщением в блоге, Face Alignment with OpenCV and Python .

Настройте свои гиперпараметры

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

В этом руководстве мы использовали линейную SVM; однако мы не настраивали значение C , которое обычно является наиболее важным значением для настройки SVM.

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

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

Меньшие значения C будут более «мягкими», что допускает некоторую неправильную классификацию данных обучения, но в идеале лучше обобщает данные тестирования.

Интересно отметить, что согласно одному из примеров классификации в OpenFace GitHub, они фактически рекомендуют , а не настраивать гиперпараметры, так как, исходя из своего опыта, они обнаружили, что установка C = 1 дает удовлетворительные результаты распознавания лиц в большинство настроек.

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

Использовать модель встраивания dlib (но не k-NN для распознавания лиц)

По моему опыту использования как модели распознавания лиц OpenCV, так и модели распознавания лиц dlib, я обнаружил, что встраивание лиц dlib является более разборчивым, особенно для небольших наборов данных.

Кроме того, я обнаружил, что модель dlib меньше зависит от:

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

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

Модель k-NN работала очень хорошо, но, как мы знаем, существуют более мощные модели машинного обучения.

Для дальнейшего повышения точности вы можете использовать модель встраивания dlib, а затем вместо применения k-NN выполнить Шаг № 2 из сегодняшней публикации и обучить более мощный классификатор для встраивания лиц.

Сталкивались ли вы с ошибкой «ИСПОЛЬЗОВАНИЕ» при запуске сегодняшних скриптов распознавания лиц Python?

Каждую неделю я получаю электронные письма, которые (перефразируя) выглядят примерно так:

Привет, Адриан, я не могу запустить код из сообщения в блоге.

Моя ошибка выглядит так:

 использование: extract_embeddings.py [-h] -i DATASET -e EMBEDDINGS
    -d ДЕТЕКТОР -m МОДЕЛЬ_ВРАЩЕНИЯ [-c УВЕРЕННОСТЬ]
extract_embeddings.py: error: необходимы следующие аргументы:
    -i / - набор данных, -e / - вложения, -d / - детектор, -m / - модель встраивания
 

Или это:

Я использую Spyder IDE для запуска кода. Он не работает, так как я получаю сообщение об использовании в командной строке.

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

Если вы новичок в аргументах командной строки, это нормально, но вам нужно прочитать о том, как работают аргументы Python, argparse и командной строки. За до вы попытаетесь запустить эти сценарии!

Я буду с вами честен - распознавание лиц - это продвинутый метод . Аргументы командной строки - это концепция для очень новичков / новичков. Убедитесь, что вы ходите, прежде чем бегать, иначе вы споткнетесь. Найдите время, чтобы узнать, как аргументы командной строки.

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

Для читателей, которые хотят использовать IDE, такую ​​как Spyder или PyCharm, я рекомендую научиться использовать аргументы командной строки в командной строке / терминале сначала .Программируйте в среде IDE, но используйте командную строку для выполнения сценариев.

Я также рекомендую вам не пытаться настроить свою IDE для аргументов командной строки, пока вы не поймете, как они работают, введя их сначала. Фактически, вы, вероятно, полюбите командную строку, поскольку она быстрее, чем щелкать через меню графического интерфейса , чтобы вводить аргументы каждый раз, когда вы хотите их изменить. Когда вы хорошо разбираетесь в том, как работают аргументы командной строки, вы можете настроить их отдельно в своей среде IDE.

Быстрый поиск в моем почтовом ящике показал, что я ответил более чем на 500–1000 вопросов, связанных с аргументами командной строки. По моим оценкам, я ответил еще на 1000+ таких вопросов, отвечая на комментарии в блоге.

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

Сводка

В сегодняшнем сообщении в блоге мы использовали OpenCV для распознавания лиц.

Наш конвейер распознавания лиц OpenCV был создан с использованием четырехэтапного процесса:

  1. Создайте свой набор данных изображений лиц
  2. Извлечь вложения лица для каждого лица на изображении (опять же, используя OpenCV)
  3. Обучить модель поверх вложения лица
  4. Использование OpenCV для распознавания лиц на изображениях и видеопотоках

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

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

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

Надеюсь, вам понравился сегодняшний урок по распознаванию лиц OpenCV!

Чтобы загрузить исходный код, модели и пример набора данных для этого сообщения (и получать уведомления, когда будущие сообщения в блоге будут опубликованы здесь, на PyImageSearch), просто введите свой адрес электронной почты в форму ниже!

Загрузите исходный код и БЕСПЛАТНОЕ 17-страничное руководство по ресурсам

Введите свой адрес электронной почты ниже, чтобы получить.zip кода и БЕСПЛАТНОЕ 17-страничное руководство по компьютерному зрению, OpenCV и глубокому обучению . Внутри вы найдете мои тщательно отобранные учебники, книги, курсы и библиотеки, которые помогут вам освоить CV и DL!

Поиск слов для описания вашей фотографии: практическое руководство

  • Дом
  • Около
  • Техника и советы
    • Технология подсказки Все Технология

      Творческие приложения на моем телефоне и как я…

      12 марта 2018

      Технология

      Крупный план с макросом момента

      19 февраля 2018 г.

      Технология

      Общее снаряжение, которое носит телефонный фотограф: что…

      29 января 2018

      Технология

      Обзор линз New Moment

      18 декабря 2017 г.

      Вдохновение

      Пинхол-фотография: искусство запечатлеть время

      4 декабря 2017 г.

      Вдохновение

      Полное руководство по подаркам для любого фотографа

      27 ноября 2017 г.

      Технология

      Система крепления Moment и как преобразовать ваш…

      30 августа 2017 г.

      Технология

      Никогда больше не роняйте телефон! Лучший телефон…

      21 августа 2017

      Как

      Используйте свой телефон, чтобы сфотографировать затмение

      14 августа 2017

      подсказки

      Психология выбора формата: пейзаж, портрет…

      28 мая 2018 г.

      подсказки

      Поиск слов для описания фотографии: как…

      21 мая 2018 г.

      подсказки

      Posing Secrets: Mirco - Движения, имеющие большое значение…

      23 апреля 2018

      подсказки

      Советы по позированию: сделайте так, чтобы объект ощущался (и выглядел)…

      16 апреля 2018

      подсказки

      Фотопроект: Mundane Object Challenge

      9 апреля 2018 г.

      подсказки

      8 стилей композиции, которые должен знать каждый фотограф

      26 марта 2018

      подсказки

      Творческие приложения на моем телефоне и как я…

      12 марта 2018

      подсказки

      TedxTalk об абстрактной фотографии: эффект размытости

      26 февраля 2018

      подсказки

      Как управлять камерой в телефоне

      5 февраля 2018 г.

      подсказки

      Как использовать камеру в фильмах…

      11 декабря 2017

      подсказки

      Пинхол-фотография: искусство запечатлеть время

      4 декабря 2017 г.

      подсказки

      Самый простой предмет для фотографии

      25 сентября 2017 г.

      Техника и советы

      Психология выбора формата: пейзаж, портрет…

      28 мая 2018 г.

      Техника и советы

      Поиск слов для описания фотографии: как…

      21 мая 2018 г.

      Техника и советы

      Posing Secrets: Mirco - Движения, имеющие большое значение…

      23 апреля 2018

      Техника и советы

      Советы по позированию: сделайте так, чтобы объект ощущался (и выглядел)…

      16 апреля 2018

      Техника и советы

      Фотопроект: Mundane Object Challenge

      9 апреля 2018 г.

      Техника и советы

      8 стилей композиции, которые должен знать каждый фотограф

      26 марта 2018

      Техника и советы

      Творческие приложения на моем телефоне и как я…

      12 марта 2018

      Техника и советы

      TedxTalk об абстрактной фотографии: эффект размытости

      26 февраля 2018

      Техника и советы

      Крупный план с макросом момента

      19 февраля 2018 г.

      Техника и советы

      Как управлять камерой в телефоне

      5 февраля 2018 г.

      Техника и советы

      Общее снаряжение, которое носит телефонный фотограф: что…

      29 января 2018

      Техника и советы

      Обзор линз New Moment

      18 декабря 2017 г.

  • Как записаться
    • Как

      Советы и приемы фотографии домашних животных: как фотографировать…

      4 июня 2018 г.

      Как

      Фотопроект: Mundane Object Challenge

      9 апреля 2018 г.

      Как

      8 стилей композиции, которые должен знать каждый фотограф

      26 марта 2018

      Как

      Как запечатлеть «мягкий» водопад на вашем…

      12 февраля 2018 г.

      Как

      Как управлять камерой в телефоне

      5 февраля 2018 г.

      Как

      Как фотографировать под дождем на вашем…

      15 января 2018

      Как

      Как фотографировать в разгар зимы

      25 декабря 2017 г.

      Как

      Как использовать камеру в фильмах…

      11 декабря 2017

      Как

      Как подделать цианотип на телефоне

      30 сентября 2017 г.

      Как

      Фотопроект: 5 творческих ракурсов, чтобы попробовать это…

      11 сентября 2017

      Как

      Используйте свой телефон, чтобы сфотографировать затмение

      14 августа 2017

      Как

      Как сделать лучший портрет с помощью…

      2 августа 2017

  • Вдохновение
    • Вдохновение

      Путешествуйте по лучшим местам Перу: лукбук и маршрут

      12 ноября 2018

      Вдохновение

      Лукбук: Поход на Радужную гору Перу

      15 октября 2018

      Вдохновение

      Поиск слов для описания фотографии: как…

      21 мая 2018 г.

      Вдохновение

      27 причин, по которым люди фотографируют

      7 мая 2018

      Вдохновение

      Posing Secrets: Mirco - Движения, имеющие большое значение…

      23 апреля 2018

      Вдохновение

      5 вдохновляющих фотографов обсуждают свои работы и лучшие…

      18 марта 2018 г.

      Вдохновение

      Красота в искусстве и что я считаю прекрасным

      5 марта 2018

      Вдохновение

      TedxTalk об абстрактной фотографии: эффект размытости

      26 февраля 2018

      Вдохновение

      5 книг, которые изменили мой взгляд на фотографию

      22 января 2018

      Вдохновение

      Абстрактное искусство в целях и беседах

      8 января 2018

  • Дорога и тропы
    • Дорога и тропы

      Путешествуйте по лучшим местам Перу: лукбук и маршрут

      12 ноября 2018

      Дорога и тропы

      Лукбук: Amazon Rainforest

      29 октября 2018 г.

      Дорога и тропы

      Лукбук: Поход на Радужную гору Перу

      15 октября 2018

      Дорога и тропы

      Лукбук: Национальный парк Глейшер и Монтан

19 лучших мобильных приложений для распознавания лиц на 2019 год

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

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

Как в будущем будут использоваться приложения для распознавания лиц? Время покажет.А пока вот 19 лучших мобильных приложений для распознавания лиц, которые меняют мир.

FaceFirst

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

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

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

Это классное приложение распознает ваши эмоции на фотографии и автоматически размещает забавные смайлики в нужных местах на вашем лице, которыми вы можете поделиться с друзьями через Facebook Messenger. Загрузите фотографию, и EmoticonAR автоматически назначит смайлик каждому человеку в кадре.Он также предлагает несколько фотофильтров для дальнейшего редактирования.

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

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

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

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

Closely camera - это приложение для няни для iOS и Android, которое позволяет передавать видео с одного устройства на другое. Он предлагает широкий спектр функций и предупреждений, чтобы вы могли быть уверены, что ваш ребенок (или даже домашнее животное) в безопасности.Приложение также предлагает дополнительную функцию отслеживания лица, которая помогает вам определить, за кем вы следите.

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

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

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

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

Face Lock Screen - бесплатное решение для Android, которое позволяет пользователям разблокировать различные приложения с помощью распознавания лиц.

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

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

True Key от Intel Security использует такие биометрические данные, как ваше лицо или отпечаток пальца, для защиты паролей и доступа к ним. Приложение True Key от Intel Security шифрует ваши пароли с помощью AES-256, который является одним из самых надежных алгоритмов шифрования. После этого только вы можете расшифровать и получить доступ к своей информации с помощью выбранных вами факторов, включая биометрические данные, такие как распознавание лиц и отпечатки пальцев.

Разработчики этого приложения утверждают, что оно предлагает лучшее распознавание лиц, чем родное приложение Android для разблокировки экрана.

Face Secret - мобильное приложение, которое анализирует изображение вашего лица, чтобы делать прогнозы о вас как о личности, включая вашу личность, возраст, этническую принадлежность и многое другое! Доступно для пользователей Android.

10 советов, которые помогут улучшить ваши фотографии!

Посмотрим правде в глаза, иногда фотографировать людей бывает непросто! Вот наши 10 лучших советов по улучшению вашей портретной фотографии!

Изучение того, как фотографировать людей, может очень далеко продвинуть вас в увлечении фотографией или даже в карьере фотографа.Фотографировать людей может быть очень пугающей и сложной задачей! В конце концов, при съемке людей на фотографа явно оказывается большое давление, поскольку объект съемки часто ждет результатов и финальных изображений! Быть отличным народным фотографом часто начинается с того, чтобы быть хорошим народным человеком. Если так, то вы на правильном пути! В этом посте я дам вам рекомендации, советы, приемы и уверенность, которые гарантированно улучшат фотографии ваших людей!

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

1. Режим приоритета диафрагмы

Установив камеру в режим «приоритета диафрагмы», вы легко сможете контролировать глубину резкости. Глубина резкости - это то, насколько вы хотите, чтобы ваша фотография была в фокусе. При фотографировании людей глубина резкости - это первое, что я визуализирую перед тем, как нажать кнопку затвора. Это когда я решаю, сколько и чего я хочу, в фокусе или вне его. Чтобы узнать больше о 4 основных режимах камеры, прочитайте этот пост, который мы написали.

Режим

AP позволяет вам легко выбирать диафрагму, в то время как ваша камера будет определять скорость затвора.Это отлично подходит, когда вы хотите быстро изменить глубину резкости, не беспокоясь о смене затвора. Многие профессиональные фотографы используют режим приоритета диафрагмы, особенно в быстро меняющихся условиях, например на свадьбах или во время динамичных семейных съемок. Чтобы сфокусироваться на объекте ниже, была выбрана широкая диафрагма f / 1.8 для размытия фона.

2. Фотографии одного человека и групповые фотографии

При фотографировании одного человека поэкспериментируйте со съемкой «широко открытой» на объектив с самой широкой диафрагмой (наименьшее число диафрагмы, например, f / 2.0, например), чтобы добиться хорошего размытия фона. Это приведет к тому, что ваш объект действительно «выскочит» из изображения.

Однако для групповых снимков, подобных приведенному ниже, не следует снимать с такой широкой диафрагмой, так как это может привести к тому, что некоторые люди окажутся не в фокусе. В этом случае, поскольку они расположены в шахматном порядке и не находятся в одной «фокальной плоскости», вам следует увеличить диафрагму до f / 4,0-f / 8,0. Это позволит получить резкую и четкую фокусировку для всей группы (что вам и нужно)!

3.Используйте более длинный объектив

Использование телеобъективов для фотографий одного человека и небольших групп может помочь по двум основным причинам. Во-первых, более длинные линзы обычно выглядят более тонкими для ваших объектов. Во-вторых, одним из ключевых факторов, определяющих глубину резкости, является фокусное расстояние объектива. Чем длиннее линза, тем легче и лучше будет размытие фона. Как обсуждалось выше, это изолирует объект на вашей фотографии от фона. Это приятный вид для портретов. Некоторые идеальные объективы - это 70-200 f / 2.8 или 85 f / 1,4 или f / 1,8, если у вас есть только телеобъектив, поставляемый с камерой, чем использовать этот объектив на более длинном конце диапазона масштабирования. Использование длинного зума, такого как Nikon 70-200 f2.8, было критичным для этой фотографии ниже.


Фотография ниже была сделана с объективом Nikon 85 1.8G @ f1.8.


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

Не стесняйтесь комбинировать это и используйте широкоугольный объектив, если вы хотите включить в свою фотографию природные или архитектурные элементы.Это полезно не только в том, чтобы ваши изображения были разнообразными, но и в том, что они действительно могут добавить к общему виду фотографии за счет включения в композицию потрясающих пейзажей. Объективы, которые могут включать пейзаж, будут 24 мм, 35 ​​мм или даже 50 мм. Чтобы получить полное руководство по портретным линзам, ознакомьтесь с этим замечательным руководством! На фото ниже был использован широкоугольный объектив, чтобы запечатлеть красивую зелень!



5. Обсуждение

Разговор на вашу тему огромен! Так что начни болтать! Это делает его личным, веселым и гораздо более расслабленным.Когда на них направлена ​​камера, это естественное чувство, когда люди закрываются. Крайне важно преодолеть этот барьер и общаться с ними во время сеанса. Когда вы делаете фотографии, успокаивайте их и устно дайте им понять, насколько хороши фотографии. Это повышение уверенности придаст им энергии и позволит расслабиться и почувствовать себя более комфортно перед вашим объективом. Если вы известны как комик, не забудьте пошутить тут и там и заставить их смеяться, чтобы вызвать у них откровенное выражение лица.

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

6. Продемонстрируйте товары

Отличный совет, который я усвоил, когда только начал работать, - когда вы получаете действительно отличное фото, покажите его им на задней панели камеры! Это не только доставит им удовольствие, увидев улучшенный вид изображений, но и воодушевит их, и они будут уверены, что вы получаете отличные изображения.Вам не нужно показывать им ВСЕ свои фотографии, только те, которые вы действительно чувствуете в камере (например, с отличной экспозицией и потрясающей композицией)!

7. Не бойтесь указывать направление

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


8. «Работа в позе»

Как только вы поместите объект или объекты в привлекательную и красивую позу, работайте над позой, снимая ее с разных углов и перспектив. Вы даже можете попросить своих испытуемых выглядеть по-другому. В результате вы получите несколько разных взглядов и точек обзора, из которых вы сможете выбрать свои самые любимые.Вы можете отступить, подойти поближе, чтобы запечатлеть их эмоции, заполнить кадр, снимать сверху и по бокам, встать на землю, при этом ваш объект (ы) остается в одном положении и позы! Вы можете буквально получить 10 разных «взглядов», не двигая ничего, кроме ног!

Если объекты сидят, это позволяет фотографировать под разными углами.

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

9. Помните о крайних углах

Углы при эффективном использовании могут принести вам пользу. Однако будьте осторожны с углами, которые не подходят для вашего объекта. Например, сверхнизкий угол, смотрящий вверх на объект, может выглядеть интересно и креативно, но низкие углы часто не подходят для вашего объекта. Никогда не захочется надрать клиенту нос!

Вид с высоты птичьего полета предлагает другую точку обзора.

10. Кандидаты, кандидаты, кандидаты!

Все любят откровенные фотографии, так как это одни из самых естественных фотографий, которые вы можете получить.Есть два способа получить кандиды. Один из способов - подсказывать испытуемым и разговаривать с ними, что часто может создать откровенный момент. Другой способ - просто отойти в сторону и быть наблюдателем. В роли наблюдателя постарайтесь по возможности использовать телеобъектив и без вспышки, чтобы можно было тайком отойти и сделать снимки. Вы можете сделать это, не привлекая к себе внимания своей назойливостью. Просто предоставив вашим объектам немного места и дав им возможность взаимодействовать друг с другом, вы сможете захватить те «промежуточные» моменты, которые часто бывают забавными и расслабляющими.Просто будьте готовы и предвидите момент, иначе вы можете его упустить!

Великие откровенные люди повсюду, возьмите камеру на следующую вечеринку и приготовьтесь поймать этот момент!

11. Удачи!

Хорошо… Я знаю, что сказал 10 советов, но думаю, вы все получите сегодня бонусные чаевые. Это может показаться очевидным, но веселитесь! Когда вы получаете удовольствие от фотосессии, ваш объект почувствует вашу позитивную энергию и расслабится! Не относитесь к этому просто как к работе, а дайте своему объекту или клиентам возможность хорошо провести время (с новым другом).Ваши фото будут вам благодарны позже! Ваши клиенты будут помнить свой опыт во всем, что выражается в том, насколько они любят свои фотографии!

Вот я после того, как промок от волны, стреляющей в воду! Сделайте снимки весело!

Я действительно надеюсь, что эти быстрые советы помогут вам и, прежде всего, помогут показать вам качественные способы фотографирования людей. Если вам понравился этот урок, обязательно подпишитесь на список рассылки, где вы можете получить мою новую бесплатную коллекцию пресетов Lightroom!

Как всегда… не будь чужим! Скоро поговорим.

Коул

.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *