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

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

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

Инструкция
—Установить python с добавлением в PATH (галочка при установке)
—Открыть терминал CMD (Win+R cmd Enter)
—Перейти на рабочий стол в терминале (команда cd Desktop либо cd "%USERPROFILE%\Desktop")
—Установить всякую фигню для работы с нейросетями
pip install numpy tqdm scipy torch torchvision Pillow faiss-cpu
—Поместить скрипт на рабочий стол
—Cоздать на рабочем столе папку input_images и скопировать туда ваши изображения которые хотите отсортировать
—Запустить скрипт введя в cmd "python NEURAL-SORT_v3a.py -i "input_folder" -o "output_folder"


Скачать скрипты NEURAL-SORT_v3a.7z Внутри архива нахоится:
актуальная версия NEURAL-SORT_v3a с цепочкой алгоритмов ANN + MST + DFS + 2opt для сортировки сотен тысяч картинок за раз,
версия для тех у кого 32 гигабайта опиративной памяти NEURAL-SORT_v3a-2opt400,
старая версия NEURAL-SORT_v2 которая использует UMAP TSNE TSP (хуже)


Нейросеть скачается сама при запуске скрипта, но сейчас такие времена что может и не скачаться, поэтому можно скачать напрямую с моего сайта:
Скачать нейросеть regnet_y_16gf.7z (распокавать нейросеть .pth там где скрипт .py)

v3 пример v2 пример