24 декабря 2023 г. Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна.
Подробности случившегося. Мы призываем всех неравнодушных
помочь нам с восстановлением утраченного контента!
Судя по интервью с разрабами, у них нейросеть выделяла то ли 80, то ли 128 точек на лице, ну это не важно. Я юзаю dlib, там нейросеть выдает 128 точек.
Максимум который мне удалось добиться, это 7 секунд (!!!!) для поиска среди 1 млн фотографий. Это пиздец как долго. Я пробовал переводить все точки из float в int точность падает не критично вообще, но скорость выше, искать по 10 разным точкам вместо 128, а потом из этого результата делать детальный анализ по 128, упростил в два раза формулу поиска расстояния - всё равно сука долго.
Даже допустим теоретически хотя я даже пробовать не хочу, нет смысла заставлю поиск работать на 8-16-etc ядрах, то скорость увеличится всего в 8-16-etc раз, то есть поиск по рашке всё равно будет занимать минуту, а то и больше.
Проблема в том, что я не понимаю как вообще можно хэш или индекс или хоть что то из этих точек выделить, они могут быть как отрицательные, так и положительные, а ищется только лишь положительная разница между ними.
Вот пример 10 первых точек из описания лица 2 разных людей, они все могут быть как + так и -
[1.0] -41435182
[1.1] 86082510
[1.2] 73057301
[1.3] -63838362
[1.4] -161909908
[1.5] 21032849
[1.6] -79625226
[1.7] -91760754
[1.8] 198397651
[1.9] -71357108
[2.0] -248804286
[2.1] -50261076
[2.2] 74084460
[2.3] -95639087
[2.4] -193871259
[2.5] -50331693
[2.6] 45858778
[2.7] -36446824
[2.8] 134124800
[2.9] -155780196
А схожесть лица ищется примерно так
abs([1.0] - [2.0]) + abs([1.1] - [2.1]) + .... + abs([1.127] - [2.127])
и чем меньше полученное число, тем лица более схожи или вообще один человек, в идеале эта разница должна стремиться к 0, но это будет только на одной и той же фотографии. Что значат эти точки - не известно, нельзя сказать что эти точки описывают глаза, а эти нос. Если например закрасить рот на одной фотке и сравнить их, то ВСЕ точки немного поменяются