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

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

1. Предыстория

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

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

Как найти ЧЕЛОВЕКА ПО ФОТОГРАФИИ ЛИЦА в 2021?

Побежал на их сайт и разочаровался – в сентябре 2018, буквально за месяц, они перестали предоставлять свои услуги физ.лицам, и бесплатно, и даже за деньги, перейдя в сегмент b2b и b2g. Оно и понятно, пиар уже сработал, а этических вопросов так возникает куда меньше. Но меня, законопослушного гражданина, это огорчило. И не только меня: фан-группы ФайндФейса пестрили сообщениями о том, что люди готовы заплатить в 10 раз больше, лишь бы им помогли найти нужного человека.

Я стал искать аналоги, но они все были либо точным поиском, но по крайне ограниченной выборке вроде нескольких сотен знаменитостей из Википедии, либо обширным, но почти бесполезным по точности поиском через Гугл/Яндекс.

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

За вечер я накидал скрипт, который парсит профили Вк, находит фото, индексирует по ним лица и сохраняет в БД. Потом просидел ещё пару суток почти без сна, заставил это дело безостановочно работать на своём сервере. Началась новая трудовая неделя, я был очень уставший, но ещё больше довольный и полный энтузиазма! Ведь мой скрипт медленно, но неумолимо обходил весь Вк.

2. Техническое устройство

2.1. Индексирование

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

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

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

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

Конечно, не только лимиты АПИ повышать надо, но и объёмы CPU. Изначально я развернул скрипт на маленьком VPS, который создавался для простого личного сайта. В подмогу ему, я взял ещё один VPS, в несколько раз мощнее. Потом я решил, что и этого мало, взял ещё и целый выделенный сервер, который сильнее моего собственного рабочего компьютера 😀 Не энтерпрайз-левел, но производительность стала меня устраивать, хотя расходы и выросли до 15 тысяч руб/месяц, что для меня тогда было весьма ощутимой тратой.

Еще по теме:  Как набирать голоса в ВК

2.2. Подобие архитектуры и DevOps’а

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

Кстати, воркеры работали в несколько потоков. Да, Питон, благодаря Global Interpreter Lock, не умеет в полный параллелизм, но много времени уходило на выгрузку фоток, а IO-операции хорошо параллелятся. Вдобавок, это позволило легко назначить каждому потоку свой токен доступа и гибко настраивать загруженность каждой машины.

Для автоматизации настройки окружения, токенов и т.п были написаны скрипты на Питоне, которые подключались к целевой машине по SSH и ставили всё что нужно. Позже я узнал, что у меня костыльный велосипед, есть качественные решения, но всё равно было интересно посмотреть подноготные детали. Из прикольного, пришлось также разобраться, что есть разные ВМ и средства виртуализации, что некоторое ПО не работает в определённых конфигурациях, благодаря чему виртуалки на Xen и OpenVZ с казалось бы одинаковыми ресурсами могут отличаться в цене на 40%.

2.3. Поиск

Помимо ролей мастера и воркера, есть роль поискового микросервиса. Проиндексированные фото Вк и айдишники их профилей сохраняются в БД, точнее, MySQL v5.7 – и алгоритм поиска я переписал с Python на SQL, что позволило сильно ускорить вычисления и выйти на больший масштаб. Но с ростом данных этого всё равно было очень мало, я думал над оптимизациями, старался переиспользовать свой опыт big data аналитики с работы, экспериментировал с разными структурами запросов и генерацией SQL-запросов Питоном, это позволило ускорить вычисления в несколько раз, что мило, но всё равно мало.

Вообще, поиск можно было бы улучшать и дальше – возможно подобрав более эффективные коэффициенты в операции выше, или переделав этот хэш, ещё было бы круто добавить параллелизм, которого в MySQL из коробки нет, партицирование, шардирование, и искать многопоточно; для этого в планах был переезд на PostgreSQL.

2.4. Другие механики

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

