准备智能助手

要针对 Survey123 外业应用程序准备智能助手,您必须具有对象检测或图像分类模型。 您可以创建智能助手所用的模型,从 ArcGIS Living Atlas of the World 下载模型或通过内置 API 访问模型。 有关详细信息,请参阅智能助手

将智能属性添加至调查

以下各节概述了如何将智能属性添加至调查。

添加模型

要将模型添加至调查,请完成以下步骤:

  1. Survey123 Connect 中创建调查。
  2. 添加一个图像问题。
  3. 将模型文件(<model_name>.tflite<model_name>.txt<model_name>.emd)复制到调查的媒体文件夹。

    文件名不能包含空格。

    ArcGIS Living Atlas of the World 中的常见对象检测模型可用于熟悉智能助手。 您可以下载模型将模型链接至调查。

  4. bind::esri:parameters 列中添加 smartAttributes 参数并指定模型的名称。

    smartAttributes=CommonObjectDetection

  5. (可选)在 bind::esri:parameters 列中模型名称的后面包含属性,以控制最小置信度得分、照相机预览、标注和对象类别。 使用“与”号 (&) 分隔属性。

    smartAttributes=CommonObjectDetection&minScore=0.6&cameraPreview=true

在采集图像后,在图像中检测到的对象会写入其 EXIF 元数据。 可以使用调查中的计算从图像中提取属性并将其用于其他问题。

下表列出了可与 smartAttributes 参数搭配使用的必需和可选属性:

属性默认值描述

<model_name>

N/A

必填项。 对象检测或图像分类模型。 模型名称不能包含空格。 名称必须与在调查媒体文件夹中存储的模型文件的文件名(不带扩展名)一致。

值:<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

N/A(将使用模型中的所有类别)

可选。 要检测的对象类别。 将忽略模型中的所有其他类别。 类别名称必须与模型中的类别相同。 可以提供多个类别,以逗号分隔。

值:<class name>

示例:

class=parking_meter,stop_sign,traffic_light

从图像中提取属性

要从图像中提取属性,请完成以下步骤:

  1. 在调查中添加文本或计算问题。

    如果您使用文本问题,JSON 对象将在表单上可见。 如果您使用计算问题,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"))

    此表达式用于从 JSON 对象中检索 classNames 值。

    有关 pulldata("@json") 函数的详细信息,请参阅从 JSON 中检索值

可以从结果问题中检索相应的结果,并用于填充单选、多选或其他文本问题。 例如,请参阅 Survey123 Connect 中的“智能属性”示例调查。

将智能注记添加至调查

要将智能注记添加至调查,请完成以下步骤:

  1. Survey123 Connect 中创建调查。
  2. 添加具有注记外观的图像问题。

    (可选)在图像问题的 body::esri:style 列中键入 method=camera,browse。 注记外观的默认行为是允许使用外业应用程序中的照相机拍摄新照片。添加 method=camera,browse 可确保智能注记可与从设备存储中选择的图像以及使用照相机拍摄的照片搭配使用。

  3. 将模型文件(<model_name>.tflite<model_name>.txt<model_name>.emd)复制到调查的媒体文件夹。

    文件名不能包含空格。

    ArcGIS Living Atlas of the World 中的常见对象检测模型可用于熟悉智能助手。 您可以下载模型将模型链接至调查。

  4. bind::esri:parameters 列中添加 smartAnnotation 参数并指定模型的名称。

    smartAnnotation=CommonObjectDetection

  5. (可选)在 bind::esri:parameters 列中模型名称的后面包含属性,以控制最小置信度得分、照相机预览、标注、对象类别、边界框和字体格式。 使用“与”号 (&) 分隔属性。

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

在采集图像后,在图像中检测到的对象将通过边界框和标注在注记画布上识别。 您可以添加、修改和删除注记。

下表列出了可与 smartAnnotation 参数搭配使用的必需和可选属性:

属性默认值描述

<model_name>

N/A

必填项。 对象检测模型。 模型名称不能包含空格。 名称必须与在调查媒体文件夹中存储的模型文件的文件名(不带扩展名)一致。

值:<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

N/A(将使用模型中的所有类别)

可选。 要检测的对象类别。 将忽略模型中的所有其他类别。 类别名称必须与模型中的类别相同。 可以提供多个类别,以逗号分隔。

值:<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 列中的值必须与模型中的类别名称一致。 有关详细信息,请参阅绘制和注记板

注:

将自定义注记选项板与智能注记一起使用时,将忽略以下属性:

  • label(仅限注记画布)
  • boundingBoxes
  • outlineWidth
  • font
  • fontSize
  • bold
  • italic

将智能涂黑应用于调查

可通过将 redaction 参数添加至 bind::esri:parameters 列,向调查中的图像问题添加涂黑。 可通过三种方式配置调查中的图像涂黑:

  • 通过在调查中包含模型添加涂黑。 此方法适用于 AndroidiOSWindows
  • 添加内置面涂黑。 此方法适用于 AndroidiOS。 用户可能需要在外业应用程序中打开增强型照相机功能,才能启用智能涂黑。 有关详细信息,请参阅机器学习
  • 添加手动涂黑。 此方法允许用户手动添加边界框,涂黑图像的各个区域。 此方法适用于 AndroidiOSWindows

下表列出了可与 redaction 参数搭配使用的必需和可选属性。

属性默认值描述

<model_name>

N/A

必填项。 对象检测模型。 模型名称不能包含空格。 名称必须与在调查媒体文件夹中存储的模型文件的文件名(不带扩展名)一致。 或者,使用 @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

N/A(将使用模型中的所有类别)

可选。 要检测的对象类别。 将忽略模型中的所有其他类别。 类别名称必须与模型中的类别相同。 当模型名称为 @faces@manual 时,将忽略此项。

值:<class_name>,以逗号 (,) 分隔

例如:

class=person,cat,dog

engine

N/A

可选。 使用 Apple 内置 Vision API 进行面检测。 有关详细信息,请参阅机器学习。 此属性仅当模型名称为 @faces 时有效,并且仅适用于 iOS 设备。

值:vision

例如:

engine=vision

effect

像素化

可选。 指定要应用于涂黑区域的涂黑效果。

值:pixelate | blur | blockout | symbol

例如:

effect=blur

符号

N/A

可选。 要应用于涂黑区域的符号。

这仅在 effect=symbol 时有效。

值:<Emoji> | <SVG file name>

例如:

symbol=🚫
symbol=blockout.svg

fillColor

#000000

可选。 遮挡框的填充颜色。 这仅在 effect=blockout 时有效。

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

例如:

fillColor=Blue

scale

1

可选。 指定边界框的大小,不超过默认大小的两倍。 当模型名称为 @manual 时,将忽略此项。

值:1 | 2

例如:

scale=2

通过包含模型添加涂黑

要通过包含对象检测模型向调查添加涂黑,请执行以下步骤:

  1. Survey123 Connect 中创建调查。
  2. 添加一个图像问题。
  3. 将模型文件(<model_name>.tflite<model_name>.txt<model_name>.emd)复制到调查的媒体文件夹。

    文件名不能包含空格。

    ArcGIS Living Atlas of the World 中的常见对象检测模型可用于熟悉智能助手。 您可以下载模型将模型链接至调查。

  4. bind::esri:parameters 列中添加 redaction 参数并指定模型的名称。

    redaction=CommonObjectDetection

  5. (可选)在 bind::esri:parameters 列中模型名称的后面包含属性,以控制最小置信度得分、照相机预览标注、对象类别、engine 和涂黑效果。 使用“与”号 (&) 分隔属性。

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

添加内置面涂黑

要向调查添加内置面涂黑,但不包括对象检测模型,请执行以下步骤:

  1. Survey123 Connect 中创建调查。
  2. 添加一个图像问题。
  3. bind::esri:parameters 列中添加 redaction 参数并将模型命名为 @faces

    redaction=@faces

    @faces 属性使用内置技术涂黑图像中的面。 必须在外业应用程序中启用增强型照相机功能,此涂黑才会生效。 有关详细信息,请参阅机器学习

  4. (可选)在 bind::esri:parameters 列中模型名称的后面包含属性,以控制最小置信度得分、照相机预览标注、对象类别、engine 和涂黑效果。 使用“与”号 (&) 分隔属性。

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

添加手动涂黑

要向调查添加手动涂黑,请完成以下步骤:

  1. Survey123 Connect 中创建调查。
  2. 添加一个图像问题。
  3. bind::esri:parameters 列中添加 redaction 参数并将模型命名为 @manual

    redaction=@manual

  4. (可选)在 bind::esri:parameters 列中模型名称的后面包含属性,以控制涂黑效果。 使用“与”号 (&) 分隔属性。

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