Mã hóa bằng cảm biến thị giác AI trong khối EXP VEXcode

Đảm bảo bạn đã cấu hình Chữ ký màuMã màu với Cảm biến thị giác AI để có thể sử dụng chúng với các khối của bạn. Để tìm hiểu thêm về cách cấu hình chúng, bạn có thể đọc các bài viết dưới đây:

Cảm biến AI Vision cũng có thể phát hiện Phân loại AI và AprilTags. Để tìm hiểu cách bật các chế độ phát hiện này, hãy vào đây:

Để tìm hiểu thêm chi tiết về từng Khối riêng lẻ này và cách sử dụng chúng trong VEXcode, hãy truy cập trang web API.


Chụp ảnh nhanh

Khối VEXcode EXP Take Snapshot có nội dung là Take a AIVision1 snapshot of COL1. Có hai menu thả xuống, một để chọn Cảm biến thị giác AI và menu thứ hai để chọn Mã màu.

KhốiTake Snapshot chụp ảnh những gì Cảm biến thị giác AI đang nhìn thấy và lấy dữ liệu từ ảnh chụp nhanh đó để sử dụng trong một dự án. Khi chụp ảnh nhanh, bạn cần chỉ định loại đối tượng mà Cảm biến thị giác AI sẽ thu thập dữ liệu:

  • Chữ ký màu
  • Mã màu
  • Phân loại AI
  • Thẻ tháng 4

Chụp ảnh nhanh sẽ tạo ra một mảng gồm tất cả các đối tượng được phát hiện mà bạn đã chỉ định. Ví dụ, nếu bạn muốn phát hiện Chữ ký màu "Đỏ"và Cảm biến thị giác AI phát hiện 3 vật thể màu đỏ khác nhau, dữ liệu từ cả ba vật thể sẽ được đưa vào mảng.

Để biết thêm thông tin về cách chỉ định giữa các đối tượng khác nhau, hãy đi tới phần "Đặt mục đối tượng" trong bài viết này.

Khối VEXcode EXP Take Snapshot có nội dung là Take a AIVision2 snapshot of Blue.

Trong ví dụ này, nó sẽ chỉ phát hiện các đối tượng khớp với Chữ ký màu "Blue" được cấu hình của nó và không có gì khác.

Dữ liệu lấy từ ảnh chụp nhanh

Hãy nhớ rằng Cảm biến thị giác AI sẽ sử dụng ảnh chụp nhanh cuối cùng của nó cho bất kỳ Khối nào xuất hiện sau đó. Để đảm bảo bạn luôn nhận được thông tin mới nhất từ Cảm biến thị giác AI, hãy chụp lại ảnh nhanh mỗi khi bạn muốn lấy dữ liệu từ đó. 

Nghị quyết

Sơ đồ độ phân giải của Cảm biến thị giác AI. Góc trên bên trái được dán nhãn là 0, 0, góc trên bên phải được dán nhãn là 320, 0 và góc dưới bên trái được dán nhãn là 0, 240. Phần giữa màn hình được đánh dấu là 160, 120.

Hiểu được độ phân giải của Cảm biến thị giác AI là rất quan trọng để giải thích dữ liệu chính xác. Cảm biến có độ phân giải 320x240 pixel, với tâm chính xác tại tọa độ (160, 120).

Tọa độ X nhỏ hơn 160 tương ứng với nửa bên trái của trường nhìn của cảm biến, trong khi tọa độ X lớn hơn 160 tương ứng với nửa bên phải. Tương tự như vậy, tọa độ Y nhỏ hơn 120 biểu thị nửa trên của chế độ xem và tọa độ Y lớn hơn 120 biểu thị nửa dưới.

Đi tới Hiểu về dữ liệu trong Tiện ích AI Vision trong VEXcode EXP để biết thêm thông tin về cách đo lường các đối tượng bằng Cảm biến AI Vision.

Chiều rộng và chiều cao

Đây là chiều rộng hoặc chiều cao của đối tượng được phát hiện tính bằng pixel.

Cảm biến thị giác AI được hiển thị đang theo dõi một quả Buckyball màu xanh. Buckyball có một hình chữ nhật theo dõi xung quanh và nhãn ở trên cho thấy nó có chiều rộng là 80 pixel và chiều cao là 78 pixel. Mũi tên màu đỏ làm nổi bật hình chữ nhật theo dõi để minh họa chiều rộng và chiều cao của nó.

Các phép đo chiều rộng và chiều cao giúp xác định các vật thể khác nhau. Ví dụ, Buckyball sẽ có chiều cao lớn hơn Ring.

Cảm biến thị giác AI được hiển thị đang theo dõi hai khối lập phương màu xanh. Các khối lập phương có hình chữ nhật theo dõi xung quanh và một khối ở gần camera hơn nhiều. Cái gần hơn có chiều rộng là 144 và chiều cao là 113, còn cái xa hơn có chiều rộng là 73 và chiều cao là 84.

Chiều rộng và chiều cao cũng cho biết khoảng cách của vật thể đến Cảm biến thị giác AI. Các phép đo nhỏ hơn thường có nghĩa là vật thể ở xa hơn, trong khi các phép đo lớn hơn cho thấy vật thể ở gần hơn.

Dự án VEXcode Blocks trong đó robot sẽ tiếp cận vật thể cho đến khi đạt đến kích thước cụ thể trước khi dừng lại. Dự án bắt đầu bằng khối Khi bắt đầu và vòng lặp Mãi mãi. Phần còn lại của dự án nằm bên trong vòng lặp Forever. Đầu tiên, chụp ảnh nhanh AIVision1 của Blue, sau đó phần còn lại của dự án sẽ nằm trong khối If có nội dung là liệu đối tượng AIVision1 có tồn tại không? Bên trong khối If này có một khối If Else đọc nếu chiều rộng đối tượng AIVision1 nhỏ hơn 250 thì tiến về phía trước, nếu không thì dừng lái.

Trong ví dụ này, chiều rộng của đối tượng được sử dụng để điều hướng. Robot sẽ tiến lại gần vật thể cho đến khi đạt đến kích thước cụ thể trước khi dừng lại.

CenterX và Center Y

Đây là tọa độ trung tâm của đối tượng được phát hiện tính bằng pixel.

Cảm biến thị giác AI được hiển thị đang theo dõi một quả Buckyball màu xanh. Buckyball có một hình chữ nhật theo dõi xung quanh nó và nhãn ở trên cho thấy nó có vị trí X là 176 và vị trí Y là 117. Tâm của hình chữ nhật theo dõi được tô sáng để chứng minh rằng vị trí được đo từ tâm.

Tọa độ CenterX và CenterY giúp điều hướng và định vị. Cảm biến AI Vision có độ phân giải 320 x 240 pixel.

Cảm biến thị giác AI được hiển thị đang theo dõi hai khối lập phương màu xanh. Các khối lập phương có hình chữ nhật theo dõi xung quanh và một khối ở gần camera hơn nhiều. Vị trí Y càng gần thì càng lớn, vị trí Y càng lớn thì càng nhỏ ...

Bạn có thể thấy rằng một vật thể gần Cảm biến thị giác AI hơn sẽ có tọa độ CenterY thấp hơn so với một vật thể ở xa hơn.

Dự án VEXcode Blocks trong đó robot sẽ quay về phía vật thể được phát hiện cho đến khi nó nằm ở trung tâm tầm nhìn của Cảm biến thị giác AI. Dự án bắt đầu bằng khối Khi bắt đầu và vòng lặp Mãi mãi. Phần còn lại của dự án nằm bên trong vòng lặp Forever. Đầu tiên, chụp ảnh nhanh AIVision1 của Blue, sau đó phần còn lại của dự án sẽ nằm trong khối If có nội dung là liệu đối tượng AIVision1 có tồn tại không? Bên trong khối If này có một khối If Else đọc nếu tâm đối tượng AIVision1X lớn hơn 150 và tâm đối tượng AIVision1X nhỏ hơn 170 thì rẽ phải, nếu không thì dừng lái xe.

Trong ví dụ này, vì tâm của góc nhìn của Cảm biến thị giác AI là (160, 120) nên robot sẽ rẽ phải cho đến khi tọa độ tâmX của vật thể được phát hiện lớn hơn 150 pixel nhưng nhỏ hơn 170 pixel.

Góc

Hình ảnh động về một hình vuông màu đỏ và một hình vuông màu xanh lá cây được xoay cùng nhau để thể hiện giá trị góc 360 độ.

Góc là thuộc tính chỉ khả dụng choMã màuAprilTags. Điều này thể hiện liệu Mã màuhoặc AprilTag được phát hiện có định hướng khác nhau hay không.

Cảm biến thị giác AI được hiển thị theo dõi Mã màu từ xanh lá cây đến xanh lam. Video cho thấy một khối lập phương màu xanh lá cây xếp chồng lên một khối lập phương màu xanh lam. Giá trị góc của Mã màu được tô sáng và hiển thị là 87 độ, cho biết Mã màu được định hướng theo chiều dọc.

Bạn có thể xem robot có định hướng khác nhau theo Mã màu hayAprilTag hay không và đưa ra quyết định điều hướng theo đó.

Cảm biến thị giác AI được hiển thị theo dõi Mã màu từ xanh lá cây đến xanh lam. Nguồn cấp dữ liệu video cho thấy một Khối lập phương xanh lá cây nằm cạnh một Khối lập phương xanh dương, nhưng chúng ở một góc độ khó so với cảm biến. Giá trị góc của Mã màu được tô sáng và hiển thị là 0 độ, cho biết góc của Mã màu không thể đọc được.

Ví dụ, nếu Mã màu không được phát hiện ở góc thích hợp thì vật thể mà nó đại diện có thể không được robot nhận diện đúng cách.

OriginX và OriginY

OriginX và OriginY là tọa độ ở góc trên bên trái của đối tượng được phát hiện tính bằng pixel.

Cảm biến thị giác AI được hiển thị đang theo dõi một quả Buckyball màu xanh. Buckyball có một hình chữ nhật theo dõi xung quanh nó và nhãn ở trên cho thấy nó có vị trí X là 176 và vị trí Y là 117. Góc trên bên trái của hình chữ nhật theo dõi được tô sáng để chứng minh rằng vị trí gốc được đo từ góc trên bên trái của hình chữ nhật đó.

Tọa độ OriginX và OriginY giúp điều hướng và định vị. Bằng cách kết hợp tọa độ này với Chiều rộng và Chiều cao của đối tượng, bạn có thể xác định kích thước hộp giới hạn của đối tượng. Điều này có thể giúp theo dõi các vật thể chuyển động hoặc điều hướng giữa các vật thể.

Dự án VEXcode Blocks trong đó robot sẽ vẽ một vật thể được phát hiện lên màn hình dưới dạng hình chữ nhật. Dự án bắt đầu bằng khối Khi bắt đầu và vòng lặp Mãi mãi. Phần còn lại của dự án nằm bên trong vòng lặp Forever. Đầu tiên, chụp ảnh nhanh AIVision1 của Blue, sau đó phần còn lại của dự án sẽ nằm trong khối If có nội dung là liệu đối tượng AIVision1 có tồn tại không? Bên trong khối If này có một khối Vẽ hình chữ nhật có nội dung vẽ hình chữ nhật AIVision1 có gốc là X, gốc là Y của đối tượng AIVision1, chiều rộng của đối tượng AIVision1, chiều cao của đối tượng AIVision1 trên Brain.

Trong ví dụ này, một hình chữ nhật sẽ được vẽ trên Não bằng cách sử dụng tọa độ chính xác của gốc, chiều rộng và chiều cao của nó.

ID thẻ

TagID chỉ khả dụng choAprilTags. Đây là số ID choAprilTagđược chỉ định.

Ba AprilTag đang được AI Vision Utility theo dõi. Mỗi thẻ được xác định, định vị và phác thảo, cho biết hệ thống đang theo dõi thẻ đó. ID AprilTag trong ví dụ này là 0, 3 và 9.

Việc xác định AprilTags cụ thể cho phép điều hướng có chọn lọc. Bạn có thể lập trình cho robot của mình di chuyển theo các thẻ nhất định trong khi bỏ qua các thẻ khác, sử dụng chúng như các biển chỉ dẫn để điều hướng tự động.

Điểm

Thuộc tính điểm được sử dụng khi phát hiệnPhân loại AI bằng Cảm biến thị giác AI.

Tiện ích AI Vision đang theo dõi bốn vật thể, hai BuckyBall và hai Ring. Mỗi đối tượng được xác định, định vị và phác thảo, cho biết hệ thống đang theo dõi đối tượng đó. Tiện ích này cũng liệt kê điểm Phân loại AI của từng đối tượng, trong ví dụ này, mỗi điểm đều là 99%.

Điểm tin cậy cho biết mức độ chắc chắn của Cảm biến thị giác AI về khả năng phát hiện của nó. Trong hình ảnh này, có thể tự tin đến 99% trong việc xác định Phân loại AI của bốn đối tượng này. Bạn có thể sử dụng điểm số này để đảm bảo robot của bạn chỉ tập trung vào những phát hiện có độ tin cậy cao.


Đặt mục đối tượng

Khi một vật thể được Cảm biến thị giác AI phát hiện, vật thể đó sẽ được đưa vào một mảng. Theo mặc định, Cảm biến thị giác AI sẽ lấy dữ liệu từ đối tượng đầu tiên trong mảng hoặc đối tượng có chỉ số là 1. Nếu Cảm biến thị giác AI của bạn chỉ phát hiện một đối tượng, thì đối tượng đó sẽ được chọn theo mặc định.

Tuy nhiên, khi Cảm biến thị giác AI của bạn phát hiện nhiều đối tượng cùng một lúc, bạn sẽ cần sử dụng khốiĐặt mục đối tượng để chỉ định đối tượng mà bạn muốn lấy dữ liệu.

VEXcode EXP Đặt khối mục đối tượng có nội dung Đặt mục đối tượng AIVision1 thành 1. Có một menu thả xuống để chọn Cảm biến thị giác AI và một trường văn bản để nhập chỉ mục đối tượng.

Khi nhiều vật thể được Cảm biến thị giác AI phát hiện, chúng sẽ được sắp xếp trong mảng theo thứ tự từ lớn đến nhỏ. Điều đó có nghĩa là đối tượng lớn nhất được phát hiện sẽ luôn được đặt thành chỉ mục đối tượng là 1 và đối tượng nhỏ nhất sẽ luôn được đặt thành số cao nhất.

Cảm biến thị giác AI được hiển thị đang theo dõi hai khối lập phương màu xanh. Các khối lập phương có hình chữ nhật theo dõi xung quanh và một khối ở gần camera hơn nhiều. Cái gần hơn có chiều rộng là 136, và cái xa hơn có chiều rộng là 78.

Trong ví dụ này, hai vật thể đã được phát hiện với Chữ ký màu "Xanh lam". Cả hai đều sẽ được đưa vào mảng khi khốiTake Snapshot được sử dụng.

Cảm biến thị giác AI được hiển thị đang theo dõi hai khối lập phương màu xanh. Các khối lập phương có hình chữ nhật theo dõi xung quanh và một khối ở gần camera hơn nhiều. Khối lập phương gần hơn được đánh số 1 và khối lập phương xa hơn được đánh số 2.

Ở đây, đối tượng ở phía trước sẽ trở thành đối tượng có chỉ số 1 vì nó là đối tượng lớn nhất, và đối tượng nhỏ nhất sẽ trở thành đối tượng có chỉ số 2.


Đối tượng tồn tại

Trước khi lấy bất kỳ dữ liệu nào từ ảnh chụp nhanh, điều quan trọng là kiểm tra để đảm bảo Cảm biến thị giác AI đã phát hiện bất kỳ đối tượng nào từ ảnh chụp nhanh đó trước. Đây là nơi khốiObject Exists phát huy tác dụng.

Khối VEXcode EXP Object có tồn tại để đọc đối tượng AIVision1 không? Có một menu thả xuống để chọn Cảm biến thị giác AI.

Khối này sẽ trả về giá trịĐúng hoặcSai về việc ảnh chụp nhanh cuối cùng có phát hiện được bất kỳ đối tượng nào hay không.

Khối này phảiđược dụng để đảm bảo bạn không cố gắng lấy bất kỳ dữ liệu nào từ ảnh chụp nhanh có khả năng trống.

Dự án VEXcode Blocks trong đó robot sẽ lái về phía vật thể màu xanh được phát hiện. Dự án bắt đầu bằng khối Khi bắt đầu và vòng lặp Mãi mãi. Phần còn lại của dự án nằm bên trong vòng lặp Forever. Đầu tiên, chụp ảnh nhanh AIVision2 của Blue, sau đó là khối If Else đọc nếu đối tượng AIVision2 tồn tại thì tiến về phía trước, nếu không thì dừng lái.

Ví dụ, ở đây robot sẽ liên tục chụp ảnh nhanh bằng Cảm biến thị giác AI. Nếu nó xác định được bất kỳ vật thểcó Chữ ký màu “Xanh lam” , nó sẽ di chuyển về phía trước.


Nếu bất kỳ ảnh chụp nhanh nào không có Chữ ký màu “Xanh lam” , robot sẽ dừng di chuyển.


Số lượng đối tượng

Khối đếm đối tượng VEXcode EXP đọc số lượng đối tượng AIVision1. Có một menu thả xuống để chọn Cảm biến thị giác AI.

Sử dụng khối Số lượng đối tượng sẽ cho phép bạn xem có bao nhiêu đối tượng của Chữ ký màu cụ thể mà Cảm biến thị giác AI có thể nhìn thấy trong ảnh chụp nhanh cuối cùng của nó. 

Cảm biến thị giác AI được hiển thị đang theo dõi hai khối lập phương màu xanh. Các khối lập phương có hình chữ nhật theo dõi xung quanh và một khối ở gần camera hơn nhiều.

Ở đây, chúng ta thấy Cảm biến thị giác AI có Chữ ký màu được cấu hình là “Xanh lam” và đang phát hiện hai vật thể.

Dự án VEXcode Blocks trong đó robot sẽ in số lượng vật thể màu xanh được phát hiện ra Bảng điều khiển in. Dự án bắt đầu bằng khối Khi bắt đầu và vòng lặp Mãi mãi. Phần còn lại của dự án nằm bên trong vòng lặp Forever. Đầu tiên, hãy chụp ảnh nhanh AIVision2 của Blue, xóa tất cả các hàng trên Console, sau đó đặt con trỏ đến hàng tiếp theo trên Console. Tiếp theo là khối If đọc xem đối tượng AIVision2 có tồn tại hay không rồi in số lượng đối tượng AIVision2 ra Console và đặt con trỏ đến hàng tiếp theo. Bên ngoài khối If, có một khối Wait được thiết lập để chờ trong 2 giây.Đầu ra của Print Console của dự án VEXcode Blocks trước đó có thông báo được in là 2.

Trong mã này, Cảm biến thị giác AI sẽ chụp nhanh và in “2” trên bảng điều khiển VEXcode vì nó chỉ phát hiện hai Chữ ký màu “Xanh lam” .


Sự vật

Khối đối tượng VEXcode EXP AI Vision đọc chiều rộng đối tượng AIVision1. Có một menu thả xuống để chọn Cảm biến thị giác AI và một menu thả xuống mở ra để chọn thuộc tính của đối tượng để cảm biến. Danh sách các tùy chọn bao gồm chiều rộng, chiều cao, centerX, centerY, góc, originX, originY, tagID và điểm.

KhốiĐối tượng cho phép bạn báo cáo thuộc tính của đối tượng bạn chỉ định. Tính năng này cho phép bạn sử dụng bất kỳ dữ liệu nào có sẵn được lấy từ ảnh chụp nhanh gần đây nhất.

Các thuộc tính đối tượng có thể được lấy từ ảnh chụp nhanh là:

  • chiều rộng
  • chiều cao
  • trung tâmX
  • tâmY
  • góc
  • nguồn gốcX
  • nguồn gốcY
  • ID thẻ
  • điểm

Đọc phần "Dữ liệu lấy từ ảnh chụp nhanh" của bài viết này để biết thêm thông tin về các thuộc tính này.


Đã phát hiện AprilTag là

VEXcode EXP Detected AprilTag là khối đọc AIVision1 phát hiện AprilTag là 1? Có một menu thả xuống để chọn Cảm biến thị giác AI.

Khối AprilTag được phát hiệnchỉ dụng khi Chế độ phát hiện AprilTag được bật.

Khối này sẽ báo cáo Đúng hoặc Sai tùy thuộc vào việc đối tượng được chỉ định có phải là AprilTag cụ thể hay không.

Ba AprilTag đang được AI Vision Utility theo dõi. Mỗi thẻ được xác định, định vị và phác thảo, cho biết hệ thống đang theo dõi thẻ đó. ID AprilTag trong ví dụ này là 0, 3 và 9.

Khi phát hiện nhiều AprilTag trong một ảnh chụp nhanh, chúng sẽ được sắp xếp trong mảng dựa trên ID đã xác định chứ không phải theo kích thước.

Trong hình ảnh này, ba AprilTag được phát hiện có ID là 0, 3 và 9. Chúng sẽ được sắp xếp theo thứ tự tăng dần của ID trong mảng. Đối tượng ở chỉ mục 1 sẽ tương ứng với AprilTag có ID 0, ở chỉ mục 2 tương ứng với AprilTag có ID 3 và ở chỉ mục 3 tương ứng với AprilTag có ID 9.

Để biết thêm thông tin về AprilTags và cách kích hoạt tính năng phát hiện chúng bằng AI Vision Sensor, hãy đọc bài viết này.


Phân loại AI là

VEXcode EXP AI Classification là khối đọc AIVision1 Phân loại AI là BlueBall? Có một menu thả xuống để chọn Cảm biến thị giác AI và một menu thả xuống khác để chọn đối tượng Phân loại AI mục tiêu.

Phân loại AI khối chỉ khả dụng khi Chế độ phát hiện phân loại AI được bật.

 

Khối này sẽ báo cáo Đúng hoặc Sai tùy thuộc vào việc đối tượng được chỉ định có phải là Phân loại AI cụ thể hay không.

Phân loại AI nào có thể được Cảm biến thị giác AI phát hiện sẽ khác nhau tùy thuộc vào mẫu bạn đang sử dụng. Để biết thêm thông tin về các Phân loại AI hiện có và cách kích hoạt tính năng phát hiện của chúng bằng Cảm biến thị giác AI, hãy đọc bài viết này.

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

Last Updated: