Алгоритм кластеризации изображений по датам

кто-нибудь знает алгоритм, который будет группировать фотографии в события на основе даты съемки. Очевидно, я могу группировать по дате, но я хотел бы что-то немного более сложное, что могло бы(могло бы) группировать изображения, охватывающие несколько дней, на основе частоты за определенный промежуток времени. Рассмотрим следующие группировки:

  • 1/2/2009 15 фото
  • 1/3/2009 20 фото
  • 1/4/2009 13 фото
  • 1/5/2009 19 фотографии
  • 1/15/2009 5 фото

потенциально они будут сгруппированы в две группы:

  1. 1/2/2009 - > 1/5/2009
  2. 1/15/2009

очевидно, что будет некоторый допуск(Ы), который необходимо установить.

есть ли какой-либо хорошо установленный способ сделать это, а затем изобрести свой собственный подход сверху/вниз?

5 ответов


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

удачи.


просто сгруппируйте фотографии, которые были сделаны в последовательные дни (нет дней, в которые не были сделаны фотографии) вместе.


вы можете попытаться динамически вычислить допуск на основе того, сколько или сколько больших (абсолютных или %) кластеров вы хотите создать.


чтобы получить полезную кластеризацию изображений в соответствии с датой, вам требуется следующее:

1) количество кластеров должно быть переменным и не фиксированным априори к кластеризации

2) диаметр каждого кластера не должен превышать определенную сумму.

алгоритм кластеризации, который наилучшим образом удовлетворяет обоим требованиям, является Qt (порог качества) алгоритм кластеризации. Из Википедии:

QT (качество порог) кластеризация (Heyer, Kruglyak, Yooseph, 1999) является альтернативный способ разделения данные, изобретенные для кластеризации генов. Он требуется больше вычислительной мощности, чем k-средних, но не требует определение числа кластеров priori, и всегда возвращает то же самое результат при запуске несколько раз.

хотя он в основном используется для кластеризации генов, я думаю, что он очень хорошо подойдет для того, что вам нужно.


попробуйте обнаружить пробелы вместо кластеров.