Kodowanie z wykorzystaniem czujnika wizyjnego AI w blokach VEXcode EXP

Upewnij się, że w swoim czujniku AI Vision masz skonfigurowane Sygnatur kolorów i Kody kolorów , aby można było ich używać z klockami. Aby dowiedzieć się więcej na temat ich konfiguracji, przeczytaj poniższe artykuły:

Czujnik wizyjny AI potrafi również wykrywać klasyfikacje AI i AprilTagi. Aby dowiedzieć się, jak włączyć te tryby wykrywania, przejdź tutaj:

Aby dowiedzieć się więcej na temat poszczególnych bloków i sposobu ich używania w VEXcode, przejdź do witryny API.


Zrób migawkę

Blok VEXcode EXP Take Snapshot o treści: Zrób migawkę AIVision1 COL1. Dostępne są dwie listy rozwijane: jedna do wyboru czujnika AI Vision, a druga do wyboru kodu koloru.

BlokTake Snapshot wykonuje zdjęcie tego, co aktualnie widzi czujnik AI Vision i pobiera z tej migawki dane, które można następnie wykorzystać w projekcie. Podczas wykonywania migawki należy określić typ obiektu, o którym czujnik AI Vision ma zbierać dane:

  • Podpis kolorystyczny
  • Kod kolorów
  • Klasyfikacje AI
  • KwiecieńTagi

Wykonanie migawki spowoduje utworzenie tablicy wszystkich wykrytych obiektów, które określiłeś. Na przykład, jeśli chcesz wykryć sygnaturę koloru „czerwonego”, a czujnik wizyjny AI wykrył 3 różne czerwone obiekty, dane ze wszystkich trzech zostaną umieszczone w tablicy.

Aby uzyskać więcej informacji na temat określania pozycji pomiędzy różnymi obiektami, przejdź do sekcji „Ustawianie elementu obiektu” w tym artykule.

Blok VEXcode EXP Take Snapshot o treści: Zrób migawkę AIVision2 Blue.

W tym przykładzie wykryte zostaną wyłącznie obiekty odpowiadające skonfigurowanemu „Niebieskiemu” sygnaturze koloru i żadne inne.

Dane pobrane ze migawki

Należy pamiętać, że czujnik AI Vision użyje ostatniej zrobionej migawki dla wszystkich kolejnych bloków. Aby mieć pewność, że zawsze otrzymujesz najbardziej aktualne informacje z czujnika AI Vision, wykonuj migawkę za każdym razem, gdy chcesz pobrać z niej dane. 

Rezolucja

Diagram rozdzielczości czujnika AI Vision. Lewy górny róg jest oznaczony liczbą 0, 0, prawy górny róg jest oznaczony liczbą 320, 0, a lewy dolny róg jest oznaczony liczbą 0, 240. Środek ekranu oznaczony jest liczbami 160, 120.

Zrozumienie rozdzielczości czujnika AI Vision jest kluczowe dla dokładnej interpretacji danych. Rozdzielczość czujnika wynosi 320x240 pikseli, a dokładny środek znajduje się na współrzędnych (160, 120).

Współrzędne X mniejsze niż 160 odpowiadają lewej połowie pola widzenia czujnika, natomiast większe niż 160 – prawej połowie. Podobnie współrzędne Y mniejsze od 120 oznaczają górną połowę widoku, a te większe od 120 – dolną połowę.

Aby uzyskać więcej informacji na temat pomiaru obiektów za pomocą czujnika AI Vision, przejdź do sekcji Zrozumienie danych w narzędziu AI Vision Utility w VEXcode EXP.

Szerokość i wysokość

Jest to szerokość lub wysokość wykrytego obiektu w pikselach.

Na zdjęciu czujnik AI Vision śledzący Blue Buckyball. Wokół Buckyballa znajduje się prostokąt śledzący, a etykieta powyżej pokazuje, że ma on szerokość 80 pikseli i wysokość 78 pikseli. Czerwone strzałki podświetlają prostokąt śledzący, aby pokazać jego szerokość i wysokość.

Pomiary szerokości i wysokości pomagają identyfikować różne obiekty. Na przykład Buckyball będzie miał większą wysokość niż Ring.

Na zdjęciu czujnik AI Vision śledzący dwa niebieskie kostki. Kostki mają wokół siebie prostokąty śledzące, a jeden z nich znajduje się znacznie bliżej kamery. Bliższy ma szerokość 144 i wysokość 113, a dalszy ma szerokość 73 i wysokość 84.

Szerokość i wysokość wskazują również odległość obiektu od czujnika AI Vision. Mniejsze pomiary zwykle oznaczają, że obiekt jest dalej, podczas gdy większe pomiary sugerują, że jest bliżej.

Projekt VEXcode Blocks, w którym robot będzie zbliżał się do obiektu, aż osiągnie on określoną szerokość, po czym się zatrzyma. Projekt rozpoczyna się blokiem When started i pętlą Forever. Reszta projektu mieści się w pętli Forever. Najpierw wykonaj migawkę AIVision1 obiektu Blue, a następnie reszta projektu znajdzie się w bloku If, który odczytuje, czy obiekt AIVision1 istnieje? Wewnątrz bloku If znajduje się blok If Else, który informuje, że jeśli szerokość obiektu AIVision1 jest mniejsza niż 250, należy kontynuować jazdę, w przeciwnym razie należy zatrzymać jazdę.

W tym przykładzie szerokość obiektu jest wykorzystywana do nawigacji. Robot będzie zbliżał się do obiektu, aż osiągnie on określoną szerokość, po czym się zatrzyma.

CenterX i Center Y

Są to współrzędne środka wykrytego obiektu w pikselach.

Na zdjęciu czujnik AI Vision śledzący Blue Buckyball. Wokół Buckyballa znajduje się prostokąt śledzący, a etykieta powyżej pokazuje, że jego pozycja X wynosi 176, a pozycja Y 117. Środek prostokąta śledzenia jest zaznaczony, aby pokazać, że położenie jest mierzone od środka.

Współrzędne CenterX i CenterY ułatwiają nawigację i pozycjonowanie. Czujnik AI Vision ma rozdzielczość 320 x 240 pikseli.

Na zdjęciu czujnik AI Vision śledzący dwa niebieskie kostki. Wokół kostek znajdują się prostokąty śledzące, a jeden z nich znajduje się znacznie bliżej kamery. Bliższy ma pozycję Y równą 184, a dalszy ma pozycję Y równą 70.

Można zauważyć, że obiekt znajdujący się bliżej czujnika AI Vision będzie miał niższą współrzędną CenterY niż obiekt znajdujący się dalej.

Projekt VEXcode Blocks, w którym robot będzie zwracał się w stronę wykrytego obiektu, aż znajdzie się on w centrum pola widzenia czujnika wizyjnego AI. Projekt rozpoczyna się blokiem When started i pętlą Forever. Reszta projektu mieści się w pętli Forever. Najpierw wykonaj migawkę AIVision1 obiektu Blue, a następnie reszta projektu znajdzie się w bloku If, który odczytuje, czy obiekt AIVision1 istnieje? Wewnątrz bloku If znajduje się blok If Else, który odczytuje, że jeśli środek obiektu AIVision1 o wartości środka X jest większy niż 150 i środek obiektu AIVision1 o wartości środka X jest mniejszy niż 170, należy skręcić w prawo, w przeciwnym razie należy zatrzymać jazdę.

W tym przykładzie, ponieważ środek pola widzenia czujnika AI Vision wynosi (160, 120), robot skręci w prawo, dopóki współrzędna środka X wykrytego obiektu nie będzie większa niż 150 pikseli, ale mniejsza niż 170 pikseli.

Kąt

Animacja przedstawiająca czerwony i zielony kwadrat obracane jednocześnie w celu zademonstrowania 360 stopni wartości kąta.

Kąt jest właściwością dostępną wyłącznie dla kodów kolorów iAprilTags. Oznacza to, czy wykryty kod kolorulub AprilTag jest zorientowany inaczej.

Czujnik AI Vision śledzi kod koloru zielonego, a następnie niebieskiego. Na nagraniu widać zieloną kostkę ułożoną na niebieskiej kostce. Wartość kąta kodu koloru jest podświetlona i wynosi 87 stopni, co oznacza, że kod koloru jest zorientowany pionowo.

Można sprawdzić, czy robot jest zorientowany inaczej w stosunku do kodu koloru lubAprilTag i na tej podstawie podjąć decyzje nawigacyjne.

Czujnik AI Vision śledzi kod koloru zielonego, a następnie niebieskiego. Na nagraniu widać Zieloną Kostkę leżącą obok Niebieskiej Kostki, ale są one ustawione pod nietypowym kątem w porównaniu do czujnika. Wartość kąta kodu koloru jest podświetlona i wynosi 0 stopni, co oznacza, że kąta kodu koloru nie można odczytać.

Na przykład, jeśli kod koloru nie zostanie wykryty pod odpowiednim kątem, robot może nie być w stanie prawidłowo podnieść obiektu, który on przedstawia.

OriginX i OriginY

OriginX i OriginY to współrzędne w lewym górnym rogu wykrytego obiektu w pikselach.

Na zdjęciu czujnik AI Vision śledzący Blue Buckyball. Wokół Buckyballa znajduje się prostokąt śledzący, a etykieta powyżej pokazuje, że jego pozycja X wynosi 176, a pozycja Y 117. Lewy górny róg prostokąta śledzenia jest zaznaczony, aby pokazać, że położenie początkowe jest mierzone od jego lewego górnego rogu.

Współrzędne OriginX i OriginY ułatwiają nawigację i pozycjonowanie. Łącząc tę współrzędną z szerokością i wysokością obiektu, można określić rozmiar pola ograniczającego obiekt. Może to pomóc w śledzeniu ruchomych obiektów lub nawigowaniu pomiędzy obiektami.

Projekt VEXcode Blocks, w którym robot narysuje wykryty obiekt na swoim ekranie jako prostokąt. Projekt rozpoczyna się blokiem When started i pętlą Forever. Reszta projektu mieści się w pętli Forever. Najpierw wykonaj migawkę AIVision1 obiektu Blue, a następnie reszta projektu znajdzie się w bloku If, który odczytuje, czy obiekt AIVision1 istnieje? Wewnątrz bloku If znajduje się blok Draw rectangle, który odczytuje: narysuj prostokąt AIVision1 object originX, AIVision1 object originY, AIVision1 object width, AIVision1 object height w Brain.

W tym przykładzie prostokąt zostanie narysowany w mózgu przy użyciu dokładnych współrzędnych jego początku, szerokości i wysokości.

identyfikator tagu

TagID jest dostępny tylko dla AprilTags. To jest numer ID dla określonegoAprilTag.

Narzędzie AI Vision Utility śledzi trzy AprilTagi. Każdy tag jest identyfikowany, zlokalizowany i oznaczony, co wskazuje, że jest śledzony przez system. Identyfikatory AprilTag w tym przykładzie to 0, 3 i 9.

Zidentyfikowanie konkretnego AprilTags umożliwia selektywną nawigację. Możesz zaprogramować robota tak, aby poruszał się w kierunku określonych znaczników, ignorując inne. W ten sposób możesz wykorzystać je jako drogowskazy do automatycznej nawigacji.

Wynik

Właściwość wyniku jest używana w przypadku wykryciaklasyfikacji AI przez czujnik wizyjny AI.

Narzędzie AI Vision śledzi cztery obiekty: dwa BuckyBalls i dwa Rings. Każdy obiekt zostaje zidentyfikowany, zlokalizowany i opisany, co wskazuje na to, że system go śledzi. Narzędzie wyświetla także wynik klasyfikacji AI każdego obiektu; w tym przykładzie każdy wynik wynosi 99%.

Wynik pewności wskazuje, jak pewny jest czujnik AI Vision, że wykryje błąd. Na tym obrazku identyfikacja klasyfikacji AI tych czterech obiektów jest na poziomie 99% pewna. Za pomocą tego wyniku możesz mieć pewność, że Twój robot skupi się tylko na wykryciach o wysokiej pewności.


Ustaw element obiektu

Gdy czujnik wizyjny AI wykryje obiekt, jest on umieszczany w tablicy. Domyślnie czujnik AI Vision pobiera dane z pierwszego obiektu w tablicy lub obiektu o indeksie 1. Jeśli czujnik AI Vision wykrył tylko jeden obiekt, to obiekt ten zostanie wybrany domyślnie.

Jeśli jednak czujnik AI Vision wykrył wiele obiektów jednocześnie, należy użyć blokuUstaw element obiektu , aby określić, z którego obiektu mają zostać pobrane dane.

VEXcode EXP Ustaw blok elementu obiektu, który wyświetla Ustaw element obiektu AIVision1 na 1. Znajduje się tam lista rozwijana umożliwiająca wybór czujnika AI Vision oraz pole tekstowe umożliwiające wprowadzenie indeksu obiektu.

Gdy czujnik wizyjny AI wykryje wiele obiektów, są one układane w szeregu od największego do najmniejszego. Oznacza to, że największy wykryty obiekt będzie zawsze ustawiany na indeks obiektu 1, a najmniejszy obiekt będzie zawsze ustawiany na najwyższy numer.

Na zdjęciu czujnik AI Vision śledzący dwa niebieskie kostki. Kostki mają wokół siebie prostokąty śledzące, a jeden z nich znajduje się znacznie bliżej kamery. Bliższy ma szerokość 136, a dalszy 78.

W tym przykładzie wykryto dwa obiekty z sygnaturą kolorui kolorem „Niebieski”. Oba zostaną umieszczone w tablicy, gdy użyty zostanie blokTake Snapshot.

Na zdjęciu czujnik AI Vision śledzący dwa niebieskie kostki. Wokół kostek znajdują się prostokąty śledzące, a jeden z nich znajduje się znacznie bliżej kamery. Bliższy sześcian jest oznaczony liczbą 1, a dalszy sześcian jest oznaczony liczbą 2.

Tutaj obiekt z przodu otrzymałby indeks obiektu 1, ponieważ jest największym obiektem, a najmniejszy obiekt otrzymałby indeks obiektu 2.


Obiekt istnieje

Przed pobraniem jakichkolwiek danych ze migawki sprawdzić, czy czujnik AI Vision wykrył jakiekolwiek obiekty na tej migawce. Tutaj wchodzi w grę blokObject Exists.

Czy istnieje blok VEXcode EXP Object, który odczytuje obiekt AIVision1? Z listy rozwijanej można wybrać czujnik AI Vision.

Ten blok zwróci wartośćPrawda lubFałsz w zależności od tego, czy w ostatniej wykonanej migawce wykryto jakiekolwiek obiekty.

Ten blok powinienzawsze być używany, aby mieć pewność, że nie próbujesz pobrać żadnych danych z potencjalnie pustej migawki.

Projekt VEXcode Blocks, w którym robot będzie jechał w kierunku wykrytego niebieskiego obiektu. Projekt rozpoczyna się blokiem When started i pętlą Forever. Reszta projektu mieści się w pętli Forever. Najpierw wykonaj migawkę AIVision2 obiektu Blue, a następnie blok If Else, który odczytuje, czy obiekt AIVision2 istnieje, a następnie kontynuuje działanie, w przeciwnym razie zatrzymuje je.

Na przykład robot będzie stale robił zdjęcia za pomocą czujnika wizyjnego AI. Jeżeli zidentyfikuje dowolny obiekt z sygnaturą koloru „niebieskiego” , pojedzie do przodu.


Jeżeli na jakimkolwiek zdjęciu nie będzie znajdował się podpis koloru „niebieskiego” , robot przestanie się poruszać.


Liczba obiektów

Blok VEXcode EXP zliczający obiekty, który odczytuje liczbę obiektów AIVision1. Z listy rozwijanej można wybrać czujnik AI Vision.

Użycie bloku Object count pozwoli Ci zobaczyć, ile obiektów o konkretnym kolorowym podpisie czujnik wizyjny AI Vision może wykryć w swoim ostatnim migawce. 

Na zdjęciu czujnik AI Vision śledzący dwa niebieskie kostki. Kostki mają wokół siebie prostokąty śledzące, a jeden z nich znajduje się znacznie bliżej kamery.

Tutaj widzimy, że czujnik AI Vision ma skonfigurowany podpis koloru , „Niebieski” i wykrywa dwa obiekty.

Projekt VEXcode Blocks, w którym robot będzie drukował liczbę wykrytych niebieskich obiektów w konsoli drukowania. Projekt rozpoczyna się blokiem When started i pętlą Forever. Reszta projektu mieści się w pętli Forever. Najpierw wykonaj migawkę AIVision2 Blue, wyczyść wszystkie wiersze w konsoli, a następnie ustaw kursor na następnym wierszu w konsoli. Następnie znajduje się blok If, który odczytuje, czy obiekt AIVision2 istnieje, a następnie wyświetla liczbę obiektów AIVision2 w konsoli i ustawia kursor w następnym wierszu. Poza blokiem If znajduje się blok Wait, który czeka 2 sekundy.Wyjście konsoli drukowania z poprzedniego projektu VEXcode Blocks z wydrukowaną wiadomością o wartości 2.

W tym kodzie czujnik AI Vision wykonałby migawkę i wyświetlił „2” na konsoli VEXcode, ponieważ wykrywa tylko dwa sygnatury koloru „niebieskiego” .


Obiekt

Blok obiektu VEXcode EXP AI Vision odczytujący szerokość obiektu AIVision1. Dostępna jest lista rozwijana umożliwiająca wybór czujnika AI Vision oraz otwarte menu rozwijane umożliwiające wybranie atrybutu obiektu do wykrywania. Lista opcji obejmuje szerokość, wysokość, środekX, środekY, kąt, początekX, początekY, identyfikator tagu i wynik.

BlokObiekt umożliwia zgłoszenie właściwości wskazanego obiektu. Dzięki temu możesz wykorzystać dowolne dostępne dane pobrane z ostatnio wykonanej migawki.

Właściwości obiektu, które można wyodrębnić z wykonanych migawek, to:

  • szerokość
  • wysokość
  • środekX
  • środek Y
  • kąt
  • pochodzenieX
  • pochodzenieY
  • identyfikator tagu
  • wynik

Aby uzyskać więcej informacji na temat tych właściwości, przeczytaj sekcję „Dane pobrane ze migawki” w tym artykule.


Wykryto AprilTag to

Wykryto kod VEXcode EXP AprilTag to blok odczytujący AIVision1 wykryto AprilTag wynosi 1? Z listy rozwijanej można wybrać czujnik AI Vision.

BlokWykryto AprilTag to jest dostępny tylko wtedy, gdy włączony jest tryb wykrywania AprilTag

Ten blok będzie raportował wartość Prawda lub Fałsz w zależności od tego, czy określony obiekt jest konkretnym AprilTag.

Narzędzie AI Vision Utility śledzi trzy AprilTagi. Każdy tag jest identyfikowany, zlokalizowany i oznaczony, co wskazuje, że jest śledzony przez system. Identyfikatory AprilTag w tym przykładzie to 0, 3 i 9.

Jeśli w pojedynczej migawce zostanie wykrytych wiele tagów AprilTag, zostaną one uporządkowane w tablicy na podstawie zidentyfikowanego identyfikatora, a nie rozmiaru.

Na tym obrazku wykryto trzy AprilTagi o identyfikatorach 0, 3 i 9. Będą one uporządkowane rosnąco według ich identyfikatorów w tablicy. Obiekt o indeksie 1 odpowiadałby AprilTag o ID 0, o indeksie 2 – AprilTag o ID 3, a o indeksie 3 – AprilTag o ID 9.

Aby uzyskać więcej informacji na temat tego, czym są AprilTags i jak włączyć ich wykrywanie za pomocą czujnika AI Vision, przeczytaj ten artykuł.


Klasyfikacja AI to

Klasyfikacja VEXcode EXP AI to blok odczytujący klasyfikację AIVision1 AI jako BlueBall? Dostępna jest lista rozwijana umożliwiająca wybór czujnika AI Vision oraz kolejne menu rozwijane umożliwiające wybór obiektu docelowego klasyfikacji AI.

KlasyfikacjaAI to blok dostępny tylko wtedy, gdy włączony jest tryb wykrywania klasyfikacjiAI.

 

Ten blok będzie raportował wartość Prawda lub Fałsz w zależności od tego, czy określony obiekt należy do określonej klasyfikacji sztucznej inteligencji.

Klasyfikacje sztucznej inteligencji (AI) wykrywane przez czujnik wizyjny AI różnią się w zależności od używanego modelu. Aby uzyskać więcej informacji na temat dostępnych klasyfikacji AI i sposobu włączania ich wykrywania za pomocą czujnika wizyjnego AI, przeczytaj ten artykuł.

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

Last Updated: