İçindekiler:
2025 Yazar: John Day | [email protected]. Son düzenleme: 2025-01-13 06:58
Bu, Edge mikrodenetleyici platformunda Sipeed AI hakkında serinin ikinci makalesidir. Bu sefer daha küçük, breadboard'a hazır bir geliştirme kartı olan MaiX Bit (Seed Studio Shop'a bağlantı) hakkında yazacağım. Teknik özellikleri, aynı çip olan Kendryte K210'u kullandıklarından, son ders için kullandığım kart olan MaiX Dock'a çok benziyor.
Bazı OpenMV demolarını denemek için micropython üretici yazılımını kullanacağız. İşte OpenMV ana sayfasından açıklama:
OpenMV projesi, düşük maliyetli, genişletilebilir, Python destekli yapay görme modülleri oluşturmakla ilgilidir ve “Makine Görmenin Arduinosu” olmayı hedeflemektedir.…Python, yapay görme algoritmaları ile çalışmayı çok daha kolay hale getirir. Örneğin, koddaki find_blobs() yöntemi, renk bloblarını bulur ve bulunan her renk blobunu temsil eden 8 değerli nesnelerin bir listesini döndürür. Python'da find_blobs() tarafından döndürülen nesnelerin listesini yinelemek ve her renk bloğunun etrafına bir dikdörtgen çizmek yalnızca iki satır kodla kolayca yapılır.
Bu nedenle, MaiX Bit'in özel sinir ağı hızlandırıcısına sahip olmasına rağmen, bazen işi yapmak için OpenMV sabit kodlu algoritmaları kullanmak veya bunları yan yana kullanmak daha kolay olabilir.
Aklıma gelen bazı kullanım durumları:
1) Çizgi izleyen bot için çizgi algılama
2) Daire ve renk algılama ile trafik ışıklarını algılama
3) Yüz tanıma için yüzleri bulmak için yüz tanımayı kullanma (DNN ile)
Bu makale için Github deposu
Adım 1: Flash Micropython Firmware
Öncelikle micropython yazılımını kartımıza flashlamamız gerekecek. Bu makale için github deposuna önceden derlenmiş bir ikili dosya, kflash.py(bir flash yardımcı programı) ile birlikte dahil edilmiştir. Firmware'i kaynak koddan derlemek istiyorsanız, https://github.com/sipeed/MaixPy adresinden kaynak kodunu indirin, toolchain'i kurun ve kaynak kodu maixpy.bin dosyasında derleyin. Ayrıntılı yapım talimatları burada bulunabilir.
ile ikili dosyayı flash
sudo python3 kflash.py kpu.bin
Başarılı bir şekilde yanıp söndükten sonra bir sonraki adıma geçin.
Adım 2: MaiX Bit'e bağlanın
Artık MaiX Bit'imize baudrate 115200 ile bir USB seri bağlantısı üzerinden erişilebilir olmalıdır. İhtiyaçlarınıza uygun olanı seri iletişim veya sadece cat ve echo komutları için favori yazılımınızı kullanabilirsiniz. Seri iletişim için ekran kullanıyordum ve çok uygun buldum.
Ekran ile seri iletişim oturumu kurma komutu
sudo ekranı / dev / ttyUSB0 115200
burada /dev/ttyUSB0 cihazınızın adresidir.
Karşılama mesajını ve python yorumlayıcı istemini görmek için mikrodenetleyicinizdeki sıfırlama düğmesine basmanız gerekebilir.
Adım 3: Demoları Çalıştırın
Artık Ctrl+E tuşlarına basarak kopyalama moduna erişebilir ve demo kodlarını kopyalayıp yapıştırabilirsiniz. Bunları çalıştırmak için kopyalama modunda Ctrl+D tuşlarına basın.
Videoları kaydetmek istemiyorsanız, video kayıt satırlarına yorum yapmanız gerekir. Aksi takdirde, takılı SD kart yoksa kod bir istisna atar
Aşağıda her bir demonun kısa açıklamaları verilmiştir:
Çevreleri bul - OpenMV'den find_circles işlevini kullanır. Özel uygulamanız için daha fazla ince ayar yapılması gerekiyor, özellikle eşik(hough dönüşümünden hangi dairelerin algılandığını kontrol eder. Yalnızca eşik değerinden büyük veya eşit olan daireler döndürülür) ve r_min, r_max değerleri.
Dikdörtgenleri bul - OpenMV'den bul_rects işlevini kullanır. Eşik değeri ile oynayabilirsiniz ama demoda sahip olduğum değer dikdörtgenleri bulmak için oldukça iyi çalışıyor.
Yüzleri bul, gözleri bul - görüntüdeki gözleri ve ön yüzü algılamak için Haar Cascades ile find_features işlevini kullanır. Doğru hız-doğruluk dengesi için eşik ve ölçek değerleriyle oynayabilirsiniz.
Sonsuz çizgileri bul - hough dönüşümünü kullanarak görüntüdeki tüm sonsuz çizgileri bulmak için find_lines işlevini kullanır.
Rengi algıla - yüzdelik nesneyi elde etmek için get_statistics işlevini kullanır ve ardından LAB grubunun ortalama değerlerini RGB değerleri grubuna dönüştürür. Bu örneği kendim yazdım ve oldukça iyi çalışıyor, ancak renk algılama sonuçlarının ortam ışığı koşullarından etkileneceğini unutmayın.
OpenMV github deposunda çok daha ilginç demolar bulabilirsiniz! Çoğunlukla MaiX Bit micropython ile uyumludurlar, hatırlamanız gereken tek şey pixformat ve çerçeve boyutunu ayarladıktan sonra sensor.run(1) eklemektir.
OpenMV koduyla mutlu deneyler. Herhangi bir sorunuz varsa veya ilginç sonuçlarınızdan bazılarını paylaşmak istiyorsanız, bana Youtube veya LinkedIn üzerinden ulaşmaktan çekinmeyin. Şimdi, afedersiniz, gidip biraz robot yapacağım!