การติดตั้ง Movidius 1 กับ Raspberry Pi 3 Model B+

*** ในบทความนี้กล่าวถึงการติดตั้ง Intel Movidius Neural Compute Stick 1 (NC1) ***

NC คืออะไร ?
ผู้เขียนชอบที่จะเริ่มด้วยการชวนให้มองว่า NC คือ external GPU ที่มาในรูปของ USB stick ก็เพื่อให้เห็นภาพการใช้งาน แต่ความจริงแล้ว NC ไม่ใช่ GPU ไม่สามารถนำมาใช้ในการ train ตัวแบบได้ ใช้งานได้เฉพาะการทำ inference หรือ predict เท่านั้น  เรานำเอา NC ช่วยในการคำนวณ Machine Learning Model เท่านั้น หรืออาจเรียกว่า NC คือ coprocessor ก็น่าจะถูกต้องกว่า

การที่ NC คือ coprocessor นี่เอง จึงเหมาะกับการนำมาใช้ร่วมกับคอมพิวเตอร์ทรัพยากรน้อยอย่าง Raspberry Pi




เตรียม Raspberry Pi
1. ใช้ Raspberry Pi Model 3 B+
2. ติดตั้ง  Raspbian Stretch ดาวน์โหลด image   แนะนำให้ใช้ SD Card ขนาด 16 GB ขึ้นไป
3. เตรียม Swap File

$ sudo nano /etc/dphys-swapfile

แก้ไขตัวแปร CONF_SWAPSIZE กำหนดค่าใหม่ให้เป็น 1024

CONF_SWAPSIZE=1024

start swap file

$ sudo dphys-swapfile swapon


ติดตั้ง NCSDK
NCSDK จะช่วยให้ Raspberry Pi (หรือ host computer แบบอื่น) สามารถสื่อสารกับ NC device ได้ blog หลายแห่งแนะนำให้ติดตั้ง NCSDK version 2 แต่จากการทดสอบส่วนตัวไม่ประสบความสำเร็จ ก็เลยจะใช้ NCSDK version 1

1. ดาวน์โหลด NCSDK
ในกรณีที่ต้องการทดลองติดตั้ง version 2.X

$ git clone -b ncsdk2 http://github.com/Movidius/ncsdk

ในกรณีที่ต้องการทดลองติดตั้ง version 1.X (ผู้เขียนใช้รุ่นนี้)

$ git clone  http://github.com/Movidius/ncsdk

2. ทำการติดตั้ง

$ cd ncsdk
$ sudo make install


3. ในกรณีต้องการยกเลิการการติดตั้ง

$ cd ncsdk
$ sudo make uninstall


ทดสอบการติดตั้ง
หลังการติดตั้ง NCSDK แล้วจะพบว่ามีการสร้าง /opt/movidius เอาไว้จาก installer  ต่อไปทดสอบการเชื่อมต่อกับ NC device

1. เสียบ NC device เข้ากับ USB port บน Raspberry Pi แนะนำให้ใช้ผ่าน  USB Hub ที่มี power supply ของตัวเอง

2. ปรับปรุงค่า PYTHONPATH

$ export PYTHONPATH="${PYTHONPATH}:/opt/movidius/caffe/python"

ควรเพิ่มคำสั่งนี้ไว้ในบรรทัดสุดท้ายของ .bashrc

3. เขียน Python script ทดสอบการเชื่อมโยง

import mvnc.mvncapi as mvnc

# Look for enumerated Intel Movidius NCS device(s); quit program if none found.
devices = mvnc.EnumerateDevices()
if len(devices) == 0:
     print('No devices found')
     quit()
# Get a handle to the first enumerated device and open it
device = mvnc.Device(devices[0])
try:
    device.OpenDevice()
    print("Hello NC device")

except :
    print("Cannot connect to NC device.")
    quit()

try:
    device.CloseDevice()
    print("Good bye !")
except :
    print("Can not closeNC device.")
    quit()



ถ้า Script นี้สามารถทำงานได้ แสดงว่าการติดตั้งเป็นไปด้วยดีแล้ว

ติดตั้ง software อื่น
ในตอนนี้จะทำการติดตั้ง Google TensorFlow  และ OpenCV  เพื่อให้สามารถทดลองใช้งาน  source code ตัวอย่างที่ติดมากับ NCSDK ได้

ติดตั้ง OpenCV 

$ sudo apt-get install libhdf5-dev libhdf5-serial-dev libhdf5-100 \
libqtgui4 libqtwebkit4 libqt4-test python3-pyqt5 \
libatlas-base-dev \
libjasper-dev


$ sudo -H pip3 install opencv-python

OpenCV ที่ได้จะเป็นรุ่นล่าสุดที่มีอยู่บน pypi.org (ในขณะที่เขียนเรื่องนี้ได้เป็นรุ่น 4.1.1)

ติดตั้ง TensorFlow 
library ที่ต้องการซ้ำกันระหว่าง OpenCV และ TensorFlow คือ libatlas-base-dev ดังนั้นถ้าหากยังไม่ได้ติดตั้งหรือต้องการติดตั้ง TensorFlow ก่อน OpenCV ก็ต้องทำการติดตั้ง libatlas-base-dev  ก่อน

$ sudo -H pip3 install tensorflow

รุ่นของ Tensorflow ที่ได้ขึ้นกับที่มีอยู่บน pypi.org

ต่อไปก็ทดสอบการทำ inference กับตัวอย่างที่ให้มาได้แล้ว ในตอนนี้เลือกที่จะใช้ inception_v1 ซึ่งเป็นตัวแบบสำหรับ image classification หนึ่ง

$ cd path_to_ncsdk/examples/tensorflow/inception_v1
$ python3 run.py

ผลที่ได้


Previous
Next Post »

1 ความคิดเห็น:

Write ความคิดเห็น
nathapha
AUTHOR
30 มีนาคม 2565 เวลา 09:28 delete

pg slot เว็บตรง แตกไว สล็อตน่าเล่น มีเกม สล็อต PG SLOTเว็บไซต์ตรง แจกเครดิตฟรี ให้เลือกเล่นล้นหลามมากมายแบบอย่าง เสมือนเลียนแบบแหล่งคาสิโนจากสถานที่จริงๆมาไว้บนโทรศัพท์เคลื่อนที่

Reply
avatar