Skip To Content

Apprendimento profondo nell'analisi raster

ArcGIS Image Server consente di usare metodi di classificazione di apprendimento statistico o automatico per classificare immagini di telerilevamento. L'apprendimento profondo è un tipo di apprendimento automatico che si basa su più layer di elaborazione non lineare per l'identificazione di feature e il riconoscimento di modelli descritti in un modello. I modelli di apprendimento profondo possono essere integrati con ArcGIS Image Server per il rilevamento di oggetti e la classificazione di immagini. Gli esempi di formazione di feature o oggetti di interesse sono generati in ArcGIS Pro con strumenti di gestione degli esempi di formazione per la classificazione, quindi convertiti in un formato da utilizzabile framework di apprendimento profondo. Questi esempi di formazione vengono usati da un data scientist o da un image scientist per addestrare il modello usando un framework di apprendimento profondo di terzi. Il modello addestrato, insieme al file di definizione del modello (e facoltativamente a un file script della funzione raster Python), viene inserito in un package e condiviso come elemento del pacchetto di apprendimento profondo (dlpk) che viene quindi usato per eseguire gli strumenti di inferenza dell'analisi raster. Gli strumenti di inferenza o estraggono feature specifiche o classificano i pixel nelle immagini. L'elemento dlpk può essere usato più volte come input per gli strumenti di analisi raster, agevolando la valutazione di più immagini in posizioni e periodi di tempo diversi dopo che il modello è stato addestrato.

Flusso di lavoro di apprendimento profondo

Elemento del flusso di lavoro 1

Creare esempi di formazione con la Gestione Esempi di formazione in ArcGIS Pro e usare lo strumento di analisi raster Esporta dati di formazione per l'apprendimento profondo in ArcGIS REST API o ArcGIS API for Python per preparare i dati per il data scientist.

Elemento del flusso di lavoro 2

Il data scientist adopera i dati di formazione per sviluppare modelli usando un framework di apprendimento profondo di terzi.

Elemento del flusso di lavoro 3

Il data scientist riconsegna un pacchetto di apprendimento profondo con il file di definizione del modello e il modello addestrato e/o lo script Python all'ambiente di analisi raster ArcGIS Image Server.

Elemento del flusso di lavoro 4

Creare un elemento del pacchetto di apprendimento profondo (.dlpk) e condividerlo sul portale. Con l'elemento dlpk, eseguire lo strumento Rileva oggetti usando l'apprendimento profondo o lo strumento Classifica pixel usando l'apprendimento profondo per generare un output.

Elemento del flusso di lavoro 5

È possibile sfruttare ArcGIS API for Python per addestrare il modello con un framework di apprendimento profondo.

Feature e funzionalità

Gli strumenti di analisi raster di apprendimento profondo consentono di usare più delle tecniche standard di classificazione dell'apprendimento automatico.

  • Usare le reti neurali convoluzionali per la classificazione delle immagini.
  • Usare un modello di apprendimento profondo per classificare i pixel delle immagini o per rilevare oggetti come aeroplani, alberi, veicoli, corpi idrici e piattaforme di perforazione di pozzi petroliferi.
  • Integrare i framework dei modelli di apprendimento profondo esterni, inclusi Keras, TensorFlow, CNTK e PyTorch.
  • Usare un file di definizione del modello più volte per rilevare le modifiche nel tempo o per rilevare oggetti in diverse aree di interesse.
  • Generare una feature class poligono che mostri gli oggetti rilevati da usare per le analisi o i flussi di lavori aggiuntivi.
  • Gli strumenti di inferenza di apprendimento profondo possono usare la CPU per l'elaborazione distribuita o usare la potente GPU su ciascun nodo di server se disponibile.

Introduzione all'apprendimento profondo

