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

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

Приклад
коли запущено
[Display if any objects matching the RED_BLUE code is detected.]
назавжди
встановити курсор на рядок [1] стовпець [1] на екрані
очистити рядок [1] на екрані
[Change the signature to any configured Color Code.]
зробити знімок [AIVision1 v] підпису [RED_BLUE v]
якщо <об'єкт [AIVision1 v] існує?> тоді
вивести [Code detected!] на екран ▶
Налаштування#
встановити елемент об’єкта AI Vision#
Блок стека set AI Vision object item встановлює, який елемент у наборі даних використовувати.
встановити елемент об'єкта [AIVision1 v] на (1)
Параметри |
Опис |
|---|---|
пристрій |
Який датчик зору зі штучним інтелектом використовувати, налаштовується у вікні «Пристрої». |
елемент |
Номер елемента в наборі даних, який потрібно використовувати. |
Приклад
коли запущено
[Display the largest detected AprilTag ID.]
назавжди
зробити знімок [AIVision1 v] підпису [AprilTag IDs v]
очистити рядок [1] на екрані
встановити курсор на рядок [1] стовпець [1] на екрані
якщо <об'єкт [AIVision1 v] існує?> тоді
встановити елемент об'єкта [AIVision1 v] на (кількість об'єктів [AIVision1 v])
вивести (об'єкт [AIVision1 v] [tagID v]) на екран ▶
Цінності#
Об’єкт ШІ Бачення існує?#
Логічний блок Об’єкт AI Vision існує повідомляє, чи виявлено будь-який об’єкт у наборі даних.
True – Набір даних містить виявлений об’єкт.
Хибно – Набір даних не містить жодних виявлених об’єктів.
<об'єкт [AIVision1 v] існує?>
Параметри |
Опис |
|---|---|
пристрій |
Який датчик зору зі штучним інтелектом використовувати, налаштовується у вікні «Пристрої». |
Приклад
коли запущено
[Drive forward if an object is detected.]
назавжди
зробити знімок [AIVision1 v] підпису [AI Classifications v]
якщо <об'єкт [AIVision1 v] існує?> тоді
їхати [вперед v] на [10] [мм v] ▶
Об’єкт ШІ Бачення є#
Булевий блок Об’єкт AI Vision is повідомляє, чи відповідає виявлений об’єкт певній класифікації.
True – Елемент у наборі даних є певним об’єктом.
Хибність – Елемент у наборі даних не є конкретним об’єктом.
<об'єкт [AIVision1 v] є [BlueBall v]?>
Параметр |
Опис |
|---|---|
пристрій |
Який датчик зору зі штучним інтелектом використовувати, налаштовується у вікні «Пристрої». |
об’єкт |
З якою Класифікацією ШІ порівнювати елемент. |
Приклад
коли запущено
[Display if a Blue Cube is detected.]
назавжди
зробити знімок [AIVision1 v] підпису [AI Classifications v]
очистити рядок [1] на екрані
встановити курсор на рядок [1] стовпець [1] на екрані
якщо <об'єкт [AIVision1 v] існує?> тоді
якщо <об'єкт [AIVision1 v] є [BlueCube v]?> тоді
вивести [Cube detected!] на екран ▶
чекати [0.5] секунд
Об’єкт AI Vision – це AprilTag#
Логічний блок Об’єкт AI Vision – це AprilTag, що повідомляє, чи є виявлений об’єкт AprilTag, який відповідає певному ідентифікатору.
True – Виявлений об’єкт є AprilTag із заданим ідентифікатором.
Хибність – Виявлений об’єкт не є AprilTag із заданим ідентифікатором.
<об'єкт [AIVision1 v] є AprilTag [0]?>
Параметр |
Опис |
|---|---|
пристрій |
Який датчик зору зі штучним інтелектом використовувати, налаштовується у вікні «Пристрої». |
Ідентифікатор тегу квітня |
Ідентифікаційний номер для порівняння з виявленим AprilTag. |
Приклад
коли запущено
[Report if AprilTag 3 is detected.]
назавжди
очистити екран
встановити курсор на рядок [1] стовпець [1] на екрані
зробити знімок [AIVision1 v] підпису [AprilTag IDs v]
якщо <об'єкт [AIVision1 v] існує?> тоді
якщо <об'єкт [AIVision1 v] є AprilTag [3]?> тоді
вивести [That is 3!] на екран ▶
інакше
вивести [That isn't 3!] на екран ▶
Кінець
Кінець
чекати [0.1] секунд
Об’єкт AI Vision має ідентифікатор AprilTag#
Булевий блок AI Vision – це AprilTag ID, що повідомляє, чи збігається виявлений AprilTag ID із певним ідентифікатором.
True – Ідентифікатор AprilTag – це число.
Хибність – Ідентифікатор AprilTag не є числом.
<[AIVision1 v] object is AprilTag ID [1] ?>
Параметри |
Опис |
|---|---|
пристрій |
Який датчик зору зі штучним інтелектом використовувати, налаштовується у вікні «Пристрої». |
Ідентифікаційний номер квітневого тегу |
Число для порівняння з виявленим ідентифікатором AprilTag. |
Приклад:
коли запущено
[Report if AprilTag ID 3 is detected.]
назавжди
очистити екран
встановити курсор на рядок [1] стовпець [1] на екрані
зробити знімок [AIVision1 v] підпису [AprilTag IDs v]
якщо <об'єкт [AIVision1 v] існує?> тоді
якщо <[AIVision1 v] object is AprilTag ID [3] ?> тоді
вивести [That is 3!] на екран ▶
інакше
вивести [That isn't 3!] на екран ▶
Кінець
Кінець
чекати [0.1] секунд
Кількість об’єктів AI Vision#
Блок репортера підрахунок об’єктів AI Vision повідомляє кількість виявлених об’єктів у наборі даних у вигляді цілого числа.
(кількість об'єктів [AIVision1 v])
Параметри |
Опис |
|---|---|
пристрій |
Який датчик зору зі штучним інтелектом використовувати, налаштовується у вікні «Пристрої». |
Приклад
коли запущено
[Display the total amount of cubes, rings, and balls.]
назавжди
очистити рядок [1] на екрані
встановити курсор на рядок [1] стовпець [1] на екрані
зробити знімок [AIVision1 v] підпису [AI Classifications v]
якщо <об'єкт [AIVision1 v] існує?> тоді
вивести (кількість об'єктів [AIVision1 v]) на екран ▶
Кінець
чекати [0.5] секунд
Властивість об’єкта AI Vision#
Існує дев’ять властивостей, які додаються до кожного об’єкта (показано нижче), що зберігаються після використання блоку take snapshot.
(об'єкт [AIVision1 v] [ширина v])
Усі значення властивостей, окрім tagID та score, описують положення та розмір виявленого об’єкта в області зору датчика штучного інтелекту у момент використання блоку take snapshot. Ці значення вимірюються в пікселях, виходячи з роздільної здатності датчика 320 на 240 пікселів.
Параметр |
Опис |
|---|---|
пристрій |
Який датчик зору зі штучним інтелектом використовувати, налаштовується у вікні «Пристрої». |
власність |
Яку властивість виявленого об’єкта використовувати: |
ширина#
Властивість width повідомляє ширину виявленого об’єкта в пікселях як ціле число від 1 до 320.
(об'єкт [AIVision1 v] [ширина v])
Приклад
коли запущено
[Drive towards an object until its width is larger than 100 pixels.]
назавжди
зробити знімок [AIVision1 v] підпису [AI Classifications 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.]
назавжди
зробити знімок [AIVision1 v] підпису [AI Classifications 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]
назавжди
зробити знімок [AIVision1 v] підпису [AI Classifications 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.]
назавжди
зробити знімок [AIVision1 v] підпису [AI Classifications 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.]
назавжди
зробити знімок [AIVision1 v] підпису [RED_BLUE 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] на екрані
зробити знімок [AIVision1 v] підпису [AI Classifications 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] на екрані
зробити знімок [AIVision1 v] підпису [AI Classifications 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.]
назавжди
зробити знімок [AIVision1 v] підпису [AprilTag IDs v]
якщо <об'єкт [AIVision1 v] існує?> тоді
якщо <(об'єкт [AIVision1 v] [tagID v]) [math_equal v] [0]> тоді
їхати [вперед v]
інакше
зупинити рух
Кінець
чекати [0.5] секунд
рахунок#
Властивість score повідомляє, наскільки впевнена модель у виявленій класифікації ШІ у відсотках від 70% до 100%.
Нижчий бал означає, що датчик менш впевнений у виявленому об’єкті, тоді як вищий бал означає, що датчик більш впевнений.
(об'єкт [AIVision1 v] [рахунок v])