AI 비전 센서#
소개#
VEX IQ AI 비전 센서는 사물, 색상 및 AprilTag ID를 감지하고 추적할 수 있습니다. 이를 통해 로봇은 주변 환경을 분석하고, 물체를 추적하며, 감지된 시각 데이터를 기반으로 반응할 수 있습니다.
AI 비전 예제는 VEX IQ AI 비전 센서가 장착된 베이스봇과 함께 사용하도록 설계되었습니다. 이 예제에서 센서는 블록에 표시되는 AIVision1이라는 이름으로 구성됩니다.
아래는 모든 블록 목록입니다.
작업 — 선택한 서명에 대해 VEX IQ AI 비전 센서에서 데이터를 캡처합니다.
객체 데이터 가져오기 — 구성된 색상, 사전 학습된 객체 또는 AprilTag ID와 같은 특정 서명에 대한 데이터를 캡처합니다.
설정 — 상호 작용할 개체를 선택하세요.
AI 비전 객체 항목 설정 — 감지된 객체 목록에서 특정 객체를 선택합니다.
값 — 캡처된 데이터에 접근하고 사용합니다.
AI Vision 객체가 존재함 — 객체가 감지되었는지 여부를 보고합니다.
AI 비전 객체 개수 — 감지된 객체의 수를 보고합니다.
AI Vision 객체 속성 — 다음과 같은 보고서 세부 정보:
AI 비전 객체는 무엇입니까? — 감지된 객체가 특정 분류와 일치하는지 확인합니다.
AI 비전 객체가 AprilTag인가요? — 감지된 객체가 특정 ID와 일치하는 AprilTag인지 확인합니다.
AI Vision 객체가 AprilTag ID인가요? — 감지된 AprilTag ID가 특정 ID와 일치하는지 확인합니다.
행위#
객체 데이터를 가져옵니다.#
객체 데이터 가져오기 스택 블록은 VEX IQ AI 비전 센서 프레임에서 데이터를 필터링하여 단일 시그니처(센서가 인식할 수 있는 항목에 대한 저장된 설명으로, 사전 학습된 객체, AprilTag ID 또는 구성된 색상이나 색상 코드 등)를 생성합니다.
이 블록에서 색상과 색상 코드를 사용하려면 먼저 AI Vision 유틸리티에서 색상 및 색상 코드를 구성해야 합니다.
데이터셋은 인덱스 0부터 시작하여 너비가 큰 순서부터 작은 순서로 정렬된 객체를 저장합니다. 각 객체의 속성은 AI Vision 객체 속성 블록을 사용하여 접근할 수 있습니다. 일치하는 객체가 감지되지 않으면 빈 데이터셋이 보고됩니다.
[AIVision1 v]에서 [SELECT_A_SIG v] 데이터 가져오기
매개변수 |
설명 |
|---|---|
서명 |
지정된 서명에 해당하는 데이터만 포함하도록 데이터 세트를 필터링합니다. 사용 가능한 서명은 다음과 같습니다. |
참고: 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개의 컬러 시그니처를 구성할 수 있습니다.

예
시작 시
[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개의 색상 코드를 동시에 설정할 수 있습니다.

예
시작 시
[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 비전 객체 항목 설정 스택 블록은 데이터 세트에서 사용할 항목을 설정합니다.
[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 비전 객체가 존재합니다#
AI 비전 객체 존재 여부 부울 블록은 데이터 세트에서 객체가 감지되었는지 여부를 보고합니다.
참 — 데이터 세트에 감지된 객체가 포함되어 있습니다.
거짓 — 데이터 세트에는 감지된 객체가 포함되어 있지 않습니다.
<[AIVision1 v] 객체가 있나요?>
매개변수 |
설명 |
|---|---|
이 블록에는 매개변수가 없습니다. |
예
시작 시
[Drive forward if an object is detected.]
무한 반복
[AIVision1 v]에서 [AI 분류 v] 데이터 가져오기
<[AIVision1 v] 객체가 있나요?>이면
[앞으로 v] 방향으로 [10] [mm v] 주행 ▶
AI 비전 객체 개수#
AI 비전 객체 개수 리포터 블록은 데이터 세트에서 감지된 객체 수를 정수로 보고합니다.
([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개의 속성이 포함됩니다(아래 참조).
([AIVision1 v] 객체 [너비 v])
tagID를 제외한 모든 속성 값은 객체 데이터 가져오기 블록이 사용된 시점에 VEX IQ AI 비전 센서의 시야에서 감지된 객체의 위치와 크기를 나타냅니다. 이러한 값은 센서의 320 x 240 픽셀 해상도를 기준으로 픽셀 단위로 측정됩니다.
매개변수 |
설명 |
|---|---|
재산 |
감지된 객체의 어떤 속성을 사용할 것인가: |
너비#
width 속성은 감지된 객체의 너비를 픽셀 단위로 1부터 320까지의 정수로 나타냅니다.
([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까지의 정수로 보고합니다.
([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 사이의 정수로 나타냅니다.
([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 사이의 정수로 나타냅니다.
([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 사이의 정수(도)로 보고합니다.
([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 사이의 정수로 나타냅니다.
([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 사이의 정수로 나타냅니다.
([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의 식별 번호를 정수로 보고합니다.
([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 비전 객체는 무엇입니까? 블록은 감지된 객체가 특정 분류와 일치하는지 여부를 나타내는 부울 값을 보고합니다.
맞습니다. 데이터 세트의 항목은 특정 객체입니다.
거짓 — 데이터 세트의 항목은 특정 객체가 아닙니다.
<[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가 아닙니다.
<[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는 숫자가 아닙니다.
<[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]초 기다리기