Ускорять время поиска можно не только ускорением самого поискового алгоритма, но и снижением выборки, например, ища профили только среди участников каких-то групп Вк. Ясное дело, здесь встаёт вопрос ограничения размера этой выборки, т.к делать запрос с «ISIN (десятки тысяч айдишников)» такое себе, а вот на паре сотен и даже тысяч работает в разы быстрее, чем полный проход БД.

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

Если идти ещё дальше, то можно индексировать не только Вк, но и ВотсАп, Тг перебрав все русские номера, возможно частично FB, Twi, Ig. Но это уже совсем будущее, я решил двигаться в сторону скорейшей апробации и монетизации того, что есть уже.

3. Заключение

3.2. Happy ли end?

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

Я написал в тех поддержку Вк (тогда они ещё отвечали, ахах), аккуратно представился студентом, что хочу проводить социологические исследования сканируя большие объёмы данных Вк, в т.ч фото, ФИО и описание. Что на самом деле было правдой, с учётом моего интереса к аналитике и психологии. Они ответили, что ради статистики и небольших выборок в целом не против, но точно против какой-либо идентификации. А ещё «порадовали» тем, что будут и палки в колёса АПИ вставлять таким сервисам, и участвовать в разработке/внедрению законов, регулирующих эту деятельность. А недавно, уже в наше время, вышел законопроект, запрещающий автоматизированную обработку данных с сайтов, что по сути полностью блокирует подобные сервисы с парсингом.

Еще по теме:  Как узнать свой айди в ВК

В связи с этим, я принял решение о закрытии проекта, хоть это и было печально: в феврале 2019 у меня уже было проиндексировано 25% всего Вк в гигабайтах БД, притом не за бесплатно. Но у меня уже тогда был опыт различных проектов, поэтому я не жил розовыми мечтами об успешном успехе, а старался извлечь другую пользу и просто фан (:

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

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

3.2. Польза

Здесь, как и в других своих пет-проектах и стартапах, я набрался много опыта:

  • Разобрался с многопоточностью в Питоне.
  • Покопался в специфических вопросах оптимизации MySQL запросов.
  • Научился строить организацию приложений, файлов и комментов на будущее, чтобы оно не превращалось в спагетти.
  • Освоил работу из кода с SSH для настройки окружения, а в будущем понял, насколько чудесен Ansible, который это сильно упрощает.
  • Разработал микросервисную архитектуру из клея и палок, что затем позволило легко понять концепции Kubernetes.

И всё это мне очень пригодилось в последующих работах и проектах.

3.3. Мораль

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

Источник: habr.com

Быстрый поиск по фото в ВК

Телеграм-канал Программист и бизнес.
Каждый день интересные истории, как программист строит бизнес.

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

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

Иллюстрация на тему Поиск по фото в ВК: через программы, на сайте ВК, особенности

Способы поиска людей по фото в «ВКонтакте»

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

Поиск на сайте «ВК»

Для поиска человека по фото, используя сайт «ВКонтакте», вам требуется сделать следующее:

  • Пройдите авторизацию в соцсети «ВК» указав логин, а также пароль.
  • Загрузите необходимую фотографию в какой-либо свой открытый альбом.
  • Теперь вам необходимо открыть фото в полном его размере, таким образом, в адресной строке браузера вы увидите ссылку на картинку.

Иллюстрация на тему Поиск по фото в ВК: через программы, на сайте ВК, особенности

  • Далее вам нужно выделить ID картинки в этой же строке. Он начинается после адреса vk.com.
  • Копируете нужный отрезок ссылки.
  • После этого вам необходимо войти в раздел под названием «Новости» и в меню справа кликнуть по «Фотографии».

Иллюстрация на тему Поиск по фото в ВК: через программы, на сайте ВК, особенности

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

Иллюстрация на тему Поиск по фото в ВК: через программы, на сайте ВК, особенности

Через браузеры

Каждый браузер позволяет вам отыскать любую картинку и фото. Все они работают по одному принципу. Рассмотрим на примере Google Chrome:

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

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

  • На главной страничке вам требуется кликнуть по «Картинки».
  • С правой стороны нажмите по графе «Поиск по картинке».

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

С помощью программ

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

Findface

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

Нужно кликнуть по кнопке под названием «Загрузить».

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

Далее для большей точности вам нужно использовать фильтр:

  • По половым признакам.
  • По возрастной категории.
  • По городу.
  • По семейному положению.
Еще по теме:  Что такое менеджер паролей ВК

После того, как вы нашли искомого человека, кликните по его фото и нажмите «Профиль ВКонтакте».

Tofinder

Используя этот сервис, у вас будет возможность найти профиль по-основному фото. Вам необходимо сделать следующее:

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

Часто бывает так, что с первого раза отыскать нужное изображение не удается. Повторяйте попытку не менее 2-3 раз.

TinEye

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

После этого смотрите на полученные результаты.

Иллюстрация на тему Поиск по фото в ВК: через программы, на сайте ВК, особенности

Особенности

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

Источник: greatchat.ru

Ищем людей по фото ВКонтакте

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

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

Поиск людей по фото ВК

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

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

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

Способ 1: Google

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

  1. С помощью веб-браузера перейдите на указанную страницу Гугл. Переход на главную страницу Картинки Google через интернет обозреватель
  2. В текстовом поле найдите значок с изображением фотокамеры «Поиск по картинке» и кликните по нему. Использование возможности поиска по картинке на главной странице Картинки Google
  • Находясь на вкладке «Указать ссылку», вы можете вставить прямой URL-адрес на фотографию разыскиваемого человека, используя сочетания клавиш «Ctrl+C» и «Ctrl+V». Переход на вкладку Указать ссылку на главной странице Картинки Google
  • После того, как вы вставите ссылку, нажмите кнопку «Поиск по картинке». Загрузка фотографии пользователя ВК через ссылку на главной странице Картинки Google
  • Если у вас в распоряжении имеется изображение с пользователем в качестве локального файла, вам следует переключиться на вкладку «Загрузить файл». Переход на вкладку Загрузить файл на главной странице Картинки Google
  • Кликните по кнопке «Выберите файл», с помощью системного проводника перейдите к месторасположению файла изображения и откройте его. Загрузка фотографии пользователя ВК на главную страницу Картинки Google
  • Возможность загрузки фотографии пользователя ВК с помощью перетаскивания на главной странице Картинки Google

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

    1. Внимательно изучите представленные результаты на предмет совпадений. Результаты поиска по картинке на главной странице поисковой системы Google
    2. Чтобы исключить некоторые результаты, вы можете добавить в текстовое поле к загруженному изображению известные данные о пользователе, например, имя. Текстовое дополнение к поиску по картинке на главной странице поисковой системы Google

    Если у вас нет дополнительных данных, просто пропустите данный пункт инструкции.

    Добавление специального кода для поиска по картинке на главной странице поисковой системы Google

  • После введенных данных добавьте специальный код, чтобы поиск производился исключительно в рамках сайта ВКонтакте. site:vk.com
  • Если вы все сделали четко по инструкции, учитывая существующие ограничения, вам будут представлены результаты поиска, касающиеся искомого человека.
  • В качестве заключения заметьте, что аналогичным образом вы можете воспользоваться системой поиска по фотографии через другие поисковые системы, например, Яндекс. При этом вне зависимости от используемого поисковика, все действия из второй части данного способа должны быть соблюдены.

    Способ 2: Стандартный поиск по фото

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

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

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

    1. С помощью главного меню перейдите к разделу «Новости». Переход к разделу новости через главное меню на сайте ВКонтакте
    2. Через навигационное меню, расположенное с правой стороны, переключитесь на вкладку «Фотографии». Переход на вкладку Фотографии через навигационное меню в разделе Новости на сайте ВКонтакте

    Указанная вкладка является дочерним разделом пункта «Новости».

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

    Надеемся после прочтения этой статьи вы смогли найти то, что искали. Всего доброго!

    Источник: lumpics.ru

    Рейтинг
    ( Пока оценок нет )
    Загрузка ...