ブロックで使用できるように、AI ビジョン センサーで カラー シグネチャ と カラー コード が設定されていることを確認してください。 設定方法の詳細については、以下の記事をお読みください。
- VEXcode EXP の AI Vision Signature を使用したカラーシグネチャの設定
- VEXcode EXP で AI Vision Signature を使用してカラーコードを構成する
AI ビジョン センサーは、AI 分類と AprilTags も検出できます。 これらの検出モードを有効にする方法については、こちらをご覧ください。
これらの個々のブロックの詳細と、VEXcode での使用方法については、API サイトをご覧ください。
スナップショットを撮る
Take Snapshot ブロックは、AI ビジョン センサーが現在見ているものを写真に撮り、そのスナップショットからプロジェクトで使用できるデータを取得します。 スナップショットを撮影するときに、AI ビジョン センサーがどのタイプのオブジェクトのデータを収集するかを指定する必要があります。
- カラーシグネチャー
- カラーコード
- AI分類
- 4月のタグ
スナップショットを撮ると、指定したすべての検出されたオブジェクトの配列が作成されます。 たとえば、「赤」のカラー シグネチャを検出する場合、AI ビジョン センサーが 3 つの異なる赤いオブジェクトを検出すると、3 つすべてのデータが配列に格納されます
異なるオブジェクト間で指定する方法の詳細については、この記事の「オブジェクト項目の設定」セクションを参照してください。
この例では、設定された「青」 カラー シグネチャ に一致するオブジェクトのみを検出し、それ以外のオブジェクトは検出しません。
スナップショットから取得したデータ
AI ビジョン センサーは、その後に続くすべてのブロックに最後に撮影したスナップショットを使用することに注意してください。 AI ビジョン センサーから常に最新の情報を確実に取得するには、データを取得するたびにスナップショットを再撮影してください。
解決
AI ビジョンセンサーの解像度を理解することは、正確なデータ解釈に不可欠です。 センサーの解像度は 320 x 240 ピクセルで、正確な中心は座標 (160, 120) にあります。
X 座標が 160 未満の場合、センサーの視野の左半分に相当し、160 を超える場合、右半分に相当します。 同様に、Y 座標が 120 未満の場合、ビューの上半分が示され、120 を超える場合、ビューの下半分が示されます
AI ビジョン センサーを使用してオブジェクトを測定する方法の詳細については、「 VEXcode EXP の AI ビジョン ユーティリティのデータの理解」を参照してください。
幅と高さ
これは、検出されたオブジェクトのピクセル単位の幅または高さです。
幅と高さの測定値は、さまざまなオブジェクトを識別するのに役立ちます。 たとえば、バッキーボールはリングよりも高さが高くなります。
幅と高さは、AI ビジョン センサーからの物体の距離も示します。 通常、測定値が小さいほど物体が遠くにあることを意味し、測定値が大きいほど物体が近いことを示唆します。
この例では、オブジェクトの幅がナビゲーションに使用されます。 ロボットは、幅が特定のサイズに達するまで物体に近づき、停止します。
CenterXとCenterY
これは、検出されたオブジェクトの中心座標(ピクセル単位)です。
CenterX と CenterY 座標は、ナビゲーションと配置に役立ちます。 AI ビジョン センサーの解像度は 320 x 240 ピクセルです。
AI ビジョン センサーに近いオブジェクトは、遠いオブジェクトよりも CenterY 座標が低くなることがわかります。
この例では、AI ビジョン センサーのビューの中心が (160, 120) であるため、検出されたオブジェクトの centerX 座標が 150 ピクセルより大きく 170 ピクセルより小さくなるまでロボットは右に曲がります。
角度
角度は、カラー コード およびAprilTagsでのみ使用可能なプロパティです。 これは、検出されたカラー コードまたは AprilTag の向きが異なっているかどうかを表します。
ロボットがカラー コード またはAprilTag に対して異なる方向を向いているかどうかを確認し、それに応じてナビゲーションの決定を行うことができます。
たとえば、カラー コード が適切な角度で検出されない場合、それが表すオブジェクトをロボットが適切に拾うことができない可能性があります。
OriginXとOriginY
OriginX と OriginY は、検出されたオブジェクトの左上隅の座標 (ピクセル単位) です。
OriginX と OriginY 座標は、ナビゲーションと配置に役立ちます。 この座標をオブジェクトの幅と高さと組み合わせることで、オブジェクトの境界ボックスのサイズを決定できます。 これは、移動するオブジェクトの追跡やオブジェクト間の移動に役立ちます。
この例では、原点、幅、高さの正確な座標を使用して、Brain 上に四角形が描画されます。
タグID
tagID はAprilTagsでのみ使用できます。 これは指定されたAprilTagの ID 番号です。
特定の AprilTags を識別すると、選択的なナビゲーションが可能になります。 ロボットを特定のタグに向かって移動し、他のタグを無視するようにプログラムして、タグを自動ナビゲーションの道標として効果的に使用できます。
スコア
スコア プロパティは、AI ビジョン センサーでAI 分類 を検出するときに使用されます。
信頼スコアは、AI ビジョン センサーの検出の確実性を示します。 この画像では、これら 4 つのオブジェクトの AI 分類を 99% の信頼度で識別しています。 このスコアを使用すると、ロボットが信頼性の高い検出のみに集中できるようになります。
オブジェクト項目の設定
AI ビジョン センサーによってオブジェクトが検出されると、そのオブジェクトは配列に格納されます。 デフォルトでは、AI ビジョン センサーは配列の最初のオブジェクト、つまりインデックスが 1 のオブジェクトからデータを取得します。 AIビジョンセンサーが1つのオブジェクトのみを検出した場合、そのオブジェクトがデフォルトで選択されます
ただし、AI ビジョン センサーが一度に複数のオブジェクトを検出した場合は、オブジェクト項目の設定 ブロックを使用して、データを取得するオブジェクトを指定する必要があります。
AI ビジョンセンサーによって複数のオブジェクトが検出されると、それらは最大のものから最小のものの順に配列されます。 つまり、検出された最大のオブジェクトは常にオブジェクト インデックス 1 に設定され、最小のオブジェクトは常に最高番号に設定されます。
この例では、カラー シグネチャ 「青」で 2 つのオブジェクトが検出されました。 Take Snapshot ブロックが使用されると、これら両方が配列に配置されます。
ここで、最前面のオブジェクトは最大のオブジェクトなのでオブジェクト インデックス 1 になり、最小のオブジェクトはオブジェクト インデックス 2 になります。
オブジェクトが存在する
スナップショットからデータを取得する前に、 AI ビジョン センサーがそのスナップショットからオブジェクトを検出したことを確認することがです。 ここで、「Object Exists ブロックが役立ちます。
このブロックは、最後に撮影されたスナップショットにオブジェクトが検出されたかどうかに応じて、True またはFalse 値を返します
このブロックは 潜在的に空のスナップショットからデータを取得しようとしていないことを確認するために使用する必要があります。
たとえば、ここではロボットが AI ビジョン センサーを使用して継続的にスナップショットを撮影します。 いずれかの オブジェクトが「青」 カラー シグネチャであると識別された場合、前進します。
スナップショットに「青」 カラー シグネチャがない場合、ロボットは動きを停止します。
オブジェクト数
オブジェクト数 ブロックを使用すると、AI ビジョン センサーが最後のスナップショットで認識できる特定の カラー シグネチャ のオブジェクトの数を確認できます。
ここでは、AI ビジョン センサーに カラー シグネチャ 「青」が設定されており、2 つのオブジェクトを検出していることがわかります。
このコードでは、AI ビジョン センサーはスナップショットを取得し、VEXcode コンソールに「2」を出力します。これは、「青」 カラー シグネチャを 2 つだけ検出したためです。
物体
オブジェクト ブロックを使用すると、指定したオブジェクトのプロパティをレポートできます。 これにより、最後に取得したスナップショットから取得した利用可能なデータをすべて使用できるようになります。
取得したスナップショットから取得できるオブジェクト プロパティは次のとおりです。
- 幅
- 身長
- センターX
- 中心Y
- 角度
- オリジンX
- 起源Y
- タグID
- スコア
これらのプロパティの詳細については、この記事の「スナップショットから取得されたデータ」セクションをお読みください。
検出されたAprilTagは
検出された AprilTag ブロックは、AprilTag 検出モード オンになっている場合にのみ使用できます
このブロックは、指定されたオブジェクトが特定の AprilTag であるかどうかに応じて True または False を報告します。
1 つのスナップショットで複数の AprilTag が検出された場合、それらはサイズではなく識別された ID に基づいて配列に配置されます
この画像では、ID 0、3、9 の 3 つの AprilTag が検出されています。 配列内では ID の昇順に整理されます。 インデックス 1 のオブジェクトは ID 0 の AprilTag に対応し、インデックス 2 のオブジェクトは ID 3 の AprilTag に対応し、インデックス 3 のオブジェクトは ID 9 の AprilTag に対応します。
AprilTags とは何か、また AI ビジョン センサーで AprilTags の検出を有効にする方法の詳細については、この記事をお読みください。
AI分類は
AI 分類 ブロックは、AI 分類検出モード オンの場合にのみ使用できます。
このブロックは、指定されたオブジェクトが特定の AI 分類であるかどうかに応じて True または False を報告します。
AI ビジョン センサーで検出できる AI 分類は、使用しているモデルによって異なります。 利用可能なAI分類と、AIビジョンセンサーでそれらの検出を有効にする方法の詳細については、この記事お読みください