Raspberry Pi Object Detection | Praktis dengan Raspi 4

89 / 100
Raspberry Pi Object Detection- Tensorflow pada Raspberry pi
Raspberry Pi Object Detection- Tensorflow pada Raspberry pi

Tutorial ini berisi bagaimana cara installasi Raspberry Pi Object Detection agar dapat mendeteksi object menggunakan raspberry pi 4 dengan camera.

Tutorial instalasi Tensorflow pada Raspberry Pi4 ini berdasarkan Edje Electronics.

Sepanjang saya mencari tutorial mengenai tensorflow, tutorial dari Edje Electronics adalah yang paling mudah diikuti dan di mengerti. Maka dari itu alangkah lebih baik untuk melihat tutorial yang disajikan oleh Edje Electonics dan subscribe channel nya untuk mengetahui project-project selanjutnya yang ia buat.

Sebelum memulai tutorial, alat-alat yang saya gunakan, yaitu:

  1. Raspberry pi4, 4gb ram tokopedia
  2. 32 GB SD card, pre-installed Raspbian Stretch tokopedia
  3. USB webcam Logitech tokopedia

Tutorial ini di tulis pada tanggal 14/10/2019

Pendahuluan

Tutorial ini berisi bagaimana cara installasi Tensorflow Object Detection API pada Raspberry Pi 4 agar dapat mendeteksi objek. Dengan mengikuti alur selangkah-demi selangkah, diharapkan anda dapat menggunakan Raspberry Pi untuk mendeteksi suatu object dari camera secara langsung dengan menggunakan kamera USB ataupun Picamera. Anda dapat menyesuaikan tutorial ini kepada object yang ingin anda deteksi secara spesifik.

Raspberry Pi Object Detection - Contoh deteksi botol aqua
Raspberry Pi Object Detection - Contoh deteksi botol aqua

Update raspberry pi

Buka command terminal, lalu eksekusi perintah:

sudo apt-get update
sudo apt-get dist-upgrade 

Install TensorFlow

pip3 install tensorflow

Tensorflow membutuhkan paket tambahan “LibAtlas” agar berfungsi dengan baik

sudo apt-get install libatlas-base-dev 

Install beberapa dependencies yang dibutuhkan untuk menjalankan tensor flow seperti tertera dalam repositories Tensorflow instruksi installasi. Diantaranya:

sudo pip3 install pillow lxml jupyter matplotlib cython 
sudo apt-get install python-tk 

Selesai untuk instalasi Tensorflow, selanjutnya adalah OpenCV

Install OpenCV

OpenCV digunakan untuk mendeteksi object yang relative mudah dan sedikit error.

Agar OpenCV dapat bekerja dengan baik pada Raspberry Po. Ada beberapa dependencies yang harus di install menggunakan “apt-get”, yaitu:

sudo apt-get install libjpeg-dev libtiff5-dev libjasper-dev libpng12-dev
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev 
sudo apt-get install libxvidcore-dev libx264-dev 
sudo apt-get install qt4-dev-tools libatlas-base-dev 

Install Protobuf

Tensorflow object detection menggunakan Protobuff, yaitu Google Protocol Buffer data format.

sudo apt-get install protobuf-compiler

Untuk memastikan terinstall dengan benar, maka perlu di cek dengan cara protoc –-version

Sehingga akan muncul tulisan libprotoc 3.6.1  atau versi yang terbaru.

Setup struktur folder Tensorflow dan Variable PYTHONPATH

Kita telah menginstall semua packages yang dibutuhkan untuk menjalankan Tensorflow, selanjutnya kita membutuhkan setup direktori Tensorflow. Kita akan membuat direktori tensorflow1:

mkdir tensorflow1
cd tensorflow1  

Lalu, download repository tensorflow dari Github:

git clone --recurse-submodules https://github.com/tensorflow/models.git

Selanjutnya adalah memodifikasi PYTHONPATH environment. Hal ini berguna agar PYTHONPATH selalu ter-setup setiap kali terminal window terbuka.

sudo nano ~/.bashrc

Arahkan kursor ke bagian akhir file, dan pada baris terakhir tambahkan baris:

export PYTHONPATH=$PYTHONPATH:/home/pi/tensorflow1/models/research:/home/pi/tensorflow1/models/research/slim

Setelah itu, simpan dan keluar dari file tersebut. Keluar command terminal dan buka kembali.

Selanjutnya, kita membutuhkan Protoc untuk mengkompilasikan file Protocol Buffer (.proto) yang digunakan oleh Object Detection API. File tersebut ada dalam direktori “/research/object_detection/protos”, namun kita harus mengesekusi perintahnya dari direktori /research:

cd /home/pi/tensorflow1/models/research
protoc object_detection/protos/*.proto --python_out=.  

Perintah di atas mengkonversikan seluruh file yang memiliki ekstensi “.proto” menjadi “_pb2.py”.

Selanjutnya, pergi ke direktori “object_detection”

cd /home/pi/tensorflow1/models/research/object_detection

Sekarang, kita akan download object detection model dari TensorFlow detection model zoo. Model zoo ini adalah koleksi dari Google untuk model yang telah di training dan memiliki kecepatan komputasi dan akurasi yang berbeda. Raspberry Pi memiliki processor yang relative lemah, oleh karena itu kita membutuhkan model yang menggunakan kekuatan processing yang kecil. Walaupun model berjalan dengan cepat, namun, memiliki tingkat akurasi yang rendah. Untuk tutorial kali ini kita akan menggunakan SSDLite-MobileNet, dimana model tersebut adalah yang paling cepat.

Google selalu mengeluarkan model terbaru dengan kecepatan dan performa yang lebih baik seiring waktu. Oleh sebab itu, dapat mengunjungi nya secara berkala.

Download SSDLite-MobileNet dengan cara:

wget http://download.tensorflow.org/models/object_detection/ssdlite_mobilenet_v2_coco_2018_05_09.tar.gz 
tar -xzvf ssdlite_mobilenet_v2_coco_2018_05_09.tar.gz 

Ok, sekarang model di dalam direktori “object_detection” telah siap untuk digunakan. Selanjutnya adalah tahap terakhir, yaitu mendeteksi objek

Mendeteksi Object

Akhirnya kita sampai pada bagian yang sangat menyenangkan yaitu mendeteksi object menggunakan kamera pada Raspberry Pi. Skrip Python pada tutorial ini adalah “Object_detection_picamera.py”. Secara umum, script ini memerintahkan untuk mengarahkan path kepada model dan labelmap, lalu memasukan model ke dalam memori, initialisasi Picamera dan memulai deteksi objek pada video frame dari Picamera.

Pastikan kita telah mengaktifasikan Camera pada Raspberry Pi Configuration.

Raspberry pi mendeteksi object konfigurasi pada pi
Raspberry Pi Object Detection - Raspberry Pi config

Download “Object_detection_picamera.py” ke dalam direktori object_detection dari github EdjeElectronics dengan cara:

wget https://raw.githubusercontent.com/EdjeElectronics/TensorFlow-Object-Detection-on-the-Raspberry-Pi/master/Object_detection_picamera.py

Jalankan Script:

python3 Object_detection_picamera.py

Secara default, script akan mengesekusi perintah menggunakan Picamera, jika kita menggunakan USB camera, maka commandnya menjadi:

python3 Object_detection_picamera.py --usbcam

Voila!!! Sekarang anda dapat mendeteksi object.

Untuk mendeteksi objek sesuai dengan yang diinginkan anda dapat lihat pada link ini.

Kita dapat menggunakan kustom model yang telah di training sesuai dengan object yang hendak kita deteksi. Dengan cara memasukkan frozen inference graph ke dalam direktori object_detection dan mengubah path model tersebut di dalam script. Setelah kita memiliki model tertentu, simpan file tersebut di dalam directory object_detection dan label_map.pbtxt di dalam direktori object_detection/data. Tutorial untuk ini dapat di lihat dari video Edje Electronic yang lain di link youtube.

Terima kasih telah membaca tutorial singkat ini.

Semoga bermanfaat untuk anda.

Muhammad Zacky Asy'ari
Saya seorang Engineer dan Tech Entrepreneur. Memiliki ketertarikan dalam bidang Internet of Things, data acquisition, data analytics dan visualization, machine learning, software testing, serta web design dan development.
Silahkan telusuri blog ini dengan senang hati :).

Terbaru

Copyright since @ 2020
linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram