Przygotowanie inteligentnych asystentów

Do przygotowania inteligentnych asystentów dla aplikacji terenowej Survey123 należy mieć model klasyfikacji obrazów lub wykrywania obiektów. Modele można utworzyć za pomocą inteligentnych asystentów, pobrać z atlasu ArcGIS Living Atlas of the World lub uzyskać do nich dostęp za pomocą wbudowanych interfejsów API. Więcej informacji na ten temat zawiera sekcja Inteligentni asystenci.

Dodanie do ankiety inteligentnych atrybutów

W dalszych sekcjach przedstawiono sposób dodawania do ankiety inteligentnych atrybutów.

Dodawanie modelu

Aby dodać model do ankiety, wykonaj następujące czynności:

  1. Utwórz ankietę w aplikacji Survey123 Connect.
  2. Dodaj pytanie typu image (obraz).
  3. Skopiuj pliki modeli (<model_name>.tflite i <model_name>.txt lub <model_name>.emd) do folderu multimediów ankiety.

    Nazwy plików nie mogą zawierać spacji.

    Do zapoznania się z inteligentnymi asystentami można użyć modelu wykrywania najczęstszych obiektów (Common Object Detection) w atlasie ArcGIS Living Atlas of the World. Model można pobrać do ankiety lub go połączyć z ankietą.

  4. Dodaj parametr smartAttributes w kolumnie bind::esri:parameters i podaj nazwę modelu.

    smartAttributes=CommonObjectDetection

  5. Opcjonalnie dołącz właściwości po nazwie modelu w kolumnie bind::esri:parameters, aby sterować minimalnym wskaźnikiem ufności, podglądem kamery, etykietami i klasami obiektów. Aby rozdzielić właściwości, użyj znaku ampersand (&).

    smartAttributes=CommonObjectDetection&minScore=0.6&cameraPreview=true

Gdy obraz jest rejestrowany, obiekty wykryte na obrazie są zapisywane w metadanych EXIF. Za pomocą obliczeń w ankiecie można wyodrębnić atrybuty z obrazu i użyć ich w innych pytaniach.

Poniższa tabela zawiera listę wymaganych i opcjonalnych właściwości, których można użyć z parametrem smartAttributes.

WłaściwośćWartość domyślnaOpis

<model_name>

Brak

Wymagane. Model klasyfikacji obrazów lub wykrywania obiektów. Nazwy modeli nie mogą zawierać spacji. Nazwa musi być zgodna z nazwą pliku modelu (bez rozszerzenia nazwy pliku) zapisanego w folderze multimediów ankiety.

Wartość: <model_name>

Przykład:

smartAttributes=CommonObjectDetection

minScore

0,5

Opcjonalne. Podaj minimalny poziom ufności wykrywania obiektów lub klasyfikacji obrazów.

Wartości: 0 - 1

Przykład:

minScore=0.7

cameraPreview

fałsz

Opcjonalne. Włącz podgląd w czasie rzeczywistym. Obiekty wykryte przez model są wskazane przez ramki ograniczające w widoku kamery na żywo.

Wartości: true | false

Przykład:

cameraPreview=true

label

prawda

Opcjonalne. Podaj, czy w podglądzie kamery są wyświetlane etykiety klasy obiektów.

Ta właściwość jest poprawna tylko wówczas, gdy cameraPreview=true.

Wartości: true | false

Przykład:

label=false

klasa

Brak (zostaną użyte wszystkie klasy w modelu)

Opcjonalne. Klasy obiektów do wykrycia. Wszystkie pozostałe klasy w modelu zostaną zignorowane. Nazwy klas muszą być identyczne z klasami w modelu. Można podać wiele klas, rozdzielając je przecinkami.

Wartość: <class name>

Przykład:

class=parking_meter,stop_sign,traffic_light

Wyodrębnianie atrybutów z obrazu

