2013-03-11 11 views
7

Kann jemand eine Lightweight Mean Shift Clustering-Implementierung in C++ empfehlen? Ich benutze bereits OpenCV, aber ihre mittlere Shift-Implementierung ist für Tracking, nicht Clustering. Ich habe EDISON gesehen, aber dies ist für die Bildsegmentierung und nicht für das Clustering.Mittlere Shift-Implementierung in C++

Ich könnte es selbst implementieren, aber würde lieber nicht die Zeit investieren, und nicht das Risiko von Fehlern nehmen.

Dank

+0

@meyumer Danke, aber ich meinte, als Teil einer getesteten Bibliothek – Aly

+1

Siehe das EDISON-System, das Menschen von der Rutgers University erstellt. Sie haben auch eine Mean Shift-Implementierung in EDISON: http://www.rutgers.edu/riul/research/code.html – meyumer

+0

@meyumer EDISON ist auf Bildsegmentierung konzentriert, ich bin auf der Suche nach Clustering (Moduserkennung). Ich habe die Frage aktualisiert, um dies widerzuspiegeln. – Aly

Antwort

3

Das ist alt, aber ich arbeite mit mean jetzt verschieben, so dachte ich es am besten zu beantworten.

Ich denke, ich verstehe die Unterscheidung, die Sie hier machen, aber wenn Sie sagen, dass Sie nach Moduserkennung suchen, ist dies vage im technischen Sinne wie aus dem Blickwinkel des Algorithmus als der Algorithmus von Natur aus ist für die Suche für "Modi", die die lokalen Minima oder Maxima sind, abhängig davon, wie Sie das Optimierungsproblem einrahmen (Gradientenabstieg oder -anstieg).

This source, die auf der EDISON-Site gefunden wurde, behauptet, eine C++ Implementierung des Mean Shift Clustering-Algorithmus zu sein, aber wie oben diskutiert, ist Clustering die Hauptimplementierung des Modensuchverhaltens, das alle anderen Verwendungen der Mittelwertverschiebung ist basierend auf, insbesondere Segmentierung, so können Sie sicherlich die EDISON-Quelle verwenden, um eine Clusterimplementierung zu finden, selbst wenn Sie ein wenig suchen müssen.

Ich fand auch diese Github project, für was es wert ist, aber ich habe nicht damit vorher gearbeitet.

LETZTE ANMERKUNG: Ich bemerkte auch Sie sagte "leichte" Implementierung. Beachten Sie, dass die mittlere Verschiebung kein sehr effizienter Algorithmus ist (ich denke, es ist etwas wie O (N^3), aber ich werde das überprüfen). Das heißt, es kann immer noch effizient implementiert werden, obwohl das, was gemessen werden sollte, mehrdeutig ist. Unnötig zu sagen, Quick Shift, ein Versuch von UCLA-Forschern, die Probleme der effizienteren Medoid Verschiebung zu lösen, ein ähnlicher nichtparametrischer Modus Suchalgorithmus, könnte mehr wie das, was Sie in einem "leichten" Algorithmus suchen.

+0

zusätzliche Quellen: http://vision.cs.ucla.edu/papers/vedaldiS08quick.pdf http://home.ku.edu.tr/mehyilmaz/public_html/mean-shift/00400568.pdf – physincubus

Verwandte Themen