Датчик изображения с искусственным интеллектом#
Введение#
Датчик визуального восприятия с искусственным интеллектом способен обнаруживать и отслеживать объекты, цвета и идентификаторы AprilTag. Это позволяет роботу анализировать окружающую среду, следовать за объектами и реагировать на основе обнаруженных визуальных данных.
Ниже приведён список доступных блоков:
Действия – Сбор данных с датчика AI Vision для выбранной подписи.
сделать снимок – Захватывает данные для конкретной подписи, например, заданного цвета, предварительно обученного объекта или идентификатора AprilTag.
Настройки – Выберите объект, с которым будете взаимодействовать.
set AI Vision object item – Выбирает конкретный объект из списка обнаруженных объектов.
Ценности – Доступ к собранным данным и их использование.
Объект AI Vision существует – Сообщает, обнаружен ли объект.
Объект AI Vision – Проверяет, соответствует ли обнаруженный объект определенной классификации.
Идентификатор объекта AI Vision — AprilTag — Проверяет, совпадает ли обнаруженный идентификатор AprilTag с конкретным идентификатором.
Количество обнаруженных объектов в AI Vision – Отображает количество обнаруженных объектов.
Свойство объекта AI Vision – Сообщает такие подробности, как:
centerX & centerY – Координаты положения центра в поле зрения датчика.
угол – Ориентация объекта.
originX & originY – Координаты положения верхнего левого угла в поле зрения датчика.
tagID – Идентификационный номер AprilTag ID.
оценка – Насколько модель уверена в своей идентификации, выраженная в процентах.
Действия#
сделать снимок#
Блок сделать снимок фильтрует данные из кадра датчика AI Vision, сохраняя их в виде единой сигнатуры — сохраненного описания объекта, который датчик может распознать, например, предварительно обученного объекта, идентификатора AprilTag или настроенного цвета или цветового кода.
Перед использованием этого блока необходимо предварительно настроить цвета и цветовые коды в утилите AI Vision Utility.
В наборе данных хранятся объекты, упорядоченные по ширине от наибольшего к наименьшему, начиная с индекса 0. Доступ к свойствам каждого объекта осуществляется с помощью блока Свойство объекта AI Vision. Если соответствующие объекты не обнаружены, сообщается о пустом наборе данных.
сделать снимок [AIVision1 v] объекта [SELECT_A_SIG v]
Параметр |
Описание |
|---|---|
устройство |
Какой датчик искусственного интеллекта использовать? |
подпись |
Фильтрует набор данных, чтобы включить только данные заданной подписи. Доступные подписи:
|
Примечание: Для отображения идентификатора AprilTag или параметров классификации ИИ необходимо включить их обнаружение в утилите AI Vision.
Пример
при запуске
[Drive forward if an AprilTag ID is detected.]
вечно
сделать снимок [AIVision1 v] объекта [AprilTag IDs v]
если <объект [AIVIsion1 v] существует?> то
движение [вперёд v] на [10] [мм v] ▶
Классификации ИИ#
Датчик машинного зрения с искусственным интеллектом может обнаруживать различные объекты в соответствии с определенными классификациями ИИ. В зависимости от модели классификации ИИ, выбранной при настройке датчика машинного зрения с искусственным интеллектом в окне «Устройства», будут обнаруживаться разные объекты. В настоящее время доступны следующие модели:
Предметы для учебного класса
Синий шар
Гринболл
RedBall
БлюРинг
ГринРинг
RedRing
BlueCube
ГринКуб
RedCube
Противодействие проведению соревнований по робототехнике VEX V5
Синий блок
Красный блок
Соревнования по робототехнике VEX V5: высокие ставки
MobileGoal
RedRing
БлюРинг
VEX V5 Robotics Competition Override
RedBluePin
BlueYellowPin
RedYellowPin
Желтая булавка
Чашка
Цветовые сигнатуры#
Цветовая сигнатура — это уникальный цвет, который может распознавать датчик искусственного интеллекта. Эти сигнатуры позволяют датчику обнаруживать и отслеживать объекты на основе их цвета. После настройки цветовой сигнатуры датчик может идентифицировать объекты с этим конкретным цветом в своем поле зрения.
Цветовые сигнатуры используются в блоке сделать снимок для обработки и обнаружения цветных объектов в реальном времени. Одновременно можно настроить до 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 существует.#
Логический блок AI Vision object exists сообщает, обнаружен ли какой-либо объект в наборе данных.
Верно – Набор данных содержит обнаруженный объект.
Ложь – Набор данных не содержит обнаруженных объектов.
<объект [AIVision1 v] существует?>
Параметры |
Описание |
|---|---|
устройство |
Какой датчик искусственного интеллекта использовать? |
Пример
при запуске
[Drive forward if an object is detected.]
вечно
сделать снимок [AIVision1 v] объекта [AI Classifications v]
если <объект [AIVision1 v] существует?> то
движение [вперёд v] на [10] [мм v] ▶
Объект AI Vision — это#
Логический блок AI Vision object is сообщает, соответствует ли обнаруженный объект определенной классификации.
Верно – Элемент в наборе данных представляет собой конкретный объект.
Ложно – Элемент в наборе данных не является конкретным объектом.
<объект [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.#
The AI Vision object is AprilTag ID Boolean block reports whether a detected AprilTag ID matches a specific ID.
Верно – Идентификатор AprilTag – это число.
Неверно – Идентификатор AprilTag не является числом.
<[AIVision1 v] object is AprilTag ID [1] ?>
Параметры |
Описание |
|---|---|
устройство |
Какой датчик искусственного интеллекта использовать? |
Идентификационный номер AprilTag |
Число, которое нужно сравнить с обнаруженным идентификационным номером 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 object count отображает количество обнаруженных объектов в наборе данных в виде целого числа.
(количество объектов [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#
После использования блока сделать снимок каждому объекту (показанному ниже) присваиваются девять свойств.
(объект [AIVision1 v] [ширина v])
Все значения свойств, кроме tagID и score, описывают положение и размер обнаруженного объекта в поле зрения датчика AI Vision в момент использования блока сделать снимок. Эти значения измеряются в пикселях, исходя из разрешения датчика 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]
иначе
остановить движение
конец
иначе
остановить движение
originX#
Свойство 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#
Свойство tagID отображает идентификационный номер обнаруженного идентификатора 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])