AI 비전 센서#

소개#

VEX IQ AI 비전 센서는 사물, 색상 및 AprilTag ID를 감지하고 추적할 수 있습니다. 이를 통해 로봇은 주변 환경을 분석하고, 물체를 추적하며, 감지된 시각 데이터를 기반으로 반응할 수 있습니다.

AI 비전 예제는 VEX IQ AI 비전 센서가 장착된 베이스봇과 함께 사용하도록 설계되었습니다. 이 예제에서 센서는 블록에 표시되는 AIVision1이라는 이름으로 구성됩니다.

아래는 모든 블록 목록입니다.

작업 — 선택한 서명에 대해 VEX IQ AI 비전 센서에서 데이터를 캡처합니다.

  • 객체 데이터 가져오기 — 구성된 색상, 사전 학습된 객체 또는 AprilTag ID와 같은 특정 서명에 대한 데이터를 캡처합니다.

설정 — 상호 작용할 개체를 선택하세요.

값 — 캡처된 데이터에 접근하고 사용합니다.

행위#

객체 데이터를 가져옵니다.#

객체 데이터 가져오기 스택 블록은 VEX IQ AI 비전 센서 프레임에서 데이터를 필터링하여 단일 시그니처(센서가 인식할 수 있는 항목에 대한 저장된 설명으로, 사전 학습된 객체, AprilTag ID 또는 구성된 색상이나 색상 코드 등)를 생성합니다.

이 블록에서 색상과 색상 코드를 사용하려면 먼저 AI Vision 유틸리티에서 색상 및 색상 코드를 구성해야 합니다.

데이터셋은 인덱스 0부터 시작하여 너비가 큰 순서부터 작은 순서로 정렬된 객체를 저장합니다. 각 객체의 속성은 AI Vision 객체 속성 블록을 사용하여 접근할 수 있습니다. 일치하는 객체가 감지되지 않으면 빈 데이터셋이 보고됩니다.

객체 데이터 가져오기 스택 블록입니다.#
[AIVision1 v]에서 [SELECT_A_SIG v] 데이터 가져오기

매개변수

설명

서명

지정된 서명에 해당하는 데이터만 포함하도록 데이터 세트를 필터링합니다. 사용 가능한 서명은 다음과 같습니다.

  • AprilTag ID
  • AI 분류 — AI Vision 유틸리티에 구성된 모델에 따라 사용 가능 여부가 달라집니다.
  • NAME — AI Vision 유틸리티에 구성된 이름인 NAME을 사용하여 색상 서명 또는 색상 코드를 지정합니다

참고: AprilTag ID 또는 AI 분류 옵션이 표시되려면 AI Vision 유틸리티에서 해당 감지 기능을 활성화해야 합니다.

예

시작 시
[Drive forward if an AprilTag ID is detected.]
무한 반복
[AIVision1 v]에서 [AprilTag IDs v] 데이터 가져오기
<[AIVIsion1 v] 객체가 있나요?>이면
[앞으로 v] 방향으로 [10] [mm v] 주행 ▶

AI 분류#

VEX IQ AI 비전 센서는 특정 AI 분류에 따라 다양한 물체를 감지할 수 있습니다. 장치 창에서 VEX IQ AI 비전 센서를 구성할 때 선택한 AI 분류 모델에 따라 감지되는 물체가 달라집니다. 현재 사용 가능한 모델은 다음과 같습니다.

교실 용품

  • 블루볼

  • 그린볼

  • 레드볼

  • 블루링

  • 그린링

  • 레드링

  • 블루큐브

  • 그린큐브

  • 레드큐브

VEX IQ 로봇 경진대회 믹스 앤 매치

  • 빔

  • 레드핀

  • 블루핀

  • 오렌지핀

VEX IQ 로봇 경진대회 레벨 업

  • 블루빈백

  • 레드빈백

  • 옐로우빈백

색상 특징#

컬러 시그니처는 VEX IQ AI 비전 센서가 인식할 수 있는 고유한 색상입니다. 이 시그니처를 통해 센서는 색상을 기반으로 물체를 감지하고 추적할 수 있습니다. 컬러 시그니처가 설정되면 센서는 시야 내에서 해당 특정 색상의 물체를 식별할 수 있습니다.

컬러 시그니처는 객체 데이터 가져오기 블록에서 컬러 객체를 실시간으로 처리하고 감지하는 데 사용됩니다. 한 번에 최대 7개의 컬러 시그니처를 구성할 수 있습니다.

AI 비전 유틸리티는 연결된 비전 센서가 두 개의 색상 객체를 감지하는 모습을 보여줍니다. 왼쪽에는 파란색 상자와 빨간색 상자가 각각 흰색 테두리로 둘러싸인 실시간 카메라 영상이 표시됩니다. 검은색 레이블에는 각 객체의 이름, 좌표 및 크기가 표시됩니다. 오른쪽에는 색상 특징 설정이 있으며, 파란색 상자와 빨간색 상자 모두에 대한 색조 및 채도 범위를 조절하는 슬라이더가 있습니다. 색상 추가, 비디오 정지, 복사 및 이미지 저장 버튼은 하단에 있으며, 오른쪽 하단에는 닫기 버튼이 있습니다.

예

시작 시
[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개의 컬러 시그니처로 구성된 구조화된 패턴입니다. 이 코드를 통해 VEX IQ AI 비전 센서는 미리 정의된 색상 패턴을 인식할 수 있습니다.

색상 코드는 복잡한 객체를 식별하거나, 게임 요소와 연계하거나, 자율 주행을 위한 고유한 마커를 생성하는 데 특히 유용합니다. 최대 8개의 색상 코드를 동시에 설정할 수 있습니다.

AI 비전 유틸리티 인터페이스는 연결된 비전 센서가 인접한 두 객체 왼쪽의 파란색 상자와 오른쪽의 빨간색 상자 를 감지하는 모습을 보여줍니다. 이 두 객체는 ​​BlueRed라는 레이블이 붙은 하나의 흰색 경계 상자 안에 함께 그룹화되어 있습니다. 감지 정보에는 각도 A:11° , 좌표 X:143, Y:103 , 너비 W:233 , 높이 H:108 가 포함됩니다. 오른쪽 패널에는 Red_Box, Blue_Box, BlueRed의 세 가지 색상 시그니처가 나열되어 있으며, 색조와 채도 범위를 조정할 수 있습니다. BlueRed 시그니처는 Blue_Box와 Red_Box를 결합한 것입니다. 비디오 피드 아래에는 비디오 정지, 복사, 이미지 저장, 닫기 버튼이 있습니다.

예

시작 시
[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 비전 객체 항목 설정#

AI 비전 객체 항목 설정 스택 블록은 데이터 세트에서 사용할 항목을 설정합니다.

Set AI Vision 객체 항목 스택 블록.#
[AIVision1 v] 객체 항목을 (1)로 설정

매개변수

설명

목

사용할 데이터 세트 내 항목 번호입니다.

예

시작 블록으로 시작하고, 그 뒤에 “감지된 가장 큰 AprilTag ID를 표시합니다”라는 주석 블록이 이어지는 블록 스택입니다. 무한 루프 안에서 AI Vision 스냅샷 블록이 AprilTag ID 이미지를 캡처합니다. 조건 블록은 AI Vision 객체가 존재하는지 확인합니다. 존재하면 AI Vision 객체 항목 설정 블록이 객체 개수를 변수에 할당하고, 출력 블록은 감지된 객체의 태그 ID를 화면에 표시합니다.#
시작 시
[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 비전 객체가 존재합니다#

AI 비전 객체 존재 여부 부울 블록은 데이터 세트에서 객체가 감지되었는지 여부를 보고합니다.

  • 참 — 데이터 세트에 감지된 객체가 포함되어 있습니다.

  • 거짓 — 데이터 세트에는 감지된 객체가 포함되어 있지 않습니다.

AI 비전 객체의 존재 여부를 나타내는 불리언 블록입니다.#
<[AIVision1 v] 객체가 있나요?>

매개변수

설명

이 블록에는 매개변수가 없습니다.

예

시작 시
[Drive forward if an object is detected.]
무한 반복
[AIVision1 v]에서 [AI 분류 v] 데이터 가져오기
<[AIVision1 v] 객체가 있나요?>이면
[앞으로 v] 방향으로 [10] [mm v] 주행 ▶

AI 비전 객체 개수#

AI 비전 객체 개수 리포터 블록은 데이터 세트에서 감지된 객체 수를 정수로 보고합니다.

Set AI Vision 객체 항목 스택 블록.#
([AIVision1 v] 객체 수)

매개변수

설명

이 블록에는 매개변수가 없습니다.

예

시작 시
[Display the total amount of cubes, rings, and balls.]
무한 반복
화면에서 [1]행 지우기
화면에서 커서를 [1]행 [1]열로 이동
[AIVision1 v]에서 [AI 분류 v] 데이터 가져오기
<[AIVision1 v] 객체가 있나요?>이면
화면에 ([AIVision1 v] 객체 수) 출력 ▶
끝
[0.5]초 기다리기

AI 비전 객체 속성#

객체 데이터 가져오기 블록을 사용한 후 저장되는 각 객체에는 9개의 속성이 포함됩니다(아래 참조).

AI 비전 객체 속성 리포터 블록.#
([AIVision1 v] 객체 [너비 v])

tagID를 제외한 모든 속성 값은 객체 데이터 가져오기 블록이 사용된 시점에 VEX IQ AI 비전 센서의 시야에서 감지된 객체의 위치와 크기를 나타냅니다. 이러한 값은 센서의 320 x 240 픽셀 해상도를 기준으로 픽셀 단위로 측정됩니다.

매개변수

설명

재산

감지된 객체의 어떤 속성을 사용할 것인가:

너비#

width 속성은 감지된 객체의 너비를 픽셀 단위로 1부터 320까지의 정수로 나타냅니다.

AI 비전 객체의 속성 스택 블록이며, 해당 매개변수는 width로 설정되어 있습니다.#
([AIVision1 v] 객체 [너비 v])

예

시작 시
[Drive towards an object until its width is larger than 100 pixels.]
무한 반복
[AIVision1 v]에서 [AI 분류 v] 데이터 가져오기
<[AIVision1 v] 객체가 있나요?>이면
<([AIVision1 v] 객체 [너비 v]) [math_less_than v] [100]>이면
[앞으로 v] 방향으로 주행
끝
아니면
주행 정지

키#

height 속성은 감지된 객체의 높이를 픽셀 단위로 1부터 240까지의 정수로 보고합니다.

AI 비전 객체의 속성 스택 블록이며, 해당 매개변수는 높이로 설정되어 있습니다.#
([AIVision1 v] 객체 [높이 v])

예

시작 시
[Drive towards an object until its height is larger than 100 pixels.]
무한 반복
[AIVision1 v]에서 [AI 분류 v] 데이터 가져오기
<[AIVision1 v] 객체가 있나요?>이면
<([AIVision1 v] 객체 [높이 v]) [math_less_than v] [100]>이면
[앞으로 v] 방향으로 주행
끝
아니면
주행 정지

센터엑스#

centerX 속성은 감지된 객체의 중심의 x 좌표를 픽셀 단위로 0에서 320 사이의 정수로 나타냅니다.

매개변수가 centerX로 설정된 AI 비전 객체 속성 스택 블록입니다.#
([AIVision1 v] 객체 [centerX v])

예

시작 시
[Turn slowly until an object is centered in front of the robot.]
회전 속도를 [30] [% v]로 설정
[오른쪽 v] 방향으로 회전
무한 반복
[AIVision1 v]에서 [AI 분류 v] 데이터 가져오기
<[AIVision1 v] 객체가 있나요?>이면
<[140] [math_less_than v] ([AIVision1 v] 객체 [centerX v]) [math_less_than v] [180]>이면
주행 정지

센터Y#

centerY 속성은 감지된 객체의 중심의 y 좌표를 픽셀 단위로 0에서 240 사이의 정수로 나타냅니다.

AI 비전 객체 속성 스택 블록의 매개변수가 centerY로 설정되어 있습니다.#
([AIVision1 v] 객체 [centerY v])

예

시작 시
[Drive towards an object until its center y-coordinate is more than 140 pixels.]
무한 반복
[AIVision1 v]에서 [AI 분류 v] 데이터 가져오기
<[AIVision1 v] 객체가 있나요?>이면
<([AIVision1 v] 객체 [centerY v]) [math_less_than v] [140]>이면
[앞으로 v] 방향으로 주행
끝
아니면
주행 정지

각도#

angle 속성은 감지된 색상 코드 또는 AprilTag ID의 방향을 0에서 359 사이의 정수(도)로 보고합니다.

AI 비전 객체 속성 스택 블록의 매개변수가 각도로 설정되어 있습니다.#
([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 속성은 감지된 객체의 경계 상자 왼쪽 상단 모서리의 x 좌표를 픽셀 단위로 0에서 320 사이의 정수로 나타냅니다.

매개변수가 originX로 설정된 AI 비전 객체 속성 스택 블록입니다.#
([AIVision1 v] 객체 [originX v])

예

시작 시
[Display if an object is to the left or the right.]
무한 반복
화면에서 [1]행 지우기
화면에서 커서를 [1]행 [1]열로 이동
[AIVision1 v]에서 [AI 분류 v] 데이터 가져오기
<[AIVision1 v] 객체가 있나요?>이면
<([AIVision1 v] 객체 [originX v]) [math_less_than v] [160]>이면
화면에 [To the left!] 출력 ▶
아니면
화면에 [To the right!] 출력 ▶
끝
[0.5]초 기다리기

기원#

originY 속성은 감지된 객체의 경계 상자의 왼쪽 상단 모서리의 y 좌표를 픽셀 단위로 0에서 240 사이의 정수로 나타냅니다.

AI 비전 객체 속성 스택 블록의 매개변수가 originY로 설정되어 있습니다.#
([AIVision1 v] 객체 [originY v])

예

시작 시
[Display if an object is close or far from the robot.]
무한 반복
화면에서 [1]행 지우기
화면에서 커서를 [1]행 [1]열로 이동
[AIVision1 v]에서 [AI 분류 v] 데이터 가져오기
<[AIVision1 v] 객체가 있나요?>이면
<([AIVision1 v] 객체 [originY v]) [math_less_than v] [80]>이면
화면에 [Far!] 출력 ▶
아니면
화면에 [Close!] 출력 ▶
끝
[0.5]초 기다리기

태그ID#

tagID 속성은 감지된 AprilTag ID의 식별 번호를 정수로 보고합니다.

매개변수가 tagID로 설정된 AI 비전 객체 속성 스택 블록입니다.#
([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]초 기다리기

AI 비전 객체는 무엇입니까?#

AI 비전 객체는 무엇입니까? 블록은 감지된 객체가 특정 분류와 일치하는지 여부를 나타내는 부울 값을 보고합니다.

  • 맞습니다. 데이터 세트의 항목은 특정 객체입니다.

  • 거짓 — 데이터 세트의 항목은 특정 객체가 아닙니다.

AI 비전 AI 분류는 객체 부울 블록입니다.#
<[AIVision1 v] 객체가 [BlueBall v]인가요?>

매개변수

설명

물체

어떤 AI 분류와 항목을 비교할 것인가.

예

시작 시
[Display if a Blue Cube is detected.]
무한 반복
[AIVision1 v]에서 [AI 분류 v] 데이터 가져오기
화면에서 [1]행 지우기
화면에서 커서를 [1]행 [1]열로 이동
<[AIVision1 v] 객체가 있나요?>이면
<[AIVision1 v] 객체가 [BlueCube v]인가요?>이면
화면에 [Cube detected!] 출력 ▶
[0.5]초 기다리기

AI 비전 객체가 AprilTag인가요?#

AI 비전 객체가 AprilTag입니까? 블록은 감지된 객체가 특정 ID와 일치하는 AprilTag인지 여부를 나타내는 부울 값을 보고합니다.

  • 참 — 감지된 객체는 지정된 ID를 가진 AprilTag입니다.

  • 거짓 — 감지된 객체는 지정된 ID를 가진 AprilTag가 아닙니다.

AI Vision 객체는 AprilTag 불리언 블록입니다.#
<[AIVision1 v] 객체가 AprilTag [0]인가요?>

매개변수

설명

AprilTag ID

감지된 AprilTag와 비교할 ID 번호입니다.

예

시작 시
[Report if AprilTag 3 is detected.]
무한 반복
화면 지우기
화면에서 커서를 [1]행 [1]열로 이동
[AIVision1 v]에서 [AprilTag IDs v] 데이터 가져오기
<[AIVision1 v] 객체가 있나요?>이면
<[AIVision1 v] 객체가 AprilTag [3]인가요?>이면
화면에 [That is 3!] 출력 ▶
아니면
화면에 [That isn't 3!] 출력 ▶
끝
끝
[0.1]초 기다리기

AI 비전 객체의 AprilTag ID는 무엇입니까?#

AI 비전 객체가 AprilTag ID입니까? 블록은 감지된 AprilTag ID가 특정 ID와 일치하는지 여부를 나타내는 부울 값을 보고합니다.

  • 맞습니다. AprilTag ID는 숫자입니다.

  • 거짓 — AprilTag ID는 숫자가 아닙니다.

AI 비전이 AprilTag ID를 불리언 블록으로 감지했습니다.#
<[AIVision1 v] object is AprilTag ID [1] ?>

매개변수

설명

AprilTag ID 번호

감지된 AprilTag ID 번호와 비교할 번호입니다.

예:

시작 시
[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]초 기다리기