Czujnik wizyjny AI#

Wstęp#

Czujnik wizyjny AI potrafi wykrywać i śledzić obiekty, kolory oraz identyfikatory AprilTag. Dzięki temu robot może analizować otoczenie, śledzić obiekty i reagować na podstawie wykrytych danych wizualnych.

Poniżej znajduje się lista dostępnych bloków:

Akcje – przechwytywanie danych z czujnika wizyjnego AI dla wybranego podpisu.

  • zrób migawkę – Przechwytuje dane dla określonego podpisu, takiego jak skonfigurowany kolor, wstępnie wyszkolony obiekt lub identyfikator AprilTag.

Ustawienia – Wybierz obiekt, z którym chcesz wejść w interakcję.

Wartości – dostęp i wykorzystanie przechwyconych danych.

Akcje#

zrób zdjęcie#

Blok stosu take snapshot filtruje dane z ramki czujnika AI Vision do pojedynczego podpisu — zapisanego opisu czegoś, co czujnik może rozpoznać, na przykład wstępnie wyszkolonego obiektu, identyfikatora AprilTag lub skonfigurowanego koloru lub kodu koloru.

Aby móc używać kolorów i kodów kolorów z tym blokiem, należy je najpierw skonfigurować w narzędziu AI Vision Utility.

Zbiór danych przechowuje obiekty uporządkowane od największego do najmniejszego według szerokości, zaczynając od indeksu 0. Dostęp do właściwości każdego obiektu można uzyskać za pomocą bloku właściwość obiektu AI Vision. Jeśli nie wykryto żadnych pasujących obiektów, zgłaszany jest pusty zbiór danych.

Blok stosu Take snapshot.#
zrób zdjęcie [AIVision1 v] sygnatury [SELECT_A_SIG v]

Parametr

Opis

urządzenie

Którego czujnika AI Vision użyć, konfigurując go w oknie Urządzenia.

podpis

Filtruje zbiór danych, aby zawierał tylko dane o podanym podpisie. Dostępne podpisy to:

Uwaga: Aby opcje AprilTag ID lub klasyfikacji AI były widoczne, ich wykrywanie musi być włączone w narzędziu AI Vision Utility.

Przykład

gdy uruchomiony
[Drive forward if an AprilTag ID is detected.]
zawsze
zrób zdjęcie [AIVision1 v] sygnatury [AprilTag IDs v]
jeśli <obiekt [AIVIsion1 v] istnieje?> to
jedź [do przodu v] przez [10] [mm v] ▶

Klasyfikacje AI#

Czujnik wizyjny AI może wykrywać różne obiekty w ramach określonych klasyfikacji AI. W zależności od modelu klasyfikacji AI wybranego podczas konfiguracji czujnika wizyjnego AI w oknie Urządzenia, wykrywane będą różne obiekty. Obecnie dostępne modele to:

Obiekty klasowe

  • BlueBall

  • GreenBall

  • Czerwona Piłka

  • Niebieski pierścień

  • Zielony Pierścień

  • Czerwony Pierścień

  • BlueCube

  • GreenCube

  • RedCube

Odrzucenie konkursu robotycznego VEX V5

  • Niebieski blok

  • Czerwony blok

Konkurs robotyki VEX V5 o wysoką stawkę

  • Cel mobilny

  • Czerwony Pierścień

  • Niebieski pierścień

Zawody robotyczne VEX V5 Override

  • RedBluePin

  • Niebiesko-żółta szpilka

  • RedYellowPin

  • YellowPin

  • Filiżanka

Sygnatury kolorów#

Sygnatura koloru to unikalny kolor, który rozpoznaje czujnik wizyjny AI. Sygnatury te pozwalają czujnikowi wykrywać i śledzić obiekty na podstawie ich koloru. Po skonfigurowaniu Sygnatury koloru czujnik może identyfikować obiekty o tym konkretnym kolorze w swoim polu widzenia.

Sygnatury kolorów są używane w bloku zrób migawkę do przetwarzania i wykrywania kolorowych obiektów w czasie rzeczywistym. Jednocześnie można skonfigurować do 7 sygnatur kolorów.

Narzędzie AI Vision Utility przedstawiające połączony czujnik wizyjny wykrywający dwa kolorowe obiekty. Po lewej stronie wyświetlany jest obraz z kamery na żywo z niebieskim polem po lewej i czerwonym polem po prawej, każde z nich otoczone białymi ramkami. Czarne etykiety wyświetlają ich nazwy, współrzędne i wymiary. Po prawej stronie znajdują się ustawienia sygnatury kolorów, z suwakami do regulacji odcienia i nasycenia dla pola czerwonego i niebieskiego. Na dole znajdują się przyciski do dodawania kolorów, zatrzymywania wideo, kopiowania i zapisywania obrazu, a także przycisk zamykania w prawym dolnym rogu.

