VEXcode EXP Bloklarında AI Vision Sensörü ile Kodlama

Bloklarınızla birlikte kullanılabilmeleri için AI Vision Sensörünüzle Renk İmzası ve Renk Kodu yapılandırıldığından emin olun. Bunları nasıl yapılandıracağınız hakkında daha fazla bilgi edinmek için aşağıdaki makaleleri okuyabilirsiniz:

AI Vision Sensörü ayrıca AI Sınıflandırmalarını ve AprilTag'leri de tespit edebilir. Bu algılama modlarının nasıl etkinleştirileceğini öğrenmek için buraya gidin:

Bu bireysel Bloklar hakkında daha fazla bilgi edinmek ve bunları VEXcode'da nasıl kullanacağınızı öğrenmek için API sitesine gidin.


Anlık Görüntü Al

VEXcode EXP Take Snapshot bloğunda COL1'in AIVision1 anlık görüntüsünü al yazıyor. İki açılır menü var, biri AI Vision Sensörünü seçmek için, diğeri ise Renk Kodunu seçmek için.

Take Snapshot bloğu, AI Vision Sensörünün o anda gördüğü şeyin resmini çeker ve daha sonra bir projede kullanılabilecek bu anlık görüntüden veri çeker. Bir anlık görüntü alındığında, AI Vision Sensörünün hangi tür nesnenin verilerini toplayacağını belirtmeniz gerekir:

  • Renk İmzası
  • Renk Kodu
  • Yapay Zeka Sınıflandırmaları
  • NisanEtiketler

Anlık görüntü almak, belirttiğiniz algılanan nesnelerin tümünün bir dizisini oluşturacaktır. Örneğin, "Kırmızı"Renk İmzasıtespit etmek isterseniz ve AI Vision Sensörü 3 farklı kırmızı nesne tespit ederse, üçünden gelen veriler diziye konur.

Farklı nesneler arasında nasıl belirteceğiniz hakkında daha fazla bilgi için bu makalenin "Nesne Öğesini Ayarla" bölümüne gidin.

VEXcode EXP Take Snapshot bloğunda "Blue'nun AIVision2 anlık görüntüsünü al" yazıyor.

Bu örnekte, yalnızca yapılandırılmış "Mavi" Renk İmzası ile eşleşen nesneleri algılayacak ve başka hiçbir şeyi algılamayacaktır.

Anlık Görüntüden Alınan Veriler

AI Vision Sensörünün, daha sonra gelen Bloklar için son alınan anlık görüntüyü kullanacağını unutmayın. AI Vision Sensörünüzden her zaman en güncel bilgileri aldığınızdan emin olmak için, sensörünüzden veri çekmek istediğiniz her seferinde anlık görüntünüzü yeniden alın. 

Çözünürlük

AI Vision Sensörünün çözünürlük şeması. Sol üst köşe 0, 0, sağ üst köşe 320, 0 ve sol alt köşe 0, 240 olarak etiketlenmiştir. Ekranın ortasında 160, 120 yazıyor.

AI Vision Sensörünün çözünürlüğünü anlamak, verilerin doğru yorumlanması açısından büyük önem taşıyor. Sensörün çözünürlüğü 320x240 piksel olup, tam merkezi (160, 120) koordinatlarındadır.

160'dan küçük X koordinatları sensörün görüş alanının sol yarısına, 160'dan büyük olanlar ise sağ yarısına karşılık gelir. Benzer şekilde, 120'den küçük Y koordinatları görüntünün üst yarısını, 120'den büyük olanlar ise alt yarısını gösterir

Nesnelerin AI Vision Sensörü ile nasıl ölçüldüğü hakkında daha fazla bilgi için VEXcode EXP AI Vision Yardımcı Programındaki Verileri Anlama gidin.

Genişlik ve Yükseklik

Bu, algılanan nesnenin piksel cinsinden genişliği veya yüksekliğidir.

AI Vision Sensörü'nün Mavi Buckyball'u takip ettiği görülüyor. Buckyball'un etrafında bir izleme dikdörtgeni bulunuyor ve üstteki etikette genişliğinin 80 piksel, yüksekliğinin ise 78 piksel olduğu gösteriliyor. Kırmızı oklar, genişliğini ve yüksekliğini göstermek için izleme dikdörtgenini vurgulamaktadır.

Genişlik ve yükseklik ölçümleri farklı nesnelerin tanımlanmasına yardımcı olur. Örneğin, bir Buckyball'un yüksekliği bir Ring'in yüksekliğinden daha büyük olacaktır.

AI Vision Sensörü'nün iki Mavi Küpü takip ettiği görülüyor. Küplerin etrafında izleme dikdörtgenleri var ve bunlardan biri kameraya çok daha yakın. Daha yakın olanın genişliği 144, yüksekliği 113, daha uzak olanın genişliği 73, yüksekliği 84'tür.

Genişlik ve yükseklik aynı zamanda bir nesnenin AI Vision Sensörüne olan uzaklığını da gösterir. Daha küçük ölçümler genellikle nesnenin daha uzakta olduğu anlamına gelirken, daha büyük ölçümler daha yakında olduğunu gösterir.

Robotun belirli bir genişliğe ulaşana kadar nesneye yaklaşacağı ve daha sonra duracağı VEXcode Blocks projesi. Proje, When started bloğu ve Forever döngüsü ile başlar. Projenin geri kalanı Forever döngüsünün içindedir. Öncelikle Blue'nun AIVision1 anlık görüntüsünü alın, ardından projenin geri kalanı AIVision1 nesnesinin var olup olmadığını okuyan bir If bloğunun içinde yer alır. Bu If bloğunun içerisinde, AIVision1 nesnesinin genişliği 250'den az ise ileri doğru sür, değilse sürüşü durdur yazan bir If Else bloğu bulunmaktadır.

Bu örnekte gezinme için nesnenin genişliği kullanılmıştır. Robot, belirli bir genişliğe ulaşana kadar nesneye yaklaşacak ve ardından duracaktır.

CenterX ve Center Y

Bu, tespit edilen nesnenin piksel cinsinden merkez koordinatlarıdır.

AI Vision Sensörü'nün Mavi Buckyball'u takip ettiği görülüyor. Buckyball'un etrafında bir izleme dikdörtgeni var ve üstteki etikette X pozisyonunun 176, Y pozisyonunun ise 117 olduğu gösteriliyor. İzleme dikdörtgeninin merkezi vurgulanarak, konumun merkezden ölçüldüğü gösterilir.

CenterX ve CenterY koordinatları navigasyon ve konumlandırmada yardımcı olur. AI Vision Sensörü 320 x 240 piksel çözünürlüğe sahip.

AI Vision Sensörü'nün iki Mavi Küpü takip ettiği görülüyor. Küplerin etrafında izleme dikdörtgenleri var ve bunlardan biri kameraya çok daha yakın. Daha yakın olanın Y pozisyonu 184, daha uzak olanın Y pozisyonu 70'tir.

AI Vision Sensörüne daha yakın olan bir nesnenin, daha uzakta olan bir nesneden daha düşük bir CenterY koordinatına sahip olacağını görebilirsiniz.

Robotun, algılanan bir nesneye doğru dönerek AI Vision Sensörünün görüş alanının merkezine gelmesini sağlayan VEXcode Blocks projesi. Proje, When started bloğu ve Forever döngüsü ile başlar. Projenin geri kalanı Forever döngüsünün içindedir. Öncelikle Blue'nun AIVision1 anlık görüntüsünü alın, ardından projenin geri kalanı AIVision1 nesnesinin var olup olmadığını okuyan bir If bloğunun içinde yer alır. Bu If bloğunun içerisinde, eğer AIVision1 nesnesinin centerX değeri 150'den büyükse ve AIVision1 nesnesinin centerX değeri 170'den küçükse sağa dön, aksi takdirde sürüşü durdur yazan bir If Else bloğu bulunmaktadır.

Bu örnekte, AI Vision Sensörünün görüş alanının merkezi (160, 120) olduğundan, robot algılanan nesnenin centerX koordinatı 150 pikselden büyük, ancak 170 pikselden küçük olana kadar sağa dönecektir.

Açı

Bir açı değerinin 360 derecesini göstermek için kırmızı ve yeşil karelerin birlikte döndürülmesinin animasyonu.

Açı sadeceRenk Kodları veiçin geçerli bir özelliktir AprilTags. Bu, tespit edilenRenk Koduveya AprilTag farklı şekilde yönlendirilip yönlendirilmediğini gösterir.

AI Vision Sensörü Yeşil ve Mavi Renk Kodunu takip ediyor. Videoda, Mavi Küpün üzerine istiflenmiş Yeşil Küp görülüyor. Renk Kodu'nun açı değeri vurgulanır ve 87 derece olarak okunur, bu da Renk Kodu'nun dikey yönde olduğunu gösterir.

RobotunRenk Kodu veyaAprilTag göre farklı yönlendirilip yönlendirilmediğini görebilir ve ona göre navigasyon kararları verebilirsiniz.

AI Vision Sensörü Yeşil ve Mavi Renk Kodunu takip ediyor. Videoda Yeşil Küp'ün Mavi Küp'ün yanında durduğu görülüyor ancak sensöre göre garip bir açıda duruyorlar. Renk Kodu'nun açı değeri vurgulanmış ve 0 derece olarak okunuyor, bu da Renk Kodu'nun açısının okunamadığını gösteriyor.

Örneğin,Renk Kodu uygun bir açıyla algılanmazsa, temsil ettiği nesne robot tarafından düzgün bir şekilde algılanamayabilir.

OriginX ve OriginY

OriginX ve OriginY, tespit edilen nesnenin sol üst köşesindeki koordinatın piksel cinsinden değeridir.

AI Vision Sensörü'nün Mavi Buckyball'u takip ettiği görülüyor. Buckyball'un etrafında bir izleme dikdörtgeni var ve üstteki etikette X pozisyonunun 176, Y pozisyonunun ise 117 olduğu gösteriliyor. İzleme dikdörtgeninin sol üst köşesi, başlangıç konumunun sol üst köşesinden ölçüldüğünü göstermek için vurgulanmıştır.

OriginX ve OriginY koordinatları navigasyon ve konumlandırmada yardımcı olur. Bu koordinatı nesnenin Genişliği ve Yüksekliği ile birleştirerek nesnenin sınırlayıcı kutusunun boyutunu belirleyebilirsiniz. Bu, hareket eden nesnelerin izlenmesine veya nesneler arasında gezinmeye yardımcı olabilir.

Robotun algıladığı nesneyi ekranına dikdörtgen şeklinde çizeceği VEXcode Blocks projesi. Proje, When started bloğu ve Forever döngüsü ile başlar. Projenin geri kalanı Forever döngüsünün içindedir. Öncelikle Blue'nun AIVision1 anlık görüntüsünü alın, ardından projenin geri kalanı AIVision1 nesnesinin var olup olmadığını okuyan bir If bloğunun içinde yer alır. Bu If bloğunun içerisinde Brain üzerinde çiz dikdörtgen AIVision1 nesnesi originX, AIVision1 nesnesi originY, AIVision1 nesnesi width, AIVision1 nesnesi height yazan bir Draw rectangle bloğu bulunmaktadır.

Bu örnekte, Beyin üzerine, kökeninin, genişliğinin ve yüksekliğinin tam koordinatları kullanılarak bir dikdörtgen çizilecektir.

etiket kimliği

tagID yalnızcaAprilTagsiçin kullanılabilir. Bu, belirtilenAprilTagiçin kimlik numarasıdır.

AI Vision Utility tarafından üç AprilTag takip ediliyor. Her etiket tanımlanır, yeri belirlenir ve ana hatları çizilir, bu da sistem tarafından izlendiğini gösterir. Bu örnekteki AprilTag kimlikleri 0, 3 ve 9'dur.

Belirli NisanEtiketleri tanımlamak seçici gezinmeye olanak tanır. Robotunuzu, belirli etiketlere doğru hareket ederken diğerlerini görmezden gelecek şekilde programlayabilir, bunları otomatik navigasyon için yol işaretleri olarak kullanabilirsiniz.

Gol

AI Vision Sensörü ileAI Sınıflandırması tespit edildiğinde puan özelliği kullanılır.

AI Vision aracı tarafından dört nesne takip ediliyor: iki BuckyBall ve iki Ring. Her nesne tanımlanır, yeri belirlenir ve ana hatları çizilir; bu da sistem tarafından izlendiğini gösterir. Yardımcı program ayrıca her nesnenin AI Sınıflandırma puanını da listeler; bu örnekte her puan %99'dur.

Güven puanı, AI Vision Sensörünün algılama konusunda ne kadar kesin olduğunu gösterir. Bu görüntüde, bu dört nesnenin AI Sınıflandırmalarının %99 oranında güvenilir olduğu görülüyor. Robotunuzun yalnızca yüksek güvenilirlikteki tespitlere odaklanmasını sağlamak için bu puanı kullanabilirsiniz.


Nesne Öğesini Ayarla

Bir nesne AI Vision Sensörü tarafından algılandığında, bir diziye yerleştirilir. Varsayılan olarak, AI Vision Sensörü dizideki ilk nesneden veya indeksi 1 olan nesneden veri çeker. AI Vision Sensörünüz yalnızca bir nesne algıladıysa, o nesne varsayılan olarak seçilecektir.

Ancak AI Vision Sensörünüz aynı anda birden fazla nesne algıladığında, hangi nesneden veri çekmek istediğinizi belirtmek içinNesne Öğesini Ayarla bloğunu kullanmanız gerekir.

VEXcode EXP Set AIVision1 nesne öğesini 1 olarak okuyan nesne öğesi bloğunu ayarla. AI Vision Sensörünü seçmek için bir açılır menü ve nesne endeksini girmek için bir metin alanı bulunmaktadır.

AI Vision Sensörü tarafından birden fazla nesne algılandığında, bunlar dizide en büyüğünden en küçüğüne doğru sıralanır. Bu, tespit edilen en büyük nesnenin her zaman nesne indeksi 1'e, en küçük nesnenin ise her zaman en yüksek sayıya ayarlanacağı anlamına gelir.

AI Vision Sensörü'nün iki Mavi Küpü takip ettiği görülüyor. Küplerin etrafında izleme dikdörtgenleri var ve bunlardan biri kameraya çok daha yakın. Daha yakın olanın genişliği 136, daha uzak olanın genişliği ise 78'dir.

Bu örnekteRenk İmzası "Mavi" olan iki nesne algılandı. Take Snapshot bloğu kullanıldığında her ikisi de diziye konulacaktır.

AI Vision Sensörü'nün iki Mavi Küpü takip ettiği görülüyor. Küplerin etrafında izleme dikdörtgenleri var ve bunlardan biri kameraya çok daha yakın. Daha yakın küp 1, daha uzak küp ise 2 olarak etiketlenmiştir.

Burada öndeki nesne en büyük nesne olduğundan nesne indeksi 1, en küçük nesne ise nesne indeksi 2 olur.


Nesne Var

Bir anlık görüntüden herhangi bir veri çekmeden önce, AI Vision Sensörünün o anlık görüntüden bir nesneyi algıladığından emin olmak. İşte tam bu noktadaNesne Var bloğu devreye giriyor.

VEXcode EXP Nesnesi var mı? AIVision1 nesnesinin var olduğunu okuyan blok? AI Vision Sensörünü seçmek için bir açılır menü var.

Bu blok
son alınan anlık görüntüde herhangi bir nesnenin algılanıp algılanmadığına bağlı olarakTrue veyaFalse değerini döndürecektir.
Bu blokher zaman potansiyel olarak boş bir anlık görüntüden veri çekmeye çalışmadığınızdan emin olmak için kullanılmalıdır.

Robotun tespit edilen Mavi bir nesneye doğru gideceği VEXcode Blocks projesi. Proje, When started bloğu ve Forever döngüsü ile başlar. Projenin geri kalanı Forever döngüsünün içindedir. Öncelikle Blue'nun AIVision2 anlık görüntüsünü alın, ardından AIVision2 nesnesi varsa ileri doğru sürün, yoksa sürüşü durdurun yazan bir If Else bloğu oluşturun.

Örneğin burada robot, AI Vision Sensörü ile sürekli olarak anlık görüntüler alacak. Eğer "Mavi" Renk İmzasıolan herhangi bir nesneyi tanımlarsa, ileriye doğru hareket edecektir.


Herhangi bir anlık görüntüde “Mavi” Renk İmzasıyoksa robot hareket etmeyi durduracaktır.


Nesne Sayısı

AIVision1 nesne sayısını okuyan VEXcode EXP Nesne sayısı bloğu. AI Vision Sensörünü seçmek için bir açılır menü var.

Nesne sayısı bloğunu kullanmak, AI Vision Sensörünün son anlık görüntüsünde belirli bir Renk İmzası kaç nesnesini görebildiğini görmenizi sağlar. 

AI Vision Sensörü'nün iki Mavi Küpü takip ettiği görülüyor. Küplerin etrafında izleme dikdörtgenleri var ve bunlardan biri kameraya çok daha yakın.

Burada, AI Vision Sensörünün Renk İmzası “Mavi” olarak yapılandırıldığını ve iki nesneyi algıladığını görüyoruz.

Robotun algıladığı Mavi nesnelerin sayısını Yazdırma Konsoluna yazdıracağı VEXcode Blocks projesi. Proje, When started bloğu ve Forever döngüsü ile başlar. Projenin geri kalanı Forever döngüsünün içindedir. Öncelikle Blue'nun AIVision2 anlık görüntüsünü alın, Konsol'daki tüm satırları temizleyin ve ardından imleci Konsol'daki bir sonraki satıra getirin. Sonraki, AIVision2 nesnesinin var olup olmadığını okuyan, ardından Konsolda AIVision2 nesnesinin sayısını yazdıran ve imleci bir sonraki satıra ayarlayan bir If bloğudur. If bloğunun dışında 2 saniye bekleyecek şekilde ayarlanmış bir Wait bloğu vardır.Önceki VEXcode Blocks projesinin Yazdırma Konsolu çıktısı, 2 yazan basılı mesajla birlikte.

Bu kodda, AI Vision Sensörü bir anlık görüntü alır ve VEXcode konsolunda "2" yazdırır, çünkü yalnızca iki "Mavi" Renk İmzasıalgılar.


Nesne

AIVision1 nesne genişliğini okuyan VEXcode EXP AI Vision nesne bloğu. AI Vision Sensörünü seçmek için bir açılır menü ve algılama için nesnenin niteliğini seçmek için açılan bir açılır menü var. Seçenekler listesi genişlik, yükseklik, merkezX, merkezY, açı, kökenX, kökenY, etiketID ve puan şeklindedir.

Nesne bloğu, belirttiğiniz nesnenin özelliğini bildirmenize olanak tanır. Bu, en son alınan anlık görüntüden çekilen mevcut verilerden herhangi birini kullanmanıza olanak tanır.

Alınan anlık görüntülerden çıkarılabilecek nesne özellikleri şunlardır:

  • Genişlik
  • yükseklik
  • merkezX
  • merkezY
  • açı
  • originX
  • kökenY
  • etiket kimliği
  • Gol

Bu özellikler hakkında daha fazla bilgi için bu makalenin "Anlık Görüntüden Alınan Veriler" bölümünü okuyun.


AprilTag tespit edildi

VEXcode EXP Algılanan AprilTag, AIVision1'in algıladığı AprilTag'in 1 olduğunu belirten bloktur. AI Vision Sensörünü seçmek için bir açılır menü var.

Algılanan NisanEtiketi bloğu yalnızcaNisanEtiketi Algılama Modu açık olduğunda kullanılabilir.

Bu blok, belirtilen nesnenin belirli bir AprilTag olup olmadığına bağlı olarak True veya False raporlayacaktır.

AI Vision Utility tarafından üç AprilTag takip ediliyor. Her etiket tanımlanır, yeri belirlenir ve ana hatları çizilir, bu da sistem tarafından izlendiğini gösterir. Bu örnekteki AprilTag kimlikleri 0, 3 ve 9'dur.

Tek bir anlık görüntüde birden fazla AprilTag algılandığında, bunlar boyuta göre değil, tanımlanan kimliklerine göre dizide düzenlenir.

Bu görüntüde, 0, 3 ve 9 kimliklerine sahip üç AprilTag tespit ediliyor. Dizide ID'lerine göre artan sırada düzenlenecekler. 1. indeksteki nesne ID'si 0 olan AprilTag'e, 2. indeksteki nesne ID'si 3 olan AprilTag'e ve 3. indeksteki nesne ID'si 9 olan AprilTag'e karşılık gelecektir.

AprilTags'in ne olduğu ve AI Vision Sensörü ile tespitlerinin nasıl etkinleştirileceği hakkında daha fazla bilgi için bu makaleyi okuyun.


AI Sınıflandırması

VEXcode EXP AI Sınıflandırması AIVision1'i okuyan bloktur AI sınıflandırması BlueBall'dur? AI Vision Sensörünü seçmek için bir açılır menü ve hedef AI Sınıflandırma nesnesini seçmek için başka bir açılır menü bulunmaktadır.

AI Sınıflandırması bloğu yalnızcaAI Sınıflandırma Algılama Modu açık olduğunda kullanılabilir.

 

Bu blok, belirtilen nesnenin belirli bir AI Sınıflandırması olup olmadığına bağlı olarak Doğru veya Yanlış raporlayacaktır.

AI Vision Sensörü tarafından hangi AI Sınıflandırmalarının tespit edilebileceği, kullandığınız modele bağlı olarak değişir. AI Sınıflandırmalarının neler olduğu ve bunların AI Görüntü Sensörü ile nasıl tespit edilebileceği hakkında daha fazla bilgi için bu makaleyi okuyun.

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

Last Updated: