2013-03-11 15 views
7

Qualcuno può consigliare un'implementazione del cluster di spostamento medio leggero in C++? Sto già utilizzando OpenCV, tuttavia la loro implementazione di shift medio è per il tracciamento, non per il clustering. Ho visto EDISON, tuttavia, questo è per la segmentazione dell'immagine e non per il clustering.Implementazione media del turno in C++

Potrei implementarlo da solo, tuttavia preferisco non investire il tempo e non correre il rischio di bug.

Grazie

+0

@meyumer Grazie ma intendevo come parte di una libreria testata – Aly

+1

Vedere il sistema EDISON creato dagli studenti dell'università Rutgers. Hanno anche un'implementazione di Mean Shift all'interno di EDISON: http://coewww.rutgers.edu/riul/research/code.html – meyumer

+0

@meyumer EDISON è focalizzato sulla segmentazione dell'immagine, sto cercando il clustering (modalità di rilevamento). Ho aggiornato la domanda in modo da rispecchiare questo – Aly

risposta

3

Questo è vecchio, ma sto lavorando con media spostare in questo momento così ho pensato che la cosa migliore per rispondere.

Credo di capire la distinzione che si stanno facendo qui, ma quando dici che stai cercando rilevamento della modalità questo è vago nel senso tecnico come dal punto di vista della algoritmo come l'algoritmo intrinsecamente è per la ricerca per "" modi ", che sono i minimi o massimi locali a seconda di come si inquadra il problema di ottimizzazione (discesa o pendenza del gradiente).

This source, che è stato trovato sul sito EDISON, afferma di essere un'implementazione C++ dell'algoritmo di cluster shift medio, ma come discusso sopra, il clustering è l'implementazione principale del comportamento in cerca di modalità che tutti gli altri usi di shift medio sono in base, in particolare, alla segmentazione, quindi puoi certamente utilizzare il sorgente EDISON per trovare un'implementazione di clustering, anche se devi cercarlo un po '.

Ho anche trovato questo Github project, per quello che vale, ma non ho lavorato con esso prima.

ULTIMA NOTA: Ho notato anche che hai detto implementazione "leggera". Nota che lo shift medio non è un algoritmo molto efficiente (penso che sia qualcosa come O (N^3), ma lo controllerò). Detto questo, può ancora essere implementato in modo efficiente, anche se il modo in cui dovrebbe essere misurato è più ambiguo. Inutile dire che Quick Shift, un tentativo da parte dei ricercatori dell'UCLA di risolvere i problemi del più efficiente spostamento del medoide, un simile algoritmo di ricerca di modalità non parametriche, potrebbe essere più simile a quello che si sta cercando in un algoritmo "leggero".

+0

fonti aggiuntive: http://vision.cs.ucla.edu/papers/vedaldiS08quick.pdf http://home.ku.edu.tr/mehyilmaz/public_html/mean-shift/00400568.pdf – physincubus