|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Junior Member
Iscritto dal: May 2011
Città: Reggio Emilia
Messaggi: 17
|
[c/c++ & OpenCV] riconoscimento oggetti da archivio immagini
Ciao a tutti,
Sono un ingegnere meccatronico e sto entrando solo adesso nel mondo del computer vision per necessità di integrare un "semplice" applicativo di object detection su un braccio robotico. Quello che devo fare è, avendo a disposizine un archivio di immagini di oggetti da identificare (una immagine JPG per ogni oggetto, per esempio bottiglie di bibite), rilevare la posizione nell'immagine ottenuta dalla telecamera di ognuna di queste bottiglie, se presente. Immagino che il problema sia di facile soluzione per chiunque con un minimo di esperienza, e spero che possiate darmi consigli e magari qualche link a codici esempio simili. Il problema è molto più semplice di un face detector basato su classificatori, in quanto l'oggetto da rilevare è uno ed è definito da una singola immagine campione. Grazie in anticipo |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jun 2003
Città: Genova
Messaggi: 5676
|
di che tipo di oggetti si tratta e in che ambiente ti aspetti di trovarli?
a meno che la luce, la vista e l'ambiente non siano controllati un problema di detection è tutto tranne che semplice (il fatto che l'esempio sia solo uno non migliora le cose). Chiaramente poi la palla rossa su sfondo verde si trova facile facile |
|
|
|
|
|
#3 |
|
Junior Member
Iscritto dal: May 2011
Città: Reggio Emilia
Messaggi: 17
|
Gli oggetti possono essere cartoni o bottiglie di bibite, mentre l'ambiente può essere vario, ma partirei da un armadio a mensole.
L'illuminazione rimane abbastanza costante (luogo interno con luce artificiale + luce naturale dalle finestre ma mai diretta). Le variabili possono essere la distanza dell'oggetto dalla telecamera (comunque determinata tra un minimo ed un massimo) e la parziale rotazione dell'oggetto. Non è una palla rossa su fondo verde
|
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
|
Quote:
C'e' anche un esempio di riconoscimento di un semplice rettangolo: nonostante la semplicita', ti mostra i vari passaggi che servono per arrivare al riconoscimento (miglioramento del contrasto, soglia, erosioni/dilatazioni, selezione delle aree, calcolo del perimetro e controllo della forma) E poi... c'e' il sito di Flavio Bernardotti, puoi trovare quello che ti serve ed un aiuto (magari in italiano)
__________________
In God we trust; all others bring data Ultima modifica di sottovento : 04-05-2011 alle 15:05. |
|
|
|
|
|
|
#5 |
|
Junior Member
Iscritto dal: May 2011
Città: Reggio Emilia
Messaggi: 17
|
Ho guardato nella directory che dicevi e ho visto molti esempi a dir poco stuzzicanti!
Per quello che riguarda la mia applicazione, l'unica idea che mi viene è quella di prendere spunto dal camshift... In realtà però io non devo fare il tracking di un oggetto su video, devo solo riconoscerlo all'interno di un contesto. Stavo anche provando a realizzare un codice che giri attorno alla funzione cvmatchtemplate, però la cosa mi risulta molto ardua pensando alla distorsione dell'oggetto da riconoscere dovuta alla diversa posizione spaziale (quindi oggetto più grande o più piccolo del template) e alla semi-rotazione. Farò qualche prova... Intanto grazie delle risposte! e qualunque idea/consiglio è ben accetta |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Jun 2003
Città: Genova
Messaggi: 5676
|
non ho mai usato la parte di template matching, ma immagino che anche in quel caso un solo esempio non sia il massimo.
la parte di object detection che io sappia è tutta fatta per addestramento, sia che siano svm (il caso degli HOG con i pedoni), sia che sia adaboost (caso delle feature di Haar sulle facce). Forse l'idea migliore è fare del matching con delle SIFT, in opencv dovrebbero esserci |
|
|
|
|
|
#7 | |
|
Junior Member
Iscritto dal: May 2011
Città: Reggio Emilia
Messaggi: 17
|
Quote:
Intanto grazie per la info. |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 20:04.




















