Я, наверное, понимаю, почему люди недооценивают этот вопрос: потому что вряд ли найдутся хорошие ответы за годы связанных постов, а проблема мучительно сложна. Более конкретно, однако:
К сожалению, размерность информации изображения выше, чем 2D. Фотография, на которую вы ссылаетесь, является просто проекцией из многомерного пространства на плоскость, и не обязательно представляет, как выглядит фактическое пространство. Эта конкретная проекция в основном о цветах, не так ли? И все же не идеален, потому что проблема не 2D мерная. То же самое относится и к попытке сжать кластеры в папки - в большинстве случаев пробный сбой не удался.
Тем не менее, вы правильно указываете на конкретные параметры сравнения в своем вопросе: как я могу выделить (на плоскости 2D, вгруппы, папки, что угодно) изображения, основанные на их цветах и свойствах формы?
Решение состоит в том, чтобы сосредоточиться на измерении / метрике сходства, которые вас интересуют. Например, конкретно «это изображение содержит круг?», И оптимизировать для этого. Но если вы хотите «квадрат», вы уже в другом измерении. При оптимизации для цвета, вы можете посмотреть на «общее покраснение». Чем больше метрик вы добавляете, тем выше размерность кластеризации.
Наше восприятие такое. Мы нацелены на конкретную итоговую метрику, например, скалярное значение, которое представляет собой сумму взвешенных метрик в разных измерениях (проблема ранжирования). Например, если вы хотите фотографии с «глазами», вам не нужны цветовые вариации. И наоборот, если вы больше заботитесь о цветах, формы менее важны.
По моему опыту, кластеризация легче, когда кластеры изображений относительно однородны. Например, изображения в каждом потенциальном кластере очень похожи по некоторым показателям. Например, одна группа - "мосты", другая - "лица". Если у вас есть очень разнообразные изображения любого возможного объекта (даже шума), решение будет труднореализуемым, если только вы не укажете, по какой именно группе вы хотите группировать.