Classificazione di immagini con una rete preaddestrata
Questo esempio mostra come classificare un’immagine con la rete neurale convoluzionale profonda preaddestrata GoogLeNet.
GoogLeNet è stata addestrata su oltre un milione di immagini ed è in grado di classificare le immagini in 1000 categorie di oggetti (ad esempio, tastiera, tazza da caffè, matita e molti animali). La rete ha appreso ricche rappresentazioni di feature per un’ampia gamma di immagini. La rete prende un’immagine come input e produce come output un’etichetta per l’oggetto all’interno dell’immagine, insieme alle probabilità che l’oggetto appartenga a ciascuna delle altre categorie di oggetti.
Caricamento della rete preaddestrata
Caricare la rete GoogLeNet preaddestrata e i nomi delle classi corrispondenti. Si può anche scegliere di caricare una rete preaddestrata diversa per la classificazione delle immagini. Per questa fase è necessario il pacchetto assistenza Deep Learning Toolbox™ Model for GoogLeNet Network. Se non si dispone del pacchetto assistenza necessario installato, il software fornisce un link di download.
[net,classNames] = imagePretrainedNetwork("googlenet");
Lettura e ridimensionamento delle immagini
Le dimensioni dell’immagine da classificare devono coincidere con le dimensioni di input della rete. Per GoogLeNet, le dimensioni di input della rete corrispondono alla proprietà InputSize
del livello di input dell’immagine.
Leggi l’immagine che desideri classificare e ridimensionala con le dimensioni di input della rete. Il ridimensionamento modifica leggermente il rapporto d’aspetto dell’immagine.
I = imread("peppers.png");
inputSize = net.Layers(1).InputSize;
I = imresize(I,inputSize(1:2));
Classificazione e visualizzazione delle immagini
Classifica e visualizza l’immagine con l’etichetta prevista. Per fare previsioni con una rete neurale, convertire i dati in dati di tipo singolo.
scores = predict(net,single(I)); label = scores2label(scores,classNames); figure imshow(I) title(string(label))
Per un esempio più dettagliato su come visualizzare anche le previsioni principali con le relative probabilità, vedere Classificazione di immagini utilizzando GoogLeNet.
Per le fasi successive del Deep Learning si può utilizzare la rete preaddestrata per altre attività. Risolvi nuovi problemi di classificazione sui dati di immagini con il transfer learning o l’estrazione di feature. Per consultare gli esempi, vedere Avvio rapido del Deep Learning utilizzando il transfer learning e Addestramento dei classificatori utilizzando le feature estratte dalle reti preaddestrate. Per provare altre reti preaddestrate, vedere Reti neurali profonde preaddestrate.
Bibliografia
Szegedy, Christian, Wei Liu, Yangqing Jia, Pierre Sermanet, Scott Reed, Dragomir Anguelov, Dumitru Erhan, Vincent Vanhoucke, and Andrew Rabinovich. "Going deeper with convolutions." In Proceedings of the IEEE conference on computer vision and pattern recognition, pp. 1-9. 2015.
BVLC GoogLeNet Model. https://github.com/BVLC/caffe/tree/master/models/bvlc_googlenet
Vedi anche
imagePretrainedNetwork
| dlnetwork
| trainingOptions
| trainnet
| scores2label
| Deep Network Designer
Argomenti complementari
- Classificazione di immagini utilizzando GoogLeNet
- Prova il Deep Learning in 10 righe di codice MATLAB
- Come iniziare a utilizzare il transfer learning
- Come iniziare con la classificazione delle immagini
- Get Started with Time Series Forecasting
- Preparazione della rete per il transfer learning con Deep Network Designer