スマート アシスタントの準備

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. smartAttributes パラメーターを [bind::esri:parameters] 列に追加し、モデルの名前を指定します。

    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

class

N/A (モデル内のすべてのクラスが使用されます)

オプション。 検出するオブジェクト クラス。 モデル内の他のクラスはすべて無視されます。 クラス名とモデル内のクラスを一致させる必要があります。 複数のクラスはカンマで区切って指定できます。

値: <class name>

例:

class=parking_meter,stop_sign,traffic_light

画像からの属性の抽出

画像から属性を抽出する手順は以下のとおりです。

  1. テキストまたは計算質問を調査に追加します。

    テキスト質問を使用する場合、JSON オブジェクトがフォームに表示されます。 計算質問を使用する場合、JSON オブジェクトはフォームに表示されませんが、他の質問から値を参照できます。

  2. [calculation] 列に「string(pulldata("@exif", ${photo}, "ImageDescription"))」と入力します。

    この式では、JSON オブジェクト形式で画像の EXIF メタデータから画像の説明が取得されます。 質問の [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 からの値の取得」をご参照ください。

それぞれの結果を結果質問から取得し、選択肢を 1 つ選ぶ質問、選択肢を複数選ぶ質問、その他のテキスト質問への反映に使用できます。 たとえば、Survey123 Connect の Smart Attributes サンプル調査をご参照ください。

調査へのスマート アノテーションの追加

調査にスマート アノテーションを追加するには、次の手順に従います。

  1. Survey123 Connect に調査を作成します。
  2. 表示設定が [annotate] の画像質問を追加します。

    必要に応じて、画像質問の [body::esri:style] 列に「method=camera,browse」と入力します。 annotate 表示設定のデフォルトの動作では、フィールド アプリのカメラで新しい写真を撮影できます。「method=camera,browse」を追加することで、デバイス ストレージから選択した画像に加え、カメラで撮影した写真でもスマート アノテーションを使用できるようになります。

  3. モデル ファイル (<model_name>.tflite<model_name>.txt または <model_name>.emd) を調査のメディア フォルダーにコピーします。

    ファイル名に空白文字を含めることはできません。

    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>

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

class

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] 列の値をモデルのクラス名と一致させる必要があります。 詳細については、「draw と annotate のパレット」をご参照ください。

注意:

スマート アノテーションでカスタム アノテーション パレットを使用すると次のプロパティが無視されます。

  • label (アノテーション キャンバスのみ)
  • boundingBoxes
  • outlineWidth
  • font
  • fontSize
  • bold
  • italic

調査へのスマート墨消しの追加

redaction パラメーターを [bind::esri:parameters] 列に追加することで、調査の画像質問に墨消しを追加できます。 次の 3 つの方法で、調査で画像墨消しを構成できます。

  • 調査にモデルを含めることで墨消しを追加する: この方法は 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

class

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

symbol

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

オプション。 デフォルト サイズの最大 2 倍の大きさまでの境界四角形のサイズを指定します。 モデル名が @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. 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