Датчик зору зі штучним інтелектом#
Вступ#
Датчик зору VEX IQ AI може виявляти та відстежувати об’єкти, кольори та ідентифікатори AprilTag. Це дозволяє роботу аналізувати своє оточення, стежити за об’єктами та реагувати на основі виявлених візуальних даних.
Приклади AI Vision розроблені для використання з Basebot, оснащеним датчиком AI Vision VEX IQ. У цих прикладах датчик налаштовано з назвою AIVision1, яка відображається в блоках.
Нижче наведено список усіх блоків:
Дії — Збір даних із датчика зору VEX IQ AI для вибраного підпису.
get object data — Збирає дані для певного підпису, такого як налаштований колір, попередньо навчений об’єкт або ідентифікатор AprilTag.
Налаштування — Виберіть, з яким об’єктом взаємодіяти.
встановити елемент об’єкта AI Vision — Вибирає певний об’єкт зі списку виявлених об’єктів.
Значення — доступ до отриманих даних та їх використання.
Об’єкт AI Vision існує — Повідомляє, чи виявлено об’єкт.
Кількість об’єктів AI Vision — Повідомляє кількість виявлених об’єктів.
Властивість об’єкта AI Vision — Повідомляє про такі деталі, як:
Що таке об’єкт AI Vision? — Перевіряє, чи відповідає виявлений об’єкт певній класифікації.
Чи є об’єкт AI Vision AprilTag? — Перевіряє, чи є виявлений об’єкт AprilTag, що відповідає певному ідентифікатору.
Об’єкт AI Vision має ідентифікатор AprilTag? — Перевіряє, чи збігається виявлений ідентифікатор AprilTag із певним ідентифікатором.
Дії#
отримати дані об’єкта#
Блок стеку get object data фільтрує дані з кадру VEX IQ AI Vision Sensor до єдиного підпису — збереженого опису чогось, що може розпізнати датчик, наприклад, попередньо навченого об’єкта, ідентифікатора AprilTag або налаштованого кольору чи колірного коду.
Кольори та колірні коди необхідно спочатку налаштувати в утиліті AI Vision, перш ніж їх можна буде використовувати з цим блоком.
Набір даних зберігає об’єкти, відсортовані від найбільшого до найменшого за шириною, починаючи з індексу 0. Доступ до властивостей кожного об’єкта можна отримати за допомогою блоку AI Vision object property. Якщо не виявлено відповідних об’єктів, повідомляється про порожній набір даних.
отримати дані [SELECT_A_SIG v] з [AIVision1 v]
Параметр |
Опис |
|---|---|
підпис |
Фільтрує набір даних, щоб включити лише дані заданого підпису. Доступні підписи:
|
Примітка: Щоб відображалися параметри ідентифікатора AprilTag або класифікації за допомогою штучного інтелекту, їх виявлення має бути ввімкнено в утиліті штучного інтелекту зйомки.
Приклад
коли запущено
[Drive forward if an AprilTag ID is detected.]
назавжди
отримати дані [AprilTag IDs v] з [AIVision1 v]
якщо <об'єкт [AIVIsion1 v] існує?> тоді
їхати [вперед v] на [10] [мм v] ▶
Класифікації ШІ#
Датчик зору VEX IQ AI може виявляти різні об’єкти за певними класифікаціями ШІ. Залежно від моделі класифікації ШІ, вибраної під час налаштування датчика зору VEX IQ AI у вікні «Пристрої», будуть виявлені різні об’єкти. Наразі доступні такі моделі:
Предмети для класу
Блубол
GreenBall
Червоний м’яч
БлуКільце
Зелене кільце
Червоне кільце
Блакитний куб
GreenCube
Червоний куб
Змагання з робототехніки VEX IQ – мікс та матч
Промінь
ЧервонийПін
БлуПін
ПомаранчевийПін
Підвищення рівня змагань з робототехніки VEX IQ
БлуБінБаг
Червоний мішок з квасолею
Жовтий мішок з квасолею
Кольорові підписи#
Колірна сигнатура – це унікальний колір, який може розпізнати датчик зору VEX IQ AI. Ці сигнатури дозволяють датчику виявляти та відстежувати об’єкти на основі їхнього кольору. Після налаштування колірної сигнатури датчик може ідентифікувати об’єкти з цим певним кольором у своєму полі зору.
Колірні сигнатури використовуються в блоці get object data для обробки та виявлення кольорових об’єктів у режимі реального часу. Одночасно можна налаштувати до 7 колірних сигнатур.

Приклад
коли запущено
[Display if any objects matching the RED_BOX signature is detected.]
назавжди
встановити курсор на рядок [1] стовпець [1] на екрані
очистити рядок [1] на екрані
[Change the signature to any configured Color Signature.]
отримати дані [RED_BOX v] з [AIVision1 v]
якщо <об'єкт [AIVision1 v] існує?> тоді
вивести [Color detected!] на екран ▶
Колірні коди#
Колірний код — це структурований візерунок, що складається з 2–4 колірних сигнатур, розташованих у певному порядку. Ці коди дозволяють датчику зору VEX IQ AI розпізнавати попередньо визначені кольорові візерунки.
Колірні коди особливо корисні для ідентифікації складних об’єктів, вирівнювання з ігровими елементами або створення унікальних маркерів для автономної навігації. Одночасно можна налаштувати до 8 колірних кодів.

Приклад
коли запущено
[Display if any objects matching the RED_BLUE code is detected.]
назавжди
встановити курсор на рядок [1] стовпець [1] на екрані
очистити рядок [1] на екрані
[Change the signature to any configured Color Code.]
отримати дані [RED_BLUE v] з [AIVision1 v]
якщо <об'єкт [AIVIsion1 v] існує?> тоді
вивести [Code detected!] на екран ▶
Налаштування#
встановити елемент об’єкта AI Vision#
Блок стека set AI Vision object item встановлює, який елемент у наборі даних використовувати.
встановити елемент об'єкта [AIVision1 v] на (1)
Параметри |
Опис |
|---|---|
елемент |
Номер елемента в наборі даних, який потрібно використовувати. |
Приклад
коли запущено
[Display the largest detected AprilTag ID.]
назавжди
отримати дані [AprilTag IDs v] з [AIVision1 v]
очистити рядок [1] на екрані
встановити курсор на рядок [1] стовпець [1] на екрані
якщо <об'єкт [AIVision1 v] існує?> тоді
встановити елемент об'єкта [AIVision1 v] на (кількість об'єктів [AIVision1 v])
вивести (об'єкт [AIVision1 v] [tagID v]) на екран ▶
Цінності#
Об’єкт AI Vision існує#
Логічний блок Об’єкт AI Vision існує повідомляє, чи виявлено будь-який об’єкт у наборі даних.
True — Набір даних містить виявлений об’єкт.
Хибно — Набір даних не містить жодних виявлених об’єктів.
<об'єкт [AIVision1 v] існує?>
Параметри |
Опис |
|---|---|
Цей блок не має параметрів. |
Приклад
коли запущено
[Drive forward if an object is detected.]
назавжди
отримати дані [AI Classifications v] з [AIVision1 v]
якщо <об'єкт [AIVision1 v] існує?> тоді
їхати [вперед v] на [10] [мм v] ▶
Кількість об’єктів AI Vision#
Блок репортера підрахунок об’єктів AI Vision повідомляє кількість виявлених об’єктів у наборі даних у вигляді цілого числа.
(кількість об'єктів [AIVision1 v])
Параметри |
Опис |
|---|---|
Цей блок не має параметрів. |
Приклад
коли запущено
[Display the total amount of cubes, rings, and balls.]
назавжди
очистити рядок [1] на екрані
встановити курсор на рядок [1] стовпець [1] на екрані
отримати дані [AI Classifications v] з [AIVision1 v]
якщо <об'єкт [AIVision1 v] існує?> тоді
вивести (кількість об'єктів [AIVision1 v]) на екран ▶
Кінець
чекати [0.5] секунд
Властивість об’єкта AI Vision#
Існує дев’ять властивостей, які додаються до кожного об’єкта (показано нижче), що зберігаються після використання блоку get object data.
(об'єкт [AIVision1 v] [ширина v])
Усі значення властивості, окрім tagID, описують положення та розмір виявленого об’єкта в області перегляду датчика VEX IQ AI Vision Sensor у момент використання блоку get object data. Ці значення вимірюються в пікселях, виходячи з роздільної здатності датчика 320 на 240 пікселів.
Параметр |
Опис |
|---|---|
власність |
Яку властивість виявленого об’єкта використовувати: |
ширина#
Властивість width повідомляє ширину виявленого об’єкта в пікселях як ціле число від 1 до 320.
(об'єкт [AIVision1 v] [ширина v])
Приклад
коли запущено
[Drive towards an object until its width is larger than 100 pixels.]
назавжди
отримати дані [AI Classifications v] з [AIVision1 v]
якщо <об'єкт [AIVision1 v] існує?> тоді
якщо <(об'єкт [AIVision1 v] [ширина v]) [math_less_than v] [100]> тоді
їхати [вперед v]
Кінець
інакше
зупинити рух
висота#
Властивість height повідомляє висоту виявленого об’єкта в пікселях як ціле число від 1 до 240.
(об'єкт [AIVision1 v] [висота v])
Приклад
коли запущено
[Drive towards an object until its height is larger than 100 pixels.]
назавжди
отримати дані [AI Classifications v] з [AIVision1 v]
якщо <об'єкт [AIVision1 v] існує?> тоді
якщо <(об'єкт [AIVision1 v] [висота v]) [math_less_than v] [100]> тоді
їхати [вперед v]
Кінець
інакше
зупинити рух
центрX#
Властивість centerX повідомляє x-координату центру виявленого об’єкта в пікселях як ціле число від 0 до 320.
(об'єкт [AIVision1 v] [centerX v])
Приклад
коли запущено
[Turn slowly until an object is centered in front of the robot.]
встановити швидкість повороту [30] [% v]
повернути [праворуч v]
назавжди
отримати дані [AI Classifications v] з [AIVision1 v]
якщо <об'єкт [AIVision1 v] існує?> тоді
якщо <[140] [math_less_than v] (об'єкт [AIVision1 v] [centerX v]) [math_less_than v] [180]> тоді
зупинити рух
центрY#
Властивість centerY повідомляє y-координату центру виявленого об’єкта в пікселях як ціле число від 0 до 240.
(об'єкт [AIVision1 v] [centerY v])
Приклад
коли запущено
[Drive towards an object until its center y-coordinate is more than 140 pixels.]
назавжди
отримати дані [AI Classifications v] з [AIVision1 v]
якщо <об'єкт [AIVision1 v] існує?> тоді
якщо <(об'єкт [AIVision1 v] [centerY v]) [math_less_than v] [140]> тоді
їхати [вперед v]
Кінець
інакше
зупинити рух
кут#
Властивість angle повідомляє орієнтацію виявленого колірного коду або ідентифікатора AprilTag як ціле число в градусах від 0 до 359.
(об'єкт [AIVision1 v] [кут v])
Приклад
коли запущено
[Slide left or right depending on how the Color Code is rotated.]
назавжди
отримати дані [RED_BLUE v] з [AIVision1 v]
якщо <об'єкт [AIVision1 v] існує?> тоді
якщо <[50] [math_less_than v] (об'єкт [AIVision1 v] [кут v]) [math_less_than v] [100]> тоді
їхати [праворуч v]
інакше якщо <[270] [math_less_than v] (об'єкт [AIVision1 v] [кут v]) [math_less_than v] [330]> тоді
їхати [ліворуч v]
інакше
зупинити рух
Кінець
інакше
зупинити рух
походженняX#
Властивість originX повідомляє x-координату верхнього лівого кута рамки визначення виявленого об’єкта в пікселях як ціле число від 0 до 320.
(об'єкт [AIVision1 v] [originX v])
Приклад
коли запущено
[Display if an object is to the left or the right.]
назавжди
очистити рядок [1] на екрані
встановити курсор на рядок [1] стовпець [1] на екрані
отримати дані [AI Classifications v] з [AIVision1 v]
якщо <об'єкт [AIVision1 v] існує?> тоді
якщо <(об'єкт [AIVision1 v] [originX v]) [math_less_than v] [160]> тоді
вивести [To the left!] на екран ▶
інакше
вивести [To the right!] на екран ▶
Кінець
чекати [0.5] секунд
походженняY#
Властивість originY повідомляє y-координату верхнього лівого кута рамки визначення виявленого об’єкта в пікселях як ціле число від 0 до 240.
(об'єкт [AIVision1 v] [originY v])
Приклад
коли запущено
[Display if an object is close or far from the robot.]
назавжди
очистити рядок [1] на екрані
встановити курсор на рядок [1] стовпець [1] на екрані
отримати дані [AI Classifications v] з [AIVision1 v]
якщо <об'єкт [AIVision1 v] існує?> тоді
якщо <(об'єкт [AIVision1 v] [originY v]) [math_less_than v] [80]> тоді
вивести [Far!] на екран ▶
інакше
вивести [Close!] на екран ▶
Кінець
чекати [0.5] секунд
ідентифікатор тегу#
Властивість tagID повідомляє ідентифікаційний номер виявленого ID AprilTag як ціле число.
(об'єкт [AIVision1 v] [tagID v])
Приклад
коли запущено
[Drive forward when AprilTag ID 0 is detected.]
назавжди
отримати дані [AprilTag IDs v] з [AIVision1 v]
якщо <об'єкт [AIVision1 v] існує?> тоді
якщо <(об'єкт [AIVision1 v] [tagID v]) [math_equal v] [0]> тоді
їхати [вперед v]
інакше
зупинити рух
Кінець
чекати [0.5] секунд
Що таке об’єкт ШІ Бачення?#
Блок Об’єкт AI Vision is? повідомляє логічне значення, яке вказує, чи відповідає виявлений об’єкт певній класифікації.
True — Елемент у наборі даних є конкретним об’єктом.
Хибність — елемент у наборі даних не є конкретним об’єктом.
<об'єкт [AIVision1 v] є [BlueBall v]?>
Параметр |
Опис |
|---|---|
об’єкт |
З якою Класифікацією ШІ порівнювати елемент. |
Приклад
коли запущено
[Display if a Blue Cube is detected.]
назавжди
отримати дані [AI Classifications v] з [AIVision1 v]
очистити рядок [1] на екрані
встановити курсор на рядок [1] стовпець [1] на екрані
якщо <об'єкт [AIVision1 v] існує?> тоді
якщо <об'єкт [AIVision1 v] є [BlueCube v]?> тоді
вивести [Cube detected!] на екран ▶
чекати [0.5] секунд
Об’єкт AI Vision – це AprilTag?#
Блок Чи є об’єкт AI Vision AprilTag? повідомляє логічне значення, яке вказує, чи є виявлений об’єкт AprilTag, який відповідає певному ідентифікатору.
True — Виявлений об’єкт є AprilTag із заданим ідентифікатором.
False — Виявлений об’єкт не є AprilTag із заданим ідентифікатором.
<об'єкт [AIVision1 v] є AprilTag [0]?>
Параметр |
Опис |
|---|---|
Ідентифікатор тегу квітня |
Ідентифікаційний номер для порівняння з виявленим AprilTag. |
Приклад
коли запущено
[Report if AprilTag 3 is detected.]
назавжди
очистити екран
встановити курсор на рядок [1] стовпець [1] на екрані
отримати дані [AprilTag IDs v] з [AIVision1 v]
якщо <об'єкт [AIVision1 v] існує?> тоді
якщо <об'єкт [AIVision1 v] є AprilTag [3]?> тоді
вивести [That is 3!] на екран ▶
інакше
вивести [That isn't 3!] на екран ▶
Кінець
Кінець
чекати [0.1] секунд
Об’єкт AI Vision має ідентифікатор AprilTag?#
Блок Об’єкт AI Vision is AprilTag ID? повідомляє логічне значення, яке вказує, чи збігається виявлений ідентифікатор AprilTag із певним ідентифікатором.
True — Ідентифікатор AprilTag є числом.
False — Ідентифікатор AprilTag не є числом.
<[AIVision1 v] object is AprilTag ID [1] ?>
Параметри |
Опис |
|---|---|
Ідентифікаційний номер квітневого тегу |
Число для порівняння з виявленим ідентифікатором AprilTag. |
Приклад:
коли запущено
[Report if AprilTag ID 3 is detected.]
назавжди
очистити екран
встановити курсор на рядок [1] стовпець [1] на екрані
отримати дані [AprilTag IDs v] з [AIVision1 v]
якщо <об'єкт [AIVision1 v] існує?> тоді
якщо <[AIVision1 v] object is AprilTag ID [3] ?> тоді
вивести [That is 3!] на екран ▶
інакше
вивести [That isn't 3!] на екран ▶
Кінець
Кінець
чекати [0.1] секунд