Przykład

gdy uruchomiony
[Display if any objects matching the RED_BOX signature is detected.]
zawsze
ustaw kursor na wiersz [1] kolumnę [1] na ekranie
wyczyść wiersz [1] na ekranie
[Change the signature to any configured Color Signature.]
zrób zdjęcie [AIVision1 v] sygnatury [RED_BOX v]
jeśli <obiekt [AIVision1 v] istnieje?> to
wydrukuj [Color detected!] na ekranie ▶

Kody kolorów#

Kod koloru to ustrukturyzowany wzór składający się z 2 do 4 sygnatur kolorów ułożonych w określonej kolejności. Kody te umożliwiają czujnikowi wizyjnemu AI rozpoznawanie predefiniowanych wzorów kolorów.

Kody kolorów są szczególnie przydatne do identyfikacji złożonych obiektów, dopasowania do elementów gry lub tworzenia unikalnych znaczników do autonomicznej nawigacji. Jednocześnie można skonfigurować do 8 kodów kolorów.

Interfejs AI Vision Utility pokazuje podłączony czujnik wizyjny wykrywający dwa sąsiadujące obiekty – niebieskie pole po lewej stronie i czerwone pole po prawej – zgrupowane w jednym białym polu granicznym oznaczonym BlueRed. Informacje o wykryciu obejmują kąt (A: 11°), współrzędne (X: 143, Y: 103), szerokość (W: 233) i wysokość (H: 108). Na prawym panelu znajdują się trzy sygnatury kolorów: Red_Box, Blue_Box i BlueRed z regulowanymi zakresami odcienia i nasycenia. Sygnatura BlueRed łączy sygnatury Blue_Box i Red_Box. Pod kanałem wideo znajdują się przyciski oznaczone etykietami: Zamroź wideo, Kopiuj obraz, Zapisz obraz i Zamknij.

Przykład

gdy uruchomiony
[Display if any objects matching the RED_BLUE code is detected.]
zawsze
ustaw kursor na wiersz [1] kolumnę [1] na ekranie
wyczyść wiersz [1] na ekranie
[Change the signature to any configured Color Code.]
zrób zdjęcie [AIVision1 v] sygnatury [RED_BLUE v]
jeśli <obiekt [AIVision1 v] istnieje?> to
wydrukuj [Code detected!] na ekranie ▶

Ustawienia#

ustaw obiekt AI Vision#

Blok stosu ustaw element obiektu AI Vision ustawia, który element w zestawie danych ma zostać użyty.

Blok stosu obiektów Set AI Vision.#
ustaw element obiektu [AIVision1 v] na (1)

Parametry

Opis

urządzenie

Którego czujnika AI Vision użyć, konfigurując go w oknie Urządzenia.

przedmiot

Numer elementu w zestawie danych, który ma zostać użyty.

Przykład

Stos bloków rozpoczyna się blokiem „When Started”, po którym następuje blok komentarza „Wyświetl największy wykryty identyfikator AprilTag”. W pętli „Forever” blok „Take a AI Vision Snapshot” przechwytuje obraz identyfikatorów AprilTag. Blok „If” sprawdza, czy obiekt AI Vision istnieje. Jeśli „True”, blok „Set” obiektu AI Vision przypisuje liczbę obiektów do zmiennej, a blok „Print” wyświetla na ekranie identyfikator tagu wykrytego obiektu.#
gdy uruchomiony
[Display the largest detected AprilTag ID.]
zawsze
zrób zdjęcie [AIVision1 v] sygnatury [AprilTag IDs v]
wyczyść wiersz [1] na ekranie
ustaw kursor na wiersz [1] kolumnę [1] na ekranie
jeśli <obiekt [AIVision1 v] istnieje?> to
ustaw element obiektu [AIVision1 v] na (liczba obiektów [AIVision1 v])
wydrukuj (obiekt [AIVision1 v] [tagID v]) na ekranie ▶

Wartości#

Czy obiekt AI Vision istnieje?#

Blok logiczny Obiekt AI Vision istnieje informuje, czy w zestawie danych wykryto jakikolwiek obiekt.

  • Prawda – Zestaw danych zawiera wykryty obiekt.

  • Fałsz – Zbiór danych nie zawiera żadnych wykrytych obiektów.

Obiekt AI Vision jest blokiem boolowskim.#
<obiekt [AIVision1 v] istnieje?>

Parametry

Opis

urządzenie

Którego czujnika AI Vision użyć, konfigurując go w oknie Urządzenia.

Przykład

gdy uruchomiony
[Drive forward if an object is detected.]
zawsze
zrób zdjęcie [AIVision1 v] sygnatury [Klasyfikacje AI v]
jeśli <obiekt [AIVision1 v] istnieje?> to
jedź [do przodu v] przez [10] [mm v] ▶

Obiekt AI Vision to#

Obiekt AI Vision to blok logiczny, który informuje, czy wykryty obiekt pasuje do określonej klasyfikacji.

  • Prawda – Element w zestawie danych jest konkretnym obiektem.

  • Fałsz – Element w zestawie danych nie jest konkretnym obiektem.

Klasyfikacja AI Vision AI jest obiektem bloku boolowskiego.#
<obiekt [AIVision1 v] to [BlueBall v]?>

Parametr

Opis

urządzenie

Którego czujnika AI Vision użyć, konfigurując go w oknie Urządzenia.

obiekt

Do której klasyfikacji AI porównać element.

Przykład

gdy uruchomiony
[Display if a Blue Cube is detected.]
zawsze
zrób zdjęcie [AIVision1 v] sygnatury [Klasyfikacje AI v]
wyczyść wiersz [1] na ekranie
ustaw kursor na wiersz [1] kolumnę [1] na ekranie
jeśli <obiekt [AIVision1 v] istnieje?> to
jeśli <obiekt [AIVision1 v] to [BlueCube v]?> to
wydrukuj [Cube detected!] na ekranie ▶
czekaj [0.5] sekund

Obiekt AI Vision to AprilTag#

Blok logiczny Obiekt AI Vision to AprilTag informuje, czy wykryty obiekt jest obiektem AprilTag pasującym do określonego identyfikatora.

  • Prawda – Wykryty obiekt to AprilTag o podanym identyfikatorze.

  • Fałsz – Wykryty obiekt nie jest obiektem AprilTag o podanym identyfikatorze.

Obiektem AI Vision jest blok boolowski AprilTag.#
<obiekt [AIVision1 v] to AprilTag [0]?>

Parametr

Opis

urządzenie

Którego czujnika AI Vision użyć, konfigurując go w oknie Urządzenia.

Identyfikator AprilTag

Numer ID do porównania z wykrytym AprilTag.

Przykład

gdy uruchomiony
[Report if AprilTag 3 is detected.]
zawsze
wyczyść ekran
ustaw kursor na wiersz [1] kolumnę [1] na ekranie
zrób zdjęcie [AIVision1 v] sygnatury [AprilTag IDs v]
jeśli <obiekt [AIVision1 v] istnieje?> to
jeśli <obiekt [AIVision1 v] to AprilTag [3]?> to
wydrukuj [That is 3!] na ekranie ▶
w przeciwnym razie
wydrukuj [That isn't 3!] na ekranie ▶
koniec
koniec
czekaj [0.1] sekund

Obiekt AI Vision ma identyfikator AprilTag#

Obiekt AI Vision to blok logiczny AprilTag ID, który informuje, czy wykryte ID AprilTag pasuje do określonego ID.

  • Prawda – Identyfikator AprilTag jest liczbą.

  • Fałsz – Identyfikator AprilTag nie jest liczbą.

AI Vision wykryło, że AprilTag ID jest blokiem logicznym.#
<[AIVision1 v] object is AprilTag ID [1] ?>

Parametry

Opis

urządzenie

Którego czujnika AI Vision użyć, konfigurując go w oknie Urządzenia.

Numer identyfikacyjny AprilTag

Liczba do porównania z wykrytym numerem ID AprilTag.

Przykład:

gdy uruchomiony
[Report if AprilTag ID 3 is detected.]
zawsze
wyczyść ekran
ustaw kursor na wiersz [1] kolumnę [1] na ekranie
zrób zdjęcie [AIVision1 v] sygnatury [AprilTag IDs v]
jeśli <obiekt [AIVision1 v] istnieje?> to
jeśli <[AIVision1 v] object is AprilTag ID [3] ?> to
wydrukuj [That is 3!] na ekranie ▶
w przeciwnym razie
wydrukuj [That isn't 3!] na ekranie ▶
koniec
koniec
czekaj [0.1] sekund

Liczba obiektów AI Vision#

Blok reportera AI Vision object count raportuje liczbę wykrytych obiektów w zestawie danych jako liczbę całkowitą.

Blok stosu obiektów Set AI Vision.#
(liczba obiektów [AIVision1 v])

Parametry

Opis

urządzenie

Którego czujnika AI Vision użyć, konfigurując go w oknie Urządzenia.

Przykład

gdy uruchomiony
[Display the total amount of cubes, rings, and balls.]
zawsze
wyczyść wiersz [1] na ekranie
ustaw kursor na wiersz [1] kolumnę [1] na ekranie
zrób zdjęcie [AIVision1 v] sygnatury [Klasyfikacje AI v]
jeśli <obiekt [AIVision1 v] istnieje?> to
wydrukuj (liczba obiektów [AIVision1 v]) na ekranie ▶
koniec
czekaj [0.5] sekund

Właściwość obiektu AI Vision#

Każdy obiekt (pokazany poniżej) zawiera dziewięć właściwości, które są przechowywane po użyciu bloku take snapshot.

Blok raportujący właściwości obiektu AI Vision.#
(obiekt [AIVision1 v] [szerokość v])

Wszystkie wartości właściwości, z wyjątkiem tagID i score, opisują położenie i rozmiar wykrytego obiektu w polu widzenia czujnika AI Vision w momencie użycia bloku take snapshot. Wartości te są mierzone w pikselach, w oparciu o rozdzielczość czujnika 320 na 240 pikseli.

Parametr

Opis

urządzenie

Którego czujnika AI Vision użyć, konfigurując go w oknie Urządzenia.

nieruchomość

Którą właściwość wykrytego obiektu użyć:

szerokość#

Właściwość szerokość raportuje szerokość wykrytego obiektu w pikselach jako liczbę całkowitą od 1 do 320.

Blok stosu właściwości obiektu AI Vision z parametrem ustawionym na szerokość.#
(obiekt [AIVision1 v] [szerokość v])

Przykład

gdy uruchomiony
[Drive towards an object until its width is larger than 100 pixels.]
zawsze
zrób zdjęcie [AIVision1 v] sygnatury [Klasyfikacje AI v]
jeśli <obiekt [AIVision1 v] istnieje?> to
jeśli <(obiekt [AIVision1 v] [szerokość v]) [math_less_than v] [100]> to
jedź [do przodu v]
w przeciwnym razie
zatrzymaj jazdę
koniec

wysokość#

Właściwość height raportuje wysokość wykrytego obiektu w pikselach jako liczbę całkowitą od 1 do 240.

Blok stosu właściwości obiektu AI Vision z parametrem ustawionym na wysokość.#
(obiekt [AIVision1 v] [wysokość v])

Przykład

gdy uruchomiony
[Drive towards an object until its height is larger than 100 pixels.]
zawsze
zrób zdjęcie [AIVision1 v] sygnatury [Klasyfikacje AI v]
jeśli <obiekt [AIVision1 v] istnieje?> to
jeśli <(obiekt [AIVision1 v] [wysokość v]) [math_less_than v] [100]> to
jedź [do przodu v]
w przeciwnym razie
zatrzymaj jazdę
koniec

środekX#

Właściwość centerX raportuje współrzędną x środka wykrytego obiektu w pikselach jako liczbę całkowitą od 0 do 320.

Blok stosu właściwości obiektu AI Vision z parametrem ustawionym na centerX.#
(obiekt [AIVision1 v] [centerX v])

Przykład

gdy uruchomiony
[Turn slowly until an object is centered in front of the robot.]
ustaw prędkość obrotu na [30] [% v]
skręć [w prawo v]
zawsze
zrób zdjęcie [AIVision1 v] sygnatury [Klasyfikacje AI v]
jeśli <obiekt [AIVision1 v] istnieje?> to
jeśli <[140] [math_less_than v] (obiekt [AIVision1 v] [centerX v]) [math_less_than v] [180]> to
zatrzymaj jazdę

środek Y#

Właściwość centerY raportuje współrzędną y środka wykrytego obiektu w pikselach jako liczbę całkowitą od 0 do 240.

Blok stosu właściwości obiektu AI Vision z parametrem ustawionym na centerY.#
(obiekt [AIVision1 v] [centerY v])

Przykład

gdy uruchomiony
[Drive towards an object until its center y-coordinate is more than 140 pixels.]
zawsze
zrób zdjęcie [AIVision1 v] sygnatury [Klasyfikacje AI v]
jeśli <obiekt [AIVision1 v] istnieje?> to
jeśli <(obiekt [AIVision1 v] [centerY v]) [math_less_than v] [140]> to
jedź [do przodu v]
w przeciwnym razie
zatrzymaj jazdę
koniec

kąt#

Właściwość angle raportuje orientację wykrytego kodu koloru lub identyfikatora AprilTag jako liczbę całkowitą w stopniach od 0 do 359.

Blok stosu właściwości obiektu AI Vision z parametrem ustawionym na kąt.#
(obiekt [AIVision1 v] [kąt v])

Przykład

gdy uruchomiony
[Slide left or right depending on how the Color Code is rotated.]
zawsze
zrób zdjęcie [AIVision1 v] sygnatury [RED_BLUE v]
jeśli <obiekt [AIVision1 v] istnieje?> to
jeśli <[50] [math_less_than v] (obiekt [AIVision1 v] [kąt v]) [math_less_than v] [100]> to
jedź [w prawo v]
w przeciwnym razie jeśli <[270] [math_less_than v] (obiekt [AIVision1 v] [kąt v]) [math_less_than v] [330]> to
jedź [w lewo v]
w przeciwnym razie
zatrzymaj jazdę
koniec
w przeciwnym razie
zatrzymaj jazdę

pochodzenieX#

Właściwość originX raportuje współrzędną x lewego górnego rogu pola ograniczającego wykryty obiekt w pikselach jako liczbę całkowitą od 0 do 320.

Blok stosu właściwości obiektu AI Vision z parametrem ustawionym na originX.#
(obiekt [AIVision1 v] [originX v])

Przykład

gdy uruchomiony
[Display if an object is to the left or the right.]
zawsze
wyczyść wiersz [1] na ekranie
ustaw kursor na wiersz [1] kolumnę [1] na ekranie
zrób zdjęcie [AIVision1 v] sygnatury [Klasyfikacje AI v]
jeśli <obiekt [AIVision1 v] istnieje?> to
jeśli <(obiekt [AIVision1 v] [originX v]) [math_less_than v] [160]> to
wydrukuj [To the left!] na ekranie ▶
w przeciwnym razie
wydrukuj [To the right!] na ekranie ▶
koniec
czekaj [0.5] sekund

pochodzenieY#

Właściwość originY raportuje współrzędną y lewego górnego rogu pola ograniczającego wykryty obiekt w pikselach jako liczbę całkowitą od 0 do 240.

Blok stosu właściwości obiektu AI Vision z parametrem ustawionym na originY.#
(obiekt [AIVision1 v] [originY v])

Przykład

gdy uruchomiony
[Display if an object is close or far from the robot.]
zawsze
wyczyść wiersz [1] na ekranie
ustaw kursor na wiersz [1] kolumnę [1] na ekranie
zrób zdjęcie [AIVision1 v] sygnatury [Klasyfikacje AI v]
jeśli <obiekt [AIVision1 v] istnieje?> to
jeśli <(obiekt [AIVision1 v] [originY v]) [math_less_than v] [80]> to
wydrukuj [Far!] na ekranie ▶
w przeciwnym razie
wydrukuj [Close!] na ekranie ▶
koniec
czekaj [0.5] sekund

identyfikator tagu#

Właściwość tagID raportuje numer identyfikacyjny wykrytego identyfikatora AprilTag jako liczbę całkowitą.

Blok stosu właściwości obiektu AI Vision z parametrem ustawionym na tagID.#
(obiekt [AIVision1 v] [tagID v])

Przykład

gdy uruchomiony
[Drive forward when AprilTag ID 0 is detected.]
zawsze
zrób zdjęcie [AIVision1 v] sygnatury [AprilTag IDs v]
jeśli <obiekt [AIVision1 v] istnieje?> to
jeśli <(obiekt [AIVision1 v] [tagID v]) [math_equal v] [0]> to
jedź [do przodu v]
w przeciwnym razie
zatrzymaj jazdę
koniec
czekaj [0.5] sekund

wynik#

Właściwość wynik informuje, jak pewny jest model w zakresie wykrytej klasyfikacji sztucznej inteligencji, w procentach od 70% do 100%.

Niższy wynik oznacza, że ​​czujnik ma mniejszą pewność co do wykrytego obiektu, natomiast wyższy wynik oznacza, że ​​czujnik ma większą pewność.

Blok stosu właściwości obiektu AI Vision z parametrem ustawionym na tagID.#
(obiekt [AIVision1 v] [wynik v])