Cảm biến thị giác AI#

Giới thiệu#

Cảm biến thị giác AI có thể phát hiện và theo dõi các vật thể, màu sắc và ID AprilTag. Điều này cho phép robot phân tích môi trường xung quanh, theo dõi các vật thể và phản ứng dựa trên dữ liệu hình ảnh được phát hiện.

Dưới đây là danh sách các khối có sẵn:

Thao tác – Thu thập dữ liệu từ Cảm biến Thị giác AI cho một chữ ký đã chọn.

  • chụp ảnh – Ghi lại dữ liệu cho một chữ ký cụ thể, chẳng hạn như màu được cấu hình, đối tượng được đào tạo trước hoặc ID AprilTag.

Cài đặt – Chọn đối tượng bạn muốn tương tác.

Giá trị – Truy cập và sử dụng dữ liệu đã thu thập.

Hành động#

chụp ảnh#

Khối lệnh chụp ảnh nhanh lọc dữ liệu từ khung hình của Cảm biến Thị giác AI thành một chữ ký duy nhất — một mô tả đã lưu về thứ mà cảm biến có thể nhận ra, chẳng hạn như một đối tượng đã được huấn luyện trước, ID AprilTag hoặc màu sắc hoặc mã màu đã được cấu hình.

Màu sắc và mã màu phải được cấu hình trước trong Tiện ích Thị giác AI trước khi có thể sử dụng chúng với khối này.

Tập dữ liệu lưu trữ các đối tượng được sắp xếp từ lớn nhất đến nhỏ nhất theo chiều rộng, bắt đầu từ chỉ mục 0. Thuộc tính của mỗi đối tượng có thể được truy cập bằng cách sử dụng khối thuộc tính đối tượng AI Vision. Tập dữ liệu trống sẽ được báo cáo nếu không phát hiện thấy đối tượng phù hợp nào.

Khối lệnh chụp ảnh nhanh (Take snapshot stack block).#
chụp ảnh [AIVision1 v] của [SELECT_A_SIG v]

Tham số

Sự miêu tả

thiết bị

Nên sử dụng cảm biến thị giác AI nào, được cấu hình trong cửa sổ Thiết bị.

chữ ký

Lọc tập dữ liệu để chỉ bao gồm dữ liệu của chữ ký đã cho. Các chữ ký có sẵn là:

Lưu ý: Để tùy chọn ID AprilTag hoặc Phân loại AI hiển thị, tính năng phát hiện của chúng phải được bật trong Tiện ích Thị giác AI.

Ví dụ

khi bắt đầu
[Drive forward if an AprilTag ID is detected.]
mãi mãi
chụp ảnh [AIVision1 v] của [AprilTag IDs v]
nếu <đối tượng [AIVIsion1 v] tồn tại?> thì
lái [tiến v] trong [10] [mm v] ▶

Phân loại AI#

Cảm biến thị giác AI có thể phát hiện các đối tượng khác nhau theo các phân loại AI nhất định. Tùy thuộc vào mô hình phân loại AI được chọn khi cấu hình Cảm biến thị giác AI trong cửa sổ Thiết bị, các đối tượng khác nhau sẽ được phát hiện. Các mô hình hiện có sẵn là:

Đồ dùng trong lớp học

  • BlueBall

  • Quả bóng xanh

  • Quả bóng đỏ

  • Vòng Xanh

  • Vòng Xanh

  • Vòng đỏ

  • BlueCube

  • Khối lập phương xanh

  • RedCube

Phản hồi về cuộc thi robot VEX V5

  • Khối Xanh

  • Khối Đỏ

Cuộc thi robot VEX V5 đầy kịch tính

  • Mục tiêu di động

  • Vòng đỏ

  • Vòng Xanh

Chế độ ghi đè cuộc thi robot VEX V5

  • Ghim ĐỏXanh

  • BlueYellowPin

  • Ghim ĐỏVàng

  • YellowPin

  • Tách

Màu sắc đặc trưng#

Màu sắc đặc trưng là một màu sắc duy nhất mà cảm biến thị giác AI có thể nhận biết. Những màu sắc đặc trưng này cho phép cảm biến phát hiện và theo dõi các đối tượng dựa trên màu sắc của chúng. Sau khi cấu hình màu sắc đặc trưng, ​​cảm biến có thể xác định các đối tượng có màu sắc cụ thể đó trong tầm nhìn của nó.

Chữ ký màu được sử dụng trong khối chụp ảnh để xử lý và phát hiện các đối tượng màu trong thời gian thực. Có thể cấu hình tối đa 7 Chữ ký màu cùng một lúc.

Tiện ích Thị giác AI hiển thị cảm biến thị giác được kết nối phát hiện hai vật thể có màu. Phía bên trái hiển thị nguồn cấp dữ liệu camera trực tiếp với một hộp màu xanh lam ở bên trái và một hộp màu đỏ ở bên phải, mỗi hộp được viền bằng các hộp bao màu trắng. Các nhãn màu đen hiển thị tên, tọa độ và kích thước tương ứng của chúng. Phía bên phải chứa các cài đặt chữ ký màu, với các thanh trượt cho phạm vi sắc độ và độ bão hòa cho cả hộp màu đỏ và màu xanh lam. Các nút để thêm màu, đóng băng video, sao chép và lưu hình ảnh nằm ở phía dưới, cùng với nút đóng ở góc dưới bên phải.

Ví dụ

khi bắt đầu
[Display if any objects matching the RED_BOX signature is detected.]
mãi mãi
đặt con trỏ đến hàng [1] cột [1] trên màn hình
xóa hàng [1] trên màn hình
[Change the signature to any configured Color Signature.]
chụp ảnh [AIVision1 v] của [RED_BOX v]
nếu <đối tượng [AIVision1 v] tồn tại?> thì
in [Color detected!] trên màn hình ▶

Mã màu#

Mã màu là một mẫu cấu trúc gồm 2 đến 4 chữ ký màu được sắp xếp theo một thứ tự cụ thể. Các mã này cho phép cảm biến thị giác AI nhận diện các mẫu màu được xác định trước.

Mã màu đặc biệt hữu ích để nhận dạng các đối tượng phức tạp, căn chỉnh với các yếu tố trong trò chơi hoặc tạo các điểm đánh dấu độc đáo cho việc điều hướng tự động. Có thể cấu hình tối đa 8 mã màu cùng một lúc.

Giao diện Tiện ích Thị giác AI hiển thị một cảm biến thị giác được kết nối phát hiện hai vật thể liền kề, một hộp màu xanh lam ở bên trái và một hộp màu đỏ ở bên phải, được nhóm lại với nhau trong một hộp giới hạn màu trắng duy nhất có nhãn BlueRed. Thông tin phát hiện bao gồm góc (A:11°), tọa độ (X:143, Y:103), chiều rộng (W:233) và chiều cao (H:108). Trên bảng điều khiển bên phải, ba chữ ký màu được liệt kê: Red_Box, Blue_Box và BlueRed, với phạm vi sắc độ và độ bão hòa có thể điều chỉnh. Chữ ký BlueRed kết hợp Blue_Box và Red_Box. Bên dưới nguồn cấp video là các nút có nhãn Đóng băng Video, Sao chép Hình ảnh, Lưu Hình ảnh và Đóng.

Ví dụ

khi bắt đầu
[Display if any objects matching the RED_BLUE code is detected.]
mãi mãi
đặt con trỏ đến hàng [1] cột [1] trên màn hình
xóa hàng [1] trên màn hình
[Change the signature to any configured Color Code.]
chụp ảnh [AIVision1 v] của [RED_BLUE v]
nếu <đối tượng [AIVision1 v] tồn tại?> thì
in [Code detected!] trên màn hình ▶

Cài đặt#

đặt mục đối tượng AI Vision#

Khối lệnh set AI Vision object item xác định mục nào trong tập dữ liệu sẽ được sử dụng.

Khối xếp chồng vật phẩm đối tượng Set AI Vision.#
đặt mục đối tượng [AIVision1 v] thành (1)

Thông số

Sự miêu tả

thiết bị

Nên sử dụng cảm biến thị giác AI nào, được cấu hình trong cửa sổ Thiết bị.

mục

Số thứ tự của mục trong tập dữ liệu cần sử dụng.

Ví dụ

Một chuỗi các khối lệnh bắt đầu bằng khối when started, tiếp theo là khối lệnh comment có nội dung “Hiển thị ID AprilTag được phát hiện lớn nhất”. Bên trong một vòng lặp vô hạn, khối lệnh take a AI Vision snapshot chụp ảnh các ID AprilTag. Khối lệnh if kiểm tra xem đối tượng AI Vision có tồn tại hay không. Nếu đúng, khối lệnh set AI Vision object item gán số lượng đối tượng cho một biến, và khối lệnh print hiển thị ID thẻ của đối tượng được phát hiện trên màn hình.#
khi bắt đầu
[Display the largest detected AprilTag ID.]
mãi mãi
chụp ảnh [AIVision1 v] của [AprilTag IDs v]
xóa hàng [1] trên màn hình
đặt con trỏ đến hàng [1] cột [1] trên màn hình
nếu <đối tượng [AIVision1 v] tồn tại?> thì
đặt mục đối tượng [AIVision1 v] thành (số lượng đối tượng [AIVision1 v])
in (đối tượng [AIVision1 v] [tagID v]) trên màn hình ▶

Giá trị#

Đối tượng AI Vision có tồn tại không?#

Khối Boolean AI Vision object exists cho biết liệu có đối tượng nào được phát hiện trong tập dữ liệu hay không.

  • Đúng – Tập dữ liệu bao gồm một đối tượng được phát hiện.

  • Sai – Tập dữ liệu không bao gồm bất kỳ đối tượng nào được phát hiện.

Khối Boolean tồn tại đối tượng AI Vision.#
<đối tượng [AIVision1 v] tồn tại?>

Thông số

Sự miêu tả

thiết bị

Nên sử dụng cảm biến thị giác AI nào, được cấu hình trong cửa sổ Thiết bị.

Ví dụ

khi bắt đầu
[Drive forward if an object is detected.]
mãi mãi
chụp ảnh [AIVision1 v] của [Phân loại AI v]
nếu <đối tượng [AIVision1 v] tồn tại?> thì
lái [tiến v] trong [10] [mm v] ▶

Đối tượng AI Vision là#

Khối Boolean AI Vision báo cáo liệu một đối tượng được phát hiện có khớp với một phân loại cụ thể hay không.

  • Đúng – Mục trong tập dữ liệu là đối tượng cụ thể.

  • Sai – Mục trong tập dữ liệu không phải là đối tượng cụ thể.

Phân loại AI Vision AI là một khối Boolean đối tượng.#
<đối tượng [AIVision1 v] là [BlueBall v]?>

Tham số

Sự miêu tả

thiết bị

Nên sử dụng cảm biến thị giác AI nào, được cấu hình trong cửa sổ Thiết bị.

sự vật

So sánh mục này với Phân loại AI nào.

Ví dụ

khi bắt đầu
[Display if a Blue Cube is detected.]
mãi mãi
chụp ảnh [AIVision1 v] của [Phân loại AI v]
xóa hàng [1] trên màn hình
đặt con trỏ đến hàng [1] cột [1] trên màn hình
nếu <đối tượng [AIVision1 v] tồn tại?> thì
nếu <đối tượng [AIVision1 v] là [BlueCube v]?> thì
in [Cube detected!] trên màn hình ▶
chờ [0.5] giây

Đối tượng AI Vision là AprilTag#