La creazione e l'esportazione di esempi di formazione avvengono all'interno di ArcGIS e sono realizzati da un image analyst competente perché richiedono conoscenze profonde dei flussi di lavoro di classificazione delle immagini. Il modello di apprendimento profondo viene addestrato al di fuori di ArcGIS tramite un framework di apprendimento profondo da un data scientist o da qualcuno che abbia esperienza nell'addestramento di modelli di apprendimento profondo. Una volta che il modello è addestrato e definito in un file di definizione del modello Esri .emd, si condivide un elemento dlpk su Portal for ArcGIS e si eseguono gli strumenti di analisi raster per rilevare oggetti o per classificare pixel da Map Viewer, ArcGIS API for Python, ArcGIS REST API o ArcGIS Pro. In alcuni casi, i tre passaggi potrebbero essere completati tutti da un solo addetto alle analisi che abbia esperienza con i modelli di apprendimento profondo e con la classificazione di immagini ArcGIS.

Sarà necessario installare l'ArcGIS API for Python del framework di apprendimento profondo adeguato (TensorFlow, CNTK, PyTorch o Keras) nell'ambiente Python 3 di runtime di ArcGIS Server; in caso contrario, si verificherà un errore al momento dell'aggiunta dell'elemento dlpk nello strumento. Ottenere le informazioni del framework adeguato dal creatore del file di definizione del modello Esri

Fare riferimento alla documentazione del framework per consultare le indicazioni sull'installazione. Consultare la documentazione per configurare e installare ArcGIS Enterprise per l'analisi raster.

  1. Creare ed esportare esempi di formazione.
    1. Usare la Gestione Esempi di formazione in ArcGIS Pro per selezionare o creare uno schema di classificazione.
    2. Creare esempi di siti di formazione per le categorie di classe o le feature di interesse. Salvare il file dell'esempio di formazione.
    3. Eseguire lo strumento di analisi raster Esporta dati di formazione per l'apprendimento profondo per convertire le immagini di origine e gli esempi di formazione in dati di formazione di apprendimento profondo. Le immagini di origine possono essere un image service. L'output dello strumento è la stringa del data store in cui saranno memorizzati i chip dell'immagine di output, le etichette e i file dei metadati. Un output aggiuntivo dello strumento è un file .emd modello che sarà compilato dal data scientist.
  2. Addestrare un modello di apprendimento profondo.
    1. Usare i chip delle immagini generati al passaggio 1 di cui sopra per addestrare un modello usando un framework di addestramento profondo come TensorFlow, CNTK, PyTorch o Keras.
    2. Aggiornare il file .emd con il nome del framework di apprendimento profondo, la configurazione del modello e altre proprietà facoltative. Per informazioni sui parametri obbligatori e opzionali nel file .emd, consultare la seguente sezione File di definizione del modello Esri.
  3. Eseguire gli strumenti di analisi raster di inferenza da Map Viewer, ArcGIS API for Python, ArcGIS REST API o ArcGIS Pro.
    1. Utilizzare gli strumenti di analisi raster Rileva oggetti usando l'apprendimento profondo o Classifica pixel usando l'apprendimento profondo per elaborare le immagini. Se il modello addestrato presentava incorporate delle funzioni raster Python personalizzate con variabili aggiuntive, come la soglia di allungamento o confidenza per affinare la sensibilità, tali variabili appariranno nella finestra di dialogo dello strumento di analisi raster di ArcGIS Pro o Map Viewer per l'input utente. Il tipo di dati, come stringa o numerico, viene specificato nella funzione raster Python. Idealmente, i parametri aggiuntivi di inferenza devono essere limitati a due.

      L'output dello strumento Rileva oggetti usando l'apprendimento profondo è una feature class che mostra gli oggetti rilevati dal modello e lo strumento Classifica pixel usando l'apprendimento profondo emette un raster classificato.

      Nota:

      Il framework del modello di apprendimento profondo deve essere installato sui computer con servizio di analisi raster per eseguire gli strumenti di inferenza in quanto la logica di inferenza viene creata nell'API Python del framework ed è richiesta per il calcolo.

File di definizione del modello di Esri

Il file .emd è un file JSON che descrive il modello di apprendimento profondo addestrato. Contiene i parametri di definizione del modello richiesti per eseguire gli strumenti di inferenza e deve essere modificato dal data scientist che ha addestrato il modello. Nel file esistono parametri obbligatori e opzionali, come descritto nella tabella di seguito.

Parametro del file di definizione del modelloSpiegazione

Framework

