ユースケース開発Workshop可視化ウィジェット画像アノテーション

注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。

Image Annotation

Image Annotation(画像注釈) ウィジェットは、注目する領域を長方形で囲んで画像に注釈を付けるために使用します。

以下のスクリーンショットは、設定済みの画像注釈ウィジェットで注釈を作成している例です。

パターンの途切れを示す画像注釈の例。

注釈はウィジェット内には保存されません。長方形を保存するには、オントロジー内のオブジェクトとして保存します。保存された注釈は、ほかのオブジェクトと同様に動作します。検索、絞り込み、ほかのオブジェクトへのリンク、権限による保護、アプリケーション間での再利用ができます。

このウィジェットには、2つの異なる役割があります。

  • 既存の注釈の表示。 ウィジェットは注釈オブジェクトのオブジェクトセットを読み取り、保存された境界ボックスを画像上に重ねて表示します。
  • 新しい注釈の取得。 ユーザーが長方形を描くと、ウィジェットはその座標を Workshop 変数に書き込みます。その後、アクションを通じて、その変数をオントロジーに保存します。

オントロジーへのライトバックは、常にアクションによって実行されます。シナリオは必要ありません。シナリオが必要なのは、編集内容を確定せず、オントロジーの分離されたフォークでステージングする「What-if」分析の場合のみです。注釈を暫定的なものとし、ライブオントロジーに書き込む前にレビューしたい場合にのみ、シナリオを使用します。ライトバックはアクションに依存するため、ウィジェットを設定する前に、次の2つを準備する必要があります。

  1. 境界ボックスを保存するための、オントロジー内の注釈オブジェクトタイプ。
  2. その注釈オブジェクトを作成する(必要に応じて削除または変更も行う)アクション。

ユーザーが長方形を描いてから、リンクされた注釈オブジェクトが保存されるまでの一連の流れは、次のとおりです。

  1. ユーザーが画像上に長方形を描きます。
  2. ウィジェットが長方形の座標を現在の境界ボックスの選択変数に書き込みます。
  3. アノテーション作成時の設定によって、アクションを実行する Workshop イベントがトリガーされるか、ユーザーが「保存」ボタンを選択してアクションを実行します。
  4. アクションが注釈オブジェクトを作成し、境界ボックスのプロパティを設定して、画像を所有する対象オブジェクトに新しいオブジェクトをリンクします。
  5. ウィジェットが注釈オブジェクトセットを再読み込みし、保存されたボックスを画像上に描画します。

注釈のライトバックを設定する

以下の手順では、最も基本的な注釈ワークフローを説明します。ユーザーが画像上にボックスを描き、画像が属するオブジェクトにリンクされたオブジェクトとして保存するワークフローです。この例では、Inspection Photo オブジェクト(画像を保持)と Image Annotation オブジェクト(ボックスを保持)を使用しますが、ご自身のオントロジーのオブジェクトタイプとプロパティ名に置き換えてください。

この例は説明用です。オントロジーはお使いのデータに合わせてカスタマイズされているため、以下で参照するオブジェクトタイプやアクションタイプが、お使いのエンロールメントに存在しない場合があります。データモデルに合った同等のものを作成してください。

  1. 注釈オブジェクトタイプをモデル化する
  2. アクションを作成する
  3. ウィジェットの入力を設定する
  4. 新しい注釈をオントロジーに保存する

ステップ1:注釈オブジェクトタイプをモデル化する

Ontology Managerで、注釈を保存するためのオブジェクトタイプを作成します。少なくとも、次のものが必要です。

  • 主キー:Annotation ID 文字列などの値。
  • 境界ボックスのプロパティ: ボックスの座標を "x1, y1, x2, y2" として保存する文字列プロパティ。ピクセル座標を使用し、(x1, y1) が左上の角、(x2, y2) が右下の角を表します。これが、ウィジェットで読み書きする値です。
  • 色のプロパティ(任意):#FF0000 などの16進数のカラーコードを保持する文字列プロパティ。ボックスの描画に使用します。
  • リンク: 画像を所有するオブジェクトへのリンク。たとえば、Image Annotation から Inspection Photo への多対一のリンクです。このリンクによって注釈が正しい画像に関連付けられ、関連するボックスのみが表示されます。

ステップ2:アクションを作成する

新しい Image Annotation オブジェクトを作成するアクションを作成します。そのパラメーターには、次のものを含めます。

  • ウィジェットが提供する境界ボックスの文字列。
  • 対象オブジェクト(Inspection Photo)への参照。これにより、アクションでステップ1で作成したリンクを設定できます。
  • (任意)色の文字列。

「削除」コントロール用に注釈を削除するアクションを作成することもできます。また、保存後にユーザーがボックスを調整できるようにしたい場合は、既存の注釈を変更するアクションも作成できます。アクションタイプの定義に関する詳しいウォークスルーは、Workshop でアクションを使用するを参照してください。

ステップ3:ウィジェットの入力を設定する

Image Annotation ウィジェットをモジュールに追加し、設定オプションで説明する項目を設定します。

  • 画像ソースを、現在の画像の Media Reference またはメディア URL に設定します。
  • アノテーションオブジェクトを、現在の Inspection Photo に絞り込んだ Image Annotation オブジェクトのオブジェクトセットに設定します。現在の対象オブジェクトで絞り込むことで、ウィジェットは表示中の画像に属するボックスのみを描画します。
  • 境界ボックスのプロパティを、ステップ1で作成した文字列プロパティに設定します。
  • (任意)色のプロパティを、16進数のカラーコードのプロパティに設定します。
  • 現在の境界ボックスの選択を文字列変数に設定します。ウィジェットは、ユーザーが現在描いているボックスの座標をこの変数に書き込みます。これが、作成アクションに渡す値です。
  • アクティブな注釈オブジェクトをオブジェクトセット変数に設定します。ウィジェットは、ユーザーが選択した既存の注釈オブジェクトをこの変数に格納します。

ステップ4:新しい注釈をオントロジーに保存する

ユーザーが長方形を描き終えると、座標が現在の境界ボックスの選択変数に保持されます。座標を保存するには、ステップ2の作成アクションをトリガーします。

  • アノテーション作成時の設定を使用して、長方形が描かれた時点で Workshop のイベントをトリガーするか、ボタングループウィジェットを使用して、ユーザーが保存前に確認できる「保存」ボタンを追加します。
  • アクションのパラメーターのデフォルト値で、境界ボックスパラメーターを現在の境界ボックスの選択変数に設定し、対象オブジェクトパラメーターを現在表示されているオブジェクト(たとえば、アクティブな Inspection Photo)に設定します。対象オブジェクトを設定することで、新しい注釈が正しい画像にリンクされます。
  • (任意)色のパラメーターを変数または固定の16進数コードに設定します。

アクションの実行後、新しい Image Annotation オブジェクトがオントロジーに書き込まれ、対象オブジェクトにリンクされます。ウィジェットのアノテーションオブジェクト入力はオブジェクトセットであるため、新しいオブジェクトを含むように再読み込みされ、保存されたボックスが画像上に描画されます。

設定オプション

以下は、新しく追加した Image Annotation ウィジェットの初期状態と、その初期設定パネルのスクリーンショットです。

Image Annotation ウィジェットの初期設定。

  • 入力データ
    • 画像ソース: 画像は、メディア URL または Media Reference のいずれかから表示できます。現在、このウィジェットは次の画像ファイル形式に対応しています。
      • メディア URL: 有効なメディア URL を含む文字列変数を選択して、メディアのプレビューを表示します。データセットのメディア URL を参照する場合、URL は次のいずれかの形式で、ファイル形式は .png、.jpg、.jpeg、.bmp、または .webp である必要があります。
        • https://{my-foundry-url}/foundry-data-proxy/api/web/dataproxy/datasets/{dataset rid}/transactions/{transaction rid}/{filename}
        • https://{my-foundry-url}/foundry-data-proxy/api/web/dataproxy/datasets/{dataset rid}/views/{branch name}/{filename}。
        • 外部のメディア URL を参照する場合は、エンロールメントのコンテンツセキュリティポリシー設定でアクセスを設定します。
      • Media Reference: 単一のオブジェクトを含むオブジェクトセットを定義し、Media Reference 型のプロパティを選択して、そのオブジェクトのメディアのプレビューを表示します。
    • 現在の境界ボックスの選択: アクティブな境界ボックスの選択座標を追跡する文字列変数です。座標は「x1, y1, x2, y2」として保存され、(x1, y1) はボックスの左上隅のピクセル座標、(x2, y2) はボックスの右下隅のピクセル座標です。ユーザーが描画したボックスを保存するには、この変数を作成用のアクションに渡します。
    • アクティブな注釈オブジェクト: 現在選択されている注釈を表すオブジェクトです。
  • 注釈
    • アノテーションオブジェクト: 画像に重ねて表示する注釈を表すオブジェクトセットです。関連する注釈のみが表示されるように、このオブジェクトセットを現在の画像の対象オブジェクトに絞り込みます。現在、画像1枚あたり最大1000件の注釈に対応しています。
    • 境界ボックスのプロパティ: 点のベクトルを表す、注釈オブジェクトセットの文字列プロパティです。
    • 色のプロパティ: 描画する色を16進数のカラーコードとして表す、注釈オブジェクトセットの文字列プロパティです。この項目は任意です。
    • アノテーション作成時: モジュール作成者が、ユーザーによる注釈の作成時にトリガーされる Workshop イベントを設定できるようにします。これを使用して、描画したボックスをオントロジーに保存するアクションをトリガーします。