Progettazione di un'applicazione per il riconoscimento dei funghi tramite smartphone effettuata per il Corso di Sistemi Informativi Multimediali 2012 Università degli Studi di Milano Bicocca
iFungus - Un'applicazione per il riconoscimento dei funghi tramite smartphone
1. Sistemi informativi multimediali
Docenti:
Raimondo Schettini
Gianluigi Ciocca
iFUNGUS
Un’applicazione per il riconoscimento
dei funghi tramite smartphone
AngeloOldani - 744818
Michele Pierangeli - 703989
martedì 5 giugno 12
2. INDICE
• Riconoscere i funghi
• Le tecnologie smartphone
• Un’applicazione per il riconoscimento di funghi in mobilità
• L’architettura dell’applicazione
• Il database
• Features Extraction
• Indexing
• Matching
• iFungus: interazione e user interface (UI)
• Limiti del progetto
• Sviluppi futuri
martedì 5 giugno 12
11. ARCHITETTURA DI iFUNGUS
Tutto il processo di retrieval avverrà sullo smartphone, questo è
permesso da:
• buona potenza di calcolo
• database ristretto
• il contesto d’uso potrebbe non permettere una buona connessione dati
martedì 5 giugno 12
12. DATABASE DI iFUNGUS
Informazioni:
●
nome scientifico
●
sinonimi e nomi comuni
●
commestibilità
●
habitat
●
stagione
●
eventuali curiosità
Feature space:
almeno 10 vettori per ogni specie di fungo
tenendo conto dei differenti stadi di crescita.
Thumbnail file: anteprima
Feature vector:
Access file: 960x640 pixel in formato .jpg ●
Id del fungo
●
shape
●
area e dimensioni, cappello e gambo
●
colore cappello e gambo
●
texture
martedì 5 giugno 12
13. FEATURES EXTRACTION
1.
Scattare foto del fungo di scorcio.
2. Estrarlo dal contesto stabilendone la shape (Slope Magnitude Technique).
2.
Convertire l’immagine alla stessa grandezza del database.
3.
Separare il cappello dal gambo e immagazzinare le proporzioni.
4.
Il colore della cappella e del gambo (Color distribution).
5.
Texture cappello (Gabor Filters).
martedì 5 giugno 12
14. SCATTARE LA FOTO DEL FUGNO DI SCORCIO
• Eliminare ostruzioni (rami, foglie)
• Posizionarsi a di circa 15 - 20 cm
• Inquadrare il fungo e aspettare che venga delineato il contorno
• Scattare la foto e controllare se il contorno è preciso
• Nel caso non sia preciso aggiustarlo manualmente
• Invio della query
martedì 5 giugno 12
15. SLOPE MAGNITUDE TECHINQUE
Edge: salto nell’intensità dell’immagine
Robert Operator: Gy per trovare il gradiente verticale e Gx per quello orizzontale
Slope Magnitude Method trovare i punti di intersezione tra i gradienti
martedì 5 giugno 12
16. CONVERSIONE EQUALIZZAZIONE E
NORMALIZZAZIONE
•Resize dell’immagine in modo da essere della stessa dimensione del database di feature.
•Eliminazione dello sfondo usando la shape.
•Equalizzazione delle curve.
martedì 5 giugno 12
17. SEPARARE IL CAPPELLO DAL GAMBO
Algoritmo:
•Contorno del fungo e partendo dal basso
•Angolo che contraddistingue l’attaccatura del gambo col cappello
•Sia da destra che da sinistra
•Linea di divisione
martedì 5 giugno 12
18. ESTRAZIONE DELLE PROPORZIONI
Estrazione di features:
●
altezza complessiva del fungo
●
altezza del cappello e del gambo
●
larghezza del cappello e del gambo
martedì 5 giugno 12
19. RICONOSCIMENTO DEL COLORE
Features colore: Dynamic Color Distribution Entropy of
Neighborhoods
L’immagine viene scannerizzata riga per riga da sinistra a destra
delineando dei quartieri di colore simili e suddividendo
l’immagine in aree colorate.
martedì 5 giugno 12
20. TEXTURE CAPPELLO
L’analisi della texture sarà effettuata sul cappello.
Viene utilizzato il Gabor Filter lavorare con
ristrette larghezze di banda nel dominio delle
frequenze spaziali permettendo una più approfondita
analisi della texture.
martedì 5 giugno 12
21. INCERTEZZA INDIVIDUAZIONE
Se il riconoscimento dovesse fallire verrà chiesto all’utente di:
•scattare una nuova foto del fungo, dall’alto, in modo da prendere soltanto il cappello
e fare una nuova estrazione di features.
•discriminare visivamente e scegliere quali tra i funghi presentati assomiglia di più al fungo fotografato.
martedì 5 giugno 12
22. INDEXING
Organizzazione del database utilizzando una struttura dati che sfrutti le relazioni spaziali tra i vettori.
Struttura ad albero: Modello k-d tree
martedì 5 giugno 12
23. MATCHING
Vector space model possiamo definire come un documento (d) l’insieme di tutte le
features (wj) estratte dalle immagini prototipiche di una specie di un fungo.
La query (q) sarà composta da tutte le features (wq) estratte dall’immagine scattata dall’utente.
Come misura di similarità si è scelto di utilizzare il coseno degli angoli tra i due vettori presente
nel feature space.
Coseno vicino ad 1 = query molto simile al vettore comparato
Coseno vicno a 0 = query molto dissimile al vettore comparato
martedì 5 giugno 12
25. INTERAZIONE E UI
L’utente deve porsi
ad una distanza
di 15-20 cm e
dovrà centrare il
fungo nella sagoma
verde
martedì 5 giugno 12
26. INTERAZIONE E UI
Se il fungo non è
stato
completamente
catturato viene
data la possibilità di
selezionare a mano
l’area interessata
martedì 5 giugno 12
27. INTERAZIONE E UI
Area completata a
mano dall’utente
che colora le parti
interessate
martedì 5 giugno 12
28. INTERAZIONE E UI
Risultati multipli
Possibilità di
affinare i risultati
scattando una
foto anche
dall’alto.
martedì 5 giugno 12
30. INTERAZIONE E UI
Fungo
riconosciuto
Grado di
commestibilità
martedì 5 giugno 12
31. INTERAZIONE E UI
Informazioni
aggiuntive di
supporto
martedì 5 giugno 12
32. INTERAZIONE E UI
Fungo
riconosciuto,
tossico
martedì 5 giugno 12
33. INTERAZIONE E UI
Possibilità di
salvare la
posizione GPS in
cui è stato trovato
martedì 5 giugno 12
34. LIMITI
• Progetto prettamente teorico che non permette di verificare la stabilità
del sistema.
• Sarebbe opportuno popolare una vasto database di immagini.
• Il contesto d’uso naturale rende l’utilizzo dell’applicazione più complesso
a causa dei forti cambiamenti delle variabili ambientali.
• Impossibilità o difficoltà di riconoscere la forma degli Imenofori.
• Rischio nel riconoscimento di un fungo sbagliato.
martedì 5 giugno 12
35. SVILUPPI FUTURI
• Utilizzo di un expert system
• Tecnologia GPS
martedì 5 giugno 12