Skip to content

Instantly share code, notes, and snippets.

Created September 19, 2017 09:19
Show Gist options
  • Save anonymous/f5317071b411cd7fb19db16a7cfc0c8f to your computer and use it in GitHub Desktop.
Save anonymous/f5317071b411cd7fb19db16a7cfc0c8f to your computer and use it in GitHub Desktop.
Определить лицо по фото

Определить лицо по фото - Поиск человека по фото


Определить лицо по фото



FindFace: приложение, которое позволяет найти любого человека в Сети по фотографии
Как найти человека по фотографии
Программа Deepface – определяет лица почти как живой человек


































Только полноправные пользователи могут оставлять комментарии. TM Feed Хабрахабр Geektimes Тостер Мой круг Фрилансим. Хабрахабр Публикации Пользователи Хабы Компании Песочница. В этой статье я хотел бы остановиться на алгоритмах распознавания лиц, а заодно познакомить вас с очень интересной и полезной библиотекой OpenCV. Уверен, что этот материал окажется полезным для новичков в этой области. Установка всего необходимого не составит труда. Для начала давайте разберемся, как распознать лицо на фотографии. Во-первых, нужно найти, где на фото расположено лицо человека и не спутать его с часами на стене и кактусом на подоконнике. Казалось бы, простая задача для человека, оказывается не такой простой для компьютера. Для того, чтобы найти лицо мы должны выделить его основные компоненты, такие как нос, лоб, глаза, губы и т. Для этого будем использовать шаблоны они же примитивы Хаара на подобие таких: Если шаблоны соответствуют конкретным областям на изображении, будем считать, что на изображении есть человеческое лицо. На самом деле подобных шаблонов гораздо больше. Для каждого из них считается разность между яркостью белой и черной областей. Это значение сравнивается с эталоном и принимается решение о том, есть ли здесь часть человеческого лица или нет. Этот метод называется методом Виолы-Джонса так же известен как каскады Хаара. Давайте представим, что у нас на фотографии не одно большое лицо, а много мелких. Если применить шаблоны ко всей картинке мы не найдем там лиц, так как они будут меньше шаблонов. Для того чтобы искать на всем фото лица разных размеров используется метод скользящего окна. Именно внутри этого окна и высчитываются примитивы. Окно как бы скользит по всему изображению. После каждого прохождения изображения окно увеличивается, чтобы найти лица большего масштаба. Наглядно демонстрацию алгоритма можно посмотреть на этом видео: И так мы нашли лицо на фотографии, но как определить, что это лицо именно того кого мы ищем? Для решения этой задачи будем использовать алгоритм Local Binary Patterns. Суть его заключается в том, что мы разбиваем изображение на части и в каждой такой части каждый пиксель сравнивается с соседними 8 пикселями. Если значение центрального пикселя больше соседнего, то пишем 0, в противном случае 1. И так для каждого пикселя у нас получается некоторое число. Далее на основе этих чисел для всех частей, на которые мы разбивали фотографию, считается гистограмма. Все гистограммы со всех частей объединяются в один вектор характеризующий изображение в целом. Если мы хотим узнать насколько похожи два лица, нам придется вычислить для каждого из них такой вектор и сравнить их. Рисунки ниже помогут лучше понять суть алгоритма: Ну хорошо, давайте, наконец напишем немного кода. За основу я взял код из этой статьи. Далее создаем объект CascadeClassifier и объект распознавания лиц LBPHFaceRecognizer. На последнем остановимся поподробнее, точнее, на его параметрах. Первые два значения 1 и 8 характеризуют окрестности пикселя. Наглядно, что это такое можно продемонстрировать этой картинкой: То есть первое число это радиус в котором мы выбираем пиксели, а второй число этих пикселей. Чем больше пикселей в окрестности точки мы возьмем, тем точнее будет наше распознавание. Следующие параметры 8,8 характеризуют размеры областей на которые мы разбиваем исходное изображение с лицом. Чем оно меньше, тем больше будет таких областей и тем качественнее распознавание. И наконец, последнее значение это параметр confidence threshold, определяющий пороговое значение для распознавания лица. Чем меньше confidence тем больше алгоритм уверен в том, что на фотографии изображено известное ему лицо. Порог означает, что когда уверенности мало алгоритм просто считает это лицо незнакомым. В данном случае порог равен Напишем функцию, которая находит по определенному пути во всех фотографиях лица людей и сохраняет их. В ней есть 15 человек с разными выражениями лиц на каждой фотографии. Имя каждого файла в этой БД выглядит следующим образом: Сначала идет слово subject, далее порядковый номер человека, а после характеристика фото. Например, характеристика sad означает грустное лицо, happy веселое и т. Фотографии с веселым выражением лица будем использовать на следующем шаге для распознавания, это будет контрольная выборка, то есть те фото на которых мы будем проверять качество распознавания. Так же из каждого названия файла извлекается номер человека на фотографии и сохраняется список labels. Каждой фотографии в итоге будет сопоставлен этот номер. Она возвращает список с параметрами [x,y,w,h] для каждого найденного лица. Эти параметры описывают прямоугольную область в том месте, где нашлось лицо. Теперь давайте разберемся с параметрами функции: Чем больше это значение, тем быстрее работает алгоритм. Ну что же, теперь мы можем создать набор лиц и соответствующих им меток. Давайте научим программу распознавать эти лица. А дальше запускаем нашу функцию тренировки с помощью алгоритма LBP. Все остальное программа сделает сама. Теперь нам необходимо попросить алгоритм распознать эти счастливые лица. Если лица найдены, пытаемся распознать их Функция recognizer. Все параметры и процедуры такие же, как и на предыдущем этапе. Для каждого найденного лица запускаем функцию recognizer. Далее сравниваем значение, которое нам вернула функция с реальным номером субъекта, если они равны, распознавание прошло успешно. Ну, вот и все, дальше в консоль выводятся результаты распознавания для каждой фотографии из контрольной выборки. Исходный код программы можно найти здесь. Программирование 2,9k авторов , 6,6k публикаций. Разработка мобильных приложений 1k авторов , 2,8k публикаций. Разработка веб-сайтов 4,1k авторов , 9,6k публикаций. Разработка под Android 1k авторов , 2,3k публикаций. Open source 1k авторов , 2,3k публикаций. JavaScript 1,9k авторов , 4,1k публикаций. IT-стандарты авторов , публикация. Машинное обучение авторов , публикаций. Java 1,1k авторов , 2,2k публикаций. Алгоритмы 1,3k авторов , 2,3k публикаций. Яндекс открывает технологию машинного обучения CatBoost 14,9k Добавить в закладки Стоит заметить, что на практике ручным выделение фичей никто не занимается, эта задача отдается каким-то статистическим методам или нейронкам. Я бы посоветовал выравнивать лицо после его детекции. Очень интересное описание алгоритмов. Все Ok, но зачем PIL если есть cv2. Стоит отметить что Local Binary Patterns будет работать как минимум с данными того же ракурса, если немного повернули объект, то скорее всего уже ничего не получится. Единственное, как писали выше, легко исправить наклоны головы вбок или камеры. Но лучшими остаются алгоритмы Spartans с гибкими 3D моделям, TSML with feature fusion, MDML-DCPs или конечно же ColorReco — глубокая сверточная нейронная сеть. Это перевод или плагиат? Ни то ни другое. За основу был взят код из этой статьи. Упоминание о ней я добавил в публикацию. Может вы знаете, как в нем делать подсчет объектов при пересечении линии. Пример кода с подсчетом автомобилей нужен. Вот вам ссылка на описание методов подсчета автомобилей на видео. Метки лучше разделять запятой. Сейчас Вчера Неделя Муда брака 13k Интересные публикации Хабрахабр Geektimes. Команда Media Player Classic объявила о возможной смерти проекта GT. В МТИ разработали робота для поиска утечек в трубах GT. Что нового в IntelliJ IDEA Raspberry Pi3 против DragonBoard. Отвечаем на критику GT. Применение принципа poka-yoke в программировании на примере PHP. Конец эпохи закона Мура и как это может повлиять на будущее информационных технологий GT. Что такое SMT и как оно работает в приложениях — плюсы и минусы. Анализируем карьеру игроков NHL с помощью Survival Regression и Python. Введение в нейронауки, I [Роберт Сапольски, Разделы Публикации Хабы Компании Пользователи Песочница. Информация О сайте Правила Помощь Соглашение Конфиденциальность. Услуги Реклама Тарифы Контент Семинары.


Определить лицо по фото


Недавно Facebook выступили со смелым заявлением, в этот раз компания опубликовала свою научную работу, в которой описывается новая система распознавания лиц, используя методы глубокого обучения. Как говорят авторы работы, система может потягаться в умении определять лица людей с человеческими способностями. Систему, к слову, решили назвать Deepface, а тестирование работы проверяли на Labeled Faces in the Wild, являющимся стандартом для испытания алгоритмов распознавания лиц. Сам тестовый набор состоит из множества фотопортретов, на которых иногда изображены одни и те же люди. Интересно то, что до момента появления Deepface людям удавалось гораздо лучше распознавать лица, чем это делали различные системы определения и опознания. Более того, системе неважно, под каким ракурсом, углом или с каким освещением сделан тот или ной снимок. Метод определения лиц системой Deepface. Но, как и любая система, Deepface не идеален. Поэтому на данный момент он все еще не в состоянии самостоятельно идентифицировать изображенного на фото человека. Да, он отыскивает фотографии с одним и тем же лицом, но сказать о том, что за человек изображен, он еще не способен. Впрочем, мы прекрасно понимаем, что отшлифовать подобную разработку либо совместить ее с иным проектом всегда можно, а значит новой системе распознавания быть. Сам процесс происходит в несколько этапов. На первом, система накладывает лицо, изображенное на фотографии поверх трехмерной модели человеческой головы, после чего система поворачивает голову, так же как и на других портретах. Отсюда начинается второй этап определения. Многослойной нейронной сети, система дает лицу числовое описание, соответственно, если другой портрет получит такое же число, это будет означать, что лица принадлежат одному человеку. Саму сеть обучали, используя 4 миллиона портретов, которые принадлежат четырем тысячам пользователей Facebook, таким образом, от системы удалось добиться столь впечатляющих результатов. Напоследок следует добавить лишь то, что на данном этапе разработки Deepface, он все еще является лишь исследовательским проектом, и внедрять данную технологию компания пока не спешит, однако не исключается, что после дополнительной доработке и отшлифовки некоторых нюансов и возможном добавлении некоторых функций, система может принять активное участие в жизни компании. Новости науки Космос Медицина Оборона Химия Физика Энергетика. Среда, Июль 19, Новости науки Карта сайта Контакты О проекте. Домой IT-технологии Программа Deepface — определяет лица почти как живой человек. IT-технологии Человек Программа Deepface — определяет лица почти как живой человек. Метод определения лиц системой Deepface Но, как и любая система, Deepface не идеален. Предыдущая статья iOS 8 — слухи и догадки. Следующая статья Недосыпание убивает клетки мозга. ХЗ Раньше Findfase работала , сечас не запускается , наверно сервак положили. Эльбрус PC — российский универсальный mini-PC Июн 17, Квантовые часы в каждый дом Фев 27, Легендарная Гаусс-пушка своими руками Ноя 19, Аспирант - Июл 1, 0. Ежегодно в мире выгорают миллионы гектаров лесных массивов от пожаров. Рядом с полыхающими лесами зачастую выгорают целые населенные пункты и люди остаются без своего Огнеупорный костюм от разработчиков NASA для спасения в лесных пожарах Июл 1, Художественная механика Артура Гэнсона Июн 26, Польза или вред сахарозаменителей для организма человека Июн 22, Лучшие лекарства от гриппа? Список препаратов от простуды, которые вам не Самые опасные животные на земле — ТОП 10 Сен 23, Новый танк Армата Т — видео и характеристики Янв 21, Новости науки Фундаментальная наука О проекте Карта сайта Адрес редакции.


Поиск по лицам: как найти другие фотографии человека (Яндекс и Гугл)
Недельный план воспитателя
Стихи я точно знаю
Мерседес бенц гелендваген характеристики
Phenom ii x4 905e характеристики
Банк пивденный график работы
Управление образования орловской области
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment