Codierung mit dem KI-Vision-Sensor in VEXcode EXP-Blöcken

Stellen Sie sicher, dass Sie Farbsignaturen und Farbcodes mit Ihrem KI-Vision-Sensor konfiguriert haben, damit diese mit Ihren Blöcken verwendet werden können. Um mehr darüber zu erfahren, wie Sie diese konfigurieren können, lesen Sie die folgenden Artikel:

Der KI-Vision-Sensor kann auch KI-Klassifizierungen und AprilTags erkennen. Um zu erfahren, wie Sie diese Erkennungsmodi aktivieren, klicken Sie hier:

Um mehr über diese einzelnen Blöcke und deren Verwendung in VEXcode zu erfahren, besuchen Sie die API-Website.


Schnappschuss machen

VEXcode EXP Take Snapshot-Block mit der Bezeichnung: Nimm einen AIVision1-Snapshot von COL1. Es gibt zwei Dropdown-Menüs: eines zur Auswahl des KI-Vision-Sensors und das zweite zur Auswahl des Farbcodes.

Der BlockTake Snapshot erstellt ein Bild von dem, was der KI-Vision-Sensor aktuell sieht, und extrahiert Daten aus dieser Momentaufnahme, die dann in einem Projekt verwendet werden können. Wenn eine Momentaufnahme erstellt wird, müssen Sie angeben, von welchem Objekttyp der KI-Vision-Sensor Daten erfassen soll:

  • Farbsignatur
  • Farbcode
  • KI-Klassifizierungen
  • AprilTags

Durch das Erstellen eines Snapshots wird ein Array aller erkannten Objekte erzeugt, die Sie angegeben haben. Wenn Sie beispielsweise eine „rote“Farbsignaturerkennen möchten und der KI-Vision-Sensor 3 verschiedene rote Objekte erkennt, werden die Daten aller drei in das Array eingefügt.

Weitere Informationen zur Unterscheidung zwischen verschiedenen Objekten finden Sie im Abschnitt „Objektelement festlegen“ in diesem Artikel.

VEXcode EXP Take Snapshot-Block mit der Bezeichnung: Erstelle einen AIVision2-Snapshot von Blue.

In diesem Beispiel werden nur Objekte erkannt, die der konfigurierten Farbsignatur „Blau“ entsprechen, und keine anderen.

Daten aus einer Momentaufnahme

Beachten Sie, dass der KI-Vision-Sensor für alle nachfolgenden Blöcke die zuletzt aufgenommene Momentaufnahme verwendet. Um sicherzustellen, dass Sie immer die aktuellsten Informationen von Ihrem KI-Vision-Sensor erhalten, sollten Sie jedes Mal eine neue Aufnahme machen, wenn Sie Daten daraus abrufen möchten. 

Auflösung

Diagramm der Auflösung des KI-Vision-Sensors. Die obere linke Ecke ist mit 0, 0 beschriftet, die obere rechte Ecke mit 320, 0 und die untere linke Ecke mit 0, 240. Die Mitte des Bildschirms ist mit 160, 120 beschriftet.

Das Verständnis der Auflösung des KI-Vision-Sensors ist für eine genaue Dateninterpretation entscheidend. Der Sensor hat eine Auflösung von 320x240 Pixeln, wobei sich der genaue Mittelpunkt bei den Koordinaten (160, 120) befindet.

X-Koordinaten kleiner als 160 entsprechen der linken Hälfte des Sichtfelds des Sensors, während solche größer als 160 die rechte Hälfte darstellen. Analog dazu bezeichnen Y-Koordinaten unter 120 die obere Hälfte des Bildausschnitts, solche über 120 die untere Hälfte.

Gehen Sie zu „Daten verstehen“ im AI Vision Utility in VEXcode EXP , um mehr darüber zu erfahren, wie Objekte mit dem AI Vision Sensor gemessen werden.

Breite und Höhe

Dies ist die Breite oder Höhe des erkannten Objekts in Pixeln.

Der KI-Vision-Sensor verfolgt einen blauen Fullerene. Der Buckyball ist von einem Tracking-Rechteck umgeben, und die Beschriftung darüber zeigt, dass er eine Breite von 80 Pixeln und eine Höhe von 78 Pixeln hat. Rote Pfeile markieren das Tracking-Rechteck, um dessen Breite und Höhe zu verdeutlichen.

Die Breiten- und Höhenangaben helfen bei der Identifizierung verschiedener Objekte. Ein Buckyball ist beispielsweise höher als ein Ring.

Der KI-Vision-Sensor verfolgt zwei blaue Würfel. Die Würfel sind von Tracking-Rechtecken umgeben, wobei einer davon viel näher an der Kamera ist. Das näher gelegene Objekt hat eine Breite von 144 und eine Höhe von 113, das weiter entfernt gelegene Objekt hat eine Breite von 73 und eine Höhe von 84.

Breite und Höhe geben auch die Entfernung eines Objekts vom KI-Vision-Sensor an. Kleinere Messwerte bedeuten in der Regel, dass das Objekt weiter entfernt ist, während größere Messwerte darauf hindeuten, dass es näher ist.

VEXcode Blocks-Projekt, bei dem sich der Roboter dem Objekt so lange nähert, bis dieses eine bestimmte Breite erreicht hat, bevor er anhält. Das Projekt beginnt mit einem „Wenn gestartet“-Block und einer „Unendlich“-Schleife. Der Rest des Projekts befindet sich innerhalb der Forever-Schleife. Zuerst wird ein AIVision1-Snapshot von Blue erstellt, der Rest des Projekts befindet sich dann in einem If-Block, der prüft, ob ein AIVision1-Objekt existiert. Innerhalb dieses If-Blocks befindet sich ein If-Else-Block, der Folgendes liest: Wenn die Breite des AIVision1-Objekts kleiner als 250 ist, dann fahre vorwärts, andernfalls halte die Fahrt an.

In diesem Beispiel wird die Breite des Objekts zur Navigation verwendet. Der Roboter nähert sich dem Objekt so lange, bis die Breite eine bestimmte Größe erreicht hat, bevor er anhält.

ZentrumX und ZentrumY

Dies sind die Mittelpunktkoordinaten des erkannten Objekts in Pixeln.

Der KI-Vision-Sensor verfolgt einen blauen Fullerene. Der Buckyball ist von einem Tracking-Rechteck umgeben, und die Beschriftung darüber zeigt, dass er eine X-Position von 176 und eine Y-Position von 117 hat. Der Mittelpunkt des Tracking-Rechtecks ist hervorgehoben, um zu verdeutlichen, dass die Position vom Mittelpunkt aus gemessen wird.

Die CenterX- und CenterY-Koordinaten helfen bei der Navigation und Positionierung. Der KI-Vision-Sensor hat eine Auflösung von 320 x 240 Pixeln.

Der KI-Vision-Sensor verfolgt zwei blaue Würfel. Die Würfel sind von Tracking-Rechtecken umgeben, wobei einer davon viel näher an der Kamera ist. Das nähere Objekt hat eine Y-Position von 184, das weiter entfernte eine Y-Position von 70.

Man kann erkennen, dass ein Objekt, das näher am KI-Vision-Sensor ist, eine niedrigere CenterY-Koordinate hat als ein Objekt, das weiter entfernt ist.

VEXcode Blocks-Projekt, bei dem sich der Roboter so lange auf ein erkanntes Objekt zudreht, bis es sich im Zentrum des Sichtfelds des KI-Vision-Sensors befindet. Das Projekt beginnt mit einem „Wenn gestartet“-Block und einer „Unendlich“-Schleife. Der Rest des Projekts befindet sich innerhalb der Forever-Schleife. Zuerst wird ein AIVision1-Snapshot von Blue erstellt, der Rest des Projekts befindet sich dann in einem If-Block, der prüft, ob ein AIVision1-Objekt existiert. Innerhalb dieses If-Blocks befindet sich ein If-Else-Block, der liest: Wenn AIVision1 object centerX größer als 150 und AIVision1 object centerX kleiner als 170, dann rechts abbiegen, sonst anhalten.

Da sich in diesem Beispiel der Mittelpunkt des Sichtfelds des KI-Vision-Sensors bei (160, 120) befindet, dreht sich der Roboter nach rechts, bis die CenterX-Koordinate eines erkannten Objekts größer als 150 Pixel, aber kleiner als 170 Pixel ist.

Winkel

Animation eines roten und eines grünen Quadrats, die gemeinsam gedreht werden, um den Wert von 360 Grad eines Winkels zu veranschaulichen.

Angle ist eine Eigenschaft, die nur fürFarbcodes undAprilTagsverfügbar ist. Dies stellt dar, ob der erkannte Farbcodeoder AprilTag anders ausgerichtet ist.

Der KI-Vision-Sensor verfolgt einen Farbcode von Grün nach Blau. Die Videoübertragung zeigt einen grünen Würfel, der auf einem blauen Würfel gestapelt ist. Der Winkelwert des Farbcodes ist hervorgehoben und beträgt 87 Grad, was darauf hinweist, dass der Farbcode vertikal ausgerichtet ist.

Sie können überprüfen, ob der Roboter in Bezug auf den Farbcode oderAprilTag anders ausgerichtet ist und entsprechend Navigationsentscheidungen treffen.

Der KI-Vision-Sensor verfolgt einen Farbcode von Grün nach Blau. Die Videoübertragung zeigt einen grünen Würfel neben einem blauen Würfel, aber sie befinden sich in einem ungünstigen Winkel zum Sensor. Der Winkelwert des Farbcodes ist hervorgehoben und lautet 0 Grad, was bedeutet, dass der Winkel des Farbcodes nicht abgelesen werden kann.

Wird beispielsweise einFarbcode nicht im richtigen Winkel erkannt, kann das von ihm dargestellte Objekt möglicherweise nicht richtig vom Roboter aufgenommen werden.

OriginX und OriginY

OriginX und OriginY sind die Koordinaten in der oberen linken Ecke des erkannten Objekts in Pixeln.

Der KI-Vision-Sensor verfolgt einen blauen Fullerene. Der Buckyball ist von einem Tracking-Rechteck umgeben, und die Beschriftung darüber zeigt, dass er eine X-Position von 176 und eine Y-Position von 117 hat. Die obere linke Ecke des Tracking-Rechtecks ist hervorgehoben, um zu verdeutlichen, dass die Ursprungsposition von dieser oberen linken Ecke aus gemessen wird.

Die Koordinaten OriginX und OriginY helfen bei der Navigation und Positionierung. Durch die Kombination dieser Koordinate mit der Breite und Höhe des Objekts lässt sich die Größe des Begrenzungsrahmens des Objekts bestimmen. Dies kann beim Verfolgen sich bewegender Objekte oder beim Navigieren zwischen Objekten hilfreich sein.

VEXcode Blocks-Projekt, in dem der Roboter ein erkanntes Objekt als Rechteck auf seinen Bildschirm zeichnet. Das Projekt beginnt mit einem „Wenn gestartet“-Block und einer „Unendlich“-Schleife. Der Rest des Projekts befindet sich innerhalb der Forever-Schleife. Zuerst wird ein AIVision1-Snapshot von Blue erstellt, der Rest des Projekts befindet sich dann in einem If-Block, der prüft, ob ein AIVision1-Objekt existiert. Innerhalb dieses If-Blocks befindet sich ein Draw-Rechteck-Block, der Folgendes liest: draw rectangle AIVision1 object originX, AIVision1 object originY, AIVision1 object width, AIVision1 object height on Brain.

In diesem Beispiel wird auf dem Gehirn ein Rechteck gezeichnet, wobei die genauen Koordinaten seines Ursprungs, seiner Breite und seiner Höhe verwendet werden.

tagID

Die Tag-ID ist nur fürAprilTagsverfügbar. Dies ist die ID-Nummer für den angegebenenAprilTag.

Drei AprilTags werden von der KI-Vision-Utility verfolgt. Jedes Tag wird identifiziert, lokalisiert und umrissen, wodurch seine Verfolgung durch das System angezeigt wird. Die AprilTag-IDs in diesem Beispiel lauten 0, 3 und 9.

Durch die Identifizierung spezifischer AprilTags wird eine selektive Navigation ermöglicht. Sie können Ihren Roboter so programmieren, dass er sich auf bestimmte Markierungen zubewegt, während er andere ignoriert, und diese somit effektiv als Wegweiser für die automatisierte Navigation nutzen.

Punktzahl

Die Score-Eigenschaft wird verwendet, wenn mit dem KI-Vision-SensorKI-Klassifizierungen erkannt werden.

Das KI-Vision-Tool verfolgt vier Objekte: zwei Buckyballs und zwei Ringe. Jedes Objekt wird identifiziert, lokalisiert und umrissen, wodurch seine Verfolgung durch das System angezeigt wird. Das Tool listet außerdem die KI-Klassifizierungspunktzahl jedes Objekts auf; in diesem Beispiel beträgt die Punktzahl jeweils 99 %.

Der Konfidenzwert gibt an, wie sicher sich der KI-Vision-Sensor bei seiner Erkennung ist. In diesem Bild ist die KI-Klassifizierung dieser vier Objekte zu 99 % sicher. Mithilfe dieses Wertes können Sie sicherstellen, dass sich Ihr Roboter nur auf Erkennungen mit hoher Treffsicherheit konzentriert.


Objekt festlegen

Wenn ein Objekt vom KI-Vision-Sensor erkannt wird, wird es in ein Array eingefügt. Standardmäßig liest der KI-Vision-Sensor Daten vom ersten Objekt im Array, also dem Objekt mit dem Index 1. Wenn Ihr KI-Vision-Sensor nur ein Objekt erkannt hat, wird dieses Objekt standardmäßig ausgewählt.

Wenn Ihr KI-Vision-Sensor jedoch mehrere Objekte gleichzeitig erkannt hat, müssen Sie den Block „Objekt festlegen Element verwenden, um anzugeben, von welchem Objekt Sie Daten abrufen möchten.

VEXcode EXP Set object item block that reads Set AIVision1 object item to 1. Es gibt ein Dropdown-Menü zur Auswahl des KI-Vision-Sensors und ein Textfeld zur Eingabe des Objektindex.

Wenn der KI-Vision-Sensor mehrere Objekte erkennt, werden diese in der Anordnung vom größten zum kleinsten Objekt angeordnet. Das bedeutet, dass das größte erkannte Objekt immer den Objektindex 1 erhält und das kleinste Objekt immer die höchste Zahl.

Der KI-Vision-Sensor verfolgt zwei blaue Würfel. Die Würfel sind von Tracking-Rechtecken umgeben, wobei einer davon viel näher an der Kamera ist. Das näher gelegene hat eine Breite von 136, das weiter entfernt gelegene eine Breite von 78.

In diesem Beispiel wurden zwei Objekte mit der Farbsignatur „Blau“ erkannt. Beide Elemente werden in das Array eingefügt, wenn der BlockTake Snapshot verwendet wird.

Der KI-Vision-Sensor verfolgt zwei blaue Würfel. Die Würfel sind von Tracking-Rechtecken umgeben, wobei einer davon viel näher an der Kamera ist. Der näher gelegene Würfel ist mit 1 und der weiter entfernte Würfel mit 2 gekennzeichnet.

Hierbei würde das vorderste Objekt den Objektindex 1 erhalten, da es das größte Objekt ist, und das kleinste Objekt den Objektindex 2.


Objekt existiert

Bevor Daten aus einem Snapshot abgerufen werden, ist es wichtig zu überprüfen, ob der KI-Vision-Sensor Objekte aus diesem Snapshot erkannt hat. Hier kommt der BlockObjekte existieren ins Spiel.

VEXcode EXP Objekt existiert Block, der liest AIVision1 Objekt existiert? Es gibt ein Dropdown-Menü zur Auswahl des KI-Vision-Sensors.

Dieser Block gibt einen Wert vonWahr), 1 (Falsch), (Falsch) oder(Nicht wahr zurück, je nachdem, ob im zuletzt erstellten Snapshot Objekte erkannt wurden.

Block sollteverwendet werden um sicherzustellen, dass Sie nicht versuchen, Daten aus einem möglicherweise leeren Snapshot abzurufen.

VEXcode Blocks-Projekt, in dem der Roboter auf ein erkanntes blaues Objekt zufährt. Das Projekt beginnt mit einem „Wenn gestartet“-Block und einer „Unendlich“-Schleife. Der Rest des Projekts befindet sich innerhalb der Forever-Schleife. Zuerst wird ein AIVision2-Snapshot von Blue erstellt, dann folgt ein If-Else-Block, der prüft, ob ein AIVision2-Objekt existiert. Falls ja, wird vorwärts gefahren, andernfalls wird die Fahrt gestoppt.

Hier wird der Roboter beispielsweise ständig Schnappschüsse mit dem KI-Vision-Sensor aufnehmen. Wenn es mit der „blauen Farbsignatur erkennt, fährt es.


Wenn ein Schnappschuss nicht die „Blaue“ Farbsignaturaufweist, stoppt der Roboter seine Bewegung.


Objektanzahl

VEXcode EXP Objektzählerblock, der die Anzahl der AIVision1-Objekte liest. Es gibt ein Dropdown-Menü zur Auswahl des KI-Vision-Sensors.

Mit dem Block Objektanzahl KI-Vision-Sensor in seiner letzten Momentaufnahme erkennen konnte. 

Der KI-Vision-Sensor verfolgt zwei blaue Würfel. Die Würfel sind von Tracking-Rechtecken umgeben, wobei einer davon viel näher an der Kamera ist.

Hier sehen wir, dass der KI-Vision-Sensor die konfigurierte Farbsignatur Farbe „Blau“ hat und zwei Objekte erkennt.

VEXcode Blocks-Projekt, in dem der Roboter die Anzahl der erkannten blauen Objekte auf der Druckkonsole ausgibt. Das Projekt beginnt mit einem „Wenn gestartet“-Block und einer „Unendlich“-Schleife. Der Rest des Projekts befindet sich innerhalb der Forever-Schleife. Zuerst erstellen Sie einen AIVision2-Snapshot von Blue, löschen alle Zeilen in der Konsole und setzen dann den Cursor in der Konsole auf die nächste Zeile. Als Nächstes folgt ein If-Block, der prüft, ob ein AIVision2-Objekt existiert. Falls ja, wird die Anzahl der AIVision2-Objekte in der Konsole ausgegeben und der Cursor auf die nächste Zeile gesetzt. Außerhalb des If-Blocks befindet sich ein Wait-Block, der so eingestellt ist, dass er 2 Sekunden wartet.Die Ausgabe der Druckkonsole des vorherigen VEXcode Blocks-Projekts mit der gedruckten Meldung 2.

In diesem Code würde der KI-Vision-Sensor eine Momentaufnahme machen und „2“ auf der VEXcode-Konsole ausgeben, da er nur zwei „Blaue“ Farbsignaturenerkennt.


Objekt

VEXcode EXP AI Vision Objektblock, der die Breite des AIVision1-Objekts liest. Es gibt ein Dropdown-Menü zur Auswahl des KI-Vision-Sensors und ein geöffnetes Dropdown-Menü zur Auswahl des zu erfassenden Objektattributs. Die Liste der Optionen lautet: Breite, Höhe, MittelpunktX, MittelpunktY, Winkel, UrsprungX, UrsprungY, TagID und Punktzahl.

Der BlockObjekt ermöglicht es Ihnen, die Eigenschaften des angegebenen Objekts auszugeben. Dies ermöglicht es Ihnen, alle verfügbaren Daten aus der zuletzt erstellten Momentaufnahme zu nutzen.

Folgende Objekteigenschaften können aus erstellten Momentaufnahmen abgerufen werden:

  • Breite
  • Höhe
  • centerX
  • ZentrumY
  • Winkel
  • originX
  • UrsprungY
  • tagID
  • Punktzahl

Weitere Informationen zu diesen Eigenschaften finden Sie im Abschnitt „Daten aus der Momentaufnahme“ dieses Artikels.


AprilTag erkannt

VEXcode EXP erkannte AprilTag ist ein Block, der liest: AIVision1 erkannte AprilTag ist 1? Es gibt ein Dropdown-Menü zur Auswahl des KI-Vision-Sensors.

Der Block AprilTags“ ist nur verfügbar, wenn der-Erkennungsmodus aktiviert ist.

Dieser Block gibt True oder False zurück, je nachdem, ob es sich bei dem angegebenen Objekt um einen bestimmten AprilTag handelt.

Drei AprilTags werden von der KI-Vision-Utility verfolgt. Jedes Tag wird identifiziert, lokalisiert und umrissen, wodurch seine Verfolgung durch das System angezeigt wird. Die AprilTag-IDs in diesem Beispiel lauten 0, 3 und 9.

Werden in einem einzelnen Snapshot mehrere AprilTags erkannt, werden sie im Array anhand ihrer identifizierten ID und nicht anhand ihrer Größe angeordnet.

In diesem Bild werden drei AprilTags mit den IDs 0, 3 und 9 erkannt. Sie werden in aufsteigender Reihenfolge ihrer ID im Array angeordnet. Das Objekt an Index 1 entspricht dem AprilTag mit der ID 0, an Index 2 dem AprilTag mit der ID 3 und an Index 3 dem AprilTag mit der ID 9.

Weitere Informationen darüber, was AprilTags sind und wie deren Erkennung mit dem AI Vision Sensor aktiviert werden kann, finden Sie in diesem Artikel.


KI-Klassifizierung ist

VEXcode EXP AI Classification ist ein Block, der AIVision1 liest. Die KI-Klassifizierung ist BlueBall? Es gibt ein Dropdown-Menü zur Auswahl des KI-Vision-Sensors und ein weiteres Dropdown-Menü zur Auswahl des Zielobjekts für die KI-Klassifizierung.

Der BlockAI Classification is ist nur verfügbar, wenn der Erkennungsmodus „AI Classification Detection Mode aktiviert ist.

 

Dieser Block gibt True oder False zurück, je nachdem, ob es sich bei dem angegebenen Objekt um eine bestimmte KI-Klassifizierung handelt.

Welche KI-Klassifizierungen vom KI-Vision-Sensor erkannt werden können, hängt vom verwendeten Modell ab. Weitere Informationen zu den verfügbaren KI-Klassifizierungen und deren Erkennung mit dem KI-Vision-Sensor finden Sie in diesem Artikel.

For more information, help, and tips, check out the many resources at VEX Professional Development Plus

Last Updated: