Подготовка умных помощников

Чтобы подготовить умных помощников для полевого приложения Survey123, у вас должна быть модель обнаружения объектов или модель классификации изображений. Вы можете создавать модели, используемые умными помощниками, загружать модели с ArcGIS Living Atlas of the World или получать доступ к моделям через встроенные API. Дополнительные сведения см. в разделе Умные помощники.

Добавление умных атрибутов в опрос

В следующих разделах описывается, как добавить умные атрибуты в опрос.

Добавление модели

Чтобы добавить в опрос модель, выполните следующие шаги:

  1. Создайте опрос в Survey123 Connect.
  2. Добавьте вопрос Изображение.
  3. Скопируйте файлы модели (<model_name>.tflite и <model_name>.txt или <model_name>.emd) в папку media опроса.

    Имена файлов не должны содержать пробелов.

    Для ознакомления с умными помощниками можно использовать модель Common Object Detection в ArcGIS Living Atlas of the World. Вы можете либо скачать эту модель, либо привязать эту модель к опросу.

  4. Добавьте параметр smartAttributes в столбец bind::esri:parameters и укажите имя модели.

    smartAttributes=CommonObjectDetection

  5. Дополнительно после имени модели укажите свойства в столбце bind::esri:parameters, что позволит управлять минимальным уровнем достоверности, предварительным просмотром с камеры, надписями и классами объектов. В качестве разделителя свойств используйте символ амперсанда (&).

    smartAttributes=CommonObjectDetection&minScore=0.6&cameraPreview=true

Когда изображение поймано, обнаруженные на нем объекты записываются в его метаданные EXIF. Вы можете использовать вычисления в этом опросе, чтобы извлечь атрибуты из изображения и использовать их в других вопросах.

В следующей таблице перечислены обязательные и необязательные свойства, которые можно использовать с параметром smartAttributes.

СвойствоЗначение по умолчаниюОписание

<model_name>

Н/Д

Обязательно. Модель обнаружения объектов или классификации изображений. Имена моделей не должны содержать пробелы. Имя должно совпадать с именем файла модели (без расширения), хранящегося в папке media опроса.

Значение: <model_name>

Пример:

smartAttributes=CommonObjectDetection

minScore

0.5

Необязательно. Укажите минимальный уровень достоверности для обнаружения объектов или классификации изображений.

Значения: 0 - 1

Пример:

minScore=0.7

cameraPreview

false

Необязательно. Включите предварительный просмотр в режиме реального времени. Объекты, обнаруженные моделью, идентифицируются ограничивающими рамками в режиме реального времени с помощью камеры.

Значения: true | false

Пример:

cameraPreview=true

label

true

Необязательно. Укажите, будут ли отображаться надписи классов объектов в режиме предварительного просмотра с камеры.

Это действует только в том случае, если cameraPreview=true.

Значения: true | false

Пример:

label=false

класс

Н/Д (будут использоваться все классы в модели)

Необязательно. Классы объектов для обнаружения. Все остальные классы в этой модели будут игнорироваться. Имена классов должны быть идентичны классам в модели. Можно указать несколько классов, разделенных запятыми.

Значение: <class name>

Пример:

class=parking_meter,stop_sign,traffic_light

Извлечение атрибутов из изображения

