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, etichettati usando lo strumento Etichetta oggetti per Deep Learning e convertiti in un formato utilizzabile dal framework di apprendimento profondo. Questi esempi di formazione vengono usati per addestrare il modello usando lo strumento di analisi raster Addestrare un modello di apprendimento profondo o ArcGIS API for Python. Il modello addestrato, insieme al file di definizione del modello (e facoltativamente a un file script della funzione raster Python), viene inserito in un pacchetto 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, consentendo 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 lo strumento Etichetta oggetti per Deep Learning 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

Addestrare l'apprendimento profondo usando lo strumento di analisi raster Addestrare un modello di apprendimento profondo. È anche possibile usare ArcGIS REST API per addestrare il modello con un framework di apprendimento profondo. Il pacchetto di apprendimento profondo (*.dlpk) di output, composto dal file di definizione del modello e dal modello di apprendimento profondo addestrato o dallo script Python, viene condiviso con il portale come elemento .dlpk.

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 o lo script Python all'ambiente di analisi raster di ArcGIS Image Server.

Con l'elemento .dlpk nel portale, eseguire lo strumento Rileva oggetti usando l'apprendimento profondo o lo strumento Classifica pixel usando l'apprendimento profondo o lo strumento Classifica oggetti usando l'apprendimento profondo per generare un output.

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 e il rilevamento degli oggetti.
  • Usare un modello di apprendimento profondo per classificare i pixel delle immagini, oppure per rilevare o classificare oggetti come aeroplani, alberi, veicoli, corpi idrici, edifici e piattaforme di perforazione di pozzi petroliferi.
  • Integrare i framework dei modelli di apprendimento profondo esterni, inclusi PyTorch, Keras e TensorFlow.
  • Elaborare una raccolta di raster durante l'inferenza del modello 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 le potenti GPU su ciascun nodo di server se disponibili.
  • È possibile usare più GPU per nodo di server per eseguire un processo di inferenza di apprendimento profondo con le configurazioni di modelli predefinite in ArcGIS, inclusi ObjectDetectionAPI e DeepLab TensorFlow, Keras MaskRCNN e PyTorch fastai Single Shot Detector.
  • Se il raster di input presenta la trasformazione adeguata dello spazio mappa a spazio immagine, i chip delle immagini di formazione possono essere esportati in uno spazio immagine in Esporta dati di formazione per l'apprendimento profondo.

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 può essere addestrato in ArcGIS usando lo strumento di analisi raster Addestrare un modello di apprendimento profondo o arcgis.learn di ArcGIS API for Python. In alternativa, il modello di apprendimento profondo può essere addestrato al di fuori di ArcGIS usando un'API di apprendimento profondo di terze parti. Una volta addestrato il modello, l'elemento .dlpk viene aggiunto al portale di ArcGIS Enterprise ed è pronto per attività di inferenza di modelli. Eseguire gli strumenti di analisi raster per rilevare e classificare oggetti o classificare pixel da Map Viewer classico, ArcGIS API for Python, ArcGIS REST API o ArcGIS Pro. Il flusso di lavoro di apprendimento profondo può essere completato tutto da un solo addetto alle analisi che abbia esperienza con i modelli di apprendimento profondo e con la classificazione di immagini ArcGIS.

È fornita anche un'applicazione di configurazione di apprendimento profondo a parte, che installerà le API del framework di apprendimento profondo corrette (TensorFlow, Keras, PyTorch e tutte le altre librerie Python richieste) nell'ambiente arcgispro-py3 predefinito di ArcGIS Image Server. È il prerequisito per l'esecuzione di attività di apprendimento profondo su ArcGIS Image Server.

Consultare la documentazione di guida per configurare e installare ArcGIS Enterprise per l'analisi raster. Consultare i passaggi aggiuntivi per configurare il server di Raster Analysis per utilizzare più GPU per nodo di server.

  1. Creare ed esportare esempi di formazione.
    1. Usare lo strumento Etichetta oggetti per Deep Learning 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 lo strumento di analisi raster Addestrare un modello di apprendimento profondo. In alternativa, gli utenti possono addestrare i modelli di apprendimento profondo usando arcgis.learn di ArcGIS API for Python o le API del framework di apprendimento profondo di terze parti.
    2. Se il modello di apprendimento profondo viene addestrato usando lo strumento di analisi raster Addestrare un modello di apprendimento profondo, l'output sarà un elemento del pacchetto del modello di apprendimento profondo pubblicato sul portale. Il pacchetto del modello di apprendimento profondo (.dlpk) può essere consumato direttamente nel passaggio successivo.
    3. Se un'API del framework di apprendimento profondo di terze parti viene usato per addestrare il modello, gli utenti devono aggiornare il file .emd con il nome del framework di apprendimento profondo, la configurazione del modello, altre proprietà facoltative e, in via opzionale, una funzione raster Python personalizzata per l'inferenza dei modelli. 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 classico, ArcGIS API for Python, ArcGIS REST API o ArcGIS Pro.
    1. Usare lo strumento di analisi di raster Rileva oggetti usando l'apprendimento profondo, Classifica pixel usando l'apprendimento profondo o Classifica oggetti usando l'apprendimento profondo per elaborare le immagini. Se il modello addestrato incorporava 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 classico per l'input utente. Il tipo di dati, stringa o numerico, viene specificato nella funzione raster Python.
      Nota:

      Il framework del modello di apprendimento profondo deve essere installato sui computer con il servizio di Raster Analysis 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 i seguenti framework di apprendimento profondo:

  • TensorFlow
  • Keras
  • PyTorch

PythonInferenceFunctionPython

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

  • ObjectDetectionAPI
  • DeepLab

Keras

  • MaskRCNN
  • KerasClassifier

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
  • ObjectClassification: per classificare 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 Keras
  • Rilevare oggetti per PyTorch
  • Classificare 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), dal file del modello binario di apprendimento profondo e, facoltativamente, dalla funzione raster Python da usare.

È possibile condividere un pacchetto di apprendimento profondo direttamente da ArcGIS Pro. In alternativa, se si dispone di tutte le componenti pronte, è possibile comprimere i file in un file .zip e caricare il file .zip sul portale come un elemento .dlpk. Per maggiori dettagli, fare riferimento a Aggiungere file come elementi. È 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.

Nota:

Tutti i file inclusi nel pacchetto del modello di apprendimento profondo devono essere compressi al livello della cartella radice.