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

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

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

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


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

Блок VEXcode EXP Take Snapshot, який читається як «Зробити знімок COL1 у форматі AIVision1». Є два випадаючих меню: одне для вибору датчика зору зі штучним інтелектом, а друге для вибору колірного коду.

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

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

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

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

Блок VEXcode EXP Take Snapshot, який читається як «Зробити знімок AIVision2 для Blue».

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

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

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

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

Діаграма роздільної здатності сенсора зору штучного інтелекту. Верхній лівий кут позначено 0, 0, верхній правий кут позначено 320, 0, а нижній лівий кут позначено 0, 240. Центр екрана позначено 160, 120.

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

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

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

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

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

Показано, що датчик зору штучного інтелекту відстежує синій Бакібол. Бакібол має прямокутник відстеження навколо себе, а позначка вище показує, що його ширина становить 80 пікселів, а висота — 78 пікселів. Червоні стрілки підкреслюють прямокутник відстеження, демонструючи його ширину та висоту.

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

Показано, що датчик зору зі штучним інтелектом відстежує два сині куби. Куби мають прямокутники відстеження навколо себе, і один з них розташований набагато ближче до камери. Ближчий має ширину 144 та висоту 113, а дальній — ширину 73 та висоту 84.

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

Проект VEXcode Blocks, у якому робот наближатиметься до об'єкта, доки його ширина не досягне певного розміру, перш ніж зупинитися. Проєкт починається з блоку When started та циклу Forever. Решта проекту знаходиться всередині циклу Forever. Спочатку зробіть знімок AIVision1 для Blue, потім решту проекту помістіть в блок If, який зчитує, чи існує об'єкт AIVision1? Усередині цього блоку If є блок If Else, який зчитує, що якщо ширина об'єкта AIVision1 менша за 250, то рух вперед відбувається, інакше рух зупиняється.

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

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

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

Показано, що датчик зору штучного інтелекту відстежує синій Бакібол. Бакібол має прямокутник відстеження навколо себе, а позначка вище показує, що його позиція X становить 176, а позиція Y — 117. Центр прямокутника відстеження виділено, щоб показати, що положення вимірюється від центру.

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

Показано, що датчик зору зі штучним інтелектом відстежує два сині куби. Куби мають прямокутники відстеження навколо себе, і один з них розташований набагато ближче до камери. Ближчий має позицію Y 184, а дальній — 70.

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

Проект VEXcode Blocks, у якому робот повертатиметься до виявленого об'єкта, доки той не опиниться в центрі поля зору датчика зору штучного інтелекту. Проєкт починається з блоку When started та циклу Forever. Решта проекту знаходиться всередині циклу Forever. Спочатку зробіть знімок AIVision1 для Blue, потім решту проекту помістіть в блок If, який зчитує, чи існує об'єкт AIVision1? Усередині цього блоку If є блок If Else, який зчитує: якщо об'єкт centerX AIVision1 більше 150, а об'єкт centerX AIVision1 менше 170, то повернути праворуч, інакше зупинити рух.

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

Кут

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

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

Датчик зору штучного інтелекту відстежує колірний код спочатку зеленого, а потім синього. На відео показано Зелений куб, покладений поверх Синього куба. Значення кута колірного коду виділено та дорівнює 87 градусам, що вказує на вертикальну орієнтацію колірного коду.

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

Датчик зору штучного інтелекту відстежує колірний код спочатку зеленого, а потім синього. На відео видно Зелений куб поруч із Синім кубом, але вони розташовані під незручним кутом порівняно з датчиком. Значення кута колірного коду виділено та дорівнює 0 градусів, що вказує на те, що кут колірного коду неможливо прочитати.

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

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

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

Показано, що датчик зору штучного інтелекту відстежує синій Бакібол. Бакібол має прямокутник відстеження навколо себе, а позначка вище показує, що його позиція X становить 176, а позиція Y — 117. Лівий верхній кут прямокутника відстеження виділено, щоб показати, що початкове положення вимірюється від його лівого верхнього кута.

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

Проект VEXcode Blocks, у якому робот малюватиме виявлений об'єкт на своєму екрані у вигляді прямокутника. Проєкт починається з блоку When started та циклу Forever. Решта проекту знаходиться всередині циклу Forever. Спочатку зробіть знімок AIVision1 для Blue, потім решту проекту помістіть в блок If, який зчитує, чи існує об'єкт AIVision1? Усередині цього блоку If є блок Draw rectangle, який зчитує значення draw rectangle: AIVision1 object originX, AIVision1 object originY, AIVision1 object width, AIVision1 object height на Brain.

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

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

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

Утиліта штучного інтелекту бачення відстежує три теги AprilTag. Кожна мітка ідентифікована, розташована та окреслена, що вказує на її відстеження системою. Ідентифікатори AprilTag у цьому прикладі мають значення 0, 3 та 9.

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

Рахунок

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

Утиліта AI Vision відстежує чотири об'єкти: два BuckyBall та два Ring. Кожен об'єкт ідентифікується, локалізується та окреслюється, що вказує на його відстеження системою. Утиліта також показує оцінку класифікації ШІ кожного об'єкта, у цьому прикладі кожна оцінка становить 99%.

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


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

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

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

VEXcode EXP Встановити блок елемента об'єкта, який зчитує Встановити елемент об'єкта AIVision1 на 1. Є випадаючий список для вибору датчика зору зі штучним інтелектом та текстове поле для введення індексу об'єкта.

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

Показано, що датчик зору зі штучним інтелектом відстежує два сині куби. Куби мають прямокутники відстеження навколо себе, і один з них розташований набагато ближче до камери. Ближчий має ширину 136, а дальній — 78.

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

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

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


Об'єкт існує

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

Блок VEXcode EXP Object exists, який зчитує, що об'єкт AIVision1 існує? Є випадаючий список для вибору датчика зору зі штучним інтелектом.

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

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

Проєкт VEXcode Blocks, у якому робот рухатиметься до виявленого синього об'єкта. Проєкт починається з блоку When started та циклу Forever. Решта проекту знаходиться всередині циклу Forever. Спочатку зробіть знімок об'єкта Blue в AIVision2, а потім блок If Else, який зчитує, чи існує об'єкт AIVision2, тоді рухайтеся вперед, інакше зупиняйтеся.

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


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


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

Блок підрахунку об'єктів VEXcode EXP, який зчитує кількість об'єктів AIVision1. Є випадаючий список для вибору датчика зору зі штучним інтелектом.

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

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

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

Проект VEXcode Blocks, у якому робот друкуватиме кількість виявлених синіх об'єктів на консолі друку. Проєкт починається з блоку When started та циклу Forever. Решта проекту знаходиться всередині циклу Forever. Спочатку зробіть знімок AIVision2 для Blue, очистіть усі рядки на консолі, а потім встановіть курсор на наступний рядок на консолі. Далі йде блок If, який зчитує, чи існує об'єкт AIVision2, потім виводить кількість об'єктів AIVision2 на консоль та встановлює курсор на наступний рядок. Поза блоком If є блок Wait, встановлений на очікування протягом 2 секунд.Вивід консолі друку попереднього проекту VEXcode Blocks з друкованим повідомленням, що містить значення 2.

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


Об'єкт

Блок об'єкта VEXcode EXP AI Vision, який зчитує ширину об'єкта AIVision1. Є випадаюче меню для вибору датчика зору зі штучним інтелектом та відкрите випадаюче меню для вибору атрибута об'єкта для сприйняття. Список опцій містить такі параметри: ширина, висота, центр X, центр Y, кут, вихід X, вихід Y, тагID та оцінка.

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

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

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

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


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

VEXcode EXP Detected AprilTag - це блок, який зчитує AIVision1, виявлено, що AprilTag дорівнює 1? Є випадаючий список для вибору датчика зору зі штучним інтелектом.

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

Три квітневі теги відстежуються утилітою штучного інтелекту. Кожна мітка ідентифікована, розташована та окреслена, що вказує на її відстеження системою. Ідентифікатори AprilTag у цьому прикладі мають значення 0, 3 та 9.

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

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

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


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

VEXcode EXP AI Classification – це блок, який читає AIVision1 AI Classification – це 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: