2012-11-05 19 views
5

Sono novizio al campo CV e sono su un compito relativamente semplice, voglio analizzare i valori del rock del domino.Attività di riconoscimento immagine semplice in Android: lettura dei domini

Ho usato il metodo di analisi del BLOB, che non era molto efficiente su Android, per cui ho usato un codice java puro che tende ad essere più lento del nativo C. E i dati di sfondo mi hanno causato problemi poichè potrebbero avere anche blob.

Dopo troppe letture ho eseguito il metodo "matching template" che mi sembra il migliore, per le sue ridotte esigenze di risorse e la tolleranza di rotazione/ridimensionamento, posso facilmente salvare il modello di ogni pezzo del domino e quindi far corrispondere nell'imminente immagine per analisi e conteggio.

Ora tutto ciò che voglio è la tua guida alle librerie/metodi che possono aiutarmi a implementare la corrispondenza dei template, preferisco pure java ma posso usare lib librerie C native se non viene trovata alcuna scelta.

P.S: Se mi trovi male riguardo all'algoritmo che ho scelto, forniscimi il tuo consiglio.

risposta

8

Il riconoscimento delle immagini è un'elaborazione di alto livello nella visione artificiale, innanzitutto è necessario eseguire un po 'di pre-elaborazione e rilevare prima l'oggetto.

Per eseguire la corrispondenza del modello, innanzitutto è necessario trovare la regione di interesse dell'immagine che si desidera riconoscere. Per fare ciò è possibile scegliere uno tra molti algoritmi come il rilevamento basato sulla funzione e il rilevamento basato sull'aspetto. Dopo aver trovato il ROI (Region of Interest) che si può fare l'abbinamento modello (suppongo avete già capito il concetto di template matching)

la sintesi di esso si può vedere nel diagramma di flusso sotto

Template Matching Flow Diagram

e l'esempio del modello di corrispondenza

enter image description here

dopo aver compreso l'intero processo è possibile utilizzare alcuni biblioteca avaible che supporta Android piattaforma come OpenCV (Open Source) o FastCV da Qualcomm entrambi utilizzano nativo C quindi è necessario utilizzare Android NDK per compilarlo.

Se avete qualche domanda non esitate a chiedermi nel commento :)

Problemi correlati