Aby wyodrębnić atrybuty z obrazu, wykonaj następujące czynności:

  1. Dodaj do ankiety tekst lub pytanie typu calculate (obliczenie).

    Jeśli używasz pytania typu text (tekst), obiekt JSON będzie widoczny w formularzu. Jeśli używasz pytania typu calculate (obliczenie), obiekt JSON nie będzie widoczny w formularzu, ale wartości mogą być przywoływane w innych pytaniach.

  2. W kolumnie calculation wprowadź: string(pulldata("@exif", ${photo}, "ImageDescription"))

    To wyrażenie pobiera z metadanych EXIF obrazu opis obrazu w postaci obiektu JSON. Upewnij się, że kolumna bind::esri:fieldLength pytania ma długość wystarczającą do zapisania wyniku. Obiekt JSON zawiera informacje o obiektach wykrytych na obrazie. classNames to rozdzielona przecinkami lista klas obiektów, a classes zawiera nazwę, wynik i współrzędne ramki ograniczającej każdego obiektu. Zapoznaj się z następującym przykładem:

    {
        "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. Dodaj pytanie typu text (tekst) do ankiety o nazwie results.
  4. W kolumnie calculation wprowadź: string(pulldata("@json", ${results}, "classNames"))

    To wyrażenie pobiera wartość classNames z obiektu JSON.

    Więcej informacji na temat funkcji pulldata("@json") zawiera sekcja Pobieranie wartości z formatu JSON.

Poszczególne wyniki można pobrać z pytania typu result (wynik) i użyć ich do wypełnienia innych pytań typu text (tekst), z wyborem jednej lub wielu odpowiedzi. Przykłady zawiera przykładowa ankieta Inteligentne atrybuty w aplikacji Survey123 Connect.

Dodawanie do ankiety inteligentnej notatki

Aby dodać do ankiety inteligentną notatkę, wykonaj następujące czynności:

  1. Utwórz ankietę w aplikacji Survey123 Connect.
  2. Dodaj pytanie typu image (obraz) z wyglądem annotate (notatka).

    Opcjonalnie wpisz method=camera,browse w kolumnie body::esri:style pytania typu image (obraz). Domyślnym zachowaniem wyglądu annotate (notatka) jest zezwolenie na robienie nowych zdjęć za pomocą aparatu w aplikacji terenowej. Dodanie wpisu method=camera,browse zapewnia użycie inteligentnej notatki z obrazami wybranymi z pamięci urządzenia oprócz zdjęć zrobionych aparatem.

  3. Skopiuj pliki modeli (<model_name>.tflite i <model_name>.txt lub <model_name>.emd) do folderu multimediów ankiety.

    Nazwy plików nie mogą zawierać spacji.

    Do zapoznania się z inteligentnymi asystentami można użyć modelu wykrywania najczęstszych obiektów (Common Object Detection) w atlasie ArcGIS Living Atlas of the World. Model można pobrać do ankiety lub go połączyć z ankietą.

  4. Dodaj parametr smartAnnotation do kolumny bind::esri:parameters i podaj nazwę modelu.

    smartAnnotation=CommonObjectDetection

  5. Opcjonalnie dołącz właściwości po nazwie modelu w kolumnie bind::esri:parameters, aby sterować minimalnym wskaźnikiem ufności, podglądem kamery, etykietami, klasami obiektów, ramkami ograniczającymi i formatowaniem czcionek. Aby rozdzielić właściwości, użyj znaku ampersand (&).

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

Gdy obraz jest rejestrowany, obiekty wykryte na obrazie są wskazywane ramkami ograniczającymi i etykietami na płótnie notatek. Notatki można dodawać, modyfikować i usuwać.

Poniższa tabela zawiera listę wymaganych i opcjonalnych właściwości, których można użyć z parametrem smartAnnotation.

WłaściwośćWartość domyślnaOpis

<model_name>

Brak

Wymagane. Model wykrywania obiektów. Nazwy modeli nie mogą zawierać spacji. Nazwa musi być zgodna z nazwą pliku modelu (bez rozszerzenia nazwy pliku) zapisanego w folderze multimediów ankiety.

Wartość: <model_name>

Przykłady:

smartAnnotation=CommonObjectDetection

minScore

0,5

Opcjonalne. Podaj minimalny poziom ufności dla wykrywania obiektów.

Wartości: 0 - 1

Przykłady:

minScore=0.7

cameraPreview

fałsz

Opcjonalne. Włącz podgląd w czasie rzeczywistym. Obiekty wykryte przez model są wskazane przez ramki ograniczające w widoku kamery na żywo.

Wartości: true | false

Przykłady:

cameraPreview=true

label

prawda

Opcjonalne. Podaj, czy w podglądzie kamery i na płótnach notatek są wyświetlane etykiety klasy obiektów.

Ta właściwość jest poprawna tylko wówczas, gdy cameraPreview=true.

Wartości: true | false

Przykłady:

label=false

klasa

Brak (zostaną użyte wszystkie klasy w modelu)

Opcjonalne. Klasy obiektów do wykrycia. Wszystkie pozostałe klasy w modelu zostaną zignorowane. Nazwy klas muszą być identyczne z klasami w modelu. Można podać wiele klas, rozdzielając je przecinkami.

Wartość: <class name>

Przykłady:

class=truck,car,motorcycle

boundingBoxes

prawda

Opcjonalne. Podaj, czy są tworzone poligony ramek ograniczających jako elementy graficzne na płótnach notatek w celu identyfikacji wykrytych obiektów.

Wartości: true | false

Przykłady:

boundingBoxes=false

outlineWidth

2

Opcjonalne. Podaj szerokość ramek ograniczających. Ta właściwość jest poprawna tylko wówczas, gdy boundingBoxes=true.

Wartości: <integer>

Przykłady:

outlineWidth=3

font

Czcionka aplikacji terenowej Survey123

Opcjonalne. Czcionka, która będzie używana w etykietach na płótnach notatek.

Notatka:

Nie wszystkie czcionki są dostępne na każdym urządzeniu. Aby upewnić się, że notatka ma właściwy wygląd, należy przejrzeć notatki utworzone przez preferowane urządzenia.

Wartość: <font name>

Przykłady:

font=verdana

fontSize

20

Opcjonalne. Podaj rozmiar etykiet na płótnach notatek.

Wartość: <integer>

Przykłady:

fontSize=30

pogrubienie

fałsz

Opcjonalne. Podaj, czy etykiety na płótnach notatek będą formatowane pogrubieniem.

Wartości: true | false

Przykłady:

bold=true

kursywa

fałsz

Opcjonalne. Podaj, czy etykiety na płótnach notatek będą formatowane kursywą.

Wartości: true | false

Przykłady:

italic=true

Sposób tworzenia notatek obiektów na płótnie można dostosować, tworząc niestandardową paletę notatek. Etykiety można formatować i można definiować styl ramek ograniczających lub symboli znaczników służących do identyfikowania poszczególnych klas obiektów. Aby zastosować niestandardowy styl notatki względem klasy obiektów, wartość w kolumnie label w szablonie XLSPalette musi być zgodna z nazwą klasy w modelu. Więcej informacji na ten temat zawiera sekcja Palety rysowania i opisów.

Notatka:

Gdy niestandardowa paleta notatek jest używana z inteligentnymi notatkami, ignorowane są następujące właściwości:

  • label (tylko dla płócien notatek)
  • boundingBoxes
  • outlineWidth
  • font
  • fontSize
  • bold
  • italic

Dodawanie do ankiety inteligentnej redakcji

W ankiecie do pytania typu image (obraz) można dodać inteligentną redakcję, dodając parametr redaction w kolumnie bind::esri:parameters. Istnieją trzy sposoby konfigurowania redakcji obrazu w ankiecie:

Poniższa tabela zawiera listę wymaganych i opcjonalnych właściwości, których można użyć z parametrem redaction.

WłaściwośćWartość domyślnaOpis

<model_name>

Brak

Wymagane. Model wykrywania obiektów. Nazwy modeli nie mogą zawierać spacji. Nazwa musi być zgodna z nazwą pliku modelu (bez rozszerzenia nazwy pliku) zapisanego w folderze multimediów ankiety. Alternatywnie można użyć metody @faces w celu wykorzystania wbudowanego wykrywania twarzy lub @manual w celu włączenia jedynie redagowania ręcznego.

Wartości: <model_name> | @faces | @manual

Przykłady:

redaction=CommonObjectDetection
redaction=@faces
redaction=@manual

minScore

0,5

Opcjonalne. Podaj minimalny poziom ufności dla wykrywania obiektów. Ta wartość jest ignorowana w przypadku nazwy modelu @faces lub @manual.

Wartości: 0 - 1

Przykłady:

minScore=0.7

cameraPreview

fałsz

Opcjonalne. Włącz podgląd w czasie rzeczywistym. Obiekty wykryte przez model są wskazane przez ramki ograniczające w widoku kamery na żywo. Ta wartość jest ignorowana w przypadku nazwy modelu @manual.

Wartości: true | false

Przykłady:

cameraPreview=true

label

prawda

Opcjonalne. Podaj, czy w podglądzie kamery są wyświetlane etykiety klasy obiektów.

Ta właściwość jest poprawna tylko wówczas, gdy cameraPreview=true.

Wartości: true | false

Przykłady:

label=false

klasa

Brak (zostaną użyte wszystkie klasy w modelu)

Opcjonalne. Klasy obiektów do wykrycia. Wszystkie pozostałe klasy w modelu zostaną zignorowane. Nazwy klas muszą być identyczne z klasami w modelu. Ta wartość jest ignorowana w przypadku nazwy modelu @faces lub @manual.

Wartość: <class_name>, rozdzielane przecinkami (,)

Przykłady:

class=person,cat,dog

engine

Brak

Opcjonalne. Korzystanie z wbudowanego interfejsu API Vision firmy Apple do wykrywania twarzy. Więcej informacji zawiera temat Uczenie maszynowe. Ta właściwość jest prawidłowa tylko wtedy, gdy nazwą modelu jest @faces i jest obsługiwana tylko na urządzeniach iOS.

Wartość: vision

Przykłady:

engine=vision

skutek

pikselizacja

Opcjonalne. Podaj efekt redagowania, który ma zostać zastosowany względem redagowanych regionów.

Wartości: pixelate | blur | blockout | symbol

Przykłady:

effect=blur

symbol

Brak

Opcjonalne. Symbol, który ma zostać zastosowany względem redagowanych regionów.

Ta właściwość jest poprawna tylko wówczas, gdy effect=symbol.

Wartości: <Emoji> | <SVG file name>

Przykłady:

symbol=🚫
symbol=blockout.svg

fillColor

#000000

Opcjonalne. Kolor wypełnienia ramek blokady. Ta właściwość jest poprawna tylko wówczas, gdy effect=blockout.

Wartości: <HTML color name> | <hex color code>

Przykłady:

fillColor=Blue

skalować

1

Opcjonalne. Podaj rozmiar ramek ograniczających, maksymalnie dwukrotnie większy od domyślnego. Ta wartość jest ignorowana w przypadku nazwy modelu @manual.

Wartości: 1 | 2

Przykłady:

scale=2

Dodanie redakcji z dołączeniem modelu

Aby do ankiety dodać redakcję przez dołączenie modelu wykrywania obiektów, wykonaj następujące czynności:

  1. Utwórz ankietę w aplikacji Survey123 Connect.
  2. Dodaj pytanie typu image (obraz).
  3. Skopiuj pliki modeli (<model_name>.tflite i <model_name>.txt lub <model_name>.emd) do folderu multimediów ankiety.

    Nazwy plików nie mogą zawierać spacji.

    Do zapoznania się z inteligentnymi asystentami można użyć modelu wykrywania najczęstszych obiektów (Common Object Detection) w atlasie ArcGIS Living Atlas of the World. Model można pobrać do ankiety lub go połączyć z ankietą.

  4. Dodaj parametr redaction do kolumny bind::esri:parameters i podaj nazwę modelu.

    redaction=CommonObjectDetection

  5. Opcjonalnie dołącz właściwości po nazwie modelu w kolumnie bind::esri:parameters, aby sterować minimalnym wskaźnikiem ufności, podglądem kamery, etykietami, klasami obiektów, mechanizmem i efektami redagowania. Aby rozdzielić właściwości, użyj znaku ampersand (&).

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

Dodanie wbudowanej redakcji związanej z twarzą

Aby do ankiety dodać wbudowaną redakcję związaną z twarzą bez dołączenia modelu wykrywania obiektów, wykonaj następujące czynności:

  1. Utwórz ankietę w aplikacji Survey123 Connect.
  2. Dodaj pytanie typu image (obraz).
  3. Dodaj parametr redaction do kolumny bind::esri:parameters i podaj nazwę modelu @faces.

    redaction=@faces

    Właściwość @faces używa wbudowanej technologii do redagowania twarzy na obrazach. Aby taka redakcja działała, konieczne jest włączenie w aplikacji terenowej rozszerzonych funkcji kamery. Więcej informacji zawiera temat Uczenie maszynowe.

  4. Opcjonalnie dołącz właściwości po nazwie modelu w kolumnie bind::esri:parameters, aby sterować minimalnym wskaźnikiem ufności, podglądem kamery, etykietami, klasami obiektów, mechanizmem i efektami redagowania. Aby rozdzielić właściwości, użyj znaku ampersand (&).

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

Dodanie redagowania ręcznego

Aby dodać do ankiety redagowanie ręczne, wykonaj następujące czynności:

  1. Utwórz ankietę w aplikacji Survey123 Connect.
  2. Dodaj pytanie typu image (obraz).
  3. Dodaj parametr redaction do kolumny bind::esri:parameters i podaj nazwę modelu @manual.

    redaction=@manual

  4. Opcjonalnie dołącz właściwości po nazwie modelu w kolumnie bind::esri:parameters, aby sterować efektami redagowania. Aby rozdzielić właściwości, użyj znaku ampersand (&).

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