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 perintah-perintah individual ini dan cara menggunakannya dalam VEXcode, kunjungi situs API.


Dapatkan Data Visual dengan Sensor Penglihatan AI

Setiap perintah AI Vision Sensor akan dimulai dengan nama AI Vision Sensor yang dikonfigurasi. Untuk semua contoh dalam artikel ini, nama AI Vision Sensor yang digunakan adalah AIVision.

ambil Snapshot

Metode takeSnapshot mengambil gambar dari 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 atauKode Warna
    • Tanda Tangan Visual ini dimulai dengan nama AI Vision Sensor, garis bawah ganda, lalu nama Tanda Tangan Visual, misalnya: AIVision1__Blue.
  • Klasifikasi AI - aivision::ALL_AIOBJS
  • AprilTags- aivision::ALL_TAGS

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

Dalam contoh ini, snapshot diambil dari Tanda Warna "Biru" dari Sensor Penglihatan AI yang diberi nama AIVision1. Menampilkan jumlah objek yang terdeteksi dalam array dan menangkap snapshot baru setiap 0,5 detik.

sementara (benar) {
// Dapatkan snapshot dari semua objek Warna Biru.
AIVision.takeSnapshot(AIVision1__Blue);

// Periksa untuk memastikan suatu objek terdeteksi dalam snapshot sebelum menarik data.
jika (AIVision.objectCount > 0) {

Brain.Screen.clearScreen();
Brain.Screen.setCursor(1, 1);
Brain.Screen.print(AIVision1.objectCount);
}
tunggu(5, msec);
}

benda-benda

Setiap objek dari snapshot memiliki properti berbeda yang dapat digunakan untuk melaporkan informasi tentang objek tersebut. Metode objek memungkinkan Anda mengakses properti ini.

Properti yang tersedia adalah sebagai berikut:

  • pengenal
  • pusatX dan pusatY
  • originX dan originY
  • lebar
  • tinggi
  • sudut
  • ada
  • skor

Untuk mengakses properti objek, gunakan nama AI Vision Sensor, diikuti dengan metode objek, lalu indeks objek.

Indeks objek menunjukkan properti objek spesifik mana yang ingin Anda ambil. Setelah mengambil gambar, Sensor Penglihatan AI secara otomatis mengurutkan objek berdasarkan ukuran. Objek terbesar diberi indeks 0, sedangkan objek yang lebih kecil diberi nomor indeks lebih tinggi.

Misalnya, memanggil lebar objek terbesar akan menjadi AIVision1.objects[0].width.

pengenal

Properti id hanya tersedia untuk AprilTags dan Klasifikasi AI.

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.

UntukAprilTag, properti id mewakili nomor IDAprilTag yang terdeteksi.

Mengidentifikasi AprilTags tertentu 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.

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 mencatat ID objek, dalam contoh ini ada Bola Merah, Bola Biru, Cincin Hijau, dan Cincin Merah.

UntukKlasifikasi AI, properti id mewakili jenis Klasifikasi AI spesifik yang terdeteksi.

Mengidentifikasi Klasifikasi AI spesifikmemungkinkan robot untuk hanya fokus pada objek tertentu, seperti hanya ingin menavigasi ke arah Buckyball merah, bukan yang biru.

Kunjungi artikel ini untuk informasi lebih lanjut tentang AprilTags dan Klasifikasi AI dan cara mengaktifkan deteksinya di AI Vision Utility.

pusatX dan pusatY

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.

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.

while (true) {
  // Dapatkan snapshot semua objek Warna Biru.
  AIVision.takeSnapshot(AIVision__Blue);

  // Periksa untuk memastikan suatu objek terdeteksi dalam snapshot sebelum menarik data.
  jika (AIVision.objectCount > 0) {

    jika (AIVision.objects[0].centerX > 150.0 && 170.0 > AIVision.objects[0].centerX) {
      Drivetrain.belok(kanan);
    } yang lain {
      Drivetrain.berhenti();
    }
  }
  tunggu(5, msec);
}

asalX dan asalY

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.

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.

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

while (true) {
  // Dapatkan snapshot semua objek Biru.
  AIVision.takeSnapshot(AIVision1__Blue);

  // Periksa untuk memastikan suatu objek terdeteksi dalam snapshot sebelum menarik data.
  jika (AIVision.objectCount > 0) {

    jika (AIVision.objects[0].width < 250.0) {
      Drivetrain.drive(maju);
    } yang lain {
      Drivetrain.stop();
    }
  }
  tunggu(5, msec);
}

sudut

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

Properti sudut hanya tersedia untukKode Warna danAprilTags.

Ini menunjukkan jika Kode Warna yang terdeteksiatau AprilTag 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.

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.

ada

Properti exists digunakan untuk mendeteksi apakah Tanda Visual yang ditentukan telah terdeteksi pada cuplikan terakhir yang diambil.

Dengan ini Anda dapat memeriksa apakah ada objek yang terdeteksi pada snapshot sebelumnya. Properti ini akan mengembalikan True jika objek tersebut ada, dan False jika objek tersebut tidak ada.


jumlah objek

Metode objectCount mengembalikan jumlah objek yang terdeteksi dalam snapshot terakhir.

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.

Dalam contoh ini, dua objek telah dideteksi dengan Tanda Tangan Warna "Biru". Keduanya akan dimasukkan ke dalam array ketika metode takeSnapshot digunakan.

Potongan kode ini terus memperbarui EXP Brain dengan jumlah objek yang terdeteksi. Berdasarkan contoh yang diberikan, ia akan berulang kali mengirimkan nilai 2, yang menunjukkan bahwa dua objek telah terdeteksi.

while (true) {
// Dapatkan snapshot semua objek Biru.
AIVision.takeSnapshot(AIVision__Blue);

Brain.Screen.clearScreen();
Brain.Screen.setCursor(1, 1);

// Periksa untuk memastikan objek terdeteksi dalam snapshot sebelum menarik data.
jika (AIVision.objectCount > 0) {
Brain.Screen.print(AIVision1.objectCount);
}
tunggu(5, msec);
}

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

Last Updated: