Кодування за допомогою сенсора штучного інтелекту у блоках VEXcode V5

Переконайтеся, що у вас налаштовано колірних підписів та кольорові коди за допомогою датчика зору штучного інтелекту, щоб їх можна було використовувати з вашими блоками. Щоб дізнатися більше про те, як їх налаштувати, ви можете прочитати статті нижче:

Датчик зору на базі штучного інтелекту також може виявляти класифікації штучного інтелекту та теги AprilTags. Щоб дізнатися, як увімкнути ці режими виявлення, перейдіть сюди:

Щоб дізнатися більше про ці окремі блоки та про те, як їх використовувати у VEXcode, перейдіть на сайт API.


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

Блок, що містить команду зробити знімок з двома випадаючими списками: один з позначкою AIVision1 та інший з позначкою COL1. Цей блок призначений для отримання знімка з датчика AI Vision та посилання на певний об'єкт або колір із призначених змінних у середовищі візуального кодування. Форма блоку має невеликі вигини на кінцях, що типово для інтерфейсів блочного кодування.

Блок«Зробити знімок робить знімок того, що наразі бачить датчик зору штучного інтелекту, та витягує дані з цього знімка, які потім можна використовувати в проєкті. Під час створення знімка потрібно вказати, який тип об'єкта має збирати сенсор AI Vision Sensor, дані якого слід збирати:

  • Колірна підпис
  • Колірний код
  • Класифікації ШІ
  • КвітеньТеги

Знімок екрана створить масив усіх виявлених об'єктів, які ви вказали. Наприклад, якщо ви хочете виявити "червоний" колірний сигнал, і датчик зору зі штучним інтелектом виявив 3 різні червоні об'єкти, дані з усіх трьох будуть поміщені в масив.

Щоб отримати додаткові відомості про те, як вказувати значення між різними об’єктами, перейдіть до розділу «Встановити елемент об’єкта» цієї статті.

Світло-блакитний блок коду з командою для створення знімка об'єкта або кольору. Є два варіанти випадаючих списків: один з позначкою AIVision2, а інший — Синій. Блок розроблений для використання в середовищі блочного кодування, де він фіксує знімок із датчика AI Vision та відстежує об'єкт або колір, визначений як синій. Блок має незначні вигини, типові для інтерфейсів кодування, які використовують модульні блоки.

У цьому прикладі він виявлятиме лише об’єкти, що відповідають налаштованому кольору «Синій» колірній сигнатурі , і нічого більше.

Дані, взяті зі знімка

Майте на увазі, що датчик зору штучного інтелекту використовуватиме останній зроблений знімок для будь-яких наступних блоків. Щоб переконатися, що ви завжди отримуєте найактуальнішу інформацію від вашого датчика зору зі штучним інтелектом, повторно робіть знімок щоразу, коли потрібно отримати з нього дані. 

Роздільна здатність

Розуміння роздільної здатності датчика штучного інтелекту має вирішальне значення для точної інтерпретації даних. Датчик має роздільну здатність 320x240 пікселів, з точним центром у координатах (160, 120).

X-координати менше 160 відповідають лівій половині поля зору датчика, тоді як ті, що більше 160, представляють праву половину. Аналогічно, координати Y менше 120 вказують на верхню половину зображення, а ті, що більше 120, представляють нижню половину.

Перейдіть до Розуміння даних утиліти AI Vision у VEXcode V5 , щоб отримати додаткові відомості про те, як об’єкти вимірюються за допомогою датчика AI Vision.

Ширина та висота

Це ширина або висота виявленого об'єкта в пікселях.

На зображенні зображено синій Бакібол з білим квадратним контуром, який відстежує його. У верхньому лівому куті є позначка, яка вказує, що це синій об'єкт з координатами X:176, Y:117 та розмірами Ш:80, В:78. Червоними стрілками виділено ширину та висоту об'єкта.

Вимірювання ширини та висоти допомагають ідентифікувати різні об'єкти. Наприклад, Бакібол матиме більшу висоту, ніж Кільце.

Два сині кубічні об'єкти, що відстежуються системою візуального розпізнавання. Верхній куб має білий контур з міткою, що вказує його положення як X:215, Y:70 та розміри Ш:73, В:84. Нижній куб має схожий білий контур з позначкою X:188, Y:184 та розмірами Ш:144, В:113. Кожен куб має центрований білий хрест, що, ймовірно, вказує на фокусну точку для відстеження. Мітки виділяють вимірювання та дані відстеження для кожного об'єкта.

Ширина та висота також вказують на відстань об'єкта від датчика зору штучного інтелекту. Менші виміри зазвичай означають, що об'єкт знаходиться далі, тоді як більші виміри свідчать про те, що він ближче.

Програма починається з блоку, з якого вона була запущена, після чого йде вічний цикл. Усередині циклу програма робить знімок за допомогою датчика AI Vision (AIVision1) для виявлення синього об'єкта. Якщо об'єкт існує, програма перевіряє, чи ширина об'єкта менша за 250 пікселів. Якщо це так, робот рухається вперед; інакше він зупиняється. Блоки складені разом, що вказує на потік програми в модульному середовищі кодування.

У цьому прикладі ширина об'єкта використовується для навігації. Робот наближатиметься до об'єкта, доки його ширина не досягне певного розміру, перш ніж зупинитися.

Центр X та Центр Y

Це центральні координати виявленого об'єкта в пікселях.

Синій Бакібол відстежується системою комп'ютерного зору. Об'єкт обведений білим квадратом, а всередині контуру знаходиться менший червоний квадрат, що оточує білий хрест по центру. У верхньому лівому куті зображення є позначка, що об'єкт синього кольору, з координатами X:176, Y:117 та розмірами W:80, H:78.

Координати CenterX та CenterY допомагають з навігацією та позиціонуванням. Датчик зору зі штучним інтелектом має роздільну здатність 320 x 240 пікселів.

Два сині кубічні об'єкти, що відстежуються системою зору. Верхній об'єкт позначено координатами X:215, Y:70 та розмірами W:73, H:84, білим контуром та білим хрестом по центру. Нижній об'єкт позначено координатами X:188, Y:184 та розмірами W:144, H:113, також обведено білим кольором з білим хрестом по центру.

Ви можете бачити, що об'єкт, розташований ближче до датчика зору штучного інтелекту, матиме нижчу координату CenterY, ніж об'єкт, розташований далі.

Блокова послідовність кодування, що починається з "when started", за якою йде вічний цикл. Усередині циклу програма робить знімок за допомогою AIVision1 для виявлення синього об'єкта. Якщо об'єкт існує, програма обертається, доки він не опиниться в центрі поля зору датчика AI Vision. Об'єкт вважається центрованим, якщо значення його centerX знаходиться в межах від 150 до 170. Якщо об'єкт не відцентрований, робот повертає праворуч; інакше він зупиняється. Блоки вказують на потік та логіку візуальної програми.

У цьому прикладі, оскільки центр поля зору датчика штучного інтелекту (AI Vision Sensor) знаходиться в точці (160, 120), робот повертатиме праворуч, доки координата centraX виявленого об'єкта не стане більшою за 150 пікселів, але меншою за 170 пікселів.

Кут

Кут – це властивість, доступна лише дляколірних кодів таквітень (теги. Це показує, чи виявленийColor Codeабо AprilTag орієнтований по-різному.

Стопка з двох кубів, один зелений зверху та один синій знизу, що відстежуються системою зору. Обидва куби оточує білий контур, а на зеленому кубі розташований білий хрест. Мітка внизу зображення відображає Green_Blue A:87°, що вказує на виявлені кольори та вимірювання кута. Нижче наведено координати X:117, Y:186 з розмірами W:137, H:172, що представляють положення та розмір складених кубів у рамці.

Ви можете побачити, чи орієнтований робот по-іншому відносноColor Code абоAprilTag , і приймати рішення щодо навігації відповідно до цього.

Два кубики, один зелений, а інший синій, розміщені поруч та відстежуються системою зору. Обидва куби обведені білим контуром, а в центрі — білим хрестом. У верхньому лівому куті позначено Green_Blue A:0°, що відповідає виявленим кольорам та вимірюванню кута. Нижче показано координати X:150, Y:102 з розмірами W:179, H:109, що представляють положення та розмір кубів у кадрі.

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

ПоходженняX та ПоходженняY

OriginX та OriginY – це координата у верхньому лівому куті виявленого об'єкта в пікселях.

Синій Бакібол відстежується системою зору. Білий контур оточує об'єкт, а всередині нього розташований білий хрест по центру. У верхньому лівому куті позначено синій колір об'єкта, а також координати X:176, Y:117 та розміри W:80, H:78. Невеликий червоний квадрат виділяє верхній лівий кут об'єкта.

Координати OriginX та OriginY допомагають з навігацією та позиціонуванням. Поєднуючи цю координату з шириною та висотою об'єкта, можна визначити розмір рамки розміру об'єкта. Це може допомогти у відстеженні рухомих об'єктів або навігації між об'єктами.

Блокова кодова послідовність, що починається з моменту запуску, за якою йде вічний цикл. Усередині циклу програма робить знімок за допомогою AIVision1 для виявлення синього об'єкта. Якщо об'єкт існує, програма намалює прямокутник на екрані Brain на основі його положення та розміру. Прямокутник малюється з використанням значень originX, originY, ширини та висоти об'єкта, які надаються датчиком AIVision1. Ця програма візуально відстежує та виділяє виявлений об'єкт на екрані Brain.

У цьому прикладі прямокутник буде намальовано на мозку, використовуючи точні координати його початку, ширини та висоти.

ідентифікатор тегу

TagID доступний лише дляAprilTags. Це ідентифікаційний номер для вказаногоAprilTag.

Три квадратні картки з квітневими тегами, що відстежуються системою зору. Кожна картка позначена ідентифікаційним номером та відповідними даними відстеження. Картка ліворуч має позначку ID:0, на якій вказані координати A:350°, X:110, Y:96, W:41, H:41. Середня картка з позначкою ID:3 має координати A:1°, X:187, Y:180, W:57, H:57. Картка праворуч має позначку ID:9, з координатами A:3°, X:237, Y:89, W:38, H:38. Кожна картка має білий контур, а система відстежує їхнє положення та орієнтацію.

Визначення конкретних тегів AprilTags дозволяє вибіркову навігацію. Ви можете запрограмувати свого робота рухатися до певних міток, ігноруючи інші, ефективно використовуючи їх як покажчики для автоматичної навігації.

Рахунок

Властивість score використовується під час виявленнякласифікацій ШІ за допомогою датчика зору ШІ.

На зображенні показано чотири об'єкти, що відстежуються системою зору: дві кулі та два кільця. Червона куля позначена координатами X:122, Y:84, W:67, H:66 та має бал 99%. Синя куля має X:228, Y:86, W:70, H:68, з результатом 99%. Зелене кільце має координати X:109, Y:186, W:98, H:92 та оцінку 99%. Червоне кільце позначено X:259, Y:187, W:89, H:91, з оцінкою 99%. Кожен об'єкт обведений білим кольором, що вказує на точність відстеження.

Показник достовірності показує, наскільки впевнений датчик зору зі штучним інтелектом у своєму виявленні. На цьому зображенні видно 99% впевненість у визначенні класифікацій ШІ цих чотирьох об'єктів. Ви можете використовувати цей бал, щоб ваш робот зосереджувався лише на дуже впевнених виявленнях.


Встановити об'єкт Елемент

Коли датчик зору зі штучним інтелектом виявляє об'єкт, він поміщається в масив. За замовчуванням, датчик зору зі штучним інтелектом витягуватиме дані з першого об'єкта в масиві або об'єкта з індексом 1. Якщо ваш датчик зору зі штучним інтелектом виявив лише один об’єкт, то цей об’єкт буде вибрано за замовчуванням.

Однак, коли ваш датчик зору зі штучним інтелектом виявив кілька об'єктів одночасно, вам потрібно буде скористатися блокомSet Object Item щоб указати, з якого об'єкта потрібно витягувати дані.

Світло-блакитний блок кодування. Він містить команду для встановлення значення 1 для елемента об'єкта AIVision1. Цей блок є частиною середовища блочного кодування, яке зазвичай використовується для визначення об'єкта чи елемента, на якому має фокусуватися або відстежувати датчик AI Vision. Форма блоку має незначні вигини, що відповідає модульній природі платформи візуального кодування.

Коли датчик зору зі штучним інтелектом виявляє кілька об'єктів, вони впорядковуються в масиві від найбільшого до найменшого. Це означає, що найбільший виявлений об'єкт завжди буде встановлений на індекс об'єкта 1, а найменший об'єкт завжди буде встановлений на найбільший номер.

Інтерфейс утиліти штучного інтелекту з двома синіми кубами, виявленими з лівого боку, кожен з яких позначений своїми координатами X та Y та розмірами. Система підключена, а AprilTags увімкнено, тоді як класифікація за допомогою штучного інтелекту вимкнена. Праворуч відображаються налаштування синього кольору з регульованими діапазонами відтінку та насиченості, встановленими на 22 та 0,34 відповідно. Є опція додавання або встановлення кольору та заморожування відео. Прошивка оновлена, версія 1.0.0.b16, а внизу є кнопка закриття.

У цьому прикладі було виявлено два об'єкти зкольоровою сигнатурою "Синій". Вони обидва будуть поміщені в масив, коли використовується блокTake Snapshot.

Інтерфейс утиліти штучного інтелекту Vision Utility, що відстежує два сині куби з позначками щодо їхніх координат X, Y та даних про розміри. Лівий куб має координати X:127, Y:179 та розміри W:136, H:123, тоді як правий куб має координати X:233, Y:74 та розміри W:78, H:87. Система підключена, AprilTags увімкнено, а класифікація за допомогою штучного інтелекту вимкнена. Налаштування синього кольору мають діапазон відтінку 22 та насиченість 0,34. Внизу відображається кнопка «Зупинити відео» та інформація про прошивку (версія 1.0.0.b16).

Тут об'єкт попереду стане об'єктом з індексом 1, оскільки він є найбільшим об'єктом, а найменший об'єкт стане об'єктом з індексом 2.


Об'єкт існує

Перш ніж витягувати будь-які дані зі знімка, перевіряти, чи сенсор зору зі штучним інтелектом виявив будь-які об'єкти з цього знімка. Саме тут вступає в гру блокObject Exists.

Світло-блакитний шестикутний блок кодування з текстом AIVision1 існує? Цей блок є частиною середовища блочного кодування, яке зазвичай використовується для перевірки, чи виявляється об'єкт датчиком AI Vision з позначкою AIVision1. Блок розроблений таким чином, щоб вписатися в модульну структуру кодування з невеликими вигинами та формою, характерними для таких середовищ.

Цей блок повертатиме значенняTrue абоFalse яке вказує на те, чи містить останній зроблений знімок якісь виявлені об'єкти.

Цей блокслід використовувати щоб переконатися, що ви не намагаєтеся витягнути дані з потенційно порожнього знімка.

Блокова послідовність кодування, яка починається з моменту запуску, а потім йде безкінечний цикл. Усередині циклу датчик AI Vision (AIVision2) робить знімок для виявлення синього кольору. Якщо буде виявлено об'єкт із синьою візуальною сигнатурою, робот рухатиметься вперед. Якщо жодного об'єкта не буде виявлено, робот зупиниться. Блоки об'єднані в складки для представлення умовної логіки програми, де присутність виявленого об'єкта контролює рух робота.

Наприклад, тут робот постійно робитиме знімки за допомогою датчика зору зі штучним інтелектом. Якщо він ідентифікує будь-який об'єкт із «синьою» кольоровою сигнатурою, він рухатиметься вперед.


Якщо будь-який знімок не має «синьої кольорової сигнатури, робот зупиниться.


Кількість об'єктів

Світло-блакитний, округлий блок кодування з позначкою «Кількість об’єктів AIVision1». Цей блок використовується в середовищі блочного кодування для отримання кількості об'єктів, виявлених датчиком AI Vision з позначкою AIVision1. Блок вписується в модульну структуру, яка зазвичай використовується в інтерфейсах візуального програмування для робототехніки або систем машинного зору.

Використання блоку Object count дозволить вам побачити, скільки об'єктів певного Color Signature може побачити датчик зору штучного інтелекту на своєму останньому знімку. 

Інтерфейс утиліти штучного інтелекту з двома синіми кубиками, виявленими ліворуч. Система підключена, AprilTags увімкнено, а класифікація за допомогою штучного інтелекту вимкнена. Інтерфейс відображає налаштування для визначення синього кольору, з відтінком 22 та насиченістю 0,34. Присутні кнопки для заморожування відео та додавання або налаштування кольору. Прошивка позначена як актуальна, версія 1.0.0.b16. Також є кнопка для розриву з'єднання або закриття утиліти.

Тут ми бачимо, що датчик зору зі штучним інтелектом налаштований на колірну сигнатуру «Синій» і виявляє два об’єкти.

Блокова послідовність кодування, що починається з моменту запуску, а потім триває безкінечний цикл. Усередині циклу програма робить знімок за допомогою AIVision2 для виявлення синьої візуальної сигнатури. Він очищує та скидає налаштування консолі, перш ніж перевіряти, чи виявлено сині об'єкти. Якщо існує синій об'єкт, кількість об'єктів виводиться на консоль. Потім програма чекає дві секунди, перш ніж повторити процес. Блоки візуально представляють безперервну перевірку на наявність синіх об'єктів, відображаючи результати в консолі.Вивід консолі з надрукованим числом 2. Консоль є частиною більшого інтерфейсу, який, ймовірно, відображає результати програми, що працює в середовищі блочного кодування. У верхній частині консолі є кнопки для додаткових дій або елементів керування, а програма, що працює тут, виводить дані до консолі друку, яка відображає на екрані результат 2.

У цьому коді датчик зору штучного інтелекту зробить знімок і виведе число «2» на консолі VEXcode, оскільки він виявляє лише два «сині» кольорові підписи .


Об'єкт

Випадаюче меню для вибору властивостей об'єкта, пов'язаних з AIVision1. Вибрано ширину, а в меню перелічені інші параметри, зокрема висота, центр X, центр Y, кут, початок X, початок Y, ідентифікатор тегу та оцінка. Ці опції дозволяють користувачеві отримувати певні точки даних з об'єкта, виявленого датчиком AI Vision, забезпечуючи гнучкість для відстеження або вимірювання різних атрибутів об'єкта.

БлокObject дозволяє вам повідомити про властивість зазначеного вами об'єкта. Це дозволяє використовувати будь-які доступні дані, отримані з останнього зробленого знімка.

Властивості об'єкта, які можна отримати зі зроблених знімків:

  • ширина
  • висота
  • центрX
  • центрY
  • кут
  • походженняX
  • походженняY
  • ідентифікатор тегу
  • рахунок

Щоб отримати докладнішу інформацію про ці властивості, прочитайте розділ «Дані, отримані зі знімка» цієї статті.


Виявлений квітневий тег:

Світло-блакитний шестикутний блок з інтерфейсу кодування. Він містить команду для перевірки, чи збігається виявлений AIVision1 AprilTag зі значенням 1. Цей блок використовується в середовищі блочного кодування та призначений для оцінки наявності певного AprilTag. Форма та структура дозволяють йому вписуватися в інші логічні блоки, які зазвичай використовуються у візуальному програмуванні для робототехніки або завдань штучного інтелекту.

БлокDetected AprilTag is доступний лише тоді
коли ввімкнено режим виявлення AprilTag
Цей блок видасть значення True або False залежно від того, чи є вказаний об'єкт певним AprilTag.

Три AprilTags відстежуються системою зору. Кожен тег має ідентифікатор та пов'язані з ним координати. Лівий тег позначено як ID:0, з координатами X:110, Y:96, W:41, H:41. Центральний тег має позначку ID:3, з координатами X:187, Y:180, W:57, H:57. Правий тег позначено як ID:9, з координатами X:237, Y:89, W:38, H:38.

Коли в одному знімку виявляється кілька тегів AprilTags, вони впорядковуються в масиві на основі їх ідентифікованого ідентифікатора, а не за розміром.

На цьому зображенні виявлено три AprilTags з ідентифікаторами 0, 3 та 9. Вони будуть організовані в порядку зростання їхнього ідентифікатора в масиві. Об'єкт з індексом 1 відповідатиме AprilTag з ідентифікатором 0, з індексом 2 – AprilTag з ідентифікатором 3, а з індексом 3 – AprilTag з ідентифікатором 9.

Щоб отримати докладнішу інформацію про те, що таке AprilTags та як увімкнути їх виявлення за допомогою датчика зору штучного інтелекту, прочитайте цю статтю.


Класифікація ШІ є

Світло-блакитний шестикутний блок із середовища блочного кодування. Блок містить команду AIVision1. Класифікація ШІ – це BlueBall? Цей блок перевіряє, чи датчик AI Vision (AIVision1) класифікував виявлений об'єкт як BlueBall. Блок має випадаючі списки, що дозволяють користувачам вибирати різні об'єкти або класифікації штучного інтелекту для відстеження та прийняття рішень у візуальному інтерфейсі програмування.

БлокAI Classification is доступний лише тоді, коли ввімкнено режим виявленняAI Classification.

 

Цей блок видасть значення «True» (Істина) або «False» (Хибність) залежно від того, чи є вказаний об'єкт певною класифікацією ШІ.

Які класифікації ШІ може виявити датчик ШІ зору, залежать від моделі, яку ви використовуєте. Щоб отримати докладнішу інформацію про доступні класифікації штучного інтелекту та про те, як увімкнути їх виявлення за допомогою датчика зору штучного інтелекту, прочитайте цю статтю.

For more information, help, and tips, check out the many resources at VEX Professional Development Plus

Last Updated: