Attualmente mi trovo di fronte a un problema piuttosto comune che dovrebbe essere abbastanza facile da risolvere ma finora tutti i miei approcci sono falliti, quindi mi rivolgerò a voi per chiedere aiuto.Approccio di corrispondenza forma/modello in Computer Vision
Penso che il problema sia spiegato meglio con alcune illustrazioni. Ho alcuni modelli come questi due:
Ho anche un'immagine come (probabilmente meglio, perché la foto questa origine da era abbastanza scarsamente illuminata) questo:
(Nota come il modello è stato ridimensionato per adattarsi alla dimensione dell'immagine)
L'obiettivo finale è uno strumento che determina se l'utente mostra un gesto pollice su/pollice in giù e anche alcuni angoli in mezzo. Quindi voglio abbinare i disegni all'immagine e vedere quale assomiglia di più all'immagine (o per essere più precisi, l'angolo che la mano mostra). Conosco la direzione in cui il pollice sta mostrando nel modello, quindi se trovo il modello che sembra identico ho anche l'angolo.
Sto lavorando con OpenCV (con Python Bindings) e ho già provato cvMatchTemplate e MatchShapes ma finora non funziona in modo affidabile.
Posso solo intuire perché MatchTemplate non è riuscito, ma penso che uno schema più piccolo con un bianco più piccolo si adatti perfettamente all'area bianca di un'immagine, creando così il miglior fattore di corrispondenza sebbene sia ovvio che non sembrano proprio uguali.
Ci sono alcuni metodi nascosti in OpenCV che non ho ancora trovato o esiste un algoritmo noto per quei tipi di problemi che dovrei reimplementare?
Buon anno.
sì, le immagini fornite sono immagini originali. è solo che, ad esempio, la seconda immagine del modello non ha il miglior valore di corrispondenza se confrontata con l'immagine di esempio. anche quando hanno quasi le stesse dimensioni come nell'immagine. consigliate un metodo matchtemplate speciale (CV_TM_SQDIFF, ...)? qual è il valore che ottengo? errore per l'intera immagine? distanza per pixel (quindi devo dividerlo per la dimensione dell'immagine o qualcosa del genere?) – Nicolas
Ho aggiornato la mia risposta per rispondere alle vostre domande. –
Per una forma "elastica" come un pugno, i modelli di corrispondenza potrebbero non funzionare sempre come si desidera. Rotazione, ridimensionamento e trasformazioni affini non tengono conto della rotazione a tratti e dello stiramento dei singoli componenti. Se una combinazione di tecniche morfologiche e di segmentazione non funziona, prendi in considerazione la ricerca di documenti sulla "decomposizione della forma". – Rethunk