Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

オートメーション アルゴリズムの作成

イメージ ラベラーを使用すると、さまざまなデータ ソースのグラウンド トゥルースにラベルを付けることができます。オートメーション アルゴリズムを使用して、カスタムのオートメーション アルゴリズムを作成およびインポートすることで、データに自動的にラベルを付けることができます。オートメーション アルゴリズムを作成するカスタム関数を使用することもできます。この関数は、ラベル付けアプリで指定することができ、オートメーション パラメーターを調整できるようにします。詳細については、Create Automation Algorithm Function for Labeling を参照してください。

アルゴリズムの新規作成

vision.labeler.AutomationAlgorithm クラスを使用して、ラベル付けアプリで使用するためのカスタム ラベル オートメーション アルゴリズムを定義できます。このクラスを使用して、アプリでオートメーション アルゴリズムの実行に使用されるインターフェイスを定義できます。

カスタム オートメーション アルゴリズムを定義して使用するには、まずアルゴリズム用のクラスを定義し、それを適切なフォルダーに保存しなければなりません。

オートメーション フォルダーの作成

MATLAB® パス上にあるフォルダー内に +vision/+labeler/ フォルダーを作成します。たとえば、フォルダー /local/MyProject が MATLAB パス上にある場合は、次のように +vision/+labeler/ フォルダー階層を作成します。

projectFolder = fullfile("local","MyProject");
automationFolder = fullfile("+vision","+labeler");
mkdir(projectFolder,automationFolder)
その結果、フォルダーの場所は /local/MyProject/+vision/+labeler となります。

AutomationAlgorithm クラスから継承するクラスの定義

MATLAB コマンド プロンプトで imageLabeler と入力して、ラベル付けアプリを開きます。

  1. データ ソースを読み込み、少なくとも 1 つのラベル定義を作成します。

  2. [アルゴリズムの選択][イメージ全体のアルゴリズムの追加][アルゴリズムの新規作成] を選択します。

開いた vision.labeler.AutomationAlgorithm クラス テンプレートで、カスタム オートメーション アルゴリズムを定義します。クラスのヘッダーとコメントの指示に従ってください。

アルゴリズムが "時間依存"、つまり実行のタイムスタンプに依存する場合は、カスタム オートメーション アルゴリズムで vision.labeler.mixin.Temporal クラスも継承しなければなりません。時間依存、すなわち時間的なアルゴリズムの実装の詳細については、時間的オートメーション アルゴリズムを参照してください。

アルゴリズムが "ブロック化されたイメージ" ベースの場合は、カスタム オートメーション アルゴリズムで vision.labeler.mixin.BlockedImageAutomation クラスも継承しなければなりません。ブロック化されたイメージ アルゴリズムを実装する方法の詳細については、ブロック化されたイメージのオートメーション アルゴリズムを参照してください。

クラス ファイルのオートメーション フォルダーへの保存

ラベル付けアプリ内からカスタム アルゴリズムを使用するために、作成した +vision/+labeler フォルダーにファイルを保存します。このフォルダーが MATLAB 検索パス上にあることを確認してください。フォルダーをパスに追加するには、関数 addpath を使用します。

ラベル付けアプリ内のアルゴリズム リストの更新

カスタム アルゴリズムの使用を開始するには、アルゴリズム リストを更新して、アプリ内にこのアルゴリズムを表示します。アプリのツールストリップで [アルゴリズムの選択][リストの更新] を選択します。

既存アルゴリズムのインポート

既存のカスタム アルゴリズムをラベル付けアプリにインポートするには、アプリのツールストリップで [アルゴリズムの選択][アルゴリズムの追加][アルゴリズムのインポート] を選択してから、リストを更新します。

カスタム アルゴリズムの実行

ラベル付けアプリ内でオートメーション セッションを実行するときには、オートメーション アルゴリズム クラスのプロパティとメソッドによって、アプリの動作を制御します。

ラベルの定義のチェック

[自動化] をクリックすると、アプリはカスタム アルゴリズムで定義された checkLabelDefinition メソッドを使用して、[ROI ラベル][シーン ラベル] ペインの各ラベル定義をチェックします。true を返すラベル定義は、オートメーション用に保持されます。false を返すラベル定義は無効になり、含まれません。このメソッドを使用して、カスタム アルゴリズムで有効なラベル定義のサブセットを選択します。たとえば、カスタム アルゴリズムがセマンティック セグメンテーション アルゴリズムの場合は、checkLabelDefinition メソッドを使用して、PixelLabel タイプではないラベル定義について false を返します。

設定の制御

アルゴリズムを選択したら、[自動化] をクリックしてオートメーション セッションを開始します。次に、[設定] をクリックすると、カスタム アプリの設定を変更できます。[設定] オプションを制御するには、settingsDialog メソッドを使用します。

アルゴリズム実行の制御

アプリ内でオートメーション アルゴリズム セッションを開き、[実行] をクリックすると、アプリから checkSetup メソッドが呼び出されて、実行できるかどうか確認が行われます。メソッドで false が返されると、オートメーション アルゴリズムは実行されません。メソッドで true が返されると、オートメーション用に選択されたすべてのフレーム上で initialize メソッドの後に run メソッドが呼び出されます。そしてオートメーションの実行終了時に、terminate メソッドが呼び出されます。

次の図は、このラベル付けアプリの実行フローを示したものです。

  • checkSetup メソッドを使用して、カスタム アルゴリズムに必要なすべての条件が正しく設定されているか確認します。たとえば、シーンに少なくとも 1 つの ROI ラベルが含まれていることを確認します。

  • initialize メソッドを使用して、カスタム アルゴリズムの状態をフレームを使って初期化します。

  • run メソッドを使用して、各フレームのラベルを計算して返すアルゴリズムのコアを実装します。

  • terminate メソッドを使用して、アルゴリズムの実行後に、オートメーション アルゴリズムの状態をクリーンアップまたは終了します。

参考

アプリ

オブジェクト

関連するトピック

関連するトピック