|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Mar 2000
Città: Parma
Messaggi: 2090
|
[C++ OpenCv] Algoritmo di tracking su Kinect
Salve a tutti!
Spero ci sia qualcuno che almeno concettualmente possa rassicurarmi sull'esito di quello che sarà un mio progetto d'esame. Sto utilizzando un Kinect collegato al computer, su internet si trovano moltissimi hack di questa periferica Microsoft. L'ambiente in cui mi trovo è Debian e uso i driver liberi freenect. Le potenzialità del kinetct risiedono principalmente nell'emettitore/ricevitore IR che lo rendono di fatto un radar per la lettura delle profondità, oltre che alla presenza della videocamera RGB standard. L'obiettivo è al momento "agganciare" e tracciare un pendolo che si muove nello spazio, leggendo ad ogni istante le coordinate per ricostruirne con la massima fedeltà possibile la traiettoria. Dopo questo preambolo ecco la domanda "teorica" più che altro.. Ho la possibilità di effettuare un threshold dell'immagine IR in base alla profondità desiderata (es 3 metri, 20 cm..) isolando quindi un oggetto ad una determinata distanza (fin tanto che è fermo). Secondo voi, una volta che ho a disposizione un "blob" binario rappresentante l'oggetto che voglio tracciare, posso trovare qualche libreria compatibile con OpenCv che mi consenta di seguire il movimento di quest ultimo dopo l'aggancio iniziale nell'immagine non segmentata? Si è molto specifica come richiesta, ma magari avete avuto qualche esperienza simile, tentar non nuoce. Grazie
__________________
] I've had enough, sick and tired: bring the sun or I'm gone. [ |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Sep 2007
Messaggi: 1071
|
ho avuto un problema simile con un touch screen con ir..
una delle soluzioni è:
di librerie precotte che fanno questo non ne conosco, però se l'oggetto è solo 1 questa soluzione non è dificile da rappresentare e non ciuccia tanta cpu (dipende ovviamente dal grado di precisione che vuoi e da altre cose in background che stai facendo)
__________________
Affari: ariakasneverborne, PanCar, Luk@°°°, Fabio310, kintaro oe, krike, fabry180384, dariox am2, chiadoz, windsofchange, dado1979, Rudyduca, aleforumista, Sheva77 |
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Mar 2000
Città: Parma
Messaggi: 2090
|
Quote:
Il problema che sorgerebbe nel mio caso è il seguente: all'inizio l'aggancio dell'oggetto da seguire avviene con un click del mouse, che selezione la profondità a cui effettuare il threshold iniziale isolandolo. Successivamente però l'oggetto si muove, variando la propria posizione nello spazio 3D e dunque anche il valore dei pixel che lo caratterizzano. Di volta in volta dovrei trovare un nuovo valore di threshold. Credi sia possibile procedere in un qualche modo lo stesso?
__________________
] I've had enough, sick and tired: bring the sun or I'm gone. [ |
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Sep 2007
Messaggi: 1071
|
tutto dipende dall'ambiente..
se il pendolo si muove in un'area quadrata (diciamo), dove non c'è nessun'altro oggetto e kinect è posizionato a un lato del quadrato è semplice.. prima di applicare la procedura descritta sopra parti e fai una scansione partendo da profondità 0 fino alla massima, quando trovi qualcosa vuol dire che è il pendolo e applichi i filtro etc (però con la variabile in della profondità in più quando calcoli la distanza) ripeto, questa è una semplice soluzione.. credo che ce ne siano molte altre NB: ovviamente si può ottimizzare, per esempio la scansione della profondità la puoi fare a partire dall'ultimo valore registrato, visto che la webcam sarà minimo a 30 fps e il pendolo non si muove alla velocità della luce, perciò non sarà molto lontano dalla posizione vecchia
__________________
Affari: ariakasneverborne, PanCar, Luk@°°°, Fabio310, kintaro oe, krike, fabry180384, dariox am2, chiadoz, windsofchange, dado1979, Rudyduca, aleforumista, Sheva77 |
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Mar 2000
Città: Parma
Messaggi: 2090
|
Quote:
Vorrà dire che piegherò un po' le condizioni sperimentali alle possibilità del kinect. Avrei preferito qualcosa di più "robusto", ma forse chiedo troppa pappa pronta... Ultima domanda, conosci qualche libreria che possa fare al caso? Attualmente per OpenCv c'è qualcosa, ma sono aperto ad altre possibilità.
__________________
] I've had enough, sick and tired: bring the sun or I'm gone. [ |
|
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Sep 2007
Messaggi: 1071
|
Quote:
le condizioni che ti ho detto sopra sono per una soluzione semplice e base, ovviamente con più lavoro puoi piegare kinect al tuovolere, non il contrario spulcia bene le openCV che sembrano abbastanza complete sotto questo aspetto
__________________
Affari: ariakasneverborne, PanCar, Luk@°°°, Fabio310, kintaro oe, krike, fabry180384, dariox am2, chiadoz, windsofchange, dado1979, Rudyduca, aleforumista, Sheva77 |
|
|
|
|
|
|
#7 | |
|
Senior Member
Iscritto dal: Mar 2000
Città: Parma
Messaggi: 2090
|
Quote:
grazie
__________________
] I've had enough, sick and tired: bring the sun or I'm gone. [ |
|
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Jun 2003
Città: Genova
Messaggi: 5676
|
non ho capito, il tracking te lo vorresti fare poi sull'immagine RGB?
in questo caso hai tutta la letteratura che vuoi! se la forma del blob non è troppo "strana" puoi provare a usare mean-shift (per dettagli http://comaniciu.net/). Non so se opencv lo ha già pronto... sicuramente contiene camshift per il tracking delle facce, ma non so quanto sia generico. Ultima modifica di NA01 : 28-04-2011 alle 11:56. |
|
|
|
|
|
#9 | |
|
Senior Member
Iscritto dal: Mar 2000
Città: Parma
Messaggi: 2090
|
Quote:
Sfortunatamente l'emettitore non è molto stabile e l'immagine catturata non particolarmente definita..Sicuramente il massimo sarebbe integrare le informazioni delle due cam, ma il lavoro sta già diventando pesantuccio così
__________________
] I've had enough, sick and tired: bring the sun or I'm gone. [ |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 22:33.




