Чтобы извлечь атрибуты из изображения, выполните следующие действия:

  1. Добавьте в опрос текстовый вопрос или вопрос calculate.

    Если вы используете текстовый вопрос, в форме будет виден объект JSON. Если вы используете вопрос calculate, объект JSON не будет виден в форме, но другие вопросы могут ссылаться на значения.

  2. В столбце calculation введите следующее: string(pulldata("@exif", ${photo}, "ImageDescription"))

    Это выражение выводит описание изображения из метаданных EXIF этого изображения в виде объекта JSON. Убедитесь, что в этом вопросе столбец bind::esri:fieldLength достаточно длинный, чтобы сохранить результат. JSON содержит информацию об объектах, обнаруженных на изображении, в котором classNames представляет собой разделенный запятыми список классов объектов, а classes содержит название, оценку и координаты ограничивающей рамки каждого объекта. См. пример ниже:

    {
        "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. Добавьте в опрос текстовый вопрос под именем results.
  4. В столбце calculation введите следующее: string(pulldata("@json", ${results}, "classNames"))

    Это выражение возвращает значение classNames из объекта JSON.

    Подробнее о функции pulldata("@json") см. Получение значения из JSON.

Отдельные результаты могут быть получены из вопроса Результат и использованы для заполнения Выбрать один, Выбрать несколько или других текстовых вопросов. Примеры см. в образце опроса Умные атрибуты в Survey123 Connect.

Добавление в опрос умной аннотации

Для добавления в опрос умной аннотации выполните следующие шаги:

  1. Создайте опрос в Survey123 Connect.
  2. Добавьте вопрос-изображение с оформлением аннотации.

    Дополнительно, в качестве вопроса-изображения введите method=camera,browse в столбце body::esri:style. По умолчанию оформление аннотации подразумевает предоставление разрешения делать новые фотографии с помощью камеры в полевом приложении. Добавление method=camera,browse обеспечит возможность использования умных аннотаций с изображениями, выбранными из хранилища устройства, в дополнение к фотографиям, сделанным с помощью камеры.

  3. Скопируйте файлы модели (<model_name>.tflite и <model_name>.txt или <model_name>.emd) в папку media опроса.

    Имена файлов не должны содержать пробелов.

    Для ознакомления с умными помощниками можно использовать модель Common Object Detection в ArcGIS Living Atlas of the World. Вы можете либо скачать эту модель, либо привязать эту модель к опросу.

  4. Добавьте параметр smartAnnotation в столбец bind::esri:parameters и укажите имя модели.

    smartAnnotation=CommonObjectDetection

  5. Дополнительно после имени модели укажите свойства в столбце bind::esri:parameters, что позволит управлять минимальным уровнем достоверности, предварительным просмотром с камеры, надписями, классами объектов, ограничивающими рамками и форматированием шрифта. В качестве разделителя свойств используйте символ амперсанда (&).

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

Когда изображение поймано, обнаруженные на нем объекты идентифицируются ограничивающими рамками и надписями панели аннотации. Аннотацию можно изменить, добавить или удалить.

В следующей таблице перечислены обязательные и необязательные свойства, которые можно использовать с параметром smartAnnotation.

СвойствоЗначение по умолчаниюОписание

<model_name>

Н/Д

Обязательно. Модель обнаружения объектов. Имена моделей не должны содержать пробелы. Имя должно совпадать с именем файла модели (без расширения), хранящегося в папке media опроса.

Значение: <model_name>

Примеры:

smartAnnotation=CommonObjectDetection

minScore

0.5

Необязательно. Укажите минимальный уровень достоверности для обнаружения объектов.

Значения: 0 - 1

Примеры:

minScore=0.7

cameraPreview

false

Необязательно. Включите предварительный просмотр в режиме реального времени. Объекты, обнаруженные моделью, идентифицируются ограничивающими рамками в режиме реального времени с помощью камеры.

Значения: true | false

Примеры:

cameraPreview=true

label

true

Необязательно. Укажите, будут ли отображаться надписи классов объектов в режиме предварительного просмотра с камеры и на панелях аннотаций.

Это действует только в том случае, если cameraPreview=true.

Значения: true | false

Примеры:

label=false

класс

Н/Д (будут использоваться все классы в модели)

Необязательно. Классы объектов для обнаружения. Все остальные классы в этой модели будут игнорироваться. Имена классов должны быть идентичны классам в модели. Можно указать несколько классов, разделенных запятыми.

Значение: <class name>

Примеры:

class=truck,car,motorcycle

boundingBoxes

true

Необязательно. Укажите, будут ли для идентификации обнаруженных объектов создаваться полигоны ограничивающих рамок в качестве графических элементов на панели аннотаций.

Значения: true | false

Примеры:

boundingBoxes=false

outlineWidth

2

Необязательно. Укажите ширину ограничивающих рамок. Это действует только в том случае, если boundingBoxes=true.

Значения: <integer>

Примеры:

outlineWidth=3

font

Шрифт полевого приложения Survey123

Необязательно. Шрифт, который будет использоваться для надписей на панели аннотаций

Примечание:

На отдельных устройствах некоторые шрифты недоступны. Просмотрите аннотацию, созданную вашими предпочтительными устройствами, чтобы убедиться, что она отображается так, как положено.

Значение: <font name>

Примеры:

font=verdana

fontSize

20

Необязательно. Укажите размер надписей на панели аннотаций.

Значение: <integer>

Примеры:

fontSize=30

bold

false

Необязательно. Укажите, будет ли применяться форматирование полужирного текста надписей на панели аннотаций.

Значения: true | false

Примеры:

bold=true

italic

false

Необязательно. Укажите, будет ли применяться курсивное начертание к надписям на панели аннотаций.

Значения: true | false

Примеры:

italic=true

Вы можете настроить, как будут отображаться аннотации объектов на панели, создав пользовательскую палитру аннотаций. Вы можете форматировать надписи и устанавливать стиль ограничивающих рамок или символов-маркеров, используемых для идентификации классов объектов. Чтобы применить пользовательский стиль аннотаций к классу объектов, значение в столбце Надпись в шаблоне XLSPalette должно совпадать с именем этого класса в модели. Дополнительные сведения см. в разделе Палитры инструментов рисования и аннотаций.

Примечание:

При использовании пользовательской палитры аннотаций с умными аннотациями игнорируются следующие свойства:

  • label (только для панели аннотаций)
  • boundingBoxes
  • outlineWidth
  • font
  • fontSize
  • bold
  • italic

Добавление умной редактуры в опрос

В вопрос изображения опроса можно добавить редактуру, добавив параметр redaction в столбец bind::esri:parameters. Есть три способа настройки редактуры изображений в опросе:

В следующей таблице перечислены обязательные и необязательные свойства, которые можно использовать с параметром redaction.

СвойствоЗначение по умолчаниюОписание

<model_name>

Н/Д

Обязательно. Модель обнаружения объектов. Имена моделей не должны содержать пробелы. Имя должно совпадать с именем файла модели (без расширения), хранящегося в папке media опроса. Можно использовать @faces, чтобы использовать встроенное обнаружение лиц, или @manual, чтобы активировать редактуру только вручную.

Значения: <model_name> | @faces | @manual

Примеры:

redaction=CommonObjectDetection
redaction=@faces
redaction=@manual

minScore

0.5

Необязательно. Укажите минимальный уровень достоверности для обнаружения объектов. Игнорируется, если именем модели является @faces или @manual.

Значения: 0 - 1

Примеры:

minScore=0.7

cameraPreview

false

Необязательно. Включите предварительный просмотр в режиме реального времени. Объекты, обнаруженные моделью, идентифицируются ограничивающими рамками в режиме реального времени с помощью камеры. Игнорируется, если именем модели является @manual.

Значения: true | false

Примеры:

cameraPreview=true

label

true

Необязательно. Укажите, будут ли отображаться надписи классов объектов в режиме предварительного просмотра с камеры.

Это действует только в том случае, если cameraPreview=true.

Значения: true | false

Примеры:

label=false

класс

Н/Д (будут использоваться все классы в модели)

Необязательно. Классы объектов для обнаружения. Все остальные классы в этой модели будут игнорироваться. Имена классов должны быть идентичны классам в модели. Игнорируется, если именем модели является @faces или @manual.

Значение: <class_name> с разделителями-запятыми (,)

Примеры:

class=person,cat,dog

engine

Н/Д

Необязательно. Используйте встроенный Apple Vision API для обнаружения лиц. Дополнительную информацию см. в разделе Машинное обучение. Это свойство действует только в том случае, если именем модели является @faces, и поддерживается только на устройствах iOS.

Значение: vision

Примеры:

engine=vision

эффект

пикселизация

Необязательно. Укажите эффект редактуры, который будет применен к измененным областям.

Значения: pixelate | blur | blockout | symbol

Примеры:

effect=blur

символ

Н/Д

Необязательно. Символ, который будет применен к редактируемым областям.

Это действует только в том случае, если effect=symbol.

Значения: <Emoji> | <SVG file name>

Примеры:

symbol=🚫
symbol=blockout.svg

fillColor

#000000

Необязательно. Цвет заливки полей blockout. Это действует только в том случае, если effect=blockout.

Значения: <HTML color name> | <hex color code>

Примеры:

fillColor=Blue

масштаб

1

Необязательно. Задайте размер ограничивающих рамок максимум в два раза больше размера по умолчанию. Игнорируется, если именем модели является @manual.

Значения: 1 | 2

Примеры:

scale=2

Добавление обезличивания путем включения модели

Чтобы добавить в опрос редактуру путем включения модели обнаружения объектов, выполните следующие действия:

  1. Создайте опрос в Survey123 Connect.
  2. Добавьте вопрос Изображение.
  3. Скопируйте файлы модели (<model_name>.tflite и <model_name>.txt или <model_name>.emd) в папку media опроса.

    Имена файлов не должны содержать пробелов.

    Для ознакомления с умными помощниками можно использовать модель Common Object Detection в ArcGIS Living Atlas of the World. Вы можете либо скачать эту модель, либо привязать эту модель к опросу.

  4. Добавьте параметр redaction в столбец bind::esri:parameters и укажите имя модели.

    redaction=CommonObjectDetection

  5. Дополнительно после имени модели укажите свойства в столбце bind::esri:parameters, что позволит контролировать минимальной уровень достоверности, предварительный просмотр с камеры, надписи, классы объектов, механизм и эффекты редактуры. В качестве разделителя свойств используйте символ амперсанда (&).

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

Добавление встроенной функции редактуры

Чтобы добавить в опрос встроенную функцию редактуры без включения модели обнаружения объектов, выполните следующие действия:

  1. Создайте опрос в Survey123 Connect.
  2. Добавьте вопрос Изображение.
  3. Добавьте параметр redaction в столбец bind::esri:parameters и задайте для этой модели имя @faces.

    redaction=@faces

    Свойство @faces использует встроенную технологию, которая скрывает лица на изображениях. Чтобы технология скрытия лиц работала, в полевом приложении должны быть включены расширенные функции камеры. Дополнительную информацию см. в разделе Машинное обучение.

  4. Дополнительно после имени модели укажите свойства в столбце bind::esri:parameters, что позволит контролировать минимальной уровень достоверности, предварительный просмотр с камеры, надписи, классы объектов, механизм и эффекты редактуры. В качестве разделителя свойств используйте символ амперсанда (&).

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

Добавление функции редактуры в ручном режиме

Чтобы добавить в опрос редактуру вручную, выполните следующие действия:

  1. Создайте опрос в Survey123 Connect.
  2. Добавьте вопрос Изображение.
  3. Добавьте параметр redaction в столбец bind::esri:parameters и задайте для этой модели имя @manual.

    redaction=@manual

  4. Дополнительно после имени модели укажите свойства в столбце bind::esri:parameters, что позволит управлять эффектами редактуры. В качестве разделителя свойств используйте символ амперсанда (&).

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