Кодирование с использованием датчика зрения ИИ в блоках VEXcode EXP

Убедитесь, что у вас настроены цветовых сигнатур и цветовых кодов с помощью датчика AI Vision, чтобы их можно было использовать с вашими блоками. Более подробную информацию об их настройке вы можете узнать, прочитав статьи ниже:

Датчик AI Vision также может обнаруживать AI-классификации и AprilTags. Чтобы узнать, как включить эти режимы обнаружения, перейдите по ссылке:

Более подробную информацию об этих отдельных блоках и о том, как их использовать в VEXcode, можно найти на сайте API.


Сделать снимок

Блок VEXcode EXP Take Snapshot, который гласит «Сделать снимок AIVision1 COL1». Есть два раскрывающихся списка: один для выбора датчика искусственного интеллекта и второй для выбора цветового кода.

БлокTake Snapshot делает снимок того, что в данный момент видит датчик AI Vision, и извлекает данные из этого снимка, которые затем можно использовать в проекте. При создании снимка вам необходимо указать, данные о каком типе объекта датчик AI Vision должен собирать:

  • Цветовая подпись
  • Цветовой код
  • Классификации ИИ
  • АпрельТеги

При создании снимка будет создан массив всех обнаруженных объектов, которые вы указали. Например, если вы хотите обнаружить «краснуюцветовую сигнатуру, а датчик искусственного интеллекта обнаружил 3 разных красных объекта, данные со всех трех будут помещены в массив
.
Дополнительную информацию о том, как указать между различными объектами, см. в разделе «Установка элемента объекта» в этой статье.

Блок VEXcode EXP Take Snapshot, который гласит «Сделать снимок AIVision2 Blue».

В этом примере он будет обнаруживать только те объекты, которые соответствуют его настроенной цветовой сигнатуре «Синий» и никакой.

Данные, полученные из моментального снимка

Помните, что датчик AI Vision будет использовать свой последний снимок для всех последующих блоков. Чтобы вы всегда получали самую актуальную информацию от датчика AI Vision, делайте снимок каждый раз, когда хотите извлечь из него данные. 

Разрешение

Диаграмма разрешения датчика искусственного интеллекта. Верхний левый угол обозначен 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.

Ширина и высота также указывают расстояние до объекта от датчика AI Vision. Меньшие значения обычно означают, что объект находится дальше, тогда как большие значения говорят о том, что он ближе.

Проект VEXcode Blocks, в котором робот будет приближаться к объекту, пока ширина не достигнет определенного размера, а затем остановится. Проект начинается с блока «Когда начато» и цикла «Навсегда». Остальная часть проекта находится внутри цикла Forever. Сначала сделаем снимок AIVision1 объекта Blue, затем остальную часть проекта поместим в блок If, который проверяет, существует ли объект AIVision1. Внутри этого блока If есть блок If Else, который считывает, если ширина объекта AIVision1 меньше 250, то движение вперед, в противном случае остановка движения.

В этом примере для навигации используется ширина объекта. Робот будет приближаться к объекту до тех пор, пока ширина не достигнет определенного размера, а затем остановится.

ЦентрX и Центр Y

Это координаты центра обнаруженного объекта в пикселях.

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

Координаты CenterX и CenterY помогают в навигации и позиционировании. Датчик AI Vision имеет разрешение 320 x 240 пикселей.

На изображении датчик искусственного интеллекта отслеживает два синих куба. Вокруг кубов имеются прямоугольники отслеживания, один из которых расположен гораздо ближе к камере. У ближайшего из них позиция Y равна 184, а у дальнего — позиция Y равна 70.

Видно, что объект, расположенный ближе к датчику AI Vision, будет иметь более низкую координату CenterY, чем объект, расположенный дальше.

Проект VEXcode Blocks, в котором робот будет поворачиваться к обнаруженному объекту до тех пор, пока он не окажется в центре поля зрения датчика AI Vision. Проект начинается с блока «Когда начато» и цикла «Навсегда». Остальная часть проекта находится внутри цикла Forever. Сначала сделаем снимок AIVision1 объекта Blue, затем остальную часть проекта поместим в блок If, который проверяет, существует ли объект AIVision1. Внутри этого блока If есть блок If Else, который читает: если центрX объекта AIVision1 больше 150 и центрX объекта AIVision1 меньше 170, то поверните направо, в противном случае остановите движение.

В этом примере, поскольку центр поля зрения датчика AI Vision находится в точке (160, 120), робот будет поворачивать направо до тех пор, пока координата centerX обнаруженного объекта не станет больше 150 пикселей, но меньше 170 пикселей.

Угол

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

Угол — это свойство, доступное только дляцветовых кодов иAprilTags. Это показывает, ориентирован ли обнаруженныйColor Codeили AprilTag по-разному.

Датчик искусственного интеллекта на изображении отслеживает цветовой код: зеленый, затем синий. На видеотрансляции виден зеленый куб, установленный на синем кубе. Значение угла цветового кода выделено и составляет 87 градусов, что указывает на то, что цветовой код ориентирован вертикально.

Вы можете увидеть, ориентирован ли робот по-разному относительно цветового кода илиAprilTag , и принять решения по навигации в соответствии с этим.

Датчик искусственного интеллекта на изображении отслеживает цветовой код: зеленый, затем синий. На видеозаписи видно, как зеленый куб находится рядом с синим кубом, но они расположены под неудобным углом по сравнению с датчиком. Значение угла цветового кода подсвечивается и составляет 0 градусов, что указывает на то, что угол цветового кода не может быть считан.

Например, если цветовой код не обнаружен под правильным углом, то робот не сможет должным образом захватить представляемый им объект.

OriginX и OriginY

OriginX и OriginY — координаты верхнего левого угла обнаруженного объекта в пикселях.

На изображении датчик искусственного интеллекта отслеживает синий бакибол. Бакибол имеет прямоугольник отслеживания вокруг себя, а на этикетке выше указано, что его положение по оси X составляет 176, а положение по оси Y — 117. Верхний левый угол прямоугольника отслеживания подсвечен, чтобы показать, что исходное положение измеряется от его верхнего левого угла.

Координаты OriginX и OriginY помогают в навигации и позиционировании. Объединив эту координату с шириной и высотой объекта, можно определить размер ограничивающей рамки объекта. Это может помочь при отслеживании движущихся объектов или навигации между объектами.

Проект VEXcode Blocks, в котором робот будет рисовать обнаруженный объект на своем экране в виде прямоугольника. Проект начинается с блока «Когда начато» и цикла «Навсегда». Остальная часть проекта находится внутри цикла Forever. Сначала сделаем снимок AIVision1 объекта Blue, затем остальную часть проекта поместим в блок If, который проверяет, существует ли объект AIVision1. Внутри этого блока If есть блок Draw прямоугольника, который считывает на Brain координаты объекта AIVision1 originX, originY, ширину объекта AIVision1, высоту объекта AIVision1.

В этом примере прямоугольник будет нарисован на Мозге с использованием точных координат его начала, ширины и высоты.

tagID

Идентификатор тега доступен только дляAprilTags. Это идентификационный номер для указанногоAprilTag.

Утилита AI Vision отслеживает три AprilTags. Каждая метка идентифицируется, определяется местоположением и обозначается контуром, что указывает на ее отслеживание системой. Идентификаторы AprilTag в этом примере — 0, 3 и 9.

Определение конкретных AprilTags позволяет осуществлять выборочную навигацию. Вы можете запрограммировать своего робота на движение к определенным меткам, игнорируя другие, эффективно используя их в качестве указателей для автоматизированной навигации.

Счет

Свойство оценки используется при обнаруженииклассификаций ИИ с помощью датчика зрения ИИ.

Утилита AI Vision отслеживает четыре объекта: два BuckyBall и два Ring. Каждый объект идентифицируется, локализуется и обозначается контуром, что указывает на его отслеживание системой. Утилита также выводит оценку классификации ИИ для каждого объекта, в этом примере каждая оценка составляет 99%.

Показатель уверенности показывает, насколько точно датчик AI Vision определяет объект. На этом изображении он на 99% уверен в идентификации классификаций ИИ этих четырех объектов. Эту оценку можно использовать, чтобы убедиться, что ваш робот фокусируется только на очень надежных обнаружениях.


Установить элемент объекта

Когда датчик AI Vision обнаруживает объект, он помещается в массив. По умолчанию датчик зрения ИИ извлекает данные из первого объекта в массиве или объекта с индексом 1. Если ваш датчик искусственного интеллекта обнаружил только один объект, то этот объект будет выбран по умолчанию.

Однако, если ваш датчик AI Vision обнаружил несколько объектов одновременно, вам нужно будет использовать блокSet Object Item чтобы указать, с какого объекта вы хотите извлечь данные.

VEXcode EXP Установка блока элемента объекта, который читает «Установить элемент объекта AIVision1 на 1». Имеется раскрывающийся список для выбора датчика искусственного интеллекта и текстовое поле для ввода индекса объекта.

Когда датчик AI Vision обнаруживает несколько объектов, они располагаются в массиве от большего к меньшему. Это означает, что самому большому обнаруженному объекту всегда будет присвоен индекс объекта 1, а самому маленькому объекту всегда будет присвоен наибольший номер.

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

В этом примере обнаружено два объекта с цветовой сигнатуройи кодом «Синий». Они оба будут помещены в массив при использовании блокаTake Snapshot.

На изображении датчик искусственного интеллекта отслеживает два синих куба. Вокруг кубов имеются прямоугольники отслеживания, один из которых расположен гораздо ближе к камере. Ближайший куб обозначен цифрой 1, а дальний куб — цифрой 2.

Здесь объект на переднем плане станет объектом с индексом 1, поскольку это самый большой объект, а самый маленький объект станет объектом с индексом 2.


Объект существует

Прежде чем извлекать какие-либо данные из снимка, проверять, обнаружил ли датчик AI Vision какие-либо объекты на этом снимке. Вот тут-то и вступает в игру блокObject Exists.

VEXcode EXP Объект существует. Блок, который считывает, что объект AIVision1 существует? Для выбора датчика искусственного интеллекта предусмотрен раскрывающийся список.

Этот блок вернет значениеTrue илиFalse в зависимости от того, были ли обнаружены какие-либо объекты на последнем сделанном снимке.

Этот блок следуетвсегда использовать, чтобы убедиться, что вы не пытаетесь извлечь какие-либо данные из потенциально пустого снимка.

Проект VEXcode Blocks, в котором робот будет двигаться к обнаруженному синему объекту. Проект начинается с блока «Когда начато» и цикла «Навсегда». Остальная часть проекта находится внутри цикла Forever. Сначала сделайте снимок AIVision2 объекта Blue, затем блок If Else, который считывает, если объект AIVision2 существует, то двигайтесь вперед, в противном случае останавливайтесь.

Например, здесь робот будет постоянно делать снимки с помощью датчика AI Vision. Если он идентифицирует с цветовой сигнатурой «синий» , он поедет вперед.


Если какой-либо снимок не имеет цветовой сигнатуры «Синий» , робот прекратит движение.


Количество объектов

VEXcode EXP Блок подсчета объектов, который считывает количество объектов AIVision1. Для выбора датчика искусственного интеллекта предусмотрен раскрывающийся список.

Использование блока Object count позволит вам увидеть, сколько объектов определенной Color Signature датчик AI Vision может увидеть на своем последнем снимке. 

На изображении датчик искусственного интеллекта отслеживает два синих куба. Вокруг кубов имеются прямоугольники отслеживания, один из которых расположен гораздо ближе к камере.

Здесь мы видим, что датчик AI Vision имеет настроенную цветовую сигнатуру цвет «Синий», и обнаруживает два объекта.

Проект VEXcode Blocks, в котором робот будет выводить количество обнаруженных синих объектов на консоль печати. Проект начинается с блока «Когда начато» и цикла «Навсегда». Остальная часть проекта находится внутри цикла Forever. Сначала сделайте снимок AIVision2 Blue, очистите все строки на Console, а затем установите курсор на следующую строку на Console. Далее следует блок If, который считывает, существует ли объект AIVision2, затем выводит количество объектов AIVision2 на консоль и устанавливает курсор на следующую строку. За пределами блока If находится блок Wait, настроенный на ожидание в течение 2 секунд.Вывод консоли печати предыдущего проекта VEXcode Blocks с напечатанным сообщением 2.

В этом коде датчик зрения ИИ сделает снимок и выведет «2» на консоль VEXcode, поскольку он обнаруживает только две сигнатуры цвета «синий» .


Объект

Блок объекта VEXcode EXP AI Vision, который считывает ширину объекта AIVision1. Имеется раскрывающийся список для выбора датчика искусственного интеллекта и открытое раскрывающееся меню для выбора атрибута объекта для обнаружения. Список параметров включает ширину, высоту, centerX, centerY, угол, originX, originY, tagID и оценку.

БлокObject позволяет вам сообщить свойство указанного вами объекта. Это позволяет использовать любые доступные данные, извлеченные из последнего сделанного снимка.

Свойства объекта, которые можно извлечь из сделанных снимков:

  • ширина
  • высота
  • centerX
  • centerY
  • угол
  • originX
  • originY
  • tagID
  • счет

Более подробную информацию об этих свойствах можно найти в разделе «Данные, полученные из моментального снимка» данной статьи.


Обнаружен AprilTag

VEXcode EXP Detected AprilTag — это блок, который считывает AIVision1, обнаруженный AprilTag равен 1? Для выбора датчика искусственного интеллекта предусмотрен раскрывающийся список.

БлокDetected AprilTag is доступен только при включенном режиме обнаружения AprilTag

Этот блок выдаст значение True или False в зависимости от того, является ли указанный объект определенным AprilTag.

Утилита AI Vision отслеживает три AprilTags. Каждая метка идентифицируется, определяется местоположением и обозначается контуром, что указывает на ее отслеживание системой. Идентификаторы 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? Имеется раскрывающийся список для выбора датчика искусственного интеллекта и еще одно раскрывающееся меню для выбора целевого объекта классификации искусственного интеллекта.

Блок классификации ИИ доступен только в том случае, если включен режим обнаружения классификации ИИ.

 

Этот блок выдаст значение True или False в зависимости от того, относится ли указанный объект к определенной классификации ИИ.

То, какие классификации ИИ может обнаружить датчик ИИ-зрения, зависит от используемой модели. Дополнительную информацию о доступных классификациях ИИ и о том, как включить их обнаружение с помощью датчика AI Vision, можно найти в этой статье.

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

Last Updated: