“В программе же должен быть результат” - именно поэтому я и оставил свои затеи на уровне исследований “для себя”, а для реальной задачи купил готовую программу) Больше суток шло сканирование, сейчас читаю ман как дальше быть.
CLIP модели - возможно то, что нужно. Мне же было удобнее сначала использовать модель для текстового описания снимка, а уже потом выполнить эмбеддинг.
Для поиска похожих я использовал взвешенный score сходства по метаданным: соотношение сторон и площадь файла, размер файла (учет сжатия и разных форматов), близость координат (если есть), текстовое описание (SequenceMatcher), пересечение найденных на снимках объектов (Jaccard). Веса можно менять и выбирать по каким конкретно критериям искать больше похожих. Можно добавить фильтр и, например, искать все похожие фото в коллекции с котами на снимке.
Оно работает, но это, как вы и сказали - исследования, а не решение для продажи.
Вот как раз, на задаче разбить всё это на кластеры я и встрял)
Повторю, пожелания можно свести к одному: “пользователь хочет нажать одну кнопку в программе и чтобы всё было красиво, разложено по полочкам, по датам (по годам, месяцам и отдельным событиям), по местам, по людям. Выбрать один снимок - и видеть все похожие снимки или связанные с ним.”
Для меня же, например, важно, чтобы все файлы физически находились в нужной мне иерархии, а не только в виртуальных альбомах.