このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
オートメーション アルゴリズムの作成
イメージ ラベラーを使用すると、さまざまなデータ ソースのグラウンド トゥルースにラベルを付けることができます。オートメーション アルゴリズムを使用して、カスタムのオートメーション アルゴリズムを作成およびインポートすることで、データに自動的にラベルを付けることができます。オートメーション アルゴリズムを作成するカスタム関数を使用することもできます。この関数は、ラベル付けアプリで指定することができ、オートメーション パラメーターを調整できるようにします。詳細については、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 つのラベル定義を作成します。
[アルゴリズムの選択] 、 [イメージ全体のアルゴリズムの追加] 、 [アルゴリズムの新規作成] を選択します。
開いた 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
メソッドを使用して、アルゴリズムの実行後に、オートメーション アルゴリズムの状態をクリーンアップまたは終了します。
参考
アプリ
オブジェクト
vision.labeler.AutomationAlgorithm
|vision.labeler.mixin.Temporal
|vision.labeler.mixin.BlockedImageAutomation
関連するトピック
- Automate Ground Truth Labeling of Lane Boundaries (Automated Driving Toolbox)
- Automate Ground Truth Labeling for Semantic Segmentation (Automated Driving Toolbox)
- Automate Attributes of Labeled Objects (Automated Driving Toolbox)
関連するトピック
- イメージ ラベラー入門
- グラウンド トゥルースのラベル付けを始める (Automated Driving Toolbox)
- 時間的オートメーション アルゴリズム
- ブロック化されたイメージのオートメーション アルゴリズム