Il nome di un framework di apprendimento profondo usato per addestrare il modello.

Sono supportati tre framework di apprendimento profondo:

  • TensorFlow
  • CNTK
  • Keras
  • PyTorch

InferenceFunction

ModelConfiguration

Il nome della configurazione del modello.

La configurazione del modello definisce gli input e gli output del modello, la logica di inferenza e le ipotesi fatte sugli input e gli output del modello. Ci sono flussi di lavoro di apprendimento profondo open source esistenti che definiscono la configurazione standard di input e output e la logica di inferenza. ArcGIS supporta un insieme di configurazioni predefinite:

TensorFlow

CNTK

Keras

PyTorch

Se è stata utilizzata una delle configurazioni predefinite, digitare il nome della configurazione nel file .emd. Se si è addestrato il modello di apprendimento profondo usando una configurazione personalizzata, sarà necessario descrivere gli input e gli output nel file .emd o nel file Python personalizzato in modo completo.

ModelFile

Il percorso di un file del modello di apprendimento profondo addestrato. Molti formati di file del framework del modello si basano sui Buffer di protocollo, quindi il modello di apprendimento profondo addestrato è un file .pb ma sono supportati anche altri formati file.

ModelType

Il tipo di modello. Il tipo può essere uno dei seguenti:

  • ImageClassification: per classificare i pixel
  • ObjectDetection: per rilevare oggetti o feature

InferenceFunction

(Facoltativo)

Il percorso della funzione di inferenza.

Una funzione di inferenza capisce il file di dati del modello addestrato e fornisce la logica di inferenza. Esistono sei funzioni di inferenza supportate negli strumenti di analisi raster di apprendimento profondo di ArcGIS:

  • Rilevare oggetti per TensorFlow
  • Classificare pixel per TensorFlow
  • Rilevare oggetti per CNTK
  • Classificare pixel per CNTK
  • Rilevare oggetti per Keras
  • Rilevare oggetti per PyTorch
Se è stata utilizzata una delle funzioni di inferenza di cui sopra, non è necessario specificarla nel file .emd. Se il modello è addestrato tramite la configurazione di un modello di apprendimento profondo non ancora supportata o se richiede una logica speciale di inferenza, è necessaria una funzione di inferenza personalizzata (un modulo Python) oltre al modello addestrato. In questo caso, impostare InferenceFunction sul percorso del modulo Python.

ImageHeight

(Facoltativo)

Il numero di righe nell'immagine in corso di classificazione o elaborazione.

ImageWidth

(Facoltativo)

Il numero di colonne nell'immagine in corso di classificazione o elaborazione.

ExtractBands

(Facoltativo)

Gli indici delle bande o i nomi delle bande da estrarre dalle immagini di input.

Classi

(Facoltativo)

Le informazioni sulle categorie o sugli oggetti delle classi di output.

Segue un esempio di un file di definizione modello (.emd) che adopera una configurazione standard del modello:

{
    "Framework": "TensorFlow",
    "ModelConfiguration": "ObjectDetectionAPI",
    "ModelFile":"tree_detection.pb",
    "ModelType":"ObjectionDetection",
    "ImageHeight":850,
    "ImageWidth":850,
    "ExtractBands":[0,1,2],
    "Classes" : [
      {
        "Value": 0,
        "Name": "Tree",
        "Color": [0, 255, 0]
      }
    ]
}

Elemento del pacchetto di apprendimento profondo (dlpk)

Gli strumenti di analisi raster di apprendimento profondo richiedono un pacchetto del modello di apprendimento profondo (dlpk) come input. Il pacchetto di un modello di apprendimento profondo è composto dal file JSON di definizione del modello Esri (.emd), il file del modello binario di apprendimento profondo e, facoltativamente, dalla funzione raster Python da usare.

Quando tutti i componenti sono pronti, è possibile comprimere tutti i file in un file .zip e caricare il file .zip sul portale come elemento dlpk. Per ulteriori dettagli, fare riferimento ad Aggiungere file dal computer. È anche possibile modificare l'estensione del file .zip in .dlpk in modo da rilevare automaticamente il tipo di elemento dlpk nel momento in cui si aggiunge l'elemento.