Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

ラベル付け用オートメーション アルゴリズムの作成

イメージ ラベラービデオ ラベラーLIDAR ラベラー (Lidar Toolbox)、およびグラウンド トゥルース ラベラー (Automated Driving Toolbox) アプリを使用すると、さまざまなデータ ソースのグラウンド トゥルースにラベルを付けることができます。オートメーション アルゴリズムを使用して、カスタムのオートメーション アルゴリズムを作成およびインポートすることで、データに自動的にラベルを付けることができます。

アルゴリズムの新規作成

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

  • videoLabeler

  • lidarLabeler

  • groundTruthLabeler

次に、データ ソースを読み込み、ラベル定義を少なくとも 1 つ作成します。そして、アプリのツールストリップで [アルゴリズムの選択][アルゴリズムの追加][アルゴリズムの新規作成] を選択します。開いた vision.labeler.AutomationAlgorithm クラス テンプレートで、カスタム オートメーション アルゴリズムを定義します。クラスのヘッダーとコメントの指示に従ってください。

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

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

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

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

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

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

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

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

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

ラベル定義のチェック

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

設定の制御

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

アルゴリズム実行の制御

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

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

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

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

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

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

参考

アプリ

関数

関連する例

詳細