Linux, Python 3.8.5, ResNet18 20 FPS’de – Jetson Nano için 7.9 USD’lik alternatif?
Hackster.io’da Dmitry Maslov tarafından yayınlanan orijinal makale.
Bu makalede, AIoT için en yeni ve son geliştirme kiti ve SoM olan Sipeed MAIX II hakkında bilgi vereceğim.

Kanallarımı izleyenler ve AI on the Edge için donanım gelişmelerini takip edenler MAIX I kart serisini tanıyorlar – bunlar çeşitli K210 tabanlı kartlar, ben de bunları Seeed blogunda ve kanalımda inceledim ve eğitimler yaptım.
K210, güç tüketimi ve alan endişesi olduğunda görsel ve ses ML görevlerini gerçekleştirmek için iyi bir sağlam çiptir. Ancak, kısıtlı RAM miktarı gibi dezavantajları da vardır; bu, hem görüntü çözünürlüğünü hem de çip üzerinde çalıştırılabilecek ağların maksimum boyutunu kısıtlar. Eğer yakın mesafedeki nesneleri tespit/ tanıyorsanız, bu bir sorun olmayacaktır. Ancak, düşük çözünürlük ve model boyutu kısıtlaması, daha küçük nesneleri tespit ederken, örneğin kalabalıkta yüzleri uzaktan tespit ederken performansı etkileyebilir. Ayrıca, uygun OCR veya açık alan konuşma tanıma uygulamaları, model boyutu yaklaşık 2.5-3Mb ile sınırlı olduğunda zorlayıcıdır.
MAIX II geliştirme kartı ve Allwinner V831 çipine dayanan SoM, bu sorunları ortadan kaldırmayı ve kullanıcıların daha büyük modelleri daha yüksek çözünürlüklü görüntü girişi ile çalıştırmalarını sağlamayı amaçlamaktadır.

Geliştirme kiti, referans taşıyıcı kartı, bir ekran, bir kamera ve bir SoM’dan oluşmaktadır.
Yeni modülün özelliklerine bir göz atalım ve bunları eski MAIX I (k210) çekirdek modülü ve Nvidia Jetson Nano 2Gb modülünün özellikleri ile karşılaştıralım.

Özetlemek gerekirse, MAIX I (K210) iyi bir ucuz alternatifti ve hâlâ Raspberry Pi için öyle – eğer sadece ML çıkarım uygulamalarıyla ilgileniyorsanız, yeni MAIX II ise Jetson Nano için iyi bir ucuz alternatif olmayı hedefliyor. Eğer bu karşılaştırmanın abartılı olduğunu düşünüyorsanız, Raspberry Pi ve Jetson Nano’nun SBC olarak iyi olduğu tüm şeyleri (kişisel bilgisayar yerine geçme, retro video oyun konsolu, ağ/bulut depolama cihazı vb.) bir kenara bırakın ve bunu sadece ML on the Edge uygulamaları açısından düşünün.
Raspberry Pi 4, 300×300 çözünürlükte MobileNet2 SSD çalıştırarak 13-15 FPS çıkarabilir – bu, 64 bit OS ve Tensorflow Lite Thread hızlandırma etkinleştirildiğinde mevcut maksimum FPS’dir. Tüm 4 çekirdekte çıkarım yaparken maksimum gücü tüketecektir ve en ucuz fiyatı 25 USD’dir. MAIX I (K210) kolayca 320×240 video akışını MobileNet nesne tespiti ağı ile yaklaşık 15-17 FPS’de işleyebilir ve YOLOv2 omurgası ağı kullanarak ve/veya Micropython yerine C++ kullanarak daha iyi hızlar elde edebilir. Ne Raspberry Pi ne de K210 kartları, ResNet18 gibi daha büyük ağları çalıştırmak veya aynı anda görüntü işleme/ses işleme yapmak için uygun değildir.
İşte burada MAIX II devreye giriyor – ML çıkarım hızlandırıcısının K210 KPU ile aynı işleme hızına (0.2 TOPS) sahip olmasına rağmen, daha fazla RAM’e sahiptir ve bu nedenle ResNet18 veya MobileNet + konuşma transkripsiyon modelini aynı anda kolayca çalıştırabilir. Ayrıca, görüntü girişi için MIPI arayüzünü destekler ve böylece iki hat için 1080P@60fps’ye kadar daha iyi çözünürlük ve görüntü kalitesi sağlar; böylece K210’un iki ana kısıtlamasını ortadan kaldırır ve bu yeni SoM ve geliştirme kartını Nvidia Jetson serisi seviyesine daha da yaklaştırır – bu, yine de sadece ML çıkarım uygulamalarıyla ilgileniyorsanız ve iki kameradan fazlasını bağlamayı planlamıyorsanız geçerlidir. Tüm bunlar, SoM için 7.9 USD ve SoM + referans taşıyıcı kart için 28.8 USD’lik cazip bir fiyat noktasında sunulmaktadır.
Donanım genel görünümü
Donanım genel görünümü için videonun bu kısmını izleyin.
MAIX II SoM, Jetson Nano SoM ve Raspberry Pi 4 CM ile karşılaştırıldığında gerçekten çok küçük görünüyor ve bunun nedeni de budur. Modülün üstünde yalnızca birkaç dikkate değer şey var; bunlar V831 SoC, güç kaynağı IC’si, isteğe bağlı FLASH çipi için ayrılmış konektörler ve taşıyıcı karta bağlanmak için M2 anahtar konektörüdür.

SoM için ayrıntılı şemaları görmek ve kendi ürününüze entegre etmek isterseniz, Donanım Geliştirme Kiti mevcut.
Şimdi referans taşıyıcı karta gelecek olursak – SoM’un aksine, bu şey dolu. 1/2.5’’ sensöre sahip 3Mp 6mm kamera, 1.3’’ LCD ekran, 2 USB Type-C konektörü, SD kart yuvası, mikrofon, hoparlör, WiFi modülü, 2 Kullanıcı Yapılandırılabilir düğme ve 1 Sert Sıfırlama Düğmesi ve hatta 3 eksenli ivmeölçer bulunmaktadır.

Yine de referans taşıyıcı kart oldukça kompakt olup, boyutları 48.9 * 33.9 * 36.1’dir.
Yazılım genel görünümü
Donanım, onu kullanmak için yazılım olmadan sadece plastik ve silikon. MAIX II için bu alandaki durum nedir? MAIX II, kenar bilişim için uyarlanmış (nispeten) başlangıç dostu bir Linux yazılımı sunmayı amaçlamaktadır; kullanıcılar, K210’un yalnızca Micropython yazılımını veya C++ derlenmiş kullanıcı kodunu çalıştırabildiği gibi, LINUX altında daha kapsamlı bir geliştirme ortamı ve bol yazılım kaynaklarının tadını çıkarabilirler.
Şu anda, MAIX II yeni olduğu için yazılım ortamı oldukça gelişim aşamasındadır. MAIX-Linux için opkg paket kaynağı sağlanmaktadır, python3.8.5 yüklüdür ve sistem için varsayılan Python sürümüdür. ML çıkarım ve donanım ile ilgili işlevler, MAIX3 pip paketi üzerinden entegre edilecek ve erişilebilir olacaktır.

Ayrıca, kullanıcıların Jupyter Notebook kullanarak kart ile uzaktan bağlantı kurmalarına ve Veri Bilimcileri ve Makine Öğrenimi uygulayıcıları arasında oldukça popüler olan Not Defterlerinde kod çalıştırmalarına olanak tanıyan RPYC-Kernel ile çalışmak için de çalışmalar yapılmaktadır.
Başlarken
Yazılım kurulumu ve demo için videonun bu kısmını izleyin.
Geliştirme süreci hala erken olduğu için, yeni MAIX kart yazılımını denerken en kötüye hazırlıklıydım. Şaşırtıcı bir şekilde, şu anda çok fazla hata ile karşılaşmadım, ancak işlevler tamamlanmamış durumda.
En son yazılımı yüklemek için önce bağımlılıkları kurun – flaş aracı, kendiniz indirip derlemeniz gereken eski bir libpng sürümüne bağımlıdır.
sudo apt install dkms libtool m4 automake zlib1g-dev
wget http://archive.ubuntu.com/ubuntu/pool/main/libp/libpng/libpng_1.2.54.orig.tar.xz
tar xvf libpng_1.2.54.orig.tar.xz
cd libpng-1.2.54
./autogen.sh
./configure
make -j8
sudo make install
Gerekli bağlantıları oluşturun ve en son paylaşılan kütüphaneleri önbelleğe alın:
sudo ldconfig
Son olarak, firmware’i flaşlamak için livesuit aracını indirin ve kurun:
git clone --recursive https://github.com/QinYUN575/allwinner-livesuit.git
cd allwinner-livesuit
chmod +x livesuit_installer.run
sudo ./livesuit_installer.run
Ve bunu şu şekilde çalıştırın:
sudo livesuit
Firmware dosyasını seçin, MAIX-II’yi (SD kart olmadan) USB Type-C kablosu ile bağlayın. Bölümün formatlanmasıyla ilgili bir istem gördüğünüzde, SD kartı takın ve Evet’e basın. Araç, SD kartı formatlayacak ve firmware’i içine yükleyecektir.
Flaşlama işlemi tamamlandıktan sonra, USB kablosunu USB UART’a bağlayın ve picocom aracını kurun:
sudo apt-get install picocom
Sonrasında, UART üzerinden kartla şu şekilde bağlantı kurabileceksiniz:
sudo picocom -b 115200 /dev/ttyUSB0
Buradan itibaren MAIX-II’yi normal bir Linux geliştirme kartı olarak kullanabilirsiniz. Kartı WiFi’ye bağlayarak başlaymanızı öneririm, böylece gerekli paketleri doğrudan karta kurabilirsiniz. Bunun için:
vim etc/wpa_supplicant.conf
Ve SSID ve WiFi ağının şifresini ayarlarınıza uygun olacak şekilde düzenleyin. Eğer bir şeyler ters giderse – :q! ve panik yapmayın 🙂
WiFi’ye bağlandıktan sonra, opkg dizinini şu şekilde güncelleyin:
opkg update
Ve en son MaixPy3 paketinin sürümünü şu şekilde kurun:
pip3 install maixpy3
Sonrasında Jupyter Remote Kernel hook’unu şu şekilde başlatabilirsiniz:
python3 -c "from maix import rpycs; rpycs.start()" &
Bundan sonra, yerel makinenizde Jupyter notebook ve bunun için RPYC-kernel’i kurun:
pip3 install notebook
pip3 install rpyc_ikernel && python3 -m rpyc_ikernel.install
Bir örnek not defterini açın ve ilk satırdaki IP adresini MAIX-II kartınızın gerçek IP adresi ile değiştirin. Çalıştır’a basın ve bağlantınız kuruldu! Not defterindeki kodunuz uzaktaki makinede çalıştırılacaktır.
Kendi sinir ağlarınızı MAIX-II kartlarında eğitmek, dönüştürmek ve çalıştırmak için yakında tam bir eğitim hazırlayacağım. Şu anda bazı örnekleri denemek isterseniz, buradan örnekleri indirebilir ve derleyebilirsiniz.
Geçmiş deneyimlere dayanarak Sipeed ürünleriyle, yeni MAIX kartı biraz popüler olursa, ürün desteği MAIX I kartlarıyla aynı seviyede olacaktır – mükemmel değil, ama sürekli ve uzun vadeli. Burada bir yazılım geliştirici olarak şunu söylemeliyim ki, geliştiriciler ne kadar çabalarsa çabalasın, belgeler her zaman eksik kalacak ve birçok destek aslında topluluktan geliyor – örneğin, bu Raspberry Pi kartlarının en güçlü yanıdır. Yani, temel Linux ve Python geliştirme becerileriniz varsa ve Edge uygulamalarında ML geliştirirken küçük bir zorluktan korkmuyorsanız, bu yeni kart sizin için doğru seçim olabilir.
Bu yeni SoM ve kart hakkında ne düşündüğünüzü yorumlayın – bir tane almak ister misiniz? Daha uygun fiyatlarla daha büyük sinir ağlarını kullanmanın faydasını görebileceğiniz bir uygulamanız var mı? Sizden haber almak için sabırsızlanıyorum!



