Main Content

La traduzione di questa pagina non è aggiornata. Fai clic qui per vedere l'ultima versione in inglese.

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

  1. 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.

  2. BVLC GoogLeNet Model. https://github.com/BVLC/caffe/tree/master/models/bvlc_googlenet

Vedi anche

| | | | |

Argomenti complementari