Kategoriler
derin öğrenme (deep learning)

Raspberry Pi 3 üzerinde Intel Movidius Neural Compute Stick ile Derin Öğrenme Uygulamaları Çalıştırma

Merhaba,
Movidius NCS (Neural Compute Stick)’in Raspberry Pi 3 üzerinde kurulumu ve demo uygulamalarının nasıl çalıştırılacağını görelim.

Intel Movidius Neural Compute Stick  & Raspberry Pi 3

Intel Movidius Neural Compute Stick, USB portundan takıldığı cihaza, derin öğrenme uygulamalarınızı çalıştırma yeteneği kazandıran, düşük güç tüketimine sahip ve düşük maliyetli kendi başına yapay zeka (AI) kitidir. 

Movidius NCS (Neural Compute Stick) hakkında daha detaylı bilgi için M.Ayyüce Kızrak’ın “Intel-Movidius Neural Compute Stick Nedir ve Nasıl Kullanılır” başlıklı blog yazısını incelemenizi tavsiye ederim.

Intel Movidius Neural Compute Stick Tanıtım Videosu

KURULUM

Raspberry Pi üzerine Intel Movidius Neural Compute SDK kurulumu için aşağıdaki adımları sırasıyla uygulayalım.

1. Tensorflow

NCSDK’nın uygulamalarını Tensorflow ve Caffe kütüphanelerini kullanarak çalıştıracağımızdan ilk olarak Tensorflow’u indirip pip3 ile kurulumunu aşağıdaki şekilde yapalım.

$ wget https://github.com/lhelontra/tensorflow-on-arm/releases/download/v1.4.0/tensorflow-1.4.0-cp35-none-linux_armv7l.whl
$ pip3 install tensorflow-1.4.0-cp35-none-linux_armv7l.whl

2. Neural Compute SDK

Uygulamaları çalıştırmamız için gerekli tüm kütüphaneler ve örnekleri Github sayfasından klonlayarak aşağıdaki şekilde derleyelim.

$ sudo apt-get install git
$ git clone https://github.com/movidius/ncsdk
$ cd ncsdk
$ make install

NOT: Bu işlem Raspberry Pi 3 üzerinde saatlerinizi alabilir. Kitlendiğinde veya elektrik kesilip yarım kaldığında ncsdk klasörüne girerek make install komutunu yeniden çalıştırarak derleme işlemine devam edebilirsiniz.

Sabırlı bekleyişinizden sonra Setup is complete mesajını aldıysanız kurulumu başarıyla tamamladınız demektir. 🙂

3. OpenCV

Video kamerasından görüntü alma resim ve videolar üzerine işlemler yapılan bazı örnekler için OpenCV kütüphanesi gerekli olabiliyor.
Github sayfasından klonladığımız ncsdk içerisinde install-opencv.sh scriptini çalıştırarak OpenCV kütüphanesinin kurulumunu tamamlayabilirsiniz.

4. KURULUM TEST

Kurulumun başarılı şekilde gerçekleştiğini ve Raspberry Pi’nin Movidius NC’ni tanıyıp üzerinde kodun çalışıp çalışmadığını test edelim.

İndirmiş olduğumuz ncsdk içerisindeki örnek uygulamalar içerisinden python örneğini aşağıdaki şekilde çalıştıralım.

$ cd ncsdk/examples/apps/hello_ncs_py
$ python3 hello_ncs.py

Yukarıdaki ekran görüntüsünde gördüğümüz gibi sorunsuz şekilde hello_ncs.py örneğini NCS üzerinde çalıştırmış olduk.

GERÇEK ZAMANLI NESNE TANIMLAMA UYGULAMASI

Movidius NCS için Caffe ve Tensorflow örneklerinin bulunduğu başka bir repo indirelim ve webcam ile gerçek zamanlı şekilde nesne tanıma uygulaması olan live-image-classifier örneğini nasıl çalıştırabileceğimizi görelim.

Aşağıdaki şekilde ncappzoo reposunu indirelim.

1git clone https://github.com/movidius/ncappzoo

apps altında live-image-classifier klasörüne girelim ve bu örnek için gerekli olan model dosyaları, ağırlıklar ve graph dosyasının indirilmesi için make komutunu çalıştıralım.

12cd ncappzoo/apps/live-image-classifiermake

Gerekli dosyalar indirildikten sonra örneğimizi çalıştırabiliriz.

1python3 live-image-classifier.py

Webcam yerine Raspberry Pi Kamera Modülünü Kullanma

Kendi resmi live-image-classifier.py demosu sadece webcam üzerinden çalışmaktadır.
İlgili örneği, Raspberry Pi kamera modülü ile çalışır şekilde revize ederek yeni örnek ekledim.
Buradan erişebilirsiniz.

TEŞEKKÜR

Derin öğrenme çalışmalarında kullanılması için talebimiz üzerine Movidius Neural Compute kitini hızlıca ulaştıran Mustafa Aldemir Bey nezdinde Intel Türkiye’ye ve Movidius NCS’yi taşınabilir projeler gerçekleştirmemiz için Raspberry Pi 3 desteğinde bulundukları için Ramazan Subaşı nezdinde de SAMM Teknoloji‘ye teşekkürlerimi sunarım.

GÜNCELLEME

  • “Webcam yerine Raspberry Pi Kamera Modülünü Kullanma” başlığı eklendi — 15/04/2018

Kaynaklar

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir