Создаем свой FindFace
⚠️ Дисклеймер
Статья написана с познавательной и ознакомительной целью, мы не призываем читателей к запрещенным законодательством действиям, а также не создаём пропаганду. Мы никого ни к чему не призываем! Вся информация представленная нами — это фантазия автора, выдумка, сон, вымысел. Данный материал не имеет ни какого отношения к реальности, все совпадения — случайность. Автор материала не несёт ответственности за ваши действия. Все персонажи и описываемые события являются вымышленными.
Все же помнят замечательный и прекрасный во всех смыслах проект FindFace, который помогал находить одноклассниц, людей из метро, камвхор и прочих личностей на просторах социальной сети ВКонтакте, но потом что-то пошло не так и он стал полностью гос. проектом.
Вот что сейчас у них на сайте:
Ужасно, не так ли?
И поскольку аналогов нам до сих пор не предоставили будем их делать сами, у себя на ПК, ноутбуках и серваках.
Если кратко, то мы сейчас возьмем несколько скриптов, которые будут загружать фотографии пользователей ВК по вашим параметрам (пол, город, школа) и создавать базу биометрических данных этих лиц, связывая их с аккаунтами ВК.
Итак, начнем.
- Скачиваем репу, желательно конечно её ещё и форкнуть, вдруг это тоже гос.проектом станет, но не суть.
- Удаляем файл README.
- Скачиваем файл и бросаем в папочку searchface.
- Находим скрипт VkIdsParser_1py и вписываем в него ваш логин:пароль от ВК.
- Там же меняете все настройки, которые вам нужны (в питонячем файле есть комменты, так что это не требует большего разъяснения).
- Запускаем VkIdsParser_1py.
По итогам у вас получится файл ids.txt - это список id пользователей, которых вы спарсили.
Затем мы получаем фото пользователей по этим id.
- Находим скрипт DownloadPhotosToJpg_2py и вписываем в него ваш логин:пароль от ВК.
- Запускаем DownloadPhotosToJpg_2py.
После запуска он начнет собирать по несколько фотографий пользователей, которых вы спарсили и качать в папку - jpg (имена файлов ссответствуют id ВК). И если вдруг вам отключили электричество, мамка выключила ПК, вы все закрыли и прочая херня, связанная с прерыванием действий скрипта, то не беспокойтесь, при следующем его запуске скрипт начнет с того же места, где он остановился в прошлый раз.
После подготовительных работ мы начинаем сравнивать искомое лицо с нашей базой.
- Переименовываем искомую фотографию в 1 и конвертируем формат в
.jpg
. - Находим скрипт FindIntoNpy_4py и запускаем его.
Этот скрипт пытается найти среди файлов .npy
в папке npy биометрию схожую с 1.jpg. Но этот метод довольно медленный и использовать его рекомендуется только для проверки корректности создания .npy
Ускоряем процесс:
- Находим скрипт NpyToEmbeddingsBin_5py и запускаем его.
Он берет все файлы .npy
из папки npy с помощью скрипта и создает на их основе файл embeddings.bin
Этот файл содержит биометрию всех ранее распознанных лиц, поэтому если у вас проблемы с памятью на диске, то можете удалить все файлы с папок .jpg
и .npy
, они нам больше не нужны, так как повторюсь, всё это содержится в embeddings.bin
Так же создается файл associations.txt, в котором хранятся соответствия номеру записи в embeddings и имени файла .npy
из которого она была взята.
В конце:
- Находим скрипт FinfFaceInEmbeddingsBin_6py и запускаем его.
Данный скрипт находит в базе лицо схожее с лицом на 1.jpg