2009-03-06 13 views
7

Alguien conoce un algoritmo que agrupará las imágenes en eventos en función de la fecha en que se tomó la fotografía. Obviamente puedo agrupar por fecha, pero me gustaría algo un poco más sofisticado que (podría) ser capaz de agrupar imágenes que abarcan varios días según la frecuencia en un intervalo de tiempo determinado. Tenga en cuenta las siguientes agrupaciones:Algoritmo para agrupar imágenes según la fecha tomada

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

potencialmente estos se agrupan en dos grupos:

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

Obviamente habrá cierta tolerancia (s) que necesitan ser establecidos.

¿Hay alguna forma bien establecida de hacerlo, aparte de inventar mi propio enfoque de arriba/abajo?

+0

¿Terminaste con una solución que funcionó bien? Si es así, ¿podría compartir su enfoque? Estoy a punto de trabajar en un problema similar. – MahlerFive

Respuesta

6

Puede aplicar prácticamente any standard clustering technique a esto, solo es cuestión de definir correctamente su función de distancia. Cuando crea su matriz de distancias entre sus fotos, debe considerar una combinación de distancia física entre ubicaciones, si es que la tiene, y una distancia temporal entre las marcas de tiempo de creación. Normalise y ponlos en dimensiones separadas e incluso solo puedes tomar una distancia euclidiana regular.

Lo mejor de la suerte.

0

Simplemente agrupe las imágenes que se tomaron en días sucesivos (sin días en que no se tomaron fotos) juntas.

+0

a la derecha: este sería el enfoque más arriba/abajo más obvio. –

0

Puede intentar calcular dinámicamente la tolerancia en función de la cantidad o el tamaño (absoluto o%) de clústeres que desee crear.

0

Para obtener una agrupación útil de imágenes de acuerdo con la fecha en la que se pide la siguiente:

1) El número de grupos debe ser variable y no fija a priori para la agrupación

2) El diámetro de cada el clúster no debe exceder una cantidad específica.

El algoritmo de agrupamiento que mejor satisface ambos requisitos es el QT (quality threshold) clustering algorithm. De Wikipedia:

QT (umbral de calidad) agrupación (Heyer, Kruglyak, Yooseph, 1999) es un método alternativo de particionamiento de datos , inventados por la agrupación de genes. Es requiere más potencia de cálculo que k-means, pero no requiere especificando el número de clusters a priori , y siempre devuelve el mismo resultado cuando se ejecuta varias veces.

A pesar de que se utiliza principalmente para la agrupación de genes creo que cabría muy bien para lo que necesita.

+0

Cualquier técnica de aglomeración jerárquica comparte esa propiedad. – Simon

+0

¿Por qué crees que la agrupación de QT es mejor? La técnica de aglomeración jerárquica –

+0

fusionará ingenuamente siempre los dos pares de puntos/clúster más cercanos en cada iteración. Como no está considerando todos los clústeres para cada punto, podría terminar con clústeres sesgados –

0

Intenta detectar las lagunas en lugar de los clústeres.

Cuestiones relacionadas