Алгоритм кластеризации изображений по датам
кто-нибудь знает алгоритм, который будет группировать фотографии в события на основе даты съемки. Очевидно, я могу группировать по дате, но я хотел бы что-то немного более сложное, что могло бы(могло бы) группировать изображения, охватывающие несколько дней, на основе частоты за определенный промежуток времени. Рассмотрим следующие группировки:
- 1/2/2009 15 фото
- 1/3/2009 20 фото
- 1/4/2009 13 фото
- 1/5/2009 19 фотографии
- 1/15/2009 5 фото
потенциально они будут сгруппированы в две группы:
- 1/2/2009 - > 1/5/2009
- 1/15/2009
очевидно, что будет некоторый допуск(Ы), который необходимо установить.
есть ли какой-либо хорошо установленный способ сделать это, а затем изобрести свой собственный подход сверху/вниз?
5 ответов
вы можете применить в значительной степени любой стандартный метод кластеризации к этому, это просто вопрос правильного определения вашей функции расстояния. Когда вы делаете свою матрицу расстояний между вашими фотографиями, вы должны учитывать сочетание физического расстояния между местоположениями - если оно у вас есть - и временного расстояния между их временными метками создания. нормализовать их и положите их на отдельные размеры, и вы даже можете просто взять обычный евклидово расстояние.
удачи.
просто сгруппируйте фотографии, которые были сделаны в последовательные дни (нет дней, в которые не были сделаны фотографии) вместе.
вы можете попытаться динамически вычислить допуск на основе того, сколько или сколько больших (абсолютных или %) кластеров вы хотите создать.
чтобы получить полезную кластеризацию изображений в соответствии с датой, вам требуется следующее:
1) количество кластеров должно быть переменным и не фиксированным априори к кластеризации
2) диаметр каждого кластера не должен превышать определенную сумму.
алгоритм кластеризации, который наилучшим образом удовлетворяет обоим требованиям, является Qt (порог качества) алгоритм кластеризации. Из Википедии:
QT (качество порог) кластеризация (Heyer, Kruglyak, Yooseph, 1999) является альтернативный способ разделения данные, изобретенные для кластеризации генов. Он требуется больше вычислительной мощности, чем k-средних, но не требует определение числа кластеров priori, и всегда возвращает то же самое результат при запуске несколько раз.
хотя он в основном используется для кластеризации генов, я думаю, что он очень хорошо подойдет для того, что вам нужно.