KI-Vision-Sensor#

Einführung#

Der KI-Vision-Sensor kann Objekte, Farben und AprilTag-IDs erkennen und verfolgen. Dadurch kann der Roboter seine Umgebung analysieren, Objekten folgen und auf Basis der erfassten visuellen Daten reagieren.

Nachfolgend finden Sie eine Liste der verfügbaren Blöcke:

Aktionen – Daten vom KI-Vision-Sensor für eine ausgewählte Signatur erfassen.

  • take snapshot – Erfasst Daten für eine bestimmte Signatur, wie z. B. eine konfigurierte Farbe, ein vorab trainiertes Objekt oder eine AprilTag-ID.

Einstellungen – Wählen Sie das Objekt aus, mit dem Sie interagieren möchten.

Werte – Zugriff auf und Nutzung der erfassten Daten.

Aktionen#

Schnappschuss machen#

Der take snapshot-Stackblock filtert Daten aus dem AI Vision Sensor-Frame zu einer einzigen Signatur – einer gespeicherten Beschreibung von etwas, das der Sensor erkennen kann, wie z. B. ein vorab trainiertes Objekt, eine AprilTag-ID oder eine konfigurierte Farbe oder ein Farbcode.

Farben und Farbcodes müssen zuerst im AI Vision Utility konfiguriert werden, bevor sie mit diesem Block verwendet werden können.

Der Datensatz speichert Objekte, sortiert nach ihrer Breite von groß nach klein, beginnend mit Index 0. Auf die Eigenschaften jedes Objekts kann über den Block AI Vision-Objekteigenschaft zugegriffen werden. Wird kein passendes Objekt gefunden, wird ein leerer Datensatz gemeldet.

Der Stapelblock „Snapshot erstellen“.#
mache [AIVision1 v] Schnappschuss von [SELECT_A_SIG v]

Parameter

Beschreibung

Gerät

Welchen KI-Vision-Sensor soll man verwenden?

Unterschrift

Filtert den Datensatz, sodass nur Daten der angegebenen Signatur enthalten sind. Verfügbare Signaturen sind:

  • AprilTag-IDs
  • KI-Klassifizierungen – Die Verfügbarkeit ändert sich je nach dem im AI Vision Utility konfigurierten Modell.
  • NAME – Eine Farbe oder ein Farbcode, wobei NAME der im AI Vision Utility konfigurierte Name ist

Hinweis: Damit die Optionen für AprilTag-ID oder KI-Klassifizierung angezeigt werden, muss deren Erkennung im AI Vision Utility aktiviert sein.

Beispiel

wenn gestartet
[Drive forward if an AprilTag ID is detected.]
für immer
mache [AIVision1 v] Schnappschuss von [AprilTag IDs v]
wenn <[AIVIsion1 v] Objekt vorhanden?> dann
fahre [vorwärts v] für [10] [mm v] ▶

KI-Klassifizierungen#

Der KI-Vision-Sensor kann verschiedene Objekte anhand bestimmter KI-Klassifizierungen erkennen. Je nachdem, welches KI-Klassifizierungsmodell bei der Konfiguration des KI-Vision-Sensors im Gerätefenster ausgewählt wird, werden unterschiedliche Objekte erkannt. Folgende Modelle stehen derzeit zur Verfügung:

Klassenzimmergegenstände

  • Blauer Ball

  • GreenBall

  • RedBall

  • BlueRing

  • GreenRing

  • RedRing

  • BlueCube

  • GreenCube

  • RedCube

VEX V5 Robotik-Wettbewerb: Verschiebung

  • BlueBlock

  • RedBlock

VEX V5 Robotik-Wettbewerb – Hohe Einsätze

  • MobileGoal

  • RedRing

  • BlueRing

VEX V5 Robotics Competition Override

  • RedBluePin

  • Blaugelbe Pin

  • Rotgelbe Pin

  • Gelbe Nadel

  • Tasse

Farbsignaturen#

Eine Farbsignatur ist eine einzigartige Farbe, die der KI-Vision-Sensor erkennen kann. Mithilfe dieser Signaturen kann der Sensor Objekte anhand ihrer Farbe erkennen und verfolgen. Sobald eine Farbsignatur konfiguriert ist, kann der Sensor Objekte mit dieser spezifischen Farbe in seinem Sichtfeld identifizieren.

Farbsignaturen werden im Block take snapshot verwendet, um farbige Objekte in Echtzeit zu verarbeiten und zu erkennen. Es können bis zu 7 Farbsignaturen gleichzeitig konfiguriert werden.

Das KI-Vision-Dienstprogramm zeigt einen angeschlossenen Bildsensor, der zwei farbige Objekte erkennt. Links wird ein Live-Kamerabild mit einem blauen Rahmen links und einem roten Rahmen rechts angezeigt, die jeweils von weißen Begrenzungsrahmen umgeben sind. Schwarze Beschriftungen zeigen deren Namen, Koordinaten und Abmessungen an. Rechts befinden sich die Einstellungen für die Farbsignatur mit Schiebereglern für Farbton und Sättigungsbereich für den roten und den blauen Rahmen. Schaltflächen zum Hinzufügen von Farben, zum Einfrieren des Videos, zum Kopieren und zum Speichern des Bildes befinden sich unten, zusammen mit einer Schaltfläche zum Schließen in der unteren rechten Ecke.

Beispiel

wenn gestartet
[Display if any objects matching the RED_BOX signature is detected.]
für immer
setze Cursor auf Zeile [1] Spalte [1] auf Bildschirm
lösche Zeile [1] auf Bildschirm
[Change the signature to any configured Color Signature.]
mache [AIVision1 v] Schnappschuss von [RED_BOX v]
wenn <[AIVision1 v] Objekt vorhanden?> dann
drucke [Color detected!] auf Bildschirm ▶

Farbcodes#

Ein Farbcode ist ein strukturiertes Muster, das aus zwei bis vier Farbsignaturen in einer bestimmten Reihenfolge besteht. Mithilfe dieser Codes kann der KI-Vision-Sensor vordefinierte Farbmuster erkennen.

Farbcodes eignen sich besonders gut zur Identifizierung komplexer Objekte, zur Ausrichtung an Spielelementen oder zur Erstellung eindeutiger Markierungen für die autonome Navigation. Es können bis zu 8 Farbcodes gleichzeitig konfiguriert werden.

Die Benutzeroberfläche des KI-Vision-Dienstprogramms zeigt einen angeschlossenen Bildsensor, der zwei benachbarte Objekte erkennt: einen blauen Kasten links und einen roten Kasten rechts. Diese sind in einem weißen Begrenzungsrahmen mit der Bezeichnung „BlauRot“ zusammengefasst. Die Erkennungsinformationen umfassen Winkel A: 11° , Koordinaten X: 143, Y: 103 , Breite W: 233 und Höhe H: 108 . Im rechten Bereich werden drei Farbsignaturen angezeigt: „Roter Kasten“, „Blauer Kasten“ und „BlauRot“ mit anpassbaren Farbton- und Sättigungsbereichen. Die Signatur „BlauRot“ kombiniert die Signaturen „Blauer Kasten“ und „Roter Kasten“. Unterhalb des Videobildes befinden sich die Schaltflächen „Video einfrieren , „Bild kopieren“, „Bild speichern“ und „Schließen“.

Beispiel

wenn gestartet
[Display if any objects matching the RED_BLUE code is detected.]
für immer
setze Cursor auf Zeile [1] Spalte [1] auf Bildschirm
lösche Zeile [1] auf Bildschirm
[Change the signature to any configured Color Code.]
mache [AIVision1 v] Schnappschuss von [RED_BLUE v]
wenn <[AIVision1 v] Objekt vorhanden?> dann
drucke [Code detected!] auf Bildschirm ▶

Einstellungen#

Set AI Vision Objektelement#

Der set AI Vision object item-Stackblock legt fest, welches Element im Datensatz verwendet werden soll.

Der Set AI Vision Objekt-Elementstapelblock.#
setze [AIVision1 v] Objektelement auf (1)

Parameter

Beschreibung

Gerät

Welchen KI-Vision-Sensor soll man verwenden?

Artikel

Die Nummer des zu verwendenden Elements im Datensatz.

Beispiel

Ein Blockstapel beginnt mit einem „Beim Start“-Block, gefolgt von einem Kommentarblock mit dem Text „Zeige die größte erkannte AprilTag-ID an“. Innerhalb einer Endlosschleife erfasst ein „AI Vision-Snapshot“-Block ein Bild der AprilTag-IDs. Ein „Wenn“-Block prüft, ob ein AI Vision-Objekt existiert. Ist dies der Fall, weist ein „AI Vision-Objekt-Element setzen“-Block die Objektanzahl einer Variablen zu, und ein „Ausgabe“-Block gibt die Tag-ID des erkannten Objekts auf dem Bildschirm aus.#
wenn gestartet
[Display the largest detected AprilTag ID.]
für immer
mache [AIVision1 v] Schnappschuss von [AprilTag IDs v]
lösche Zeile [1] auf Bildschirm
setze Cursor auf Zeile [1] Spalte [1] auf Bildschirm
wenn <[AIVision1 v] Objekt vorhanden?> dann
setze [AIVision1 v] Objektelement auf ([AIVision1 v] Objektanzahl)
drucke ([AIVision1 v] Objekt [tagID v]) auf Bildschirm ▶

Werte#

AI Vision-Objekt existiert#

Der Boolesche Block AI Vision object exists gibt an, ob im Datensatz ein Objekt erkannt wurde.

  • Wahr – Der Datensatz enthält ein erkanntes Objekt.

  • Falsch – Der Datensatz enthält keine erkannten Objekte.

Das AI Vision-Objekt existiert als Boolescher Block.#
<[AIVision1 v] Objekt vorhanden?>

Parameter

Beschreibung

Gerät

Welchen KI-Vision-Sensor soll man verwenden?

Beispiel

wenn gestartet
[Drive forward if an object is detected.]
für immer
mache [AIVision1 v] Schnappschuss von [KI-Klassifikationen v]
wenn <[AIVision1 v] Objekt vorhanden?> dann
fahre [vorwärts v] für [10] [mm v] ▶

Das AI Vision-Objekt ist#

Der AI Vision-Objekt ist ein Boolescher Block, der meldet, ob ein erkanntes Objekt einer bestimmten Klassifizierung entspricht.

  • Wahr – Das Element im Datensatz ist das spezifische Objekt.

  • Falsch – Das Element im Datensatz ist nicht das gesuchte Objekt.

Die KI-Vision-KI-Klassifizierung ist ein Objekt-Boolescher Block.#
<[AIVision1 v] Objekt ist [BlueBall v]?>

Parameter

Beschreibung

Gerät

Welchen KI-Vision-Sensor soll man verwenden?

Objekt

Welche KI-Klassifizierung soll das Element vergleichen?

Beispiel

wenn gestartet
[Display if a Blue Cube is detected.]
für immer
mache [AIVision1 v] Schnappschuss von [KI-Klassifikationen v]
lösche Zeile [1] auf Bildschirm
setze Cursor auf Zeile [1] Spalte [1] auf Bildschirm
wenn <[AIVision1 v] Objekt vorhanden?> dann
wenn <[AIVision1 v] Objekt ist [BlueCube v]?> dann
drucke [Cube detected!] auf Bildschirm ▶
warte [0.5] Sekunden

AI Vision-Objekt ist AprilTag-ID#

Der AI Vision-Objekt ist AprilTag ID Boolescher Block meldet, ob eine erkannte AprilTag-ID mit einer bestimmten ID übereinstimmt.

  • Wahr – Die AprilTag-ID ist die Nummer.

  • Falsch – Die AprilTag-ID ist nicht die Nummer.

Die KI-Vision erkannte, dass die AprilTag-ID ein Boolescher Block ist.#
<[AIVision1 v] object is AprilTag ID [1] ?>

Parameter

Beschreibung

Gerät

Welchen KI-Vision-Sensor soll man verwenden?

AprilTag-ID-Nummer

Die Nummer, die mit der ermittelten AprilTag-ID-Nummer verglichen werden soll.

Beispiel:

wenn gestartet
[Report if AprilTag ID 3 is detected.]
für immer
Bildschirm löschen
setze Cursor auf Zeile [1] Spalte [1] auf Bildschirm
mache [AIVision1 v] Schnappschuss von [AprilTag IDs v]
wenn <[AIVision1 v] Objekt vorhanden?> dann
wenn <[AIVision1 v] object is AprilTag ID [3] ?> dann
drucke [That is 3!] auf Bildschirm ▶
sonst
drucke [That isn't 3!] auf Bildschirm ▶
Ende
Ende
warte [0.1] Sekunden

Objektzählung in KI-Vision#

Der AI Vision Objektzählungsblock gibt die Anzahl der erkannten Objekte im Datensatz als ganze Zahl aus.

Der Set AI Vision Objekt-Elementstapelblock.#
([AIVision1 v] Objektanzahl)

Parameter

Beschreibung

Gerät

Welchen KI-Vision-Sensor soll man verwenden?

Beispiel

wenn gestartet
[Display the total amount of cubes, rings, and balls.]
für immer
lösche Zeile [1] auf Bildschirm
setze Cursor auf Zeile [1] Spalte [1] auf Bildschirm
mache [AIVision1 v] Schnappschuss von [KI-Klassifikationen v]
wenn <[AIVision1 v] Objekt vorhanden?> dann
drucke ([AIVision1 v] Objektanzahl) auf Bildschirm ▶
Ende
warte [0.5] Sekunden

Eigenschaften eines AI Vision-Objekts#

Es gibt neun Eigenschaften, die zu jedem Objekt (siehe unten) hinzugefügt werden, das nach der Verwendung des Blocks take snapshot gespeichert wird.

Der AI Vision Objekt-Eigenschaftsberichtsblock.#
([AIVision1 v] Objekt [Breite v])

Alle Eigenschaftswerte außer tagID und score beschreiben Position und Größe des erkannten Objekts im Sichtfeld des KI-Vision-Sensors zum Zeitpunkt der Verwendung des Blocks take snapshot. Die Werte werden in Pixeln gemessen, basierend auf der Auflösung des Sensors von 320 × 240 Pixeln.

Parameter

Beschreibung

Gerät

Welchen KI-Vision-Sensor soll man verwenden?

Eigentum

Welche Eigenschaft des erkannten Objekts soll verwendet werden?

Breite#

Die width-Eigenschaft gibt die Breite des erkannten Objekts in Pixeln als ganze Zahl von 1 bis 320 an.

Der AI Vision-Objekt-Eigenschaftenstapelblock, dessen Parameter auf Breite eingestellt ist.#
([AIVision1 v] Objekt [Breite v])

Beispiel

wenn gestartet
[Drive towards an object until its width is larger than 100 pixels.]
für immer
mache [AIVision1 v] Schnappschuss von [KI-Klassifikationen v]
wenn <[AIVision1 v] Objekt vorhanden?> dann
wenn <([AIVision1 v] Objekt [Breite v]) [math_less_than v] [100]> dann
fahre [vorwärts v]
sonst
Fahren stoppen
Ende

Höhe#

Die height-Eigenschaft gibt die Höhe des erkannten Objekts in Pixeln als ganze Zahl von 1 bis 240 an.

Der AI Vision-Objekt-Eigenschaftsstapelblock, dessen Parameter auf Höhe eingestellt ist.#
([AIVision1 v] Objekt [Höhe v])

Beispiel

wenn gestartet
[Drive towards an object until its height is larger than 100 pixels.]
für immer
mache [AIVision1 v] Schnappschuss von [KI-Klassifikationen v]
wenn <[AIVision1 v] Objekt vorhanden?> dann
wenn <([AIVision1 v] Objekt [Höhe v]) [math_less_than v] [100]> dann
fahre [vorwärts v]
sonst
Fahren stoppen
Ende

centerX#

Die centerX-Eigenschaft gibt die x-Koordinate des Mittelpunkts des erkannten Objekts in Pixeln als ganze Zahl von 0 bis 320 an.

Der AI Vision-Objekt-Eigenschaftenstapelblock mit dem auf centerX eingestellten Parameter.#
([AIVision1 v] Objekt [centerX v])

Beispiel

wenn gestartet
[Turn slowly until an object is centered in front of the robot.]
setze Drehgeschwindigkeit auf [30] [% v]
drehe [rechts v]
für immer
mache [AIVision1 v] Schnappschuss von [KI-Klassifikationen v]
wenn <[AIVision1 v] Objekt vorhanden?> dann
wenn <[140] [math_less_than v] ([AIVision1 v] Objekt [centerX v]) [math_less_than v] [180]> dann
Fahren stoppen

ZentrumY#

Die centerY-Eigenschaft gibt die y-Koordinate des Mittelpunkts des erkannten Objekts in Pixeln als ganze Zahl von 0 bis 240 an.

Der AI Vision-Objekt-Eigenschaftenstapelblock mit dem auf centerY gesetzten Parameter.#
([AIVision1 v] Objekt [centerY v])

Beispiel

wenn gestartet
[Drive towards an object until its center y-coordinate is more than 140 pixels.]
für immer
mache [AIVision1 v] Schnappschuss von [KI-Klassifikationen v]
wenn <[AIVision1 v] Objekt vorhanden?> dann
wenn <([AIVision1 v] Objekt [centerY v]) [math_less_than v] [140]> dann
fahre [vorwärts v]
sonst
Fahren stoppen
Ende

Winkel#

Die angle-Eigenschaft gibt die Ausrichtung des erkannten Farbcodes oder der AprilTag-ID als ganze Zahl in Grad von 0 bis 359 an.

Der AI Vision-Objekt-Eigenschaftenstapelblock, dessen Parameter auf Winkel eingestellt ist.#
([AIVision1 v] Objekt [Winkel v])

Beispiel

wenn gestartet
[Slide left or right depending on how the Color Code is rotated.]
für immer
mache [AIVision1 v] Schnappschuss von [RED_BLUE v]
wenn <[AIVision1 v] Objekt vorhanden?> dann
wenn <[50] [math_less_than v] ([AIVision1 v] Objekt [Winkel v]) [math_less_than v] [100]> dann
fahre [rechts v]
sonst wenn <[270] [math_less_than v] ([AIVision1 v] Objekt [Winkel v]) [math_less_than v] [330]> dann
fahre [links v]
sonst
Fahren stoppen
Ende
sonst
Fahren stoppen

originX#

Die originX-Eigenschaft gibt die x-Koordinate der oberen linken Ecke des Begrenzungsrahmens des erkannten Objekts in Pixeln als ganze Zahl von 0 bis 320 an.

Der AI Vision-Objekt-Eigenschaftenstapelblock, dessen Parameter auf originX gesetzt ist.#
([AIVision1 v] Objekt [originX v])

Beispiel

wenn gestartet
[Display if an object is to the left or the right.]
für immer
lösche Zeile [1] auf Bildschirm
setze Cursor auf Zeile [1] Spalte [1] auf Bildschirm
mache [AIVision1 v] Schnappschuss von [KI-Klassifikationen v]
wenn <[AIVision1 v] Objekt vorhanden?> dann
wenn <([AIVision1 v] Objekt [originX v]) [math_less_than v] [160]> dann
drucke [To the left!] auf Bildschirm ▶
sonst
drucke [To the right!] auf Bildschirm ▶
Ende
warte [0.5] Sekunden

UrsprungY#

Die originY-Eigenschaft gibt die y-Koordinate der oberen linken Ecke des Begrenzungsrahmens des erkannten Objekts in Pixeln als ganze Zahl von 0 bis 240 an.

Der AI Vision-Objekt-Eigenschaftenstapelblock, dessen Parameter auf originY gesetzt ist.#
([AIVision1 v] Objekt [originY v])

Beispiel

wenn gestartet
[Display if an object is close or far from the robot.]
für immer
lösche Zeile [1] auf Bildschirm
setze Cursor auf Zeile [1] Spalte [1] auf Bildschirm
mache [AIVision1 v] Schnappschuss von [KI-Klassifikationen v]
wenn <[AIVision1 v] Objekt vorhanden?> dann
wenn <([AIVision1 v] Objekt [originY v]) [math_less_than v] [80]> dann
drucke [Far!] auf Bildschirm ▶
sonst
drucke [Close!] auf Bildschirm ▶
Ende
warte [0.5] Sekunden

tagID#

Die tagID-Eigenschaft gibt die Identifikationsnummer der erkannten AprilTag-ID als ganze Zahl an.

Der AI Vision-Objekt-Eigenschaftenstapelblock, dessen Parameter auf tagID gesetzt ist.#
([AIVision1 v] Objekt [tagID v])

Beispiel

wenn gestartet
[Drive forward when AprilTag ID 0 is detected.]
für immer
mache [AIVision1 v] Schnappschuss von [AprilTag IDs v]
wenn <[AIVision1 v] Objekt vorhanden?> dann
wenn <([AIVision1 v] Objekt [tagID v]) [math_equal v] [0]> dann
fahre [vorwärts v]
sonst
Fahren stoppen
Ende
warte [0.5] Sekunden

Punktzahl#

Die Score-Eigenschaft gibt an, wie sicher sich das Modell bei der erkannten KI-Klassifizierung ist, und zwar in Prozent von 70 % bis 100 %.

Ein niedrigerer Wert bedeutet, dass der Sensor weniger sicher ist, welches Objekt erkannt wurde, während ein höherer Wert bedeutet, dass der Sensor sicherer ist.

Der AI Vision-Objekt-Eigenschaftenstapelblock, dessen Parameter auf tagID gesetzt ist.#
([AIVision1 v] Objekt [Bewertung v])