Khối Boolean AI Vision object is AprilTag cho biết liệu đối tượng được phát hiện có phải là AprilTag khớp với một ID cụ thể hay không.

  • Đúng – Đối tượng được phát hiện là một AprilTag có ID đã cho.

  • Sai – Đối tượng được phát hiện không phải là AprilTag có ID đã cho.

Đối tượng AI Vision là khối Boolean AprilTag.#
<đối tượng [AIVision1 v] là AprilTag [0]?>

Tham số

Sự miêu tả

thiết bị

Nên sử dụng cảm biến thị giác AI nào, được cấu hình trong cửa sổ Thiết bị.

Mã định danh AprilTag

Mã số định danh cần so sánh với AprilTag đã được phát hiện.

Ví dụ

khi bắt đầu
[Report if AprilTag 3 is detected.]
mãi mãi
xóa màn hình
đặt con trỏ đến hàng [1] cột [1] trên màn hình
chụp ảnh [AIVision1 v] của [AprilTag IDs v]
nếu <đối tượng [AIVision1 v] tồn tại?> thì
nếu <đối tượng [AIVision1 v] là AprilTag [3]?> thì
in [That is 3!] trên màn hình ▶
nếu không
in [That isn't 3!] trên màn hình ▶
fin
fin
chờ [0.1] giây

Đối tượng AI Vision là ID AprilTag#

Khối Boolean AI Vision object is AprilTag ID cho biết liệu ID của AprilTag được phát hiện có khớp với một ID cụ thể hay không.

  • Đúng – Mã định danh AprilTag chính là số.

  • Sai – Mã định danh AprilTag không phải là số.

AI Vision đã phát hiện ID của AprilTag là khối Boolean.#
<[AIVision1 v] object is AprilTag ID [1] ?>

Thông số

Sự miêu tả

thiết bị

Nên sử dụng cảm biến thị giác AI nào, được cấu hình trong cửa sổ Thiết bị.

Mã số ID AprilTag

Con số này dùng để so sánh với số ID AprilTag đã được phát hiện.

Ví dụ:

khi bắt đầu
[Report if AprilTag ID 3 is detected.]
mãi mãi
xóa màn hình
đặt con trỏ đến hàng [1] cột [1] trên màn hình
chụp ảnh [AIVision1 v] của [AprilTag IDs v]
nếu <đối tượng [AIVision1 v] tồn tại?> thì
nếu <[AIVision1 v] object is AprilTag ID [3] ?> thì
in [That is 3!] trên màn hình ▶
nếu không
in [That isn't 3!] trên màn hình ▶
fin
fin
chờ [0.1] giây

đếm đối tượng trong AI Vision#

Khối báo cáo Số lượng đối tượng được phát hiện trong AI Vision sẽ hiển thị số lượng đối tượng được phát hiện trong tập dữ liệu dưới dạng số nguyên.

Khối xếp chồng vật phẩm đối tượng Set AI Vision.#
(số lượng đối tượng [AIVision1 v])

Thông số

Sự miêu tả

thiết bị

Nên sử dụng cảm biến thị giác AI nào, được cấu hình trong cửa sổ Thiết bị.

Ví dụ

khi bắt đầu
[Display the total amount of cubes, rings, and balls.]
mãi mãi
xóa hàng [1] trên màn hình
đặt con trỏ đến hàng [1] cột [1] trên màn hình
chụp ảnh [AIVision1 v] của [Phân loại AI v]
nếu <đối tượng [AIVision1 v] tồn tại?> thì
in (số lượng đối tượng [AIVision1 v]) trên màn hình ▶
fin
chờ [0.5] giây

Thuộc tính đối tượng AI Vision#

Có chín thuộc tính được bao gồm trong mỗi đối tượng (hiển thị bên dưới) được lưu trữ sau khi khối chụp nhanh được sử dụng.

Khối báo cáo thuộc tính đối tượng AI Vision.#
(đối tượng [AIVision1 v] [chiều rộng v])

Tất cả các giá trị thuộc tính ngoại trừ tagID và score mô tả vị trí và kích thước của đối tượng được phát hiện trong tầm nhìn của Cảm biến Thị giác AI tại thời điểm khối take snapshot được sử dụng. Các giá trị này được đo bằng pixel, dựa trên độ phân giải 320 x 240 pixel của cảm biến.

Tham số

Sự miêu tả

thiết bị

Nên sử dụng cảm biến thị giác AI nào, được cấu hình trong cửa sổ Thiết bị.

tài sản

Nên sử dụng thuộc tính nào của đối tượng được phát hiện:

chiều rộng#

Thuộc tính width báo cáo chiều rộng của đối tượng được phát hiện tính bằng pixel dưới dạng số nguyên từ 1 đến 320.

Khối thuộc tính ngăn xếp đối tượng AI Vision với tham số được đặt thành chiều rộng.#
(đối tượng [AIVision1 v] [chiều rộng v])

Ví dụ

khi bắt đầu
[Drive towards an object until its width is larger than 100 pixels.]
mãi mãi
chụp ảnh [AIVision1 v] của [Phân loại AI v]
nếu <đối tượng [AIVision1 v] tồn tại?> thì
nếu <(đối tượng [AIVision1 v] [chiều rộng v]) [math_less_than v] [100]> thì
lái [tiến v]
nếu không
dừng lái
fin

chiều cao#

Thuộc tính chiều cao báo cáo chiều cao của đối tượng được phát hiện tính bằng pixel dưới dạng số nguyên từ 1 đến 240.

Khối thuộc tính ngăn xếp đối tượng AI Vision với tham số được đặt thành chiều cao.#
(đối tượng [AIVision1 v] [chiều cao v])

Ví dụ

khi bắt đầu
[Drive towards an object until its height is larger than 100 pixels.]
mãi mãi
chụp ảnh [AIVision1 v] của [Phân loại AI v]
nếu <đối tượng [AIVision1 v] tồn tại?> thì
nếu <(đối tượng [AIVision1 v] [chiều cao v]) [math_less_than v] [100]> thì
lái [tiến v]
nếu không
dừng lái
fin

centerX#

Thuộc tính centerX báo cáo tọa độ x của tâm đối tượng được phát hiện tính bằng pixel dưới dạng số nguyên từ 0 đến 320.

Khối thuộc tính ngăn xếp đối tượng AI Vision với tham số được đặt thành centerX.#
(đối tượng [AIVision1 v] [centerX v])

Ví dụ

khi bắt đầu
[Turn slowly until an object is centered in front of the robot.]
đặt vận tốc quay thành [30] [% v]
quay [phải v]
mãi mãi
chụp ảnh [AIVision1 v] của [Phân loại AI v]
nếu <đối tượng [AIVision1 v] tồn tại?> thì
nếu <[140] [math_less_than v] (đối tượng [AIVision1 v] [centerX v]) [math_less_than v] [180]> thì
dừng lái

trung tâmY#

Thuộc tính centerY báo cáo tọa độ y của tâm đối tượng được phát hiện tính bằng pixel dưới dạng số nguyên từ 0 đến 240.

Khối thuộc tính ngăn xếp đối tượng AI Vision với tham số được đặt thành centerY.#
(đối tượng [AIVision1 v] [centerY v])

Ví dụ

khi bắt đầu
[Drive towards an object until its center y-coordinate is more than 140 pixels.]
mãi mãi
chụp ảnh [AIVision1 v] của [Phân loại AI v]
nếu <đối tượng [AIVision1 v] tồn tại?> thì
nếu <(đối tượng [AIVision1 v] [centerY v]) [math_less_than v] [140]> thì
lái [tiến v]
nếu không
dừng lái
fin

góc#

Thuộc tính góc báo cáo hướng của Mã màu hoặc ID AprilTag được phát hiện dưới dạng số nguyên tính bằng độ từ 0 đến 359.

Khối thuộc tính đối tượng AI Vision với tham số được đặt thành góc.#
(đối tượng [AIVision1 v] [góc v])

Ví dụ

khi bắt đầu
[Slide left or right depending on how the Color Code is rotated.]
mãi mãi
chụp ảnh [AIVision1 v] của [RED_BLUE v]
nếu <đối tượng [AIVision1 v] tồn tại?> thì
nếu <[50] [math_less_than v] (đối tượng [AIVision1 v] [góc v]) [math_less_than v] [100]> thì
lái [phải v]
nếu không nếu <[270] [math_less_than v] (đối tượng [AIVision1 v] [góc v]) [math_less_than v] [330]> thì
lái [trái v]
nếu không
dừng lái
fin
nếu không
dừng lái

nguồn gốcX#

Thuộc tính originX báo cáo tọa độ x của góc trên bên trái của khung bao quanh đối tượng được phát hiện tính bằng pixel dưới dạng số nguyên từ 0 đến 320.

Khối thuộc tính ngăn xếp đối tượng AI Vision với tham số được đặt thành originX.#
(đối tượng [AIVision1 v] [originX v])

Ví dụ

khi bắt đầu
[Display if an object is to the left or the right.]
mãi mãi
xóa hàng [1] trên màn hình
đặt con trỏ đến hàng [1] cột [1] trên màn hình
chụp ảnh [AIVision1 v] của [Phân loại AI v]
nếu <đối tượng [AIVision1 v] tồn tại?> thì
nếu <(đối tượng [AIVision1 v] [originX v]) [math_less_than v] [160]> thì
in [To the left!] trên màn hình ▶
nếu không
in [To the right!] trên màn hình ▶
fin
chờ [0.5] giây

nguồn gốc#

Thuộc tính originY báo cáo tọa độ y của góc trên bên trái của khung bao quanh đối tượng được phát hiện tính bằng pixel dưới dạng số nguyên từ 0 đến 240.

Khối thuộc tính ngăn xếp đối tượng AI Vision với tham số được đặt thành originY.#
(đối tượng [AIVision1 v] [originY v])

Ví dụ

khi bắt đầu
[Display if an object is close or far from the robot.]
mãi mãi
xóa hàng [1] trên màn hình
đặt con trỏ đến hàng [1] cột [1] trên màn hình
chụp ảnh [AIVision1 v] của [Phân loại AI v]
nếu <đối tượng [AIVision1 v] tồn tại?> thì
nếu <(đối tượng [AIVision1 v] [originY v]) [math_less_than v] [80]> thì
in [Far!] trên màn hình ▶
nếu không
in [Close!] trên màn hình ▶
fin
chờ [0.5] giây

ID thẻ#

Thuộc tính tagID báo cáo số nhận dạng của ID AprilTag được phát hiện dưới dạng số nguyên.

Khối thuộc tính ngăn xếp đối tượng AI Vision với tham số được đặt thành tagID.#
(đối tượng [AIVision1 v] [tagID v])

Ví dụ

khi bắt đầu
[Drive forward when AprilTag ID 0 is detected.]
mãi mãi
chụp ảnh [AIVision1 v] của [AprilTag IDs v]
nếu <đối tượng [AIVision1 v] tồn tại?> thì
nếu <(đối tượng [AIVision1 v] [tagID v]) [math_equal v] [0]> thì
lái [tiến v]
nếu không
dừng lái
fin
chờ [0.5] giây

điểm#

Thuộc tính điểm số cho biết mức độ tin cậy của mô hình đối với phân loại AI được phát hiện, được thể hiện bằng phần trăm từ 70% đến 100%.

Điểm số thấp hơn có nghĩa là cảm biến ít tự tin hơn về vật thể được phát hiện, trong khi điểm số cao hơn có nghĩa là cảm biến tự tin hơn.

Khối thuộc tính ngăn xếp đối tượng AI Vision với tham số được đặt thành tagID.#
(đối tượng [AIVision1 v] [điểm số v])