QNA > C > Come Fare Un'app Che Usa Il Riconoscimento Delle Immagini Con Tensorflow Che Identifica Diversi Tipi Di Piante

Come fare un'app che usa il riconoscimento delle immagini con TensorFlow che identifica diversi tipi di piante

Ho recentemente creato qualcosa di molto simile con TensorFlow - Florist è un'app per Android che può riconoscere 20 specie di fiori.

Devi decidere se usare l'approccio "classificazione" o "rilevamento degli oggetti". Ci sono esempi disponibili nel repository ufficiale di TF per entrambi. La differenza è che la classificazione classifica l'intera immagine in una data categoria - può dirvi quale pianta riconosce nell'immagine. Il rilevamento degli oggetti è più robusto, in quanto può riconoscere un certo numero di categorie diverse in una singola immagine e dire la loro posizione:

main-qimg-288cc86be1d7a0bb4a68350bd01475a6

Inoltre, l'esempio di rilevamento degli oggetti di TF fornisce anche il codice di tracciamento degli oggetti, che rende possibile seguire gli oggetti riconosciuti mentre sono in movimento, il che ha alcune applicazioni interessanti.

Se ci sarà solo una pianta nelle tue immagini, è sufficiente usare l'approccio di classificazione, ma se ci possono essere più piante diverse in una singola immagine, dovresti scegliere il rilevamento degli oggetti. C'è comunque un'enorme differenza nel processo di formazione. Per l'addestramento, la classificazione richiede intere immagini etichettate con ogni categoria - potete ottenerle molto rapidamente cercando su Google Images una data pianta, scaricando tutte le immagini e mettendole in una cartella per la loro categoria - ho usato il plugin per il browser "Google Image Downloader" per questo, che ha funzionato abbastanza bene.

Per il rilevamento degli oggetti, d'altra parte, dovete etichettare manualmente ogni immagine con le vostre categorie. Puoi farlo con uno strumento molto semplice, ma molto utile:

main-qimg-119daedf9743a6260ad551b94f16aea4

Hai bisogno di avere circa 100 - 200 immagini per ogni categoria, quindi questo può davvero richiedere del tempo se vuoi riconoscere molte piante.

Una volta che hai deciso quale approccio prendere, raccogliere ed etichettare i tuoi dati, puoi seguire i tutorial ufficiali di TensorFlow per addestrare il tuo modello e usarlo in una app per Android, iOS o Raspberry. Oltre alla documentazione ufficiale di TF, ci sono un sacco di buoni tutorial disponibili passo dopo passo, quindi non descriverò tutti i passaggi, dirò solo quello che ho imparato durante il processo:

  • Per le app mobili c'è il nuovo progetto "TF Lite", che permette di ottimizzare i modelli per i dispositivi mobili in particolare, in modo che siano più piccoli e le inferenze (riconoscimenti) siano più veloci. È un'iniziativa molto interessante, tuttavia attualmente non supporta l'approccio "object detection", ma solo la classificazione
  • Si dovrebbe anche mescolare un certo numero di immagini di sfondo nei dati di allenamento - un numero di immagini senza piante - altrimenti il modello sarà tentato di vedere piante ovunque, poiché non ci sarà alcuna "punizione" per il mancato riconoscimento di una categoria durante il processo di addestramento
  • Potrebbero essere necessari più di 100′000 passi di addestramento perché il modello dia risultati soddisfacenti, e probabilmente sarà necessario ripetere il processo più volte al fine di sintonizzare i parametri di allenamento. Ci vorrà tempo sul tuo PC, quindi è meglio ottenere qualche macchina forte da Google, Amazon o qualsiasi altra nuvola di calcolo (vedi anche la mia altra risposta: Robert Popławski's answer to Can I run tensorflow on my laptop with 4GB RAM and 1GB graphics card?)
  • Se le tue piante possono essere riconosciute solo dalle loro foglie o fiori, dovrebbe essere più facile addestrare il modello in questo modo, invece di usare piante intere
  • Infine, le piante sono molto più difficili da imparare rispetto agli oggetti artificiali. Possono differire molto, anche all'interno della singola categoria, a seconda della specie esatta, età, maturità, posizione geografica, clima, ecc. Per esempio, un fiore conosciuto come Orchidea è in realtà un gruppo di circa 28000 specie diverse... Quindi, conoscete i limiti del vostro modello e fate chiare ipotesi all'inizio su ciò che il vostro modello sta per riconoscere

Il risultato finale può essere come questo:

Di Jewel

Come fare il root del mio telefono Moto E6 :: Come fare una domanda di identificazione
Link utili