Raspberry Pi Object Detection | Praktis dengan Raspi 4

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 padatanggal 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, lalueksekusi perintah:

sudo apt-get updatesudo 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 mendeteksiobject yang relative mudah dan sedikit error.

Agar OpenCV dapat bekerja denganbaik pada Raspberry Po. Ada beberapa dependencies yang harus di installmenggunakan “apt-get”, yaitu:

sudo apt-get install libjpeg-dev libtiff5-dev libjasper-dev libpng12-devsudo 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 detectionmenggunakan 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 tensorflow1cd 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/researchprotoc 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 downloadobject detection model dari TensorFlowdetection model zoo. Model zoo ini adalah koleksi dari Google untuk modelyang telah di training dan memiliki kecepatan komputasi dan akurasi yangberbeda. Raspberry Pi memiliki processor yang relative lemah, oleh karena itukita membutuhkan model yang menggunakan kekuatan processing yang kecil. Walaupunmodel berjalan dengan cepat, namun, memiliki tingkat akurasi yang rendah. Untuktutorial 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 padaRaspberry 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 dengancara:

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.

Comments