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:
- Mengonfigurasi Tanda Warna dengan Sensor Penglihatan AI di VEXcode V5
- Mengonfigurasi Kode Warna dengan Sensor Penglihatan AI di VEXcode V5
Sensor Penglihatan AI juga dapat mendeteksi Klasifikasi AI dan AprilTags. Untuk mempelajari cara mengaktifkan mode deteksi ini, kunjungi di sini:
- Menggunakan Klasifikasi AI dengan Sensor Penglihatan AI
- Menggunakan AprilTags dengan Sensor Penglihatan AI
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 ai_vision_1.
ambil_snapshot
Metode take_snapshot 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:
ai_vision_1__Blue.
- Tanda Tangan Visual ini dimulai dengan nama AI Vision Sensor, garis bawah ganda, lalu nama Tanda Tangan Visual, misalnya:
-
Klasifikasi AI -
AiVision.ALL_AIOBJS -
AprilTags-
AiVision.ALL_TAGS
Mengambil snapshot akan membuat tuple dari semua 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 tupel.
Dalam contoh ini, variabel vision_objects menyimpan tupel berisi Tanda Tangan Warna "Ungu"yang terdeteksi dari Sensor Penglihatan AI bernama ai_vision_1. Menampilkan jumlah objek yang terdeteksi dan menangkap gambar baru setiap 0,5 detik.
sementara Benar:
# Dapatkan snapshot semua Tanda Tangan Warna Ungu dan simpan di vision_objects.
vision_objects = ai_vision_1.take_snapshot(ai_vision_1__Purple)
# Periksa untuk memastikan suatu objek terdeteksi dalam snapshot sebelum menarik data.
jika vision_objects[0].exists == True
brain.screen.clear_screen()
brain.screen.set_cursor(1, 1)
brain.screen.print("Jumlah objek:", len(vision_objects))
wait(0.5, DETIK)
Properti Objek
Setiap objek dari snapshot memiliki properti berbeda yang dapat digunakan untuk melaporkan informasi tentang objek tersebut. Properti yang tersedia adalah sebagai berikut:
- pengenal
- pusatX dan pusatY
- originX dan originY
- lebar
- tinggi
- sudut
- skor
- ada
Untuk mengakses properti suatu objek, gunakan nama variabel yang menyimpan tupel, diikuti oleh indeks objek.
Indeks objek menunjukkan properti objek spesifik 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 di dalam variabel vision_objects akan menjadi: vision_objects[0].width.
pengenal
Properti id hanya tersedia untuk AprilTags dan Klasifikasi AI.
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.
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.
Koordinat CenterX dan CenterY membantu navigasi dan penentuan posisi. Sensor Penglihatan AI memiliki resolusi 320 x 240 piksel.
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.
sementara Benar:
# Dapatkan snapshot semua Tanda Tangan Warna Biru dan simpan di vision_objects.
vision_objects = ai_vision_1.take_snapshot(ai_vision_1__Blue)
# Periksa untuk memastikan suatu objek terdeteksi dalam snapshot sebelum menarik data.
jika vision_objects[0].exists == True
# Periksa apakah objek tidak berada di tengah tampilan AI Vision Sensor.
jika vision_objects[0].centerX > 150 dan 170 > vision_objects[0].centerX:
# Terus putar ke kanan hingga objek berada di tengah tampilan.
drivetrain.belok(KANAN)
lainnya:
drivetrain.berhenti()
tunggu(5, MSEC)
asalX dan asalY
OriginX dan OriginY adalah koordinat di sudut kiri atas objek yang terdeteksi dalam piksel.
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.
Pengukuran lebar dan tinggi membantu mengidentifikasi objek yang berbeda. Misalnya, Buckyball akan memiliki tinggi lebih besar daripada Ring.
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.
sementara Benar:
# Dapatkan snapshot semua Tanda Tangan Warna Biru dan simpan di vision_objects.
vision_objects = ai_vision_1.take_snapshot(ai_vision_1__Blue)
# Periksa untuk memastikan suatu objek terdeteksi dalam snapshot sebelum menarik data.
jika vision_objects[0].exists == True
# Periksa apakah objek terbesar dekat dengan AI Vision Sensor dengan mengukur lebarnya.
jika vision_objects[0].width < 250:
# Berkendara lebih dekat ke objek hingga lebarnya lebih dari 250 piksel.
drivetrain.drive(MAJU)
lainnya:
drivetrain.berhenti()
tunggu(5, MSEC)
sudut
Properti sudut hanya tersedia untukKode Warna danAprilTags.
Ini menunjukkan jika Kode Warna yang terdeteksiatau AprilTag berorientasi berbeda.
Anda dapat melihat apakah robot berorientasi berbeda dalam kaitannya dengan Kode Warna atauAprilTag dan membuat keputusan navigasi berdasarkan itu.
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.
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.