7 Stimmen

Algorithmus zum Clustern von Bildern anhand des Aufnahmedatums

Kennt jemand einen Algorithmus, der Bilder auf der Grundlage des Aufnahmedatums zu Ereignissen zusammenfasst? Natürlich kann ich nach dem Datum gruppieren, aber ich hätte gerne etwas Anspruchsvolleres, das in der Lage wäre, Bilder, die sich über mehrere Tage erstrecken, auf der Grundlage der Häufigkeit über einen bestimmten Zeitraum zu gruppieren. Betrachten Sie die folgenden Gruppierungen:

  • 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

Diese könnten in zwei Gruppen eingeteilt werden:

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

Natürlich wird es einige Toleranz(en) geben, die festgelegt werden müssen.

Gibt es irgendeine bewährte Methode, um dies zu tun, außer dass ich meinen eigenen Top/Down-Ansatz erfinde?

7voto

Simon Punkte 74705

Sie können so ziemlich alles anwenden jede Standard-Clustering-Technik Es geht nur darum, die Distanzfunktion richtig zu definieren. Wenn Sie eine Matrix der Entfernungen zwischen Ihren Fotos erstellen, sollten Sie eine Kombination aus der physischen Entfernung zwischen den Orten - falls vorhanden - und der zeitlichen Entfernung zwischen den Zeitstempeln ihrer Erstellung berücksichtigen. Normalisieren Sie und sie auf verschiedene Dimensionen verteilen, dann kann man vielleicht sogar einen normalen euklidischen Abstand nehmen.

Ich wünsche Ihnen viel Glück.

0voto

tehvan Punkte 9671

Fassen Sie einfach die Bilder zusammen, die an aufeinander folgenden Tagen aufgenommen wurden (keine Tage, an denen keine Bilder gemacht wurden).

0voto

vartec Punkte 124396

Sie können versuchen, die Toleranz dynamisch zu berechnen, je nachdem, wie viele oder wie große (absolute oder prozentuale) Cluster Sie erstellen möchten.

0voto

Il-Bhima Punkte 10556

Um eine sinnvolle Gruppierung der Bilder nach Datum zu erhalten, benötigen Sie Folgendes:

1) Die Anzahl der Cluster sollte variabel sein und nicht von vornherein festgelegt werden.

2) Der Durchmesser eines jeden Clusters sollte einen bestimmten Wert nicht überschreiten.

Der Clustering-Algorithmus, der beide Anforderungen am besten erfüllt, ist der QT-Clusteralgorithmus (Qualitätsschwelle) . Aus Wikipedia:

QT (Qualitätsschwelle) Clustering (Heyer, Kruglyak, Yooseph, 1999) ist eine alternative Methode zur Partitionierung Daten, die für das Clustering von Genen entwickelt wurde. Es erfordert mehr Rechenleistung als k-means, erfordert aber nicht die Anzahl von Clustern festzulegen a Anzahl von Clustern festzulegen, und liefert immer das gleiche Ergebnis, wenn es mehrmals ausgeführt wird.

Obwohl es hauptsächlich für das Clustering von Genen verwendet wird, denke ich, dass es sehr gut zu dem passt, was Sie brauchen.

0voto

The Unknown Punkte 18206

Versuchen Sie, die Lücken statt der Cluster zu erkennen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X