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ę.
ustaw obiekt AI Vision – Wybiera określony obiekt z listy wykrytych obiektów.
Wartości – dostęp i wykorzystanie przechwyconych danych.
Obiekt AI Vision istnieje – Raportuje, czy obiekt został wykryty.
Obiekt AI Vision to – sprawdza, czy wykryty obiekt pasuje do określonej klasyfikacji.
Obiekt AI Vision ma identyfikator AprilTag – sprawdza, czy wykryte identyfikatory AprilTag pasują do określonych identyfikatorów.
Liczba obiektów AI Vision – Raportuje liczbę wykrytych obiektów.
Właściwość obiektu AI Vision – Raportuje szczegóły, takie jak:
centerX i centerY – współrzędne położenia środka w polu widzenia czujnika.
kąt – Orientacja obiektu.
originX i originY – współrzędne położenia lewego górnego rogu w polu widzenia czujnika.
tagID – Numer identyfikacyjny identyfikatora AprilTag.
wynik – Stopień pewności modelu co do swojej identyfikacji wyrażony w procentach.
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.
zrób zdjęcie [AIVision1 v] sygnatury [SELECT_A_SIG v]
Parametr |
Opis |
|---|---|
urządzenie |
Którego czujnika wizyjnego AI użyć? |
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.

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.

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.
ustaw element obiektu [AIVision1 v] na (1)
Parametry |
Opis |
|---|---|
urządzenie |
Którego czujnika wizyjnego AI użyć? |
przedmiot |
Numer elementu w zestawie danych, który ma zostać użyty. |
Przykład
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#
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 [AIVision1 v] istnieje?>
Parametry |
Opis |
|---|---|
urządzenie |
Którego czujnika wizyjnego AI użyć? |
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.
<obiekt [AIVision1 v] to [BlueBall v]?>
Parametr |
Opis |
|---|---|
urządzenie |
Którego czujnika wizyjnego AI użyć? |
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 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ą.
<[AIVision1 v] object is AprilTag ID [1] ?>
Parametry |
Opis |
|---|---|
urządzenie |
Którego czujnika wizyjnego AI użyć? |
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ą.
(liczba obiektów [AIVision1 v])
Parametry |
Opis |
|---|---|
urządzenie |
Którego czujnika wizyjnego AI użyć? |
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.
(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 wizyjnego AI użyć? |
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.
(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.
(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.
(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.
(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.
(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.
(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.
(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ą.
(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ść.
(obiekt [AIVision1 v] [wynik v])