Sommario[Nascondere][Spettacolo]
- Che cos'è la classificazione delle immagini?
- Come funziona la classificazione delle immagini?
Classificazione delle immagini utilizzando Tensorflow e Keras in Python+-
- 1. Requisiti di installazione
- 2. Importazione delle dipendenze
- 3. Inizializzazione dei parametri
- 4. Caricamento del set di dati
- 5. Creazione del modello
- 6. Addestrare il modello
- Test del modello
- 7. Importazione delle utilità per il test
- 8. Creare una directory Python
- 9. Caricamento dei dati e del modello del test
- 10. Valutazione e previsione
- 11. Αποτελέσματα
- Conclusione
È rassicurante sapere che siamo riusciti a infondere ai robot le nostre innate capacità di imparare con l'esempio e percepire l'ambiente circostante. La sfida fondamentale è che coloro che insegnano ai computer a "vedere" come gli umani avrebbero bisogno di molto più tempo e fatica.
Tuttavia, se consideriamo il valore pratico che questa capacità fornisce attualmente alle organizzazioni e alle imprese, lo sforzo vale la pena. In questo articolo imparerai la classificazione delle immagini, come funziona e la sua implementazione pratica. Cominciamo.
Che cos'è la classificazione delle immagini?
Il compito di inserire un'immagine in a rete neurale e avere in uscita una qualche forma di etichetta per quell'immagine è noto come riconoscimento dell'immagine. L'etichetta di output della rete corrisponderà a una classe predefinita.
Potrebbero esserci numerose classi assegnate all'immagine o semplicemente una. Quando c'è una sola classe si usa spesso il termine “riconoscimento”, mentre quando ci sono più classi si usa spesso il termine “classificazione”.
Rilevazione di oggetti è un sottoinsieme della classificazione delle immagini in cui particolari istanze di oggetti vengono rilevate come appartenenti a una determinata classe come animali, veicoli o esseri umani.
Come funziona la classificazione delle immagini?
Un'immagine sotto forma di pixel viene analizzata da un computer. Lo fa trattando l'immagine come un insieme di matrici, la cui dimensione è determinata dalla risoluzione dell'immagine. In parole povere, la classificazione delle immagini è lo studio di dati statistici utilizzando algoritmi dal punto di vista di un computer.
La classificazione delle immagini si ottiene nell'elaborazione delle immagini digitali raggruppando i pixel in gruppi predeterminati o "classi". Gli algoritmi suddividono l'immagine in una successione di caratteristiche degne di nota, il che riduce l'onere per il classificatore finale.
Queste qualità informano il classificatore sul significato dell'immagine e sulla potenziale classificazione. Poiché il resto dei processi di classificazione di un'immagine dipendono da esso, il metodo di estrazione caratteristico è la fase più critica.
I dati forniti per l'algoritmo è anche cruciale nella classificazione delle immagini, in particolare nella classificazione supervisionata. In confronto a un terribile set di dati con squilibrio dei dati basato sulla classe e bassa qualità dell'immagine e delle annotazioni, un set di dati di classificazione ben ottimizzato funziona in modo ammirevole.
Classificazione delle immagini utilizzando Tensorflow e Keras in Python
Useremo il CIFAR-10 set di dati (che include aerei, aeroplani, uccelli e altre 7 cose).
1. Requisiti di installazione
Il codice seguente installerà tutti i prerequisiti.
2. Importazione delle dipendenze
Crea un file train.py in Python. Il codice seguente importerà le dipendenze Tensorflow e Keras.
3. Inizializzazione dei parametri
CIFAR-10 include solo 10 categorie di immagini, quindi le classi num si riferiscono semplicemente al numero di categorie da classificare.
4. Caricamento del set di dati
La funzione utilizza il modulo Tensorflow Datasets per caricare il set di dati e impostiamo con info su True per ottenere alcune informazioni al riguardo. Puoi stamparlo per vedere quali sono i campi e i relativi valori e utilizzeremo le informazioni per recuperare il numero di campioni nei set di addestramento e test.
5. Creazione del modello
Ora creeremo tre livelli, ciascuno composto da due ConvNet con una funzione di max pooling e attivazione ReLU, seguiti da un sistema di 1024 unità completamente connesso. In confronto a ResNet50 o Xception, che sono modelli all'avanguardia, questo potrebbe essere un modello relativamente piccolo.
6. Addestrare il modello
Ho usato Tensorboard per misurare l'accuratezza e la perdita in ogni epoca e fornirci un bel display dopo aver importato i dati e generato il modello. Esegui il codice seguente; a seconda della CPU/GPU, l'allenamento richiederà diversi minuti.
Per utilizzare tensorboard, digita il seguente comando nel terminale o nel prompt dei comandi nella directory corrente:
Vedrai che la perdita di convalida si sta riducendo e la precisione sale a circa l'81%. È fantastico!
Test del modello
Al termine dell'allenamento, il modello finale e i pesi vengono salvati nella cartella dei risultati, consentendoci di allenarci una volta e di fare previsioni ogni volta che lo desideriamo. Segui il codice in un nuovo file Python denominato test.py.
7. Importazione delle utilità per il test
8. Creare una directory Python
Crea un dizionario Python che traduca ogni valore intero nell'etichetta appropriata del set di dati:
9. Caricamento dei dati e del modello del test
Il codice seguente caricherà i dati di test e il modello.
10. Valutazione e previsione
Il codice seguente valuterà e farà previsioni sulle immagini della rana.
11. Αποτελέσματα
Il modello ha previsto la rana con una precisione dell'80.62%.
Conclusione
Ok, abbiamo finito con questa lezione. Anche se l'80.62% non va bene per una piccola CNN, ti consiglio vivamente di modificare il modello o guardare ResNet50, Xception o altri modelli all'avanguardia per risultati migliori.
Ora che hai costruito la tua prima rete di riconoscimento delle immagini in Keras, dovresti sperimentare il modello per scoprire come parametri diversi influiscono sulle sue prestazioni.
Lascia un Commento