Pengkodean dengan Sensor Penglihatan AI di Blok EXP VEXcode

Pastikan Anda memiliki Tanda Tangan Warna dan Kode Warna yang dikonfigurasi dengan Sensor Penglihatan AI Anda sehingga dapat digunakan dengan blok Anda. Untuk mempelajari lebih lanjut tentang cara mengonfigurasinya, Anda dapat membaca artikel di bawah ini:

Sensor Penglihatan AI juga dapat mendeteksi Klasifikasi AI dan AprilTags. Untuk mempelajari cara mengaktifkan mode deteksi ini, kunjungi di sini:

Untuk mempelajari lebih detail tentang Blok individual ini dan cara menggunakannya di VEXcode, kunjungi situs API.


Ambil Snapshot

Blok VEXcode EXP Take Snapshot yang bertuliskan Ambil snapshot AIVision1 dari COL1. Ada dua menu tarik-turun, satu untuk memilih Sensor Penglihatan AI dan yang kedua untuk memilih Kode Warna.

BlokTake Snapshot mengambil gambar apa yang sedang dilihat oleh AI Vision Sensor dan menarik data dari snapshot tersebut yang kemudian dapat digunakan dalam suatu proyek. Saat snapshot diambil, Anda perlu menentukan jenis objek apa yang harus dikumpulkan datanya oleh AI Vision Sensor:

  • Tanda Tangan Warna
  • Kode Warna
  • Klasifikasi AI
  • Tag April

Mengambil snapshot akan membuat array dari semua objek terdeteksi yang Anda tentukan. Misalnya, jika Anda ingin mendeteksi Tanda Warna "Merah", dan Sensor Penglihatan AI mendeteksi 3 objek merah yang berbeda, data dari ketiganya akan dimasukkan ke dalam array.

Untuk informasi lebih lanjut tentang cara menentukan antar objek yang berbeda, buka bagian "Tetapkan Item Objek" di artikel ini.

Blok VEXcode EXP Take Snapshot yang bertuliskan Ambil snapshot AIVision2 dari Blue.

Dalam contoh ini, ia hanya akan mendeteksi objek yang sesuai dengan Tanda Warna “Biru” yang dikonfigurasinya dan tidak ada yang lain.

Data yang Diambil dari Snapshot

Perlu diingat bahwa AI Vision Sensor akan menggunakan snapshot terakhir yang diambil untuk Blok apa pun setelahnya. Untuk memastikan Anda selalu memperoleh informasi terkini dari AI Vision Sensor, ambil ulang gambar Anda setiap kali ingin mengambil data darinya. 

Resolusi

Diagram resolusi Sensor Penglihatan AI. Sudut kiri atas diberi label 0, 0, sudut kanan atas diberi label 320, 0, dan sudut kiri bawah diberi label 0, 240. Bagian tengah layar diberi label 160, 120.

Memahami resolusi Sensor Penglihatan AI sangat penting untuk interpretasi data yang akurat. Sensor memiliki resolusi 320x240 piksel, dengan pusat tepat pada koordinat (160, 120).

Koordinat X kurang dari 160 berhubungan dengan bagian kiri bidang pandang sensor, sedangkan yang lebih besar dari 160 menunjukkan bagian kanan. Demikian pula, koordinat Y kurang dari 120 menunjukkan bagian atas tampilan, dan yang lebih besar dari 120 menunjukkan bagian bawah.

Buka Memahami Data dalam AI Vision Utility di VEXcode EXP untuk informasi lebih lanjut tentang cara objek diukur dengan AI Vision Sensor.

Lebar dan Tinggi

Ini adalah lebar atau tinggi objek yang terdeteksi dalam piksel.

Sensor Penglihatan AI diperlihatkan sedang melacak Blue Buckyball. Buckyball memiliki persegi panjang pelacak di sekelilingnya, dan label di atas menunjukkan bahwa persegi panjang tersebut memiliki lebar 80 piksel dan tinggi 78 piksel. Panah merah menyorot persegi panjang pelacakan untuk menunjukkan lebar dan tingginya.

Pengukuran lebar dan tinggi membantu mengidentifikasi objek yang berbeda. Misalnya, Buckyball akan memiliki tinggi lebih besar daripada Ring.

Sensor Penglihatan AI ditampilkan melacak dua Kubus Biru. Kubus-kubus tersebut memiliki persegi panjang pelacak di sekelilingnya, dan satu persegi panjang lebih dekat ke kamera. Yang lebih dekat memiliki lebar 144 dan tinggi 113, dan yang lebih jauh memiliki lebar 73 dan tinggi 84.

Lebar dan tinggi juga menunjukkan jarak objek dari AI Vision Sensor. Pengukuran yang lebih kecil biasanya berarti objek tersebut lebih jauh, sedangkan pengukuran yang lebih besar menunjukkan objek tersebut lebih dekat.

Proyek Blok VEXcode di mana robot akan mendekati objek hingga lebarnya mencapai ukuran tertentu sebelum berhenti. Proyek diawali dengan blok Saat dimulai dan perulangan Selamanya. Sisa proyek ada di dalam loop Forever. Pertama, ambil snapshot AIVision1 dari Blue, lalu sisa proyek ada di dalam blok If yang membaca apakah objek AIVision1 ada? Di dalam blok If ini terdapat blok If Else yang berbunyi jika lebar objek AIVision1 kurang dari 250 maka gerakkan ke depan, jika tidak maka hentikan gerak.

Dalam contoh ini, lebar objek digunakan untuk navigasi. Robot akan mendekati objek hingga lebarnya mencapai ukuran tertentu sebelum berhenti.

CenterX dan Center Y

Ini adalah koordinat pusat objek yang terdeteksi dalam piksel.

Sensor Penglihatan AI diperlihatkan sedang melacak Blue Buckyball. Buckyball memiliki persegi panjang pelacak di sekelilingnya, dan label di atas menunjukkan bahwa ia memiliki posisi X 176 dan posisi Y 117. Bagian tengah persegi panjang pelacakan disorot untuk menunjukkan bahwa posisi diukur dari bagian tengah.

Koordinat CenterX dan CenterY membantu navigasi dan penentuan posisi. Sensor Penglihatan AI memiliki resolusi 320 x 240 piksel.

Sensor Penglihatan AI ditampilkan melacak dua Kubus Biru. Kubus-kubus tersebut memiliki persegi panjang pelacak di sekelilingnya, dan satu persegi panjang lebih dekat ke kamera. Yang lebih dekat memiliki posisi Y 184, dan yang lebih jauh memiliki posisi Y 70.

Anda dapat melihat bahwa objek yang lebih dekat ke AI Vision Sensor akan memiliki koordinat CenterY yang lebih rendah daripada objek yang lebih jauh.

Proyek Blok VEXcode di mana robot akan berputar ke arah objek yang terdeteksi hingga berada di tengah pandangan Sensor Penglihatan AI. Proyek diawali dengan blok Saat dimulai dan perulangan Selamanya. Sisa proyek ada di dalam loop Forever. Pertama, ambil snapshot AIVision1 dari Blue, lalu sisa proyek ada di dalam blok If yang membaca apakah objek AIVision1 ada? Di dalam blok If ini terdapat blok If Else yang berbunyi jika objek AIVision1 centerX lebih besar dari 150 dan objek AIVision1 centerX kurang dari 170, maka belok kanan, jika tidak berhenti mengemudi.

Dalam contoh ini, karena pusat pandangan AI Vision Sensor adalah (160, 120), robot akan berbelok ke kanan hingga koordinat centerX objek yang terdeteksi lebih besar dari 150 piksel, tetapi kurang dari 170 piksel.

Sudut

Animasi kotak merah dan kotak hijau yang diputar bersama untuk menunjukkan nilai sudut 360 derajat.

Sudut adalah properti yang hanya tersedia untukKode Warna danAprilTags. Ini menunjukkan jika Kode Warnaatau AprilTag yang terdeteksi berorientasi berbeda.

Sensor Penglihatan AI ditampilkan melacak Kode Warna Hijau kemudian Biru. Umpan video menunjukkan Kubus Hijau ditumpuk di atas Kubus Biru. Nilai sudut Kode Warna disorot dan terbaca 87 derajat, yang menunjukkan bahwa Kode Warna berorientasi vertikal.

Anda dapat melihat apakah robot berorientasi berbeda dalam kaitannya dengan Kode Warna atauAprilTag dan membuat keputusan navigasi berdasarkan itu.

Sensor Penglihatan AI ditampilkan melacak Kode Warna Hijau kemudian Biru. Umpan video menunjukkan Kubus Hijau berada di samping Kubus Biru, tetapi keduanya berada pada sudut yang aneh dibandingkan dengan sensor. Nilai sudut Kode Warna disorot dan terbaca 0 derajat, yang menunjukkan bahwa sudut Kode Warna tidak dapat dibaca.

Misalnya, jika Kode Warna tidak terdeteksi pada sudut yang tepat, maka objek yang diwakilinya mungkin tidak dapat ditangkap dengan baik oleh robot.

OriginX dan OriginY

OriginX dan OriginY adalah koordinat di sudut kiri atas objek yang terdeteksi dalam piksel.

Sensor Penglihatan AI diperlihatkan sedang melacak Blue Buckyball. Buckyball memiliki persegi panjang pelacak di sekelilingnya, dan label di atas menunjukkan bahwa ia memiliki posisi X 176 dan posisi Y 117. Sudut kiri atas persegi panjang pelacakan disorot untuk menunjukkan bahwa posisi asal diukur dari sudut kiri atasnya.

Koordinat OriginX dan OriginY membantu navigasi dan penentuan posisi. Dengan menggabungkan koordinat ini dengan Lebar dan Tinggi objek, Anda dapat menentukan ukuran kotak pembatas objek. Ini dapat membantu melacak objek yang bergerak atau menavigasi antar objek.

Proyek Blok VEXcode di mana robot akan menggambar objek yang terdeteksi ke layarnya sebagai persegi panjang. Proyek diawali dengan blok Saat dimulai dan perulangan Selamanya. Sisa proyek ada di dalam loop Forever. Pertama, ambil snapshot AIVision1 dari Blue, lalu sisa proyek ada di dalam blok If yang membaca apakah objek AIVision1 ada? Di dalam blok If ini terdapat blok Draw rectangle yang bertuliskan draw rectangle AIVision1 object originX, AIVision1 object originY, AIVision1 object width, AIVision1 object height pada Brain.

Dalam contoh ini, sebuah persegi panjang akan digambar di Brain menggunakan koordinat titik asal, lebar, dan tinggi yang tepat.

ID tag

TagID hanya tersedia untukAprilTags. Ini adalah nomor ID untukAprilTagyang ditentukan.

Tiga AprilTag sedang dilacak oleh AI Vision Utility. Setiap tag diidentifikasi, ditemukan lokasinya, dan diberi garis besar, yang menunjukkan pelacakannya oleh sistem. ID AprilTag dalam contoh ini terbaca 0, 3, dan 9.

Mengidentifikasi AprilTags yang spesifik memungkinkan navigasi selektif. Anda dapat memprogram robot Anda untuk bergerak menuju tag tertentu dan mengabaikan tag lain, secara efektif menggunakannya sebagai penunjuk arah untuk navigasi otomatis.

Skor

Properti skor digunakan saat mendeteksiKlasifikasi AI dengan Sensor Penglihatan AI.

Empat objek dilacak oleh utilitas AI Vision, dua BuckyBalls dan dua Rings. Setiap objek diidentifikasi, ditemukan lokasinya, dan diberi garis besar, yang menunjukkan pelacakannya oleh sistem. Utilitas ini juga mencantumkan skor Klasifikasi AI setiap objek, dalam contoh ini setiap skor terbaca 99%.

Skor keyakinan menunjukkan seberapa yakin AI Vision Sensor dalam mendeteksinya. Pada gambar ini, 99% keyakinan dalam mengidentifikasi Klasifikasi AI keempat objek ini. Anda dapat menggunakan skor ini untuk memastikan robot Anda hanya berfokus pada deteksi yang sangat meyakinkan.


Tetapkan Objek Item

Saat suatu objek dideteksi oleh AI Vision Sensor, objek tersebut dimasukkan ke dalam array. Secara default, AI Vision Sensor akan menarik data dari objek pertama dalam array, atau objek dengan indeks 1. Jika Sensor Penglihatan AI Anda hanya mendeteksi satu objek, maka objek tersebut akan dipilih secara default.

Namun, bila Sensor Penglihatan AI Anda mendeteksi beberapa objek sekaligus, Anda harus menggunakan blokAtur Item Objek untuk menentukan objek mana yang ingin Anda tarik datanya.

VEXcode EXP Mengatur blok item objek yang bertuliskan Atur item objek AIVision1 ke 1. Terdapat menu dropdown untuk memilih AI Vision Sensor, dan kolom teks untuk memasukkan indeks objek.

Bila beberapa objek terdeteksi oleh AI Vision Sensor, objek-objek tersebut akan disusun dalam susunan dari yang terbesar hingga terkecil. Artinya, objek terdeteksi terbesar akan selalu ditetapkan pada indeks objek 1, dan objek terkecil akan selalu ditetapkan pada angka tertinggi.

Sensor Penglihatan AI ditampilkan melacak dua Kubus Biru. Kubus-kubus tersebut memiliki persegi panjang pelacak di sekelilingnya, dan satu persegi panjang lebih dekat ke kamera. Yang lebih dekat memiliki lebar 136, dan yang lebih jauh memiliki lebar 78.

Dalam contoh ini, dua objek telah dideteksi dengan Tanda Tangan Warna "Biru". Keduanya akan dimasukkan ke dalam array saat blokTake Snapshot digunakan.

Sensor Penglihatan AI ditampilkan melacak dua Kubus Biru. Kubus-kubus tersebut memiliki persegi panjang pelacak di sekelilingnya, dan satu persegi panjang lebih dekat ke kamera. Kubus yang lebih dekat diberi label 1 dan kubus yang lebih jauh diberi label 2.

Di sini, objek di depan akan menjadi indeks objek 1, karena itu adalah objek terbesar, dan objek terkecil akan menjadi indeks objek 2.


Objek Ada

Sebelum menarik data apa pun dari snapshot, penting untuk guna memastikan bahwa AI Vision Sensor telah mendeteksi objek apa pun dari snapshot tersebut terlebih dahulu. Di sinilah blokObjek Ada berperan.

Objek VEXcode EXP ada blok yang membaca objek AIVision1 ada? Terdapat menu dropdown untuk memilih AI Vision Sensor.

Blok ini akan mengembalikan nilaiBenar atauSalah pada apakah snapshot terakhir yang diambil memiliki objek yang terdeteksi di dalamnya atau tidak.

Blok ini harus untuk memastikan Anda tidak mencoba menarik data apa pun dari snapshot yang berpotensi kosong.

Proyek Blok VEXcode di mana robot akan melaju menuju objek Biru yang terdeteksi. Proyek diawali dengan blok Saat dimulai dan perulangan Selamanya. Sisa proyek ada di dalam loop Forever. Pertama, ambil snapshot AIVision2 dari Blue, lalu blok If Else yang membaca jika objek AIVision2 ada maka lanjutkan melaju, jika tidak hentikan laju.

Misalnya, di sini robot akan terus-menerus mengambil gambar dengan AI Vision Sensor. Jika mengidentifikasi objek pun dengan Tanda Warna “Biru” , maka ia akan melaju ke depan.


Jika ada snapshot yang tidak memiliki Tanda Warna “Biru” , robot akan berhenti bergerak.


Jumlah Objek

Blok hitungan Objek VEXcode EXP yang membaca jumlah objek AIVision1. Terdapat menu dropdown untuk memilih AI Vision Sensor.

Menggunakan blok Jumlah Objek akan memungkinkan Anda melihat berapa banyak objek dari Tanda Tangan Warna tertentu yang dapat dilihat oleh Sensor Penglihatan AI dalam gambar terakhirnya. 

Sensor Penglihatan AI ditampilkan melacak dua Kubus Biru. Kubus-kubus tersebut memiliki persegi panjang pelacak di sekelilingnya, dan satu persegi panjang lebih dekat ke kamera.

Di sini, kita melihat AI Vision Sensor memiliki konfigurasi Color Signature “Biru”, dan mendeteksi dua objek.

Proyek Blok VEXcode di mana robot akan mencetak jumlah objek Biru yang terdeteksi ke Konsol Cetak. Proyek diawali dengan blok Saat dimulai dan perulangan Selamanya. Sisa proyek ada di dalam loop Forever. Pertama, ambil snapshot AIVision2 dari Blue, kosongkan semua baris di Konsol, lalu atur kursor ke baris berikutnya di Konsol. Berikutnya adalah blok If yang membaca jika objek AIVision2 ada, lalu cetak jumlah objek AIVision2 di Konsol dan atur kursor ke baris berikutnya. Di luar blok Jika, ada blok Tunggu yang diatur untuk menunggu selama 2 detik.Keluaran Konsol Cetak dari proyek Blok VEXcode sebelumnya dengan pesan cetak yang berbunyi 2.

Dalam kode ini, AI Vision Sensor akan mengambil snapshot dan mencetak “2” pada konsol VEXcode, karena hanya mendeteksi dua “Biru” Tanda Warna.


Obyek

Blok objek VEXcode EXP AI Vision yang membaca lebar objek AIVision1. Ada menu tarik-turun untuk memilih Sensor Penglihatan AI, dan menu tarik-turun terbuka untuk memilih atribut objek yang akan diindera. Daftar pilihan tersebut berbunyi lebar, tinggi, centerX, centerY, sudut, originX, originY, tagID, dan skor.

BlokObjek memungkinkan Anda melaporkan properti objek yang Anda tentukan. Ini memungkinkan Anda menggunakan data apa pun yang tersedia yang diambil dari snapshot terakhir yang diambil.

Properti objek yang dapat ditarik dari snapshot yang diambil adalah:

  • lebar
  • tinggi
  • pusatX
  • tengahY
  • sudut
  • asalX
  • asal usulY
  • ID tag
  • skor

Baca bagian "Data yang Diambil dari Snapshot" di artikel ini untuk informasi lebih lanjut tentang properti ini.


Terdeteksi AprilTag adalah

VEXcode EXP Terdeteksi AprilTag adalah blok yang membaca AIVision1 mendeteksi AprilTag adalah 1? Terdapat menu dropdown untuk memilih AI Vision Sensor.

AprilTag Terdeteksiadalah blok hanya tersedia saat Mode Deteksi AprilTag diaktifkan.

Blok ini akan melaporkan Benar atau Salah tergantung pada apakah objek yang ditentukan adalah AprilTag tertentu.

Tiga AprilTag sedang dilacak oleh AI Vision Utility. Setiap tag diidentifikasi, ditemukan lokasinya, dan diberi garis besar, yang menunjukkan pelacakannya oleh sistem. ID AprilTag dalam contoh ini terbaca 0, 3, dan 9.

Bila beberapa AprilTag terdeteksi dalam satu snapshot, mereka akan disusun dalam array berdasarkan ID yang teridentifikasi, bukan berdasarkan ukuran.

Pada gambar ini, tiga AprilTag terdeteksi dengan ID 0, 3, dan 9. Mereka akan disusun berdasarkan urutan menaik berdasarkan ID-nya dalam array. Objek pada indeks 1 akan bersesuaian dengan AprilTag dengan ID 0, pada indeks 2 dengan AprilTag dengan ID 3, dan pada indeks 3 dengan AprilTag dengan ID 9.

Untuk informasi lebih lanjut tentang apa itu AprilTags dan cara mengaktifkan pendeteksiannya dengan AI Vision Sensor, baca artikel ini.


Klasifikasi AI adalah

Klasifikasi AI VEXcode EXP adalah blok yang membaca klasifikasi AI AIVision1 adalah BlueBall? Ada menu tarik-turun untuk memilih Sensor Penglihatan AI, dan menu tarik-turun lain untuk memilih objek Klasifikasi AI target.

Klasifikasi AIadalah blok hanya tersedia saat Mode Deteksi Klasifikasi AI diaktifkan.

 

Blok ini akan melaporkan Benar atau Salah tergantung pada apakah objek yang ditentukan merupakan Klasifikasi AI tertentu.

Klasifikasi AI yang dapat dideteksi oleh Sensor Penglihatan AI bervariasi bergantung pada model yang Anda gunakan. Untuk informasi lebih lanjut tentang Klasifikasi AI apa yang tersedia dan cara mengaktifkan deteksinya dengan Sensor Penglihatan AI, baca artikel ini.

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

Last Updated: