Arduino Mikro

Membuat Real-Time Object Detection Raspberry Pi dan Intel NCS 2


Kecerdasan Buatan atau yang biasanya disebut Artificial Intelligence (AI) merupakan teknologi yang saat ini sedang hangat banyak diperbincangkan didunia perkembangan teknologi. Banyak pihak ketiga atau vendor produk teknologi terbaru bersaing membenamkan teknologi AI ini pada produk-produk yang sedang mereka pasarkan, adapun itu mulai dari smartphone, kamera, gadget VR, cctv, robot, dan masih banyak lagi yang lainnya.

Dan salah satu contoh dari sekian banyaknya kegunaan dari Raspberry Pi seperti yang pernah kita bahas sebelumnya yaitu "Cara Membuat Smarthome Raspberry Pi Dengan Aplikasi Chatting Telegram". 

Karena melihat potensi ini dimasa yang akan datang, Intel sebagai perusahaan besar yang menjadi salah satu pelopor pengembangan teknologi AI ini membuat terobosan baru dengan menyediakan produk yang diberi nama Intel Neural Compute Stick atau pada umumnya disebut Intel NCS yang mana bertujuan untuk akselerasi pengembangan kecerdasan buatan.

1. Adapun peralatan yang diperlukan :

- 1 Buah Raspberry Pi 3B/3B+ atau Raspberry Pi 4
- 1 Buah Intel Neural Compute Stick 2
- 1 Buah MicroSD + Raspbian Stretch
- 1 Buah Keyboard & Mouse
- 1 Buah Adaptor 5V
- 1 Buah Webcam USB
- 1 buah USB Hub

2. Persiapan Koneksi Hardware
a. Sambungkan  tegangan catu daya ke Raspberry Pi.
b. Sambungkan Intel NCS2 secara langsung ke port USB Raspberry Pi.
Catatan : (diharapkan tidak melalui USB hub, karena jika USB hub yang sedang digunakan kurang bagus maka kalian akan mendapat masalah pada saat proses mengeksekusi sample).
c. Sambungkan USB hub ke port USB Raspberry Pi, selanjutnya sambungkan keyboard dan mouse ke USB hub.
d. Sambungkan kamera ke port USB Raspberry Pi atau ke USB hub.

3. Proses Instalasi OpenVino Toolkit ke Raspberry Pi


OpenVino Toolkit Raspberry Pi

3.1. Silahkan kalian membuka terminal linux pada raspberry dengan menekan tombol CTRL+ALT+T.
3.2. Kemudian buatlah direktori baru dengan memasukkan kode perintah berikut :

$ mkdir ~/NCS2 && cd ~/NCS2
3.3. Selanjutnya melakukan proses update dan upgrade dengan mengetikkan kode perintah berikut di terminal Raspberry Pi :

$ sudo apt update
3.4. Proses dowload file OpenVINO.

$ wget https://download.01.org/openvinotoolkit/2018_R5/packages/l_openvino_toolkit_ie_p_2018.5.445.tgz
3.5. Kemudian melakukan unpacking terhadap file yang sudah kalian download sebelumnya dengan kode perintah berikut :

$ tar -zxf l_openvino_toolkit_ie_p_2018.5.445.tgz
Setelah semua tahap ini selesai, maka OpenVINO sudah berhasil terinstall pada Raspberry Pi kalian, sekarang waktunya melakukan beberapa penyesuaian terhadap workspace kalian.

4. Memulai Pengaturan Environtment Variables
Pada tahap ini kalian diwajibkan melakukan pengaturan environtment variables sebelum bisa meng-compile dan menjalankan berbagai aplikasi yang disediakan oleh OpenVINO. Selanjutnya untuk melakukannya, kalian dapat menjalankan perintah-perintah berikut :

4.1. Silahkan kalian Modifikasi pada script setupvar.sh ke direktori dimana kalian akan menginstall OpenVINO (sebagai contohnya di direktori ~/NCS2). Sehingga hal ini berfungsi agar sistem bisa mendeteksi lokasi maupun direktori tempat kalian menginstal SDK OpenVINO tadi.

$ sed -i "s||$(pwd)/inference_engine_vpu_arm|" inference_engine_vpu_arm/bin/setupvars.sh
Pada tahap ini OpenVINO sudah berhasil terinstal di Raspberry Pi, untuk langkah selanjutnya yaitu melakukan edit pada bashrc.

4.2. Coba kalian membuka terminal baru dengan menekan CTRL+ALT+T kemudian ketikkan kode perintah berikut :

$ sudo nano ~/.bashrc
4.3. Selanjutnya pada teks editor kalian scroll hingga ke bawah file setelah itu tambahkan kode perintah berikut pada baris terbawah filenya.

$ source /home/pi/NCS2/inference_engine_vpu_arm/bin/setupvars.sh
Dan simpanlah file dengan menekan tombol CTRL+X -> Y.

4.4. Kemudian lakukan source pada file .bashrc.

$ source ~/.bashrc
Apabila semua proses ini telah selesai dilakukan maka akan muncul notifikasi "[setupvars.sh] OpenVINO environment initialized" pada saat ketika kalian membuka terminal baru.

5. Menginstal External Software Dependencies
Untuk CMake versi 3.7.2 atau yang lebih baru diperlukan untuk melakukan build pada aplikasi sample yang berada pada OpenVINO SDK. Dan untuk menginstal CMake ke Raspberry Pi, kalian cukup ketikkan kode perintah berikut pada terminal :

$ sudo apt install cmake
Kemudian tunggulah hingga proses instalasi CMake sudah selesai. Apabila sudah selesai, selanjutnya ke tahap penambahan USB Rules.

6.  Cara Menambahkan USB Rules
6.1. Coba tambahkan user linux kalian saat ini kedalam grup yang mana dengan cara mengetikkan kode perintah berikut :

$ sudo usermod -a -G users "$(whoami)"
Kemudian silahkan lakukan reboot Raspberry Pi kalian untuk mengetahui efek perubahannya.

6.2. Selanjutnya instal USB rules dengan cara mengeksekusi shell script pada direktori berikut :

$ sh ~/NCS2/inference_engine_vpu_arm/install_dependencies/install_NCS_udev_rules.sh
Pada tahap ini kalian sudah siap menjalankan dan meng-compile beberapa contoh projek yang sudah disediakan oleh OpenVINO.

7. Membangun dan Menjalankan Object Detection Sample.
7.1. Silahkan kalian pindah ke direktori tempat sample project.

$ cd ~/NCS2/inference_engine_vpu_arm/deployment_tools/inference_engine/samples
7.2. Kemudian buatlah direktori baru dengan nama "build" setelah itu masuklah ke direktori tersebut.
$ mkdir build && cd build

7.3. Selanjutnya Build Object Detection Sample.

$ cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-march=armv7-a" ~/NCS2/inference_engine_vpu_arm/inference_engine/samples
$ make -j2 object_detection_sample_ssd
7.4. Silahkan download pre-trained face detection model.

$ wget --no-check-certificate https://download.01.org/opencv/2019/open_model_zoo/R1/models_bin/face-detection-adas-0001/FP16/face-detection-adas-0001.bin
$ wget --no-check-certificate https://download.01.org/opencv/2019/open_model_zoo/R1/models_bin/face-detection-adas-0001/FP16/face-detection-adas-0001.xml
7.5. Coba kalian download contoh gambar wajah yang akan dideteksi.

$ wget http://digiwarestore.com/img/cms/face.jpg
7.6. Kemudian coba jalankan face detection sample dengan mengetikkan kode perintah berikut :

$ ./armv7l/Release/object_detection_sample_ssd -m face-detection-adas-0001.xml -d MYRIAD -i face.jpg && mv out_0.bmp ~/Desktop
7.7. Sebagai hasil dari output pendeteksian gambar tadi bisa kalian lihat di desktop dengan nama file "out_0.bmp".


Hasil Output Pendeteksian Gambar

8. Cara Cloning Mobile-Net SSD dari GitHub


Cara Cloning Mobile-Net SSD dari GitHub

8.1. Silahkan kalian buka di terminal baru kemudian pindah ke direktori NCS2.

$ cd ~/NCS2
8.2. Kemudian coba lakukan cloning pada repository MobileNET-SSD dengan kode perintah berikut :

$ git clone https://github.com/PINTO0309/MobileNet-SSD-RealSense.git
Pada tahap cloning ini sendiri berfungsi untuk menduplikasi / mengdownload semua konten yang berada pada suatu repository ke direktori komputer kalian.

8.3. Selanjutnya kalian tunggu beberapa saat hingga proses cloning sudah selesai. Dan pastikan Raspberry Pi kalian sudah terkoneksi dengan internet.

9. Mengeksekusi Sample Real Time Object Detection
Jadi, Real time object detection merupakan salah satu sample program didalam repository MobileNET-SSD. Sehingga dengan sample ini kalian bisa memberikan kemampuan kecerdasan buatan ke Raspberry Pi supaya mendeteksi, memprediksi, serta memberikan presentase perbandingan akurasi objek yang terdeteksi dengan pre-trained object menggunakan bantuan webcam. Dan objek yang bisa kalian deteksi secara real time menggunakan sample ini misalnya : Pesawat, sepeda, burung, kapal, botol, kursi, sapi, meja, anjing, kuda, bus, mobil, kucing, sepeda motor, manusia, sofa, kereta api, tanaman pot, domba, dan monitor.

Adapun itu berikut cara mengeksekusi sample Real Time Object detection :

9.1. Silahkan membuka terminal baru selanjutnya pindah direktori ke MobileNet-SSD-RealSense.

$ cd ~/NCS2/MobileNet-SSD-RealSense
9.2. Kemudian jalankan script sample Real Time Object Detection dengan kode perintah berikut :

$ python3 MultiStickSSDwithUSBCamera_OpenVINO_NCS2.py
Apabila sudah terlihat hasilnya, maka percobaan kalian kali ini sudah dinyatakan berhasil.

Posting Komentar untuk "Membuat Real-Time Object Detection Raspberry Pi dan Intel NCS 2"