elektrik port üyelik servisleri elektrik port üyelik servisleri

Arduino Platformuna Makine Öğrenmesi Eklendi!

Gün geçtikçe Makine öğrenmesi (ML) teknolojisi, hayatımızda daha da önemli bir yer alıyor. Çevremizeki cihazlara eklenmeye başlanılan makine öğrenmesi, şimdi de arduino uygulamalarımızda cihazlarımıza zeka katıyor. Bu yazımızda daha fazla üretici ve mühendisin makine öğrenmesi ile donanım araştırmalarını bir araya getirebilmesi için örnek bir çalışma inceledik.



A- A+
11.08.2019 tarihli yazı 9421 kez okunmuştur.
Adafruit Industries kurucusu Limor Fried, makine öğrenmesini her çeşit algılayıcıya ekleyebilmek ve her türlü ortamda çalışabilmesini sağlayabilmek için; ucuz ve sağlam cihazlara getirilmesi gerektiğini düşündü. Arduino ekosistemine, derin öğrenme alanında en çok kullanılan kütüphanelerden birisi olan TensorFlow Light'u aktardı .Bu doğrultuda, geçtiğimiz günlerde bir proje gerçekleştirdi. 
 
Donanım tarafında Moore Yasası, son teknoloji işlemciler söz konusu olduğunda işleyebilir. Ancak; mikrodenetleyiciler söz konusu olduğunda bu yasa işlemiyor. Örneğin 8-bit AVR işlemcileri temel alan mikrodenetleyiciler, Arduino ekosisteminin ilk yıllarında egemen oldu. Ancak daha yakın yıllarda gömülü çip üreticileri, daha güçlü ARM-tabanlı çiplere yöneldi. Artık; 1990'ların ortasındaki masaüstü bilgisayarlarla rekabet edebilmek için  ucuz ve sağlam cihazlara,  yeterli işlemleri sağlayabilecek yeni parçalar  koyubiliyor. Limor Fried de TensorFlow demosunu alıp, mikrokontrolörler için TensorFlow Lite ile birlikte Arduino geliştirme ortamına aktardı. 
 
Mikrodenetleyicilerde ve gömülü donanımlarda, makine öğreniminin erişilebilirliğini  artıracak şeylerden biri,; önceden eğitilmiş modellerin bulunmasıdır. Mikro kontrolörler için TensorFlow Lite, TensorFlow'un büyük ölçüde geliştirilmiş bir versiyonudur. Gömülü sistemler dünyasinda, üzerinde herhangi bir yazilim/isletim sistemi olmayan boardlar olan 'bare metal' sistemler için taşınabilir olması için tasarlanıldı. Bu model ,standart C kütüphanelerine veya dinamik bellek tahsisine ihtiyaç duymadan çalışır. Çekirdek çalışma zamanı bir Cortex-M3'te yalnızca 16KB'ye sığar. Bir konuşma da anahtar kelime algılama modelini çalıştırmak için yeterli sayıda operatörle çalışabilir.
 
 
 

 
 
Geçen Nisan ayında Limor Fried, TensorFlow Lite modellerini çalıştırmak için tasarlanan Raspberry Pi form faktörünü temel alan tek kartlı bir bilgisayar olan Google’ın Coral Dev Board’unu inceledi. Bu incelemelerde, Coral Dev Board’unun , özel bir Tensor işleme ünitesi içerdiği, canlı bir video beslemesini işlemek ve yüzlerce nesneyi tanımak için yeterince güçlü olduğunu gözlemledi. Ne yazık ki projesi için bu Board'un  150 $ 'a mal olduğunu ve ağır bir güç kaynağı gerektirdiğini tespit etti. 
 
 
Bu aşamada, TensorFlow Mobile ekibinin lideri Pete Warden ve ekibinin, TensorFlow Lite'ı ARM’in Cortex işlemci ailesine dayanan çiplere getirmek için harika bir çalışma yaptığını hatırladı. Fried, bu çalışma için açık kaynaklı donanım şirketi Adafruit Industries'teki favori işlemcisi, 32-bit SAMD51'i kullanmayı uygun gördü. Çünkü; 32-bit SAMD51'i de  Cortex-M4 işlemciye sahip bir işlemci!
 
SAMD51'i, batarya destekli basit bir  el oyun bilgisayarı olan PyGamer da  dahil olmak üzere Arduino uyumlu panoların çoğunun temeli olarak kullanıldı.Limor Fried yine Pete Warden tarafından geliştirilmiş bir analog ses beslemesinde “evet” ve “hayır” kelimelerini tanımlayabilen bir konuşma tanıma modelini kulandı. Bu modeli, PyGamer'a getirip getiremeyeceğini araştırdı. Araştırmalar sonucunda; sadece iki kelimeyi tanıyabilecek bir modelle neler yapabileceğimi görmeye başladı. Amacı yazılımcıların, hayal gücünü harekete geçirecek bir proje oluşturmak ve onları bu tür bir donanım üzerinde makine öğrenmesini keşfetmeye başlamaları için teşvik etmekti.
 
Bu işi mümkün olduğunca eğlenceli hale getirmeye karar verdi. Ne kadar eğlenceli bir şey olursa, hatalarının da o kadar affedilebilir olacağını düşündü. Örneğin; Sony'nin yapay evcil hayvanını Aibo'nun,  bir köpek yavrusu olarak tasarlanılması gibi. Çünkü; gerçek köpekler de sakar ve bazen talimatları izlemeyebiliyorl Aklında eğelenceli bir uygulama bulma fikri varken, kahramanın siber alana sıkışıp kaldığı ve sadece “evet” veya “hayır” diyebilen şekil değişikliğinin  ona eşlik ettiği  Tron filmini hatırladı. Tron  filmindeki "evet" ve "hayır" yanıtlarını gösteren bir videoyu 192 kilobayt RAM ve 8 megabayt flash dosya depolama özelliğine sahip PyGamer'a yükledi. PyGamer'in SAMD51 işlemcisi normalde 120 megahertz'de çalışmasına rağmen; performans artışı için 200 MHz'e yükseltti. PyGamer'in üç JST portundan birine bir elektret mikrofon koparma panosu bağladı. Sonrasında ise; en zorlandığı kısım olarak belirttiği Warden ve ekibinin yazdığı TensorFlow Lite ARM kodunu, herhangi bir Arduino programcısının kullanabileceği bir kütüphaneye taşımaya çalıştı. Bu işi, her Arduino kartına olmasa da Arduino Uno'nun 2 kB'sine taşımayı başardı.
 
Bu çalışmaları yaparken Limor Fried, kodun kabiliyetlerini Arduino programcılarına aşina olacak ve onları zorlamayacak şekilde göstermek istedi. Programcılar için faydalı olabilecek işlevleri belirledi. Böylece veriler, mikrofon gibi bir sensörden modele kolayca aktarılabiliyor ve programlayıcı kodunun geri kalanına istediği işlemi yaptırabiliyor. Daha sonra  Github'ın deposunda bulabileceğimiz bu fonksiyonları içeren bir Arduino Adafruit’in kütüphanesi oluşturdu. Arduino uyumlu bir TensorFlow Lite sürümü geliştirdikten sonra, bir düğmeye basarak ve SAMD51 tabanlı bir PyGamer'a bağlı bir mikrofona konuşarak farklı animasyonları çalacak şekilde ses tanıma demosunu uyarladı. Üzerinde çalıştığı verileri bir araya getirerek, TensorFlow Lite mikro konuşma demosunu Arduino'ya sardı. Üzerine kısa bir program yazdı. Böylece;  SAMD51 kartlarındaki temel konuşma tanıma özelliği kullanılabildi. Demoda, "evet" veya "hayır" konuşmasını algılamak için PyGamer'ımına bir mikrofon bağladı. PyGamer'a bağlı mikrofona konuştuğunda, “evet” veya “hayır” dediğinde sesinin tümü TensorFlow Lite tarafından Cortex M4 işlemcisinde algılandı. Sonuç olarak ise;  ses komutlarından evet yada hayır  komutlarıyla eşleşmiş öğretilmiş  videolar başarıyla oynadı. 
 
Bu proje, makine öğrenmesine sınırlı bir giriş olsa da, daha fazla üretici ve mühendisi AI ve donanım araştırması etrafında toplamayı amaçlıyor.  Mikro kontrol ünitesi olan ESP8266'nın başarısının artmasında en önemli etkenlerden biri Arduino uyumluluğunun gelmesiydi. Şimdi de aynı şeyin makine öğrenmesiyle gerçekleşip gerçekleşmediğini görmek gerçekten büyüleyici olacak. Sizler de Limor Fried tarafından geliştirilen bu projenin kodlarını, Github depolama servisinde bulabilirsiniz.   
 
 
Donanım tarafında Moore Yasası, son teknoloji işlemciler söz konusu olduğunda işleyebilir. Ancak; mikrodenetleyiciler söz konusu olduğunda bu yasa işlemiyor. Örneğin 8-bit AVR işlemcileri temel alan mikrodenetleyiciler, Arduino ekosisteminin ilk yıllarında egemen oldu, ancak daha yakın yıllarda gömülü çip üreticileri daha güçlü ARM-tabanlı çiplere yöneldi. Artık 1990'ların ortasındaki masaüstü bilgisayarlarla rekabet edebilmek için bu ucuz, sağlam cihazlara, yeni yeterli işemi sahlayabilecek parçalar  koyubiliyor. Limor Fried de TensorFlow demosunu alıp, mikrokontrolörler için TensorFlow Lite ile birlikte Arduino geliştirme ortamına aktardı.

 



 


Kaynak:
spectrum.ieee
 

Serap Uygur Serap Uygur Yazar Hakkında Tüm yazıları Mesaj gönder Yazdır



ANKET
Endüstri 4.0 için En Hazır Sektör Hangisidir

Sonuçlar
Aktif etkinlik bulunmamaktadır.