Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Algorithm for clustering pictures based on date taken

Anyone know of an algorithm that will group pictures into events based on the date the picture was taken. Obviously I can group by the date, but I'd like something a little more sophisticated that would(might) be able to group pictures spanning multiple days based on the frequency over a certain timespan. Consider the following groupings:

  • 1/2/2009 15 photos
  • 1/3/2009 20 photos
  • 1/4/2009 13 photos
  • 1/5/2009 19 photos
  • 1/15/2009 5 photos

Potentially these would be grouped into two groups:

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

Obviously there will be some tolerance(s) that need to be established.

Is there any well established way of doing this, other then inventing my own top/down approach?

like image 773
Greg Dean Avatar asked Mar 06 '09 08:03

Greg Dean


People also ask

Can you do clustering on time series data?

The most common approach to time series clustering is to flatten the time series into a table, with a column for each time index (or aggregation of the series) and directly apply standard clustering algorithms like k-means.

How do I cluster a time series data in R?

For time series clustering with R, the first step is to work out an appropriate distance/similarity metric, and then, at the second step, use existing clustering techniques, such as k-means, hierarchical clustering, density-based clustering or subspace clustering, to find clustering structures.

What is clustering in image processing?

It is a method to perform Image Segmentation of pixel-wise segmentation. In this type of segmentation, we try to cluster the pixels that are together. There are two approaches for performing the Segmentation by clustering. Clustering by Merging. Clustering by Divisive.


1 Answers

You can apply pretty much any standard clustering technique to this, it's just a matter of defining your distance function correctly. When you are making your matrix of distances between your photos you should consider a combination of physical distance between locations - if you have it - and temporal distance between their creation timestamps. Normalise them and put them on separate dimensions and you may even just be able to take a regular euclidean distance.

Best of luck.

like image 87
Simon Avatar answered Sep 21 '22 19:09

Simon