Preparare gli assistenti smart

Per preparare gli assistenti smart per l'app da campo Survey123, è necessario disporre di un modello di riconoscimento oggetti o di classificazione immagini. È possibile creare i modelli utilizzati dagli assistenti smart, scaricare i modelli da ArcGIS Living Atlas of the World o accedervi tramite API integrate. Per maggiori informazioni, consultare Assistenti smart.

Aggiungere attributi smart a un rilevamento

Le seguenti sezioni espongono come aggiungere gli attributi smart a un rilevamento.

Aggiungere un modello

Per aggiungere un modello a un rilevamento, procedere come segue:

  1. Creare un rilevamento in Survey123 Connect.
  2. Aggiungere una domanda di immagine.
  3. Copiare i file del modello (<model_name>.tflite e <model_name>.txt o <model_name>.emd) alla cartella dei media del rilevamento.

    I nomi dei file non possono contenere spazi.

    Il modello Common Object Detection in ArcGIS Living Atlas of the World può essere utilizzato per acquisire familiarità con gli assistenti smart. È possibile scaricare il modello o collegare il modello al rilevamento.

  4. Aggiungere il parametro smartAttributes nella colonna bind::esri:parameters e specificare il nome del modello.

    smartAttributes=CommonObjectDetection

  5. Facoltativamente, includere le proprietà dopo il nome del modello nella colonna bind::esri:parameters per controllare il punteggio minimo di affidabilità, l'anteprima della fotocamera, le etichette e le classi degli oggetti. Utilizzare una e commerciale (&) per separare le proprietà.

    smartAttributes=CommonObjectDetection&minScore=0.6&cameraPreview=true

Quando viene acquisita un'immagine, gli oggetti rilevati nell'immagine vengono scritti nei suoi metadati EXIF. È possibile utilizzare calcoli nel rilevamento per estrarre gli attributi da un'immagine e utilizzarli in altre domande.

La seguente tabella elenca le proprietà richieste e facoltative che possono essere utilizzate con il parametro smartAttributes:

ProprietàValore predefinitoDescrizione

<model_name>

N/D

Obbligatorio. Il modello di riconoscimento oggetti o classificazione immagini. I nomi dei modelli non possono contenere spazi. Il nome deve corrispondere al nome file (senza l'estensione) del file del modello memorizzato nella cartella media del rilevamento.

Valore: <model_name>

Esempio:

smartAttributes=CommonObjectDetection

minScore

0,5

Facoltativo. Specifica il livello di affidabilità minimo per il riconoscimento degli oggetti o la classificazione dell'immagine.

Valori: 0 - 1

Esempio:

minScore=0.7

cameraPreview

falso

Facoltativo. Abilita l'anteprima in tempo reale. Gli oggetti rilevati dal modello vengono identificati con delle caselle di contorno nella vista in tempo reale della fotocamera.

Valori: true | false

Esempio:

cameraPreview=true

Etichetta

true

Facoltativo. Specifica se le etichette della classe di oggetti vengono mostrate nell'anteprima della fotocamera.

Valido solo quando cameraPreview=true.

Valori: true | false

Esempio:

label=false

classe

N/A (tutte le classi nel modello verranno utilizzate)

Facoltativo. Le classi di oggetti da riconoscere. Tutte le altre classi nel modello verranno ignorate. I nomi delle classi devono essere identici alle classi nel modello. Possono essere fornite più classi separate da virgole.

Valore: <class name>

Esempio:

class=parking_meter,stop_sign,traffic_light

Estrarre attributi da un'immagine

Per estrarre gli attributi da un'immagine, procedere come segue:

  1. Aggiungere una domanda di testo o di calcolo al rilevamento.

    Se si utilizza una domanda di testo, l'oggetto JSON sarà visibile nel modulo. Se si utilizza una domanda di calcolo, l'oggetto JSON non sarà visibile nel modulo, ma è possibile fare riferimento ai valori tramite altre domande.

  2. Nella colonna calculation, inserire la seguente espressione: string(pulldata("@exif", ${photo}, "ImageDescription"))

    Questa espressione recupera la descrizione dell'immagine dai suoi metadati EXIF sotto forma di oggetto JSON. Assicurarsi che la colonna bind::esri:fieldLength della domanda sia lunga abbastanza per memorizzare il risultato. Il JSON contiene informazioni sugli oggetti rilevati nell'immagine, in cui classNames è un elenco separato da virgole delle classi di oggetti e classes elenca il nome, il punteggio e le coordinate delle caselle di contorno per ciascun oggetto. Vedere l'esempio seguente:

    {
        "classNames": "person,bottle,keyboard",
        "classes": [
            {
                "name": "person",
                "score": 0.67421875,
                "xmin": 47,
                "ymin": 20,
                "xmax": 1086,
                "ymax": 262
            },
            {
                "name": "bottle",
                "score": 0.7625,
                "xmin": 237,
                "ymin": 469,
                "xmax": 552,
                "ymax": 639
            },
            {
                "name": "keyboard",
                "score": 0.55078125,
                "xmin": 28,
                "ymin": 49,
                "xmax": 1078,
                "ymax": 385
            }
        ]
    }
  3. Aggiungere una domanda di testo al rilevamento denominato results.
  4. Nella colonna calculation, inserire la seguente espressione: string(pulldata("@json", ${results}, "classNames"))

    Questa espressione recupera il valore di classNames dall'oggetto JSON.

    Per ulteriori informazioni sulla funzione pulldata("@json"), consultare Recuperare un valore da JSON.

Possono essere recuperati i singoli risultati dalla domanda risultante per utilizzarli per popolare le domande di selezione singola, selezione multipla o altre domande di testo. Per alcuni esempi, consultare il rilevamento campione Attributi smart in Survey123 Connect.

Aggiungere l'annotazione smart a un rilevamento

Per aggiungere l'annotazione smart al rilevamento, procedere come segue:

  1. Creare un rilevamento in Survey123 Connect.
  2. Aggiungere una domanda di immagine con l'aspetto annotate.

    Facoltativamente, digitare method=camera,browse nella colonna body::esri:style della domanda di immagine. Il comportamento predefinito dell'aspetto di annotazione è consentire alle nuove foto di essere scattate dalla fotocamera nell'app da campo. Aggiungendo method=camera,browse, l'annotazione smart può essere utilizzata con le immagini selezionate dalla memoria del dispositivo oltre che con le foto scattate con la fotocamera.

  3. Copiare i file del modello (<model_name>.tflite e <model_name>.txt o <model_name>.emd) alla cartella dei media del rilevamento.

    I nomi dei file non possono contenere spazi.

    Il modello Common Object Detection in ArcGIS Living Atlas of the World può essere utilizzato per acquisire familiarità con gli assistenti smart. È possibile scaricare il modello o collegare il modello al rilevamento.

  4. Aggiungere il parametro smartAnnotation nella colonna bind::esri:parameters e specificare il nome del modello.

    smartAnnotation=CommonObjectDetection

  5. Facoltativamente, includere le proprietà dopo il nome del modello nella colonna bind::esri:parameters per controllare il punteggio minimo di affidabilità, l'anteprima della fotocamera, le etichette, le classi degli oggetti, le caselle di contorno e la formattazione dei font. Utilizzare una e commerciale (&) per separare le proprietà.

    smartAnnotation=CommonObjectDetection&minScore=0.6&cameraPreview=true&class=car&fontSize=24

Quando viene acquisita un'immagine, gli oggetti rilevati nell'immagine vengono identificati da caselle di contorno ed etichette nell'area di annotazione. È possibile aggiungere, modificare ed eliminare le annotazioni.

La seguente tabella elenca le proprietà richieste e facoltative che possono essere utilizzate con il parametro smartAnnotation:

ProprietàValore predefinitoDescrizione

<model_name>

N/D

Obbligatorio. Il modello di riconoscimento degli oggetti. I nomi dei modelli non possono contenere spazi. Il nome deve corrispondere al nome file (senza l'estensione) del file del modello memorizzato nella cartella media del rilevamento.

Valore: <model_name>

Esempi:

smartAnnotation=CommonObjectDetection

minScore

0,5

Facoltativo. Specifica il livello di affidabilità minimo per il riconoscimento degli oggetti.

Valori: 0 - 1

Esempi:

minScore=0.7

cameraPreview

falso

Facoltativo. Abilita l'anteprima in tempo reale. Gli oggetti rilevati dal modello vengono identificati con delle caselle di contorno nella vista in tempo reale della fotocamera.

Valori: true | false

Esempi:

cameraPreview=true

Etichetta

true

Facoltativo. Specifica se le etichette della classe di oggetti vengono mostrate nell'anteprima della fotocamera e nell'area di annotazione.

Valido solo quando cameraPreview=true.

Valori: true | false

Esempi:

label=false

classe

N/A (tutte le classi nel modello verranno utilizzate)

Facoltativo. Le classi di oggetti da riconoscere. Tutte le altre classi nel modello verranno ignorate. I nomi delle classi devono essere identici alle classi nel modello. Possono essere fornite più classi separate da virgole.

Valore: <class name>

Esempi:

class=truck,car,motorcycle

boundingBoxes

true

Facoltativo. Specifica se i poligoni delle caselle di contorno vengono creati o meno come elementi grafici nell'area di annotazione per identificare gli oggetti riconosciuti.

Valori: true | false

Esempi:

boundingBoxes=false

outlineWidth

2

Facoltativo. Specifica la larghezza delle caselle di contorno. Valido solo quando boundingBoxes=true.

Valori: <integer>

Esempi:

outlineWidth=3

carattere

Font dell'app da campo Survey123

Facoltativo. Il font da utilizzare per le etichette nell'area di annotazione.

Nota:

Non tutti i font sono disponibili su tutti i dispositivi. Analizzare l'annotazione prodotta dai propri dispositivi preferiti per verificare che appaia come desiderato.

Valore: <font name>

Esempi:

font=verdana

fontSize

20

Facoltativo. Specifica la dimensione delle etichette nell'area di annotazione.

Valore: <integer>

Esempi:

fontSize=30

grassetto

falso

Facoltativo. Specifica se viene applicato il grassetto alle etichette nell'area di annotazione.

Valori: true | false

Esempi:

bold=true

corsivo

falso

Facoltativo. Specifica se viene applicato il corsivo alle etichette nell'area di annotazione.

Valori: true | false

Esempi:

italic=true

È possibile personalizzare il modo in cui gli oggetti vengono annotati nell'area creando una palette di annotazione personalizzata. È possibile formattare le etichette e definire lo stile delle caselle di contorno o dei simboli marcatore utilizzati per identificare ogni classe di oggetti. Per applicare uno stile personalizzato di annotazione a una classe di oggetti, il valore nella colonna label nel modello XLSPalette deve corrispondere al nome della classe nel modello. Per maggiori informazioni, vedi Disegnare e annotare palette.

Nota:

Quando si utilizza una palette di annotazione personalizzata con l'annotazione smart, le seguenti proprietà vengono ignorate:

  • label (solo per l'area di annotazione)
  • boundingBoxes
  • outlineWidth
  • font
  • fontSize
  • bold
  • italic

Aggiungere l'oscuramento smart a un rilevamento

È possibile aggiungere l'oscuramento a una domanda di immagine in un rilevamento aggiungendo il parametro redaction alla colonna bind::esri:parameters. Ci sono tre modi di configurare l'oscuramento di un'immagine in un rilevamento:

La seguente tabella elenca le proprietà richieste e facoltative che possono essere utilizzate con il parametro redaction.

ProprietàValore predefinitoDescrizione

<model_name>

N/D

Obbligatorio. Il modello di riconoscimento degli oggetti. I nomi dei modelli non possono contenere spazi. Il nome deve corrispondere al nome file (senza l'estensione) del file del modello memorizzato nella cartella media del rilevamento. In alternativa, utilizzare @faces per usare l'oscuramento integrato dei volti o @manual per abilitare l'oscuramento solo manuale.

Valori: <model_name> | @faces | @manual

Esempi:

redaction=CommonObjectDetection
redaction=@faces
redaction=@manual

minScore

0,5

Facoltativo. Specifica il livello di affidabilità minimo per il riconoscimento degli oggetti. Ignorato quando il nome del modello è @faces o @manual.

Valori: 0 - 1

Esempi:

minScore=0.7

cameraPreview

falso

Facoltativo. Abilita l'anteprima in tempo reale. Gli oggetti rilevati dal modello vengono identificati con delle caselle di contorno nella vista in tempo reale della fotocamera. Ignorato quando il nome del modello è @manual.

Valori: true | false

Esempi:

cameraPreview=true

Etichetta

true

Facoltativo. Specifica se le etichette della classe di oggetti vengono mostrate nell'anteprima della fotocamera.

Valido solo quando cameraPreview=true.

Valori: true | false

Esempi:

label=false

classe

N/A (tutte le classi nel modello verranno utilizzate)

Facoltativo. Le classi di oggetti da riconoscere. Tutte le altre classi nel modello verranno ignorate. I nomi delle classi devono essere identici alle classi nel modello. Ignorato quando il nome del modello è @faces o @manual.

Valore <class_name> separato da una virgola (,)

Esempi:

class=person,cat,dog

engine

N/D

Facoltativo. Utilizza l'API integrata Vision di Apple per il riconoscimento dei volti. Per maggiori informazioni, consultare Apprendimento automatico. Questa proprietà è valida solo quando il nome del modello è @faces ed è supportata solo sui dispositivi iOS.

Valore: vision

Esempi:

engine=vision

effetto

pixelate

Facoltativo. Specifica un effetto di oscuramento da applicare alle regioni oscurate.

Valori: pixelate | blur | blockout | symbol

Esempi:

effect=blur

simbolo

N/D

Facoltativo. Il simbolo da applicare alle regioni oscurate.

Valido solo quando effect=symbol.

Valori: <Emoji> | <SVG file name>

Esempi:

symbol=🚫
symbol=blockout.svg

fillColor

#000000

Facoltativo. Il colore di riempimento delle caselle di blocco. Valido solo quando effect=blockout.

Valori: <HTML color name> | <hex color code>

Esempi:

fillColor=Blue

scala

1

Facoltativo. Specifica la dimensione delle caselle di riempimento fino a un massimo del doppio rispetto alla dimensione predefinita. Ignorato quando il nome del modello è @manual.

Valori: 1 | 2

Esempi:

scale=2

Aggiungere un oscuramento includendo un modello

Per aggiungere un oscuramento a un rilevamento includendo un modello di riconoscimento degli oggetti, procedere come segue:

  1. Creare un rilevamento in Survey123 Connect.
  2. Aggiungere una domanda di immagine.
  3. Copiare i file del modello (<model_name>.tflite e <model_name>.txt o <model_name>.emd) alla cartella dei media del rilevamento.

    I nomi dei file non possono contenere spazi.

    Il modello Common Object Detection in ArcGIS Living Atlas of the World può essere utilizzato per acquisire familiarità con gli assistenti smart. È possibile scaricare il modello o collegare il modello al rilevamento.

  4. Aggiungere il parametro redaction nella colonna bind::esri:parameters e specificare il nome del modello.

    redaction=CommonObjectDetection

  5. Facoltativamente, includere le proprietà dopo il nome del modello nella colonna bind::esri:parameters per controllare il punteggio minimo di affidabilità, l'anteprima della fotocamera, le etichette, le classi degli oggetti, l'engine e gli effetti di oscuramento. Utilizzare una e commerciale (&) per separare le proprietà.

    redaction=CommonObjectDetection&minScore=0.6&cameraPreview=true&effect=blur

Aggiungere l'oscuramento dei volti integrato

Per aggiungere l'oscuramento dei volti integrato a un rilevamento senza includere un modello di riconoscimento degli oggetti, procedere come segue:

  1. Creare un rilevamento in Survey123 Connect.
  2. Aggiungere una domanda di immagine.
  3. Aggiungere il parametro redaction alla colonna bind::esri:parameters e denominare il modello @faces.

    redaction=@faces

    La proprietà @faces utilizza tecnologia integrata per oscurare i volti nelle immagini. Devono essere abilitate le funzioni avanzate della fotocamera nell'app da campo per consentire il funzionamento di questo oscuramento. Per maggiori informazioni, consultare Apprendimento automatico.

  4. Facoltativamente, includere le proprietà dopo il nome del modello nella colonna bind::esri:parameters per controllare il punteggio minimo di affidabilità, l'anteprima della fotocamera, le etichette, le classi degli oggetti, l'engine e gli effetti di oscuramento. Utilizzare una e commerciale (&) per separare le proprietà.

    redaction=@faces&cameraPreview=true&effect=blur

Aggiungere l'oscuramento manuale

Per aggiungere l'oscuramento manuale a un rilevamento, procedere come segue:

  1. Creare un rilevamento in Survey123 Connect.
  2. Aggiungere una domanda di immagine.
  3. Aggiungere il parametro redaction alla colonna bind::esri:parameters e denominare il modello @manual.

    redaction=@manual

  4. Facoltativamente, includere le proprietà dopo il nome del modello nella colonna bind::esri:parameters per controllare gli effetti di oscuramento. Utilizzare una e commerciale (&) per separare le proprietà.

    redaction=@manual&effect=blockout&fillColor=#000000