pylon AI Platform#
AI vToolごとに異なるマシンビジョンプロジェクトを提供し、独自のプロジェクトを作成することもできます。多様なハードウェア環境向けのモデル最適化を含め、開発からデプロイメントに至るまで、モデルのライフサイクル管理のすべてのステージをサポートします。
pylon AI Platformへのアクセスについては、Basler Salesにお問い合わせください。
仕組み#
導入として、以下のセクションでは背景情報を提供し、pylon AI Platformでプロジェクトを作成する際の重要な側面について説明します。
概念と用語#
モデル:モデルとは、サンプル画像を使用してトレーニングできるアルゴリズムです。トレーニングに基づいて、モデルは画像コンテンツを「予測」できるようになります。
アーキテクチャ:モデルのアーキテクチャは、モデルの動作を決定します。さまざまなマシンビジョンタスクに対して、さまざまなアーキテクチャを利用できます。
データセット:データセットは、特定の問題やタスクに関連するデータのコレクションです。問題に関連するすべての視覚的プロパティが含まれています。
たとえば、猫と犬の画像を、猫と犬を区別する分類モデルのデータセットにすることができます。モデルが猫と犬だけでなく、ネズミも区別する必要がある場合は、ネズミの画像データをデータセットに追加する必要があります。
通常、データセットは3つの部分に分割されます。
- トレーニングデータ:トレーニングデータは、ディープラーニングモデルが学習に使用するデータセットの大部分を占めます。モデルは、トレーニングデータ内のパターンを認識するようにウェイトを調整します。
- 検証データ:検証データは、トレーニング中の動作を評価するためにDLモデルによって使用されます。トレーニングデータとは独立しており、最適化には使用されません。
- テストデータ:トレーニング後、モデルのパフォーマンスはテストデータを使用して評価されます。テストデータは、新しい未見の例を表し、モデルが現実世界のデータにどれだけうまく汎化できるかを示します。
pylon Viewerの録画機能を使用して、独自のデータセットを作成できます。データセットを完成させるには、画像にアノテーションを付ける必要もあります。詳細については、以下のアノテーション/ラベルセクションを参照してください。データセットを完成させた後、pylon AI Platformのプロジェクトに追加できます。
現在、データセットでサポートされているのは、CVAT for imagesフォーマットのバージョン1.1のみです。CVAT Serverを使用してデータにアノテーションを付けるか、既存のデータセットをCVAT for images 1.1フォーマットに変換することができます。
後者の場合、トレーニング環境からデータセットをCVATフォーマットにエクスポートするか、サードパーティ製ツールを使用して既存のデータセットを変換します。これには、Datumaroの使用を推奨します。
注釈/ラベル: 注釈はラベルとも呼ばれ、データセットに追加して、データ内の何が重要であるかをモデルに伝えます。トレーニング中、モデルはこの情報を使用して、予測と期待される/正しい結果を比較します。前述の分類タスクの場合、この情報は画像が犬を描写しているか猫を描写しているかを示します。
pylon AIで使用する画像に注釈を付けるには、外部トレーニングプラットフォームを使用するか、オープンソースツールのCVATを使用します。このビデオでは、CVATを使用してバウンディングボックスで画像にObject Detection用の注釈を付ける方法を示しています。
トレーニング: ディープラーニングの文脈において、トレーニングとは、ニューラルネットワーク(モデル)がトレーニングデータから学習するプロセスです。モデルはすべてのトレーニングデータに対して予測を行います(上記の「データセット」を参照)。予測は、誤差を計算するために正解データ(注釈/ラベル)と比較されます。誤差に基づいて、誤差を最小限に抑えるようにモデルの重みが調整されます。このプロセスは、誤差が可能な限り削減されるまで繰り返されます。モデルが正常に機能することを確認するために、モデルは検証データに使用されます。
推論: ディープラーニングの文脈において、推論とは、トレーニング済みのモデルを新規の未見データに適用し、その内容について予測を行うことを意味します。
pylon AI Platformの使用#
このセクションでは、マシンビジョンプロジェクトを作成するためのさまざまなステップについて説明します。
pylon AI Platformは直感的に使用できるように設計されています。pylon AI Platformにログインすると、Dashboardビューが表示されます。

ここでは、最近リリースされた5つのバンドルと、最近実行された5つのトライアルが表示されます。
プロジェクトの作成を開始するには、左側のナビゲーションツリーにあるMy Projectsをクリックします。

My Projectsビューには、あなた、またはAI Platformへのアクセス権を持つ他のユーザーが作成したすべてのプロジェクトが表示されます。プロジェクトの表示形式は、リストビューまたはタイルビューから選択できます。
プロジェクトの作成#
まずプロジェクトの作成から始めます。
- pylon AI Platformにログインします。
- 左側のナビゲーションツリーにあるMy Projectsをクリックします。
- My Projectsページで、Create new projectをクリックします。
- 次において: 新規プロジェクトの作成 ページで、作成するプロジェクトの種類を指定し、名前と簡単な説明(オプション)を入力します。
プロジェクトの概要ページが開きます。
上部のタブ付きナビゲーションには、現在実行できるすべてのステップが表示されます。一部のステップは、先行するステップを完了した後にのみ使用可能になります。
notification areaには、AI Platformで実行したアクションごとに新しいメッセージがポップアップ表示されます。すべてのメッセージは、削除するまで保存されます。
ホームボタンをクリックすると、プロジェクトの概要ページに戻ります。
データセット#
-
Add data setボタンをクリックするか、上部のタブリストにあるData Setsをクリックします。
-
次において: データセットの追加 ページで、追加するデータセットの名前と簡単な説明(オプション)を入力します。

-
Addをクリックします。
-
Upload Dataページで、アップロードするデータのフォーマットを指定し、データを追加します。
現在、データセットでサポートされているのは、CVAT for imagesフォーマットのバージョン1.1のみです。CVAT Serverを使用してデータにアノテーションを付けるか、既存のデータセットをCVAT for images 1.1フォーマットに変換することができます。
後者の場合、トレーニング環境からデータセットをCVATフォーマットにエクスポートするか、サードパーティ製ツールを使用して既存のデータセットを変換します。これには、Datumaroの使用を推奨します。
データの検証が直ちに開始されます。検証が正常に完了したら、アノテーションを確認し、データセットクラスの作成に進むことができます。

-
Map classesをクリックします。
-
ペインの クラスマッピング ダイアログで、 Autocreate classes をクリックして、画像内のアノテーションに基づいてデータセットクラスを自動的に作成します。
または、 Add new class をクリックします( Data Set Class.
-
OKをクリックします。
-
Upload Dataページで、Uploadをクリックします。
Data Setsタブが開き、データセットを確認できます。 -
データセットをクリックしてその内容を表示し、画像の追加やプロパティの編集を行います。データセットの状態に問題がなければ、 Publish.
トライアルで使用するには、データセットを公開する必要があります。
-
Data Setsタブに戻ります。
モデル#
-
Modelsタブをクリックします。
-
Modelsページで、Add modelをクリックします。
-
次において: モデルのアップロード ページで、追加するモデルの名前と短い説明(オプション)を入力します。

-
Createをクリックします。
-
次において: モデルのアップロード ページで、アップロードするモデルの構成を指定し、モデルファイルを追加します。
アップロードと検証がすぐに開始されます。完了すると、モデルにどのようなクラスが含まれているかを確認できます。
-
[Finish]をクリックします。
モデルを確認できる[Models]タブが開きます。 -
モデルをクリックすると、そのプロパティが表示されます。

-
[Models]タブに戻ります。
マッピング#
データセットやモデルには通常、特定のタスクに必要な数よりも多くのクラスが含まれています。マッピングとは、データセットのクラスとモデルのクラスを一致させ、プロジェクトで何を検索対象にするかを定義するプロセスのことです。この目的のために、プロジェクトクラスを追加し、目的のデータセットクラスとモデルクラスをそれらに割り当てる必要があります。
-
Click the マッピング タブ。

-
次において: マッピング タブで、をクリックします プロジェクトクラスを作成します 最初のプロジェクトクラスを作成します。

または、 Automap 機能を使用することもできます。
-
必要に応じて、デフォルトの名前を別の名前に変更します。
-
そこにデータセットクラスとモデルクラスを追加します。
右側の対応するタブからクラスをドラッグ&ドロップするだけです。ドロップダウンリストを使用して、データセット(またはそのバージョン)やモデルバージョンを変更できます。
-
必要なすべてのプロジェクトクラスを作成するまで、手順2~4を繰り返します。
-
不要なデータセットクラスとモデルクラスをすべて除外します(詳細については、クラスの除外を参照してください)。
オートマッピング#
自動マッピングを使用すると、名前に基づいてデータセットクラスやモデルクラスをプロジェクトクラスにワンクリックでマッピングできます。データセットおよびモデルクラスの名前と一致する既存のプロジェクトクラスがない場合は、その名前を持つ新しいプロジェクトクラスが作成されます。そのため、使用する予定のないデータセットクラスやモデルクラスが多い場合は、自動マッピングを使用する前に必ずそれらを除外してください。
自動マッピングは、マッピングされていないクラスに対してのみ機能します。以前に手動でマッピングされたクラスは、そのクラスに維持されます。
データセットやプロジェクトのクラス名に「background」または「excluded」という単語が含まれている場合、プロジェクトタイプに応じて除外されるか、バックグラウンドとして定義されます。
自動マッピングでは大文字と小文字は区別されませんが、クラス名は完全に一致している必要があります。
自動マッピングの使用方法:
-
右側のData Set Classesタブで、不要なデータセットクラスをすべて除外します。
-
クリック Automap.

-
Automapping Summaryダイアログで、そこにリストされているすべてのプロジェクトクラスを作成することを確認します。
不要なクラスの選択を解除できます。選択を解除したクラスはマッピングされないままになります。後で必ず除外してください。 -
Map classesをクリックします。
プロジェクトクラスが作成され、データセットクラスがそれらに追加されます。 -
右側のModel Classesタブで、不要なモデルクラスをすべて除外します。
-
クリック Automap.

-
Automapping Summaryダイアログには、既存のプロジェクトクラス、それらにマッピングされるモデルクラス、および新しく作成されるプロジェクトクラスが表示されます。新規としてリストされているプロジェクトクラスを作成することを確認します。
不要なクラスの選択を解除できます。選択を解除したクラスはマッピングされないままになります。後で必ず除外してください。 -
Map classesをクリックします。
まだ存在しないプロジェクトクラスが作成されます。新規および既存のプロジェクトクラスにモデルクラスが追加されます。
クラスの除外#
プロジェクトで使用したくないモデルクラスは、マッピングを完了するために除外する必要があります。これは、モデルから正しい統計データを取得するために必要です。
クラスを除外するには、不要なモデルクラスをすべて選択し、Excludeをクリックします。または、選択したクラスを画面の下部にドラッグし、Excludedセクションにドロップすることもできます。

セグメンテーションプロジェクトの場合、これは少し異なります。ここでは、余分なモデルクラスをすべてバックグラウンドとして定義する必要があります。これを行うには、不要なモデルクラスをすべて選択し、Define as backgroundをクリックします。または、選択したクラスを画面の下部にドラッグし、Backgroundセクションにドロップすることもできます。
これら両方の操作は、対応するボタンを使用するか、ドラッグアンドドロップによって元に戻すことができます。
プロジェクトを適用する際、除外されたクラスは考慮されません。つまり、それらのクラスの結果は得られません。
トライアル#
-
Trialsタブをクリックします。
-
Trialsページで、Add trialをクリックします。
-
次において: トライアルの作成 ページで、追加するトライアルの名前と簡単な説明(オプション)を入力します。

-
ペインの プロジェクトアセット ペインで、 データセットを追加 して、トライアルで使用するデータセットを選択します。

-
ペインの プロジェクトアセット ペインで、 モデルの追加 をクリックして、トライアルで使用するモデルを選択します。

-
ペインの プロジェクトアセット ペインで、 マッピングの確認.
マッピングを確認し、必要に応じて変更してください。トライアルの作成後は、プロジェクトクラスを変更することはできません。
-
Createをクリックします。
-
次のトライアルの実行を追加をクリックします。
-
ハードウェアとモデル形式を選択します。

-
クリック トライアルの実行.

トライアルの実行がすぐに開始されます。実行が完了すると、統計情報がトライアルページに表示されます。
-
結果に問題がなければ、トライアルの横にある バンドルをリリース ボタンをクリックしてバンドルをリリースできます。

-
バンドルの名前を変更し、説明を入力します(任意)。

-
バンドルをリリースをクリックします。
バンドルが生成されます。 -
プロジェクト概要ページに戻り、Bundlesタブをクリックします。
しばらくすると、ここにバンドルが表示されます。
バンドル#
リリースされたバンドルは、Bundlesタブに表示されます。ここでは、バンドルのPropertyを確認したり、バンドルが生成された元のトライアルの細部を表示したりすることができます。

バンドルには、vToolがビジョンタスクを実行するために必要なすべての情報(ハードウェア構成、モデルなど)が含まれています。これで、pylon AI Agentを使用してAI vToolsにデプロイする準備が整いました。
また、バンドルをローカルまたはリモートのストレージ場所にダウンロードすることもできます。その場合、pylon AI Platformへのアクセス権を持たないユーザーでも、バンドル内のモデルを使用できます。
外部プロジェクト#
pylon AI Platformでは、Intel GetiやLanding AIなどの他のプラットフォームに接続できます。それらのプラットフォームで作成されたプロジェクトをインポートし、さまざまなハードウェアやモデルを使用してテストを実行できます。
他のプラットフォームへの接続を確立するには、そのプラットフォームのAPIキーを追加する必要があります。
APIキーを追加するには:
- pylon AI Platformにログインします。
- 左側のナビゲーションツリーで、次をクリックします: 設定.

- ペインの 設定 ビューで、次をクリックします: APIキーの追加.
イメージ APIキーの追加 dialog opens.
- APIキーの追加ダイアログで、目的のプラットフォームを選択し、そのプラットフォームのAPIキーを入力します。
APIキーを取得するための手順については、以下を参照してください。
Intel Geti
Landing AI - Saveをクリックします。
追加したAPIキーがAPI Keysページに表示されます。また、接続を確立した外部プラットフォームで作成されたプロジェクトが、External Projectsビューで使用できるようになります。
これで、外部プロジェクトをプロジェクトライブラリにインポートしてテストできるようになります。外部プロジェクトは読み取り専用であることに注意してください。pylon AI Platform上でデータセットなどのリソースを編集することはできません。変更を加えるには、元のプラットフォームで行う必要があります。
外部プロジェクトをインポートするには:
- 左側のナビゲーションツリーで、次をクリックします: 外部プロジェクト.

- インポートするプロジェクトをクリックします。

- Data Sets、Models、およびMappingタブで、プロジェクトのリソースを確認します。
- プロジェクトに問題がなければ、次をクリックします: プロジェクトのインポート.

- 名前と簡単な説明(オプション)を入力します。
- Nextをクリックします。
- インポートするデータセットを選択します。
これは後から行うこともできます。外部プロジェクトの一部であるデータセットのみをインポートできます。 - Nextをクリックします。
- インポートするモデルを選択します。
これは後から行うこともできます。外部プロジェクトの一部であるモデルのみをインポートできます。 - Importをクリックします。
プロジェクトがインポートされ、プロジェクトライブラリに追加されます。 - 左側のナビゲーションツリーで、次をクリックします: マイプロジェクト.

追加したばかりのプロジェクトが使用できるようになりました。 - プロジェクトをクリックして編集し(まだ行っていない場合は、データセットやモデルの追加などを行います)、マッピングを表示します。
- トライアルを実行し、バンドルを作成します。