2012-03-17 2 views
8

Sto tentando di implementare un easter egg in un'app mobile su cui sto lavorando. Questi easter egg verranno attivati ​​quando viene rilevato un logo nella vista della telecamera. Il logo che sto cercando di rilevare è questo: Halifax logo.Rilevamento del logo tramite OpenCV

Non sono del tutto sicuro di quale sia il modo migliore per avvicinarsi a questo, dato che sono abbastanza nuovo per la visione artificiale. Attualmente sto trovando i bordi orizzontali usando l'algoritmo Canny. Quindi trovo i segmenti di linea usando la trasformata di Hough probabilistica. L'uscita di questo appare come segue (linee blu rappresentano i segmenti di linea rilevati dal probabilistico trasformata di Hough):

halifax logo post detection

Il prossimo passo che stavo per prendere sarebbe quella di cercare un gruppo di circa 24 linee (inserendosi in un rettangolo quasi quadrato), ogni linea dovrebbe avere approssimativamente la stessa lunghezza. Userei questi due segnali per indicare la potenziale presenza del logo. Mi rendo conto che questo è probabilmente un approccio molto ingenuo e gradirei suggerimenti su come individuare meglio questo logo in modo più affidabile?

Grazie

risposta

4

si può decidere di andare con SIFT utilizzando Rob Hess' SIFT Library. Sta usando OpenCV e anche piuttosto veloce. Immagino che sia più facile del tuo attuale modo di approcciare al riconoscimento del logo :)

Prova anche a cercare SURF, che dichiara di essere più veloce di & di SIFT. Questo Feature Detection tutorial ti aiuterà.

+2

SIFT e SURF sono entrambi brevettati (anche se consentono un uso non commerciale non commerciale), quindi è necessaria una licenza di brevetto per qualsiasi uso commerciale. – bleater

0

Non sono abbastanza sicuro se si troveranno tali caratteristiche nel logo per andare con un approccio SIFT/SURF. In alternativa puoi provare ad addestrare un classificatore di caratteristiche tipo Haar e usarlo per rilevare il logo, proprio come opencv per il rilevamento del volto.