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:
- Utwórz ankietę w aplikacji Survey123 Connect.
- Dodaj pytanie typu image (obraz).
- 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ą.
- Dodaj parametr smartAttributes w kolumnie bind::esri:parameters i podaj nazwę modelu.
smartAttributes=CommonObjectDetection
- 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ślna | Opis |
---|---|---|
<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:
|
minScore | 0,5 | Opcjonalne. Podaj minimalny poziom ufności wykrywania obiektów lub klasyfikacji obrazów. Wartości: 0 - 1 Przykład:
|
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:
|
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:
|
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:
|
Wyodrębnianie atrybutów z obrazu
Aby wyodrębnić atrybuty z obrazu, wykonaj następujące czynności:
- 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.
- 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 } ] }
- Dodaj pytanie typu text (tekst) do ankiety o nazwie results.
- 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:
- Utwórz ankietę w aplikacji Survey123 Connect.
- 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.
- 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ą.
- Dodaj parametr smartAnnotation do kolumny bind::esri:parameters i podaj nazwę modelu.
smartAnnotation=CommonObjectDetection
- 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ślna | Opis |
---|---|---|
<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:
|
minScore | 0,5 | Opcjonalne. Podaj minimalny poziom ufności dla wykrywania obiektów. Wartości: 0 - 1 Przykłady:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
fontSize | 20 | Opcjonalne. Podaj rozmiar etykiet na płótnach notatek. Wartość: <integer> Przykłady:
|
pogrubienie | fałsz | Opcjonalne. Podaj, czy etykiety na płótnach notatek będą formatowane pogrubieniem. Wartości: true | false Przykłady:
|
kursywa | fałsz | Opcjonalne. Podaj, czy etykiety na płótnach notatek będą formatowane kursywą. Wartości: true | false Przykłady:
|
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:
- Dodanie redakcji przez dołączenie modelu do ankiety. Ta metoda jest obsługiwana w systemach Android, iOS i Windows.
- Dodanie wbudowanej redakcji związanej z twarzą. Ta metoda jest obsługiwana w systemach Android i iOS. W celu umożliwienia inteligentnej redakcji może być konieczne włączenie przez użytkowników rozszerzonych funkcji kamery w aplikacji terenowej. Więcej informacji zawiera temat Uczenie maszynowe.
- Jedynie dodanie redagowania ręcznego. Ta metoda pozwala użytkownikom na redagowanie regionów obrazu przez ręczne dodanie ramek ograniczających. Ta metoda jest obsługiwana w systemach Android, iOS i Windows.
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ślna | Opis |
---|---|---|
<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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
skutek | pikselizacja | Opcjonalne. Podaj efekt redagowania, który ma zostać zastosowany względem redagowanych regionów. Wartości: pixelate | blur | blockout | symbol Przykłady:
|
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:
|
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:
|
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:
|
Dodanie redakcji z dołączeniem modelu
Aby do ankiety dodać redakcję przez dołączenie modelu wykrywania obiektów, wykonaj następujące czynności:
- Utwórz ankietę w aplikacji Survey123 Connect.
- Dodaj pytanie typu image (obraz).
- 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ą.
- Dodaj parametr redaction do kolumny bind::esri:parameters i podaj nazwę modelu.
redaction=CommonObjectDetection
- 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:
- Utwórz ankietę w aplikacji Survey123 Connect.
- Dodaj pytanie typu image (obraz).
- 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.
- 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:
- Utwórz ankietę w aplikacji Survey123 Connect.
- Dodaj pytanie typu image (obraz).
- Dodaj parametr redaction do kolumny bind::esri:parameters i podaj nazwę modelu @manual.
redaction=@manual
- 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