Датчик зору зі штучним інтелектом#

Вступ#

Датчик зору зі штучним інтелектом може виявляти та відстежувати об’єкти, кольори та ідентифікатори AprilTag. Це дозволяє роботу аналізувати навколишнє середовище, стежити за об’єктами та реагувати на основі виявлених візуальних даних.

Нижче наведено список доступних блоків:

Дії – Збір даних із датчика зору зі штучним інтелектом для вибраного підпису.

  • зробити знімок – Записує дані для певного підпису, такого як налаштований колір, попередньо навчений об’єкт або ідентифікатор AprilTag.

Налаштування – Виберіть, з яким об’єктом взаємодіяти.

Значення – доступ до отриманих даних та їх використання.

Дії#

зробити знімок#

Блок стеку зробити знімок фільтрує дані з кадру датчика штучного інтелекту зору до єдиного підпису — збереженого опису чогось, що датчик може розпізнати, наприклад, попередньо навченого об’єкта, ідентифікатора AprilTag або налаштованого кольору чи колірного коду.

Кольори та колірні коди необхідно спочатку налаштувати в утиліті AI Vision, перш ніж їх можна буде використовувати з цим блоком.

Набір даних зберігає об’єкти, відсортовані від найбільшого до найменшого за шириною, починаючи з індексу 0. Доступ до властивостей кожного об’єкта можна отримати за допомогою блоку AI Vision object property. Якщо не виявлено відповідних об’єктів, повідомляється про порожній набір даних.

Блок стека Take snapshot.#
зробити знімок [AIVision1 v] підпису [SELECT_A_SIG v]

Параметр

Опис

пристрій

Який датчик зору зі штучним інтелектом використовувати.

підпис

Фільтрує набір даних, щоб включити лише дані заданого підпису. Доступні підписи:

  • Ідентифікатори тегів AprilTag
  • Класифікації ШІ – Доступність змінюється залежно від моделі, налаштованої в утиліті ШІ Vision.
  • НАЗВА – Колір або код кольору, де НАЗВА – це назва, налаштована в утиліті ШІ Vision

Примітка: Щоб відображалися параметри ідентифікатора 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 колірних кодів.

Інтерфейс утиліти штучного інтелекту зору показує підключений датчик зору, який виявляє два суміжні об'єкти: синій прямокутник ліворуч і червоний прямокутник праворуч, згруповані разом в одному білому обмежувальному прямокутнику з позначкою BlueRed. Інформація про виявлення включає кут (A:11°), координати (X:143, Y:103), ширину (W:233) та висоту (H:108). На правій панелі перелічені три колірні сигнатури: Red_Box, Blue_Box та BlueRed з регульованими діапазонами відтінку та насиченості. Сигнатура BlueRed поєднує Blue_Box та Red_Box. Під відеопотоком розташовані кнопки з позначками Freeze Video (Заморозити відео), Copy Image (Копіювати зображення), Save Image (Зберегти зображення) та Close (Закрити).

Приклад

коли запущено
[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 встановлює, який елемент у наборі даних використовувати.

Блок стека елементів об’єкта Set AI Vision.#
встановити елемент об'єкта [AIVision1 v] на (1)

Параметри

Опис

пристрій

Який датчик зору зі штучним інтелектом використовувати.

елемент

Номер елемента в наборі даних, який потрібно використовувати.

Приклад

Стек блоків, що починається з блоку when started, за яким йде блок коментаря з текстом Display the largest detected AprilTag ID. Усередині циклу безкінечності блок take a AI Vision snapshot фіксує зображення ідентифікаторів AprilTag. Блок if перевіряє, чи існує об’єкт AI Vision. Якщо значення true, блок set object AI Vision призначає кількість об’єктів змінній, а блок print відображає ідентифікатор тегу виявленого об’єкта на екрані.#
коли запущено
[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 існує#

Логічний блок Об’єкт AI Vision існує повідомляє, чи виявлено будь-який об’єкт у наборі даних.

  • True – Набір даних містить виявлений об’єкт.

  • Хибно – Набір даних не містить жодних виявлених об’єктів.

Об’єкт AI Vision існує як логічний блок.#
<об'єкт [AIVision1 v] існує?>

Параметри

Опис

пристрій

Який датчик зору зі штучним інтелектом використовувати.

Приклад

коли запущено
[Drive forward if an object is detected.]
назавжди
зробити знімок [AIVision1 v] підпису [AI Classifications v]
якщо <об'єкт [AIVision1 v] існує?> тоді
їхати [вперед v] на [10] [мм v] ▶

Об’єкт ШІ Бачення є#

Булевий блок Об’єкт AI Vision is повідомляє, чи відповідає виявлений об’єкт певній класифікації.

  • True – Елемент у наборі даних є певним об’єктом.

  • Хибність – Елемент у наборі даних не є конкретним об’єктом.

Класифікація ШІ Vision AI є об’єктним логічним блоком.#
<об'єкт [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 ID, що повідомляє, чи збігається виявлений AprilTag ID із певним ідентифікатором.

  • True – Ідентифікатор AprilTag – це число.

  • Хибність – Ідентифікатор AprilTag не є числом.

AI Vision виявив, що ідентифікатор 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 повідомляє кількість виявлених об’єктів у наборі даних у вигляді цілого числа.

Блок стека елементів об’єкта Set 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.

Блок звіту про властивості об’єкта AI Vision.#
(об'єкт [AIVision1 v] [ширина v])

Усі значення властивостей, окрім tagID та score, описують положення та розмір виявленого об’єкта в області зору датчика штучного інтелекту у момент використання блоку take snapshot. Ці значення вимірюються в пікселях, виходячи з роздільної здатності датчика 320 на 240 пікселів.

Параметр

Опис

пристрій

Який датчик зору зі штучним інтелектом використовувати.

власність

Яку властивість виявленого об’єкта використовувати:

ширина#

Властивість width повідомляє ширину виявленого об’єкта в пікселях як ціле число від 1 до 320.

Блок стека властивостей об’єкта AI Vision з параметром, встановленим на ширину.#
(об'єкт [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.

Блок стека властивостей об’єкта AI Vision з параметром, встановленим на висоту.#
(об'єкт [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.

Блок стека властивостей об’єкта AI Vision з параметром, встановленим на centerX.#
(об'єкт [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.

Блок стека властивостей об’єкта AI Vision з параметром, встановленим на centerY.#
(об'єкт [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.

Блок стека властивостей об’єкта AI Vision з параметром, встановленим на кут.#
(об'єкт [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.

Блок стека властивостей об’єкта AI Vision з параметром, встановленим на originX.#
(об'єкт [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.

Блок стека властивостей об’єкта AI Vision з параметром, встановленим на originY.#
(об'єкт [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 як ціле число.

Блок стека властивостей об’єкта AI Vision з параметром, встановленим на tagID.#
(об'єкт [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%.

Нижчий бал означає, що датчик менш впевнений у виявленому об’єкті, тоді як вищий бал означає, що датчик більш впевнений.

Блок стека властивостей об’єкта AI Vision з параметром, встановленим на tagID.#
(об'єкт [AIVision1 v] [рахунок v])