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.
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
YORUMLAR
ANKET
- Dünyanın En Görkemli 10 Güneş Tarlası
- Dünyanın En Büyük 10 Makinesi
- 2020’nin En İyi 10 Kişisel Robotu
- Programlamaya Erken Yaşta Başlayan 7 Ünlü Bilgisayar Programcısı
- Üretimin Geleceğinde Etkili Olacak 10 Beceri
- Olağan Üstü Tasarıma Sahip 5 Köprü
- Dünyanın En İyi Bilim ve Teknoloji Müzeleri
- En İyi 5 Tıbbi Robot
- Dünyanın En Zengin 10 Mühendisi
- Üretim için 6 Fabrikasyon İşlemi
- DrivePro Yaşam Döngüsü Hizmetleri
- Batarya Testinin Temelleri
- Enerji Yönetiminde Ölçümün Rolü: Verimliliğe Giden Yol
- HVAC Sistemlerinde Kullanılan EC Fan, Sürücü ve EC+ Fan Teknolojisi
- Su İşleme, Dağıtım ve Atık Su Yönetim Tesislerinde Sürücü Kullanımı
- Röle ve Trafo Merkezi Testlerinin Temelleri | Webinar
- Chint Elektrik Temel DIN Ray Ürünleri Tanıtımı
- Sigma Termik Manyetik Şalterler ile Elektrik Devrelerinde Koruma
- Elektrik Panoları ve Üretim Teknikleri
- Teknik Servis | Megger Türkiye
Aktif etkinlik bulunmamaktadır.