オフラインモード

  1. イントロダクション
  2. ワークフローの例
  3. オンライン専用フィルタ
  4. オフラインデータへのアクセス
    1. オンライン専用フィルタの出力のバインド
    2. ReadFilmstripフィルタ
  5. オフラインデータ構造
  6. ワークスペースとデータセットの割り当て
  7. オフラインデータの変更
    1. 構造の変更
    2. 内容の変更
  8. 有効化と表示
    1. メインウィンドウ
    2. プログラムエディタ
  9. 関連項目

イントロダクション

特定のフィルタは、正常に機能するために外部デバイスが必要です。たとえば、画像を取得するためにはカメラが必要です。オフラインモードは、実際のデバイスインフラストラクチャにアクセスできなくてもビジョンアルゴリズムを開発できるように支援します。 ReadFilmstripを使用すると、対象デバイスインフラストラクチャを知らなくても実際のデータで作業できます。

この記事では、オフラインモードとは何か、オフラインデータとは何か、およびこのデータにアクセスして変更する方法について簡単に説明します。

ワークフローの例

  1. 生産ラインからデータを直接収集するための簡単なアプリケーションをAurora Vision Studioを使用して準備するか、またはディスク上のイメージからデータセットをインポートします。
  2. 以前に準備したデータを使用してプロジェクトを開発し、ReadFilmstripフィルタを使用して記録されたイメージにアクセスします。
  3. ReadFilmstripフィルタをカメラからイメージをキャプチャする本番フィルタと置き換えます。置換はクリックして置き換えるだけで簡単にできます。
  4. 生産ラインでの使用のための完成したプログラム。ソフトウェアは実際のデバイス(オンラインモード)と記録されたデータ(オフラインモード)の両方で動作する準備ができています。

作業中にシステムの保守担当者は、新しいデータセットを収集し、完成したシステムを調整するためにこれらを使用できます。システムの開発中には、開発者が更新されたデータセットを再生できます。 アルゴリズムをプロジェクトのコードを変更せずにテストできます。

オフラインモードのすべてのデータは簡単に共有できる形式で保存されています。オフラインモードは、開発チームが大きなプロジェクトで作業する際の推奨方法です。

オンライン専用フィルタ

外部デバイスの接続が必要なフィルタは、接続されている間のみ動作できるため、これらはオンライン専用です。そのようなフィルタの優れた例には次のものがあります:

すべてのオンライン専用フィルタは、I/O Function フィルタまたは I/O Loop Generator フィルタのいずれかです。

オフラインモードは、オンライン専用フィルタを実際の接続なしでも接続されているかのように動作させるために設計されています。 そのためには、ユーザーはオフラインモードで実行される際にフィルタが提供するオフラインデータを提供する必要があります。

すべてのオンライン専用フィルタが I/O フィルタであるとは限りません。逆もまた真でなく、つまり、オフラインモードでデフォルトのロジックを使用して動作できる I/O フィルタが存在します。これは主に、ローカルシステムリソースにアクセスするフィルタに該当します:

オンライン専用フィルタだけが、その出力をデータセットチャンネルにバインドできます。他のフィルタは常にデフォルトのロジックを実行します。

オフラインデータへのアクセス

オンライン専用フィルタの出力のバインディング

オフラインモードでは、オンライン専用フィルタは OFFLINE とマークされ、オフラインモードでの実行中にスキップされます。 ただし、オンライン専用フィルタをオフラインモードで実行することは可能です。これは、少なくともその出力の1つをFilmstrip チャネルにバインドすることで実現できます。 ただし、フィルタは任意のワーカータスクマクロフィルタのACQUIREセクションに挿入する必要があります。
出力は、出力のコンテキストメニューでFilmstripとバインドコマンドを使用するか、Filmstripコントロールからチャネルをドラッグアンドドロップしてバインドできます。

出力がFilmstripチャネルにバインドされると、フィルタはオフラインモードで実行でき、そのデフォルトのロジックはディスクからデータを読み込んでそれを出力に転送するように置き換えられます。

バインドされていないすべての出力はデータを提供せず、接続されているすべてのフィルタは実行中にスキップされます。そのようなフィルタを含むすべてのマクロフィルタも同様にスキップされます。

ReadFilmstripフィルタ

オンライン専用フィルタの出力をバインドするだけでなく、オフラインデータはReadFilmstripフィルタを使用してアクセスすることもできます。 この場合、オフラインデータはReadFilmstripフィルタの出力によって公開され、その名前は割り当てられたチャネル名に対応しています。

ReadFilmstripは、ワーカーマクロフィルタのACQUIREセクションにのみ挿入できます。

標準のフィルタ検索および挿入機能を使用して、他のフィルタと同様にツールボックスからフィルタをドラッグするなどして、Filmstripコントロールから空のスペースにフィルタを挿入できます。

その他にも、ReadFilmstripフィルタは、FilmstripコントロールからチャネルをドラッグしてProgram Editor内の空のスペースにドロップすることで挿入できます。 この方法で挿入されるフィルタはすでに選択したDataset Channelに割り当てられています。

対象デバイスインフラストラクチャがわかると、フィルタは簡単に製品対応のオンライン専用フィルタに"置換..."コマンドで置き換えることができます。 既存の接続は保持され、現在のアルゴリズムが一貫しています。 置換されるReadFilmstripフィルタに対応する既存のフィルタのすべての出力は、ReadFilmstripフィルタに割り当てられたのと同じDataset Channelにバインドされます。

フィルタReadFilmstripが既存のI/Oフィルタで置き換えられなかった場合、このフィルタの実行はオンラインモードでスキップされます。

オフラインデータの構造

オフラインデータは、ワークスペース-データセット-チャネル-データツリー構造に整理されています:

ワークスペースの構造。

特定のインデックスのすべてのチャネルからのデータアイテムは、サンプルを構成します。 サンプルは、データが保存された単一の時間を表します。Filmstripでは、行は現在のデータセット内のチャネルを表し、列はサンプルを表します。次のスクリーンショットでは、選択されたサンプルはImageチャネルからの画像とIndexチャネルからの値「1」で構成されています:

サンプル

ワーカータスクマクロフィルタの単一のイテレーションで、1つのサンプルが利用可能です。

ワークスペースとデータセットの割り当て

毎回Aurora Vision Studioプロジェクトが開かれるか作成されると、そのプロジェクトには常にワークスペースが利用可能です。 それは、最初のアプリケーションの起動時にユーザーのために作成されるデフォルトのワークスペース、またはそのプロジェクトに割り当てられたユーザー定義のワークスペースのいずれかです。

プロジェクト要素にワークスペース要素を割り当てる際のいくつかのルールがあります:

  • 単一のプロジェクトには、0または1つのワークスペースが割り当てられる可能性があります。
  • 1つのワーカータスクには、0または1つのデータセットが割り当てられる可能性があります。
  • ワークスペースをプロジェクトに割り当てるのは、任意のデータセットが任意のワーカータスクで使用されるときに行われます。
  • データセットをワーカータスクに割り当てるのは、任意のチャネルが出力にバインドされるか、そのワーカータスク内でReadFilmstripフィルタに割り当てられるときに行われます。
注: 同じプロジェクト内で異なるワークスペースから2つのデータセットを使用することは禁止されています。 他のワークスペースからのデータセットを使用しようとすると、他のすべてのワーカータスクでデータセットが切り替わり、新しいワークスペースからの同じ名前のデータセットに切り替わります。 新しいワークスペースでデータセットが見つからない場合、これはプロジェクトエラーと見なされます。
注: データセットとチャネルの割り当ては名前ベースです。ワーカータスクは、新しいデータセットに同じセットのチャネル(同じ名前とデータ型のチャネル)が存在する限り、いつでも切り替えることができます。バインドされたチャネルのみがカウントされます。

新しいAurora Vision Studioのインストールでは、すべての新しいプロジェクトと、明示的に他のワークスペースを選択していないプロジェクトにはデフォルトのワークスペースが利用可能です。

オフラインデータの変更

一般的に、オフラインデータはワークスペース、データセット、チャネル(構造)によってグループ化されたコンテンツ(チャネル項目)と考えることができます。 同様に、オフラインデータの変更は、構造変更とコンテンツ変更の2つに分類できます。

構造の変更

ワークスペースの構造 の図では、ワークスペース、データセット、チャネルは単なるコレクションであることがわかります。 ワークスペース、データセット、チャネルの追加および削除は、構造の変更と見なすことができます。これらの操作はすべて ワークスペースウィンドウで利用可能です。ただし、現在のワークスペースに共通の操作(データセットおよびチャネルの追加/削除)は Filmstripコントロールでも利用可能なため、ワークスペース関連のタスクを実行するためにコントロール間を行き来する必要はありません。

Aurora Vision Studioはデフォルトでデフォルトワークスペースで起動します。初期状態では、デフォルトのワークスペースには Imageタイプの空のチャネルを持つ単一のデータセットが含まれています。同様に、任意のワークスペースで作成された新しいデータセットも Imageタイプの空のチャネルを含んでいます。

コンテンツの変更

オフラインのコンテンツは、実際にフィルタの出力で使用できるデータ、特にチャネル項目です。 新しいデータを追加する最も簡単な方法は、Filmstripコントロールの最後の列にある大きな「+」ボタンを使用することです。 新しいデータエディタはタイプによって異なります。たとえば、Imageタイプの場合、ディスクから画像ファイルを選択し、 幾何学データおよび基本データは適切なダイアログまたはインラインエディタで定義されます。

注意: チャネルデータ(例: 画像)がディスクから選択される場合、実行時にはオフラインモードでディスク上の元の場所のファイルがロードされます。

また、オンラインデータをバインドされたチャネルに直接追加することも可能です。これはFilmstripコントロールのツールバーにある保存アイコンを使用して行います:

サンプルの保存

基本的なタイプおよび単純な構造は、親データセットのメタデータファイル(*.dataset)に直接シリアル化されます。一方で、 オンラインデータの保存がディスクに必要な場合、チャネルの保存ディレクトリが使用され、*.datasetファイルにはそのパスのみが保存されます。 デフォルトでは、保存ディレクトリは親ワークスペースディレクトリ内のサブディレクトリの1つです。ただし、ユーザーはいつでも ワークスペースウィンドウで利用可能なチャネルの編集ダイアログを使用して保存ディレクトリを変更できます。

注意: データセット内のすべてのチャネルは同じサイズに同期されています。 これは、チャネルにアイテムを手動で追加すると、他のすべてのチャネルが、チャネルタイプに対してデフォルトのデータで 埋められるということを意味します。同様に、オンラインデータを保存すると、バウンドされた出力から来たデータまたはチャネルがバインドされていない場合は、 チャネルタイプに対してデフォルトのデータでデータセット内のすべてのチャネルが埋められます。

既存のチャネルアイテムは、アイテムにホバーしたときに表示される編集ボタンを使用して変更できます。ボタンをクリックすると、 アイテムタイプに対応するデフォルトエディタが開かれます:

チャネルアイテムの編集

アクティベーションと表示

メインウィンドウ

Aurora Vision Studioのメインウィンドウには、現在のオフラインモードと実行状態を示すいくつかのインジケータが含まれています:

Aurora Vision Studioメインウィンドウ。オフラインモードと実行インジケータがマークされています。

  1. メインツールバーにあるオフラインモードボタン 。選択されている場合、オフラインモードがアクティブです。
  2. 右上隅のボタンで視覚的にモードと実行を表現したもの:
     オフラインモードオンラインモード
    アイドル
    実行中
  3. 実行状態とステータスバーの背景色。プログラムが現在実行中または一時停止中の場合、背景色はインジケーションボタン(2)の背景色に対応します。
  4. オフラインモードがアクティブな場合、ウィンドウの右下隅に追加のOfflineラベルがあります。

プログラムエディタ

オンライン専用のフィルタは、Filmstripチャンネルにバインドされていない限り、オフラインモードでは無効になります。フィルタの上にOFFLINEラベルが表示されます:

Filmstripチャンネルにバインドされていないオンライン専用フィルタ。オフラインモードでは無効になります。

一方で、ReadFilmstripはオンラインモードでは無効になり、NOT IN ONLINEラベルが表示されます:

オンラインモードで無効になったReadFilmstripフィルタ。

注意: 手動で無効になったフィルタと同様に、現在のオフラインモードのために無効になったフィルタは、それに接続されているすべてのフィルタも無効にします。

関連項目

  1. ワークスペースの管理 - Aurora Vision Studioでデータセットのワークスペースを管理する方法の詳細な説明。
  2. Filmstripコントロールの使用 - Aurora Vision Studioでデータセットからデータを記録および復元するためのツール。