VEXcode EXP 블록에서 AI 비전 센서로 코딩

AI Vision Sensor에 색상 서명색상 코드 이 구성되어 블록과 함께 사용할 수 있는지 확인하세요. 자세한 구성 방법을 알아보려면 아래 문서를 읽어보세요.

AI 비전 센서는 AI 분류와 AprilTags도 감지할 수 있습니다. 이러한 감지 모드를 활성화하는 방법을 알아보려면 여기를 방문하세요.

이러한 개별 블록에 대한 자세한 내용과 VEXcode에서 이를 사용하는 방법을 알아보려면 API 사이트로 이동하세요.


스냅샷 찍기

VEXcode EXP는 COL1의 AIVision1 스냅샷을 찍는다는 내용을 담은 스냅샷 블록을 찍습니다. 드롭다운은 두 개 있는데, 하나는 AI 비전 센서를 선택하는 것이고, 두 번째는 색상 코드를 선택하는 것입니다.

스냅샷 찍기 블록은 AI 비전 센서가 현재 보고 있는 것의 사진을 찍고 해당 스냅샷에서 프로젝트에 사용할 수 있는 데이터를 가져옵니다. 스냅샷을 찍을 때 AI Vision Sensor가 어떤 유형의 객체에 대한 데이터를 수집해야 하는지 지정해야 합니다.

  • 컬러 시그니처
  • 색상 코드
  • AI 분류
  • 4월태그

스냅샷을 찍으면 지정한 모든 감지된 객체의 배열이 생성됩니다. 예를 들어, "빨간색"색상 시그니처을 감지하고 AI 비전 센서가 서로 다른 빨간색 물체 3개를 감지한 경우, 3개 모두의 데이터가 배열에 저장됩니다.

서로 다른 객체 간에 지정하는 방법에 대한 자세한 내용은 이 문서의 "객체 항목 설정" 섹션을 참조하세요.

VEXcode EXP 스냅샷 블록은 Blue의 AIVision2 스냅샷을 찍는다는 내용을 담고 있습니다.

이 예에서는 구성된 "파란색" 색상 서명 과 일치하는 객체만 감지하고 다른 객체는 감지하지 않습니다.

스냅샷에서 가져온 데이터

AI 비전 센서는 이후에 나오는 모든 블록에 대해 마지막으로 촬영한 스냅샷을 사용한다는 점을 명심하세요. AI 비전 센서에서 항상 최신 정보를 받으려면 데이터를 가져올 때마다 스냅샷을 다시 찍으세요. 

해결

AI 비전 센서의 해상도 다이어그램. 왼쪽 상단 모서리는 0, 0으로 표시되고, 오른쪽 상단 모서리는 320, 0으로 표시되고, 왼쪽 하단 모서리는 0, 240으로 표시됩니다. 화면 중앙에는 160, 120이라고 표시되어 있습니다.

정확한 데이터 해석을 위해서는 AI 비전 센서의 해상도를 이해하는 것이 중요합니다. 센서의 해상도는 320x240픽셀이고, 정확한 중심은 좌표 (160, 120)입니다.

160보다 작은 X 좌표는 센서 시야의 왼쪽 절반에 해당하고, 160보다 큰 X 좌표는 오른쪽 절반을 나타냅니다. 마찬가지로 120보다 작은 Y 좌표는 뷰의 위쪽 절반을 나타내고, 120보다 큰 Y 좌표는 뷰의 아래쪽 절반을 나타냅니다.

VEXcode EXP 의 AI Vision Utility 데이터 로 이동하여 AI Vision Sensor로 객체를 측정하는 방법에 대한 자세한 내용을 확인하세요.

너비와 높이

이는 감지된 객체의 너비 또는 높이를 픽셀 단위로 나타낸 것입니다.

AI 비전 센서가 블루 버키볼을 추적하는 모습이 보입니다. 버키볼 주변에는 추적 사각형이 있으며, 위의 라벨에 따르면 너비는 80픽셀, 높이는 78픽셀입니다. 빨간색 화살표는 추적 사각형을 강조하여 너비와 높이를 보여줍니다.

너비와 높이를 측정하면 다양한 물체를 식별하는 데 도움이 됩니다. 예를 들어, 버키볼은 링보다 높이가 더 큽니다.

AI 비전 센서가 두 개의 파란색 큐브를 추적하는 모습이 보입니다. 큐브 주변에는 추적 사각형이 있으며, 그 중 하나는 카메라에 훨씬 더 가깝습니다. 가까운 쪽은 너비가 144, 높이가 113이고, 먼 쪽은 너비가 73, 높이가 84입니다.

너비와 높이는 AI 비전 센서로부터 물체까지의 거리를 나타냅니다. 작은 측정값은 일반적으로 물체가 멀리 떨어져 있음을 의미하고, 큰 측정값은 가까이 있음을 나타냅니다.

로봇이 물체에 접근하여 너비가 특정 크기에 도달하면 멈추는 VEXcode Blocks 프로젝트입니다. 이 프로젝트는 When started 블록과 Forever 루프로 시작합니다. 나머지 프로젝트는 Forever 루프 안에 있습니다. 먼저 Blue의 AIVision1 스냅샷을 찍은 다음, 나머지 프로젝트는 AIVision1 객체가 존재하는지 읽는 If 블록 안에 있습니다. 이 If 블록 안에는 AIVision1 객체 너비가 250보다 작으면 전진하고, 작으면 운전을 중지하는 If Else 블록이 있습니다.

이 예에서는 객체의 너비가 탐색에 사용됩니다. 로봇은 물체의 너비가 특정 크기에 도달할 때까지 물체에 접근한 후 멈춥니다.

CenterX와 Center Y

이는 감지된 객체의 중심 좌표를 픽셀 단위로 나타낸 것입니다.

AI 비전 센서가 블루 버키볼을 추적하는 모습이 보입니다. 버키볼 주변에는 추적 사각형이 있으며, 위의 라벨은 X 위치가 176이고 Y 위치가 117임을 보여줍니다. 추적 사각형의 중앙이 강조 표시되어 위치가 중앙에서 측정되었음을 보여줍니다.

CenterX 및 CenterY 좌표는 탐색 및 위치 지정에 도움이 됩니다. AI 비전 센서의 해상도는 320 x 240픽셀입니다.

AI 비전 센서가 두 개의 파란색 큐브를 추적하는 모습이 보입니다. 큐브 주변에는 추적 사각형이 있으며, 그 중 하나는 카메라에 훨씬 더 가깝습니다. 가까운 쪽의 Y 위치는 184이고, 먼 쪽의 Y 위치는 70입니다.

AI 비전 센서에 가까운 객체의 CenterY 좌표가 멀리 있는 객체보다 낮은 것을 볼 수 있습니다.

VEXcode Blocks 프로젝트에서는 로봇이 감지된 물체를 향해 방향을 바꾸어 AI 비전 센서의 시야 중앙에 물체가 위치하게 됩니다. 이 프로젝트는 When started 블록과 Forever 루프로 시작합니다. 나머지 프로젝트는 Forever 루프 안에 있습니다. 먼저 Blue의 AIVision1 스냅샷을 찍은 다음, 나머지 프로젝트는 AIVision1 객체가 존재하는지 읽는 If 블록 안에 있습니다. 이 If 블록 안에는 AIVision1 객체 centerX가 150보다 크고 AIVision1 객체 centerX가 170보다 작으면 오른쪽으로 회전하고, 그렇지 않으면 운전을 멈추라는 If Else 블록이 있습니다.

이 예에서 AI Vision Sensor의 시야 중심이 (160, 120)이므로 로봇은 감지된 객체의 centerX 좌표가 150픽셀보다 크고 170픽셀보다 작을 때까지 오른쪽으로 회전합니다.

각도

각도 값의 360도를 보여주기 위해 빨간색 사각형과 녹색 사각형이 함께 회전하는 애니메이션입니다.

Angle은색상 코드AprilTags에만 사용할 수 있는 속성입니다. 이는 감지된색상 코드또는 AprilTag 이 다르게 방향이 지정되어 있는지 여부를 나타냅니다.

AI 비전 센서는 녹색, 그 다음 파란색의 색상 코드를 추적하는 것으로 표시됩니다. 영상 피드에는 파란색 큐브 위에 녹색 큐브가 쌓여 있는 모습이 나와 있습니다. 색상 코드의 각도 값이 강조 표시되어 있으며 87도로 표시되어 색상 코드가 수직으로 배치되어 있음을 나타냅니다.

로봇이색상 코드 또는AprilTag 에 따라 다르게 방향이 지정되어 있는지 확인하고 그에 따라 탐색 결정을 내릴 수 있습니다.

AI 비전 센서는 녹색, 그 다음 파란색의 색상 코드를 추적하는 것으로 표시됩니다. 비디오 피드에는 녹색 큐브가 파란색 큐브 옆에 놓여 있는 모습이 나오지만, 센서에 비해 각도가 이상합니다. 색상 코드의 각도 값이 강조 표시되어 0도로 표시되는데, 이는 색상 코드의 각도를 읽을 수 없음을 나타냅니다.

예를 들어,색상 코드 이 적절한 각도에서 감지되지 않으면 해당 색상 코드가 나타내는 물체를 로봇이 제대로 집어 올리지 못할 수 있습니다.

OriginX와 OriginY

OriginX와 OriginY는 감지된 객체의 왼쪽 상단 모서리에 있는 좌표(픽셀)입니다.

AI 비전 센서가 블루 버키볼을 추적하는 모습이 보입니다. 버키볼 주변에는 추적 사각형이 있으며, 위의 라벨은 X 위치가 176이고 Y 위치가 117임을 보여줍니다. 추적 사각형의 왼쪽 위 모서리가 강조 표시되어 원점 위치가 왼쪽 위 모서리에서 측정된다는 것을 보여줍니다.

OriginX 및 OriginY 좌표는 탐색 및 위치 지정에 도움이 됩니다. 이 좌표를 객체의 너비와 높이와 결합하면 객체의 경계 상자 크기를 결정할 수 있습니다. 이는 움직이는 물체를 추적하거나 물체 사이를 탐색하는 데 도움이 될 수 있습니다.

로봇이 감지한 객체를 화면에 사각형으로 그리는 VEXcode Blocks 프로젝트입니다. 이 프로젝트는 When started 블록과 Forever 루프로 시작합니다. 나머지 프로젝트는 Forever 루프 안에 있습니다. 먼저 Blue의 AIVision1 스냅샷을 찍은 다음, 나머지 프로젝트는 AIVision1 객체가 존재하는지 읽는 If 블록 안에 있습니다. 이 If 블록 내부에는 AIVision1 객체 originX, AIVision1 객체 originY, AIVision1 객체 width, AIVision1 객체 height를 Brain에 그리는 사각형 그리기 블록이 있습니다.

이 예에서는 원점, 너비, 높이의 정확한 좌표를 사용하여 Brain에 사각형이 그려집니다.

태그ID

태그ID는AprilTags에만 사용 가능합니다. 이는 지정된AprilTag에 대한 ID 번호입니다.

AI Vision Utility는 4월 태그 3개를 추적하고 있습니다. 각 태그는 식별되고, 위치가 지정되고, 윤곽이 그려져 있어 시스템에서 추적이 가능하다는 것을 나타냅니다. 이 예에서 AprilTag ID는 0, 3, 9입니다.

특정 AprilTags 을 식별하면 선택적 탐색이 가능합니다. 로봇이 다른 태그를 무시하고 특정 태그를 향해 이동하도록 프로그래밍하여 이를 자동 탐색을 위한 표지판으로 효과적으로 활용할 수 있습니다.

점수

점수 속성은 AI 비전 센서로AI 분류 감지할 때 사용됩니다.

AI Vision 유틸리티는 4개의 물체를 추적하고 있는데, 그 중 2개는 BuckyBall이고 2개는 Ring입니다. 각 객체는 식별되고, 위치가 지정되고, 윤곽이 그려져 시스템이 해당 객체를 추적하고 있음을 나타냅니다. 이 유틸리티는 또한 각 객체의 AI 분류 점수를 나열하는데, 이 예에서는 각 점수가 99%로 표시됩니다.

신뢰도 점수는 AI 비전 센서가 감지에 얼마나 확신하는지를 나타냅니다. 이 이미지에서는 이 네 가지 객체의 AI 분류를 99% 확신하여 식별합니다. 이 점수를 사용하면 로봇이 신뢰도가 높은 감지에만 집중하도록 할 수 있습니다.


객체 항목 설정

AI 비전 센서가 객체를 감지하면 해당 객체를 배열에 넣습니다. 기본적으로 AI Vision Sensor는 배열의 첫 번째 객체 또는 인덱스가 1인 객체에서 데이터를 가져옵니다. AI Vision Sensor가 객체를 하나만 감지한 경우 해당 객체가 기본적으로 선택됩니다.

하지만 AI Vision Sensor가 여러 객체를 동시에 감지한 경우객체 항목 설정 블록을 사용하여 데이터를 가져올 객체를 지정해야 합니다.

VEXcode EXP Set AIVision1 객체 항목을 1로 설정한다는 내용을 읽는 객체 항목 블록을 설정합니다. AI 비전 센서를 선택하는 드롭다운과 객체 인덱스를 입력하는 텍스트 필드가 있습니다.

AI 비전 센서가 여러 개의 객체를 감지하면 가장 큰 객체부터 가장 작은 객체까지 배열합니다. 즉, 감지된 가장 큰 객체는 항상 객체 인덱스 1로 설정되고, 가장 작은 객체는 항상 가장 높은 숫자로 설정됩니다.

AI 비전 센서가 두 개의 파란색 큐브를 추적하는 모습이 보입니다. 큐브 주변에는 추적 사각형이 있으며, 그 중 하나는 카메라에 훨씬 더 가깝습니다. 가까운 쪽은 너비가 136이고, 먼 쪽은 너비가 78입니다.

이 예에서는색상 특징 "파란색"으로 두 개의 객체가 감지되었습니다. 스냅샷 찍기 블록을 사용하면 두 가지 모두 배열에 배치됩니다.

AI 비전 센서가 두 개의 파란색 큐브를 추적하는 모습이 보입니다. 큐브 주변에는 추적 사각형이 있으며, 그 중 하나는 카메라에 훨씬 더 가깝습니다. 가까운 큐브는 1로 표시되고, 먼 큐브는 2로 표시됩니다.

여기서, 가장 큰 객체는 객체 인덱스 1이 되고, 가장 작은 객체는 객체 인덱스 2가 됩니다.


객체가 존재합니다

스냅샷에서 데이터를 가져오기 전에 AI Vision Sensor가 해당 스냅샷에서 객체를 감지했는지 확인하는 것이 . 여기서Object Exists 블록이 작용합니다.

VEXcode EXP 객체가 존재하는 블록이 AIVision1 객체가 존재한다는 것을 읽습니까? AI 비전 센서를 선택하는 드롭다운이 있습니다.

이 블록은 마지막으로 찍은 스냅샷에 개체
감지되었는지 여부에 대해True 또는False 값을 반환합니다.
이 블록은 항상사용해야 하며 잠재적으로 비어 있는 스냅샷에서 데이터를 가져오지 않도록 해야 합니다.

로봇이 감지된 파란색 물체를 향해 주행하는 VEXcode Blocks 프로젝트입니다. 이 프로젝트는 When started 블록과 Forever 루프로 시작합니다. 나머지 프로젝트는 Forever 루프 안에 있습니다. 먼저 Blue의 AIVision2 스냅샷을 찍은 다음, AIVision2 객체가 있으면 전진하고, 없으면 운전을 중지하는 If Else 블록을 작성합니다.

예를 들어, 여기에서 로봇은 AI 비전 센서로 지속적으로 스냅샷을 찍습니다. "파란색" 색상 서명가진 개의 물체 개를 식별하면 앞으로 주행합니다.


스냅샷에 "파란색" 색상 서명이 없으면 로봇이 움직이지 않습니다.


개체 수

AIVision1 객체 수를 읽는 VEXcode EXP 객체 수 블록입니다. AI 비전 센서를 선택하는 드롭다운이 있습니다.

개체 수 블록을 사용하면 AI 비전 센서가 마지막 스냅샷에서 특정 색상 시그니처 의 개체를 몇 개 볼 수 있는지 확인할 수 있습니다. 

AI 비전 센서가 두 개의 파란색 큐브를 추적하는 모습이 보입니다. 큐브 주변에는 추적 사각형이 있으며, 그 중 하나는 카메라에 훨씬 더 가깝습니다.

여기서는 AI 비전 센서가 색상 시그니처 "파란색"으로 구성되어 있고 두 개의 객체를 감지하고 있음을 알 수 있습니다.

로봇이 감지된 파란색 객체의 수를 인쇄 콘솔에 인쇄하는 VEXcode Blocks 프로젝트입니다. 이 프로젝트는 When started 블록과 Forever 루프로 시작합니다. 나머지 프로젝트는 Forever 루프 안에 있습니다. 먼저, Blue의 AIVision2 스냅샷을 찍고, 콘솔의 모든 행을 지운 다음, 콘솔의 다음 행으로 커서를 설정합니다. 다음은 AIVision2 객체가 존재하는 경우 콘솔에 AIVision2 객체 개수를 출력하고 커서를 다음 행으로 설정하는 If 블록입니다. If 블록 밖에는 2초 동안 기다리도록 설정된 Wait 블록이 있습니다.이전 VEXcode Blocks 프로젝트의 인쇄 콘솔 출력에는 2라는 메시지가 인쇄되어 있습니다.

이 코드에서 AI Vision Sensor는 스냅샷을 찍고 VEXcode 콘솔에 "2"를 인쇄합니다. 이는 두 개의 "파란색" 색상 서명만 감지했기 때문입니다.


물체

AIVision1 객체 너비를 읽는 VEXcode EXP AI Vision 객체 블록입니다. AI 비전 센서를 선택하는 드롭다운이 있고, 감지할 객체의 속성을 선택하는 열린 드롭다운 메뉴가 있습니다. 옵션 목록에는 너비, 높이, centerX, centerY, 각도, originX, originY, tagID, 점수가 있습니다.

개체 블록을 사용하면 지정된 개체의 속성을 보고할 수 있습니다. 이를 통해 가장 최근에 찍은 스냅샷에서 가져온 사용 가능한 데이터를 사용할 수 있습니다.

촬영된 스냅샷에서 가져올 수 있는 개체 속성은 다음과 같습니다.

  • 너비
  • 센터X
  • 센터Y
  • 각도
  • 원점X
  • 기원Y
  • 태그ID
  • 점수

이러한 속성에 대한 자세한 내용은 이 기사의 "스냅샷에서 가져온 데이터" 섹션을 읽어보세요.


감지된 AprilTag는

VEXcode EXP Detected AprilTag는 AIVision1이 AprilTag를 감지했다는 것을 읽는 블록입니다. AprilTag가 1인가요? AI 비전 센서를 선택하는 드롭다운이 있습니다.

Detected AprilTag is 블록은AprilTag Detection Mode 켜져 있을 때만 사용 가능합니다.

이 블록은 지정된 객체가 특정 AprilTag인지 여부에 따라 True 또는 False를 보고합니다.

AI Vision Utility는 4월 태그 3개를 추적하고 있습니다. 각 태그는 식별되고, 위치가 지정되고, 윤곽이 그려져 있어 시스템에서 추적이 가능하다는 것을 나타냅니다. 이 예에서 AprilTag ID는 0, 3, 9입니다.

단일 스냅샷에서 여러 개의 AprilTags가 감지되면 크기가 아닌 식별된 ID를 기준으로 배열에 정렬됩니다.

이 이미지에서는 ID가 0, 3, 9인 AprilTag 세 개가 감지되었습니다. 배열에서 ID의 오름차순으로 정렬됩니다. 인덱스 1의 객체는 ID 0의 AprilTag에 해당하고, 인덱스 2의 객체는 ID 3의 AprilTag에 해당하고, 인덱스 3의 객체는 ID 9의 AprilTag에 해당합니다.

AprilTags가 무엇인지, AI Vision Sensor로 감지하는 방법에 대한 자세한 내용은 이 기사를 읽어보세요.


AI 분류는

VEXcode EXP AI Classification은 AIVision1 AI 분류가 BlueBall인지 읽는 블록입니다. AI 비전 센서를 선택하는 드롭다운 메뉴와 대상 AI 분류 객체를 선택하는 또 다른 드롭다운 메뉴가 있습니다.

AI 분류 블록은AI 분류 감지 모드 켜져 있을 때만 사용할 수 있습니다.

 

이 블록은 지정된 객체가 특정 AI 분류인지 여부에 따라 True 또는 False를 보고합니다.

AI 비전 센서가 감지할 수 있는 AI 분류는 사용하는 모델에 따라 다릅니다. 사용 가능한 AI 분류에 대한 자세한 내용과 AI 비전 센서를 사용하여 해당 분류를 감지하는 방법에 대한 자세한 내용은 이 문서를 읽어보세요.

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

Last Updated: