Pagina 4 di 4

Re: Artificial Vision Robot

MessaggioInviato: 2 mar 2013, 21:07
da pierinter
Do un occhiata, grazie!

È comunque tutto il giorno che ci lavoro ed ho provato diversi algoritmi, anche se senza risultati, ma almeno so che direzione prendere.

Per quanto riguarda gli XML i sono letto la documentazione di OpenCV a questo link http://docs.opencv.org/doc/tutorials/objdetect/cascade_classifier/cascade_classifier.html#cascade-classifier, ed anche qui li utilizzano.
Ho provato anche l'example e funziona. Allora incuriosito sono andato a guardarmi questi XML che sono utilizzati nel programma.
Sono tutti numeri , probabilmente sono davvero delle 'definizioni' (di occhi e faccia in questo caso).

Potrebbe essere una soluzione percorribile, anche se forse un po' difficoltosa.. ma se non c'è altra soluzione,mi butto su questa.

Fino ad ora ho provato con l'estrapolazione dei contorni e con l' HugeCircles , ma non è andata a buon fine.
Ora provo con il fitEllipse e vediamo che succede.

Mi viene in mente anche un'altra cosa però.
Potrebbe esistere una sorta di 'training' ? nel senso che gli faccio vedere diverse 'realizzazioni' delle uova che devo raccogliere, e lui mette insieme i dati comuni per ricavare una sorta di proprietà.
È utopia ?

Re: Artificial Vision Robot

MessaggioInviato: 2 mar 2013, 21:49
da cyclone
Salve,
no non è utopia, la strada migliore infatti è quella di generare un file XML attraverso gli HAAR-CASCADE.
per generare il file XML(delle uova) hai bisogno di mettere insieme però almeno tra mille e 10000 foto di uova posti in ambienti diversi (su sfondi diversi e con illuminazioni diverse), ed almeno altrettante foto di immagini dette negative con soli sfondi (senza uova). A questo punto attraverso il programma di conversione che trovi nelle lib opencv converti il tutto in un file XML ed il gioco è fatto.
Tutto ciò è abbastanza laborioso, ma posso dirti che questa è una delle poche strade percorribili con la quale ho risolto molte applicazioni.

comunque, visto che ne esistono di tutti i tipi, potresti essere così fortunato da trovarne sulla rete uno per le uova già pronto.


Ciao

Re: Artificial Vision Robot

MessaggioInviato: 2 mar 2013, 22:39
da pierinter
cioè, esistono già dei metodi automatici che creino questi XML ?

Ma creare queste definizioni in file XML è una cosa che , per capire, posso fare anche io manualmente oppure è una cosa talmente lunga che bisogna per forza utilizare un elaboratore ?

un'altra domanda : perché devo fare così tante foto su sfondi e illuminazioni diverse ?
Non basta avere diverse foto fatte nell'ambiente in cui si dovrà andare a lavorare?
Foto quindi dell'arena, con i robot in mezzo che disturbano ecc..

Re: Artificial Vision Robot

MessaggioInviato: 2 mar 2013, 22:49
da cyclone
Come faresti a riprodurre il campo da gioco a priori? senza vederlo?
La creazione degli XML haar-cascade porta via un bel po' di tempo.

Nulla di automatico, il software per la generazione lo devi sviluppare tu usando le lib.
La selezione degli oggetti di interesse in un campo visivo (ROI) viene fatta manualmente e foto x foto.
scegliendo e selezionando nelle foto l'oggetto che interessa riconoscere.

Re: Artificial Vision Robot

MessaggioInviato: 2 mar 2013, 23:00
da pierinter
Ho accesso all'arena quindi , se può servire, posso scattare le foto direttamente li, in mezzo anche agli altri robot per una situazione piu realistica.

1000 foto mi sembrano troppe per il tempo che ho a disposizione, ma un centinaio le posso fare.
Andrà forse a discapito della precisione, ma se si rimane entro i limiti dell'accettabilità va bene.

Altro dubbio che ho è che :
- le uova sono tutte di colore diverso
- la prospettiva : cioè, guardando l'uovo di fronte sembra rotondo, guardandolo di lato è un ovale. Le foto andrebbero fatte in entrambe le prospettive ? sarà poi in grado di riconoscere l'uovo in entrambe le posizioni ?

Il problema serio poi, è che non so proprio come poter scrivere un programma che compilo questo XML.

Re: Artificial Vision Robot

MessaggioInviato: 2 mar 2013, 23:07
da cyclone
il colore non ha molta importanza nel XML,
e le foto devono essere scattate da molti punti di vista.

Ma tu devi catturare solo uova di un certo colore scartandone altre (tipo premi e punizioni?)

per il tracking eventualmente potresti eseguire un AND tra haar, e camshift.

Re: Artificial Vision Robot

MessaggioInviato: 2 mar 2013, 23:10
da pierinter
In più : ci sono dei codici per il matching di un template in una foto. Funzionano abbastanza bene, ne ho provato qualcuno.
Probabilmente facendo fare un check con diversi 'template' potrei avere una soluzione più precisa. Potrebbe essere una soluzione ?

cyclone ha scritto:il colore non ha molta importanza nel XML,
e le foto devono essere scattate da molti punti di vista.

Ma tu devi catturare solo uova di un certo colore scartandone altre (tipo premi e punizioni?)

per il tracking eventualmente potresti eseguire un AND tra haar, e camshift.


No, devo catturarle tutte quante, quante più possibile.
Il fatto del colore è solo per estetica (anche se sarebbe stato molto più semplice se fossero state un solo colore. Ma così non è , quindi adeguiamoci ;) )

Per il tracking, ci penserei dopo.
Il problema sarà cercare di capire dove si trova l'uovo e farlo raggiungere dal robot (con Arduino tra l'altro).
Ma va beh, ci penseremo ;) ho due settimane giorno più giorno meno.

Re: Artificial Vision Robot

MessaggioInviato: 3 mar 2013, 18:11
da dimaios
Foto Utentepierinter, mi sembra che tu stia sottovalutando la difficoltà del lavoro.
Il riconoscimento di oggetti non è affatto banale e necessita molto studio.
Procedere a caso da una soluzione ad un'altra non porta a nessun beneficio.

Per quanto riguarda l'XML leggi questo.

Per quanto riguarda le Haar features impiegate nella libreria OpenCV leggi questo tutorial molto ben fatto.

Per fare esperimenti ti conviene scaricarti il machine vision toolbox di Peter Corke, è gratuito e facilita molto il lavoro di simulazione.

Un ultimo consiglio ..... prova prima con tecniche che non richiedono il training.
Se proprio devi impiegare tecniche di alto livello, ad essere sincero impiegherei le SVM ( Support Vector Machine ) anzichè le Harr-like features, ma ovviamente richiedono almeno un paio di mesi di studio intensivo partendo da un bagaglio di conoscenze matematiche adeguato.

Re: Artificial Vision Robot

MessaggioInviato: 3 mar 2013, 20:32
da pierinter
Non direi che sto procedendo a caso... sto semplicemente facendo delle prove.
Ho provato qualsiasi cosa che mi è venuta in mente per evitare il training, ma non mi soddisfa nulla.

So che è un lavoro difficile, non lo metto in dubbio, ma questo s'adda fa :mrgreen: Allora non mi arrendo e ci provo.Anche perché è una cosa che mi ha sempre incuriosito e mi piacerebbe sbatterci un po' la testa, ora che sono anche finiti gli esami.

Sto cercando di capire qualcosa in più sul training, ti ringrazio per i link , ora li guardo!

Ho capito più o meno come funziona (positivi,negativi) e che è quello utilizzato per il riconoscimento facciale.

Devo capire come iniziare però.

SVM ? che differenza hanno dalle Haar?

Re: Artificial Vision Robot

MessaggioInviato: 4 mar 2013, 11:12
da dimaios
Sono entrambi appartenenti alla categoria dei classificatori mediante reti neurali ( in senso generale ) ma l'approccio e' completamente diverso.

Per le Haar like features puoi leggere questo articolo molto ben fatto.
Si riferisce al riconoscimento facciale come la maggior parte delle applicazioni di questa tecnica.

Per quanto riguarda l' SVM le cose si complicano parecchio.
Un paper molto interessante dal quale partire e' il seguente.

Esistono vari pacchetti software in rete ( anche per Matlab ) con i quali puoi tentare la classificazione.
In questo sito ne trovi uno che ho impiegato in passato con soddisfazione. Ovviamente non e' fatto per applicazioni realtime ma puoi sempre fare dei test e poi impiegare una libreria in C++ per il software finale.