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.mixin.BlockedImageAutomationクラスも継承しなければなりません。ブロック化されたイメージ アルゴリズムを実装する方法の詳細については、ブロック化されたイメージのオートメーション アルゴリズムを参照してください。

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

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

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

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

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

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

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

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

ラベル定義のチェック

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

設定の制御

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

アルゴリズム実行の制御

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

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

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

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

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

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

参考

アプリ

関数

関連する例

詳細