确保您已使用 AI 视觉传感器配置了 颜色签名 和 颜色代码 ,以便它们可与您的块一起使用。 要了解有关如何配置它们的更多信息,您可以阅读以下文章:
AI视觉传感器还可以检测AI分类和AprilTags。 要了解如何启用这些检测模式,请访问:
要了解有关这些单独块的更多详细信息以及如何在 VEXcode 中使用它们,请访问 API 站点。
拍摄快照
拍摄快照 块拍摄 AI 视觉传感器当前看到的照片,并从该快照中提取数据,然后可用于项目。 拍摄快照时,您需要指定 AI 视觉传感器应收集哪种类型的对象的数据:
- 色彩签名
- 颜色代码
- 人工智能分类
- 四月标签
拍摄快照将创建您指定的所有检测到的对象的一个数组。 例如,如果您想检测“红色”颜色特征,并且 AI 视觉传感器检测到 3 个不同的红色物体,则这三个物体的数据都将放入数组中。
有关如何在不同对象之间指定的更多信息,请转到本文中的“设置对象项”部分。
在这个例子中,它将只检测与其配置的“蓝色” 颜色特征 匹配的对象,而不会检测其他任何对象。
从快照获取的数据
请记住,AI 视觉传感器将使用其最后拍摄的快照来处理之后的任何区块。 为了确保您始终从 AI 视觉传感器获取最新的信息,每次想要从中提取数据时,请重新拍摄快照。
解决
了解人工智能视觉传感器的分辨率对于准确的数据解释至关重要。 该传感器的分辨率为 320x240 像素,中心坐标位于 (160, 120)。
X 坐标小于 160 对应传感器视野的左半部分,而大于 160 对应传感器视野的右半部分。 类似地,小于 120 的 Y 坐标表示视图的上半部分,大于 120 的 Y 坐标表示视图的下半部分
转到 了解 VEXcode V5 中 AI Vision 实用程序中的数据,了解有关如何使用 AI Vision 传感器测量物体的更多信息。
宽度和高度
这是检测到的物体的宽度或高度(以像素为单位)。
宽度和高度的测量有助于识别不同的物体。 例如,巴基球的高度比环的高度大。
宽度和高度也表示物体与 AI 视觉传感器的距离。 测量值越小通常表示物体距离较远,而测量值越大则表示物体距离较近。
在此示例中,对象的宽度用于导航。 机器人会接近物体,直到宽度达到特定尺寸后才停止。
CenterX 和 Center Y
这是检测到的物体的中心坐标(以像素为单位)。
CenterX 和 CenterY 坐标有助于导航和定位。 AI 视觉传感器的分辨率为 320 x 240 像素。
您可以看到,距离 AI 视觉传感器较近的物体的 CenterY 坐标将比较远的物体低。
在此示例中,由于 AI 视觉传感器的视图中心是 (160, 120),因此机器人将向右转弯,直到检测到的物体的中心 X 坐标大于 150 像素但小于 170 像素。
角度
Angle 是仅适用于颜色代码 和AprilTags的属性。 这表示检测到的颜色代码或 AprilTag 是否方向不同。
您可以查看机器人是否相对于颜色代码 或AprilTag 有不同的方向,并据此做出导航决策。
例如,如果未在适当的角度检测到颜色代码 ,则机器人可能无法正确拾取它所代表的物体。
OriginX 和 OriginY
OriginX 和 OriginY 是检测到的物体左上角的坐标(以像素为单位)。
OriginX 和 OriginY 坐标有助于导航和定位。 通过将该坐标与对象的宽度和高度相结合,您可以确定对象边界框的大小。 这有助于追踪移动物体或在物体之间导航。
在此示例中,将使用其原点、宽度和高度的精确坐标在 Brain 上绘制一个矩形。
标签ID
该 tagID 仅适用于AprilTags。 这是指定AprilTag的 ID 号。
识别特定的 AprilTags 可以实现选择性导航。 您可以对机器人进行编程,使其朝某些标签移动而忽略其他标签,有效地将它们用作自动导航的路标。
分数
当使用 AI 视觉传感器检测AI 分类 时使用分数属性。
置信度分数表示人工智能视觉传感器对其检测的确定程度。 在这张图片中,识别这四个物体的 AI 分类的信心达到 99%。 您可以使用此分数来确保您的机器人只关注高度可信的检测。
设置对象项目
当 AI 视觉传感器检测到一个物体时,它会被放入一个数组中。 默认情况下,AI视觉传感器将从数组中的第一个对象或索引为1的对象中提取数据。 如果您的 AI 视觉传感器仅检测到一个物体,那么默认情况下将选择该物体
要从哪个对象中提取数据。
当AI视觉传感器检测到多个物体时,它们会按从大到小的顺序排列在阵列中。 这意味着检测到的最大物体将始终被设置为对象索引 1,而最小物体将始终被设置为最高数字。
在此示例中,已检测到两个具有颜色特征 “蓝色”的物体。 当使用Take Snapshot 块时,它们都将被放入数组中。
这里,前面的对象将成为对象索引 1,因为它是最大的对象,而最小的对象将成为对象索引 2。
对象存在
在从快照中提取任何数据之前,务必进行始终 检查,以确保 AI 视觉传感器已首先检测到该快照中的任何对象。 这就是Object Exists 块发挥作用的地方。
此块将返回True 或False 值,表示最后拍摄的快照是否在其中检测到任何对象。
此块应始终 用于确保您不会尝试从可能为空的快照中提取任何数据。
例如,机器人将使用 AI 视觉传感器不断拍摄快照。 如果它识别出 任何 具有“蓝色” 颜色特征的物体,它就会向前行驶。
如果任何快照没有“蓝色” 颜色特征,机器人将停止移动。
对象计数
使用 对象计数 块将允许您看到 AI 视觉传感器在其最后一张快照中可以看到多少个特定 颜色特征 的对象。
在这里,我们看到 AI 视觉传感器配置了 颜色特征 “蓝色”,并且正在检测两个物体。
在此代码中,AI 视觉传感器将拍摄快照并在 VEXcode 控制台上打印“2”,因为它只检测到两个“蓝色” 颜色签名。
目的
对象 块允许您报告指定对象的属性。 这使您可以使用从最近拍摄的快照中提取的任何可用数据。
可以从拍摄的快照中提取的对象属性包括:
- 宽度
- 高度
- 中心X
- 中心Y
- 角度
- 原点X
- 原点
- 标签ID
- 分数
阅读本文的“从快照获取的数据”部分以获取有关这些属性的更多信息。
检测到的 AprilTag 是
检测到的 AprilTag 是 块仅在打开AprilTag 检测模式 时可用。4
此
将根据指定对象是否为某个 AprilTag 报告 True 或 False。
当在单个快照中检测到多个 AprilTag 时,它们会根据其标识的 ID 而不是大小排列在数组中
在此图像中,检测到三个 AprilTag,ID 分别为 0、3 和 9。 它们将按照数组中 ID 的升序排列。 索引 1 处的对象对应于 ID 为 0 的 AprilTag,索引 2 处的对象对应于 ID 为 3 的 AprilTag,索引 3 处的对象对应于 ID 为 9 的 AprilTag。
有关 AprilTag 是什么以及如何使用 AI 视觉传感器实现其检测的更多信息,请阅读本文。
人工智能分类是
AI 分类为 块仅在AI 分类检测模式 开启时可用。
该块将根据指定对象是否属于某个 AI 分类来报告 True 或 False。
AI 视觉传感器可以检测到的 AI 分类取决于您使用的型号。 有关可用的 AI 分类以及如何使用 AI 视觉传感器启用其检测的更多信息,请阅读本文