Tutorial ini di berisi mengenai tensorflow object detection dengan neural network dengan object yang sesuai dengan yang Anda inginkan menggunakan Tensorflow Framework API. Pada akhir tutorial ini kita akan dapat mengenali object dengan tanda segi empat pada gambar, video ataupun webcam.

Tensorflow Object Detection - CUDA
Tensorflow Object Detection - Cuda

Pendahuluan

Tutorial ini memaparkan bagaimana cara menggunakan API Tensorflow Object Detection untuk training klasifikasi object detection dari beberapa object tertentu pada windows 10. Namun, tutorial ini dapat digunakan pada OS yang lain seperti Mac ataupun Linux, hanya saja akan ada sedikit perbedaan prosedurnya pada command terminal OS yang bersangkutan. Pada tutorial ini, versi yang digunakan adalah Tensorflow-GPU v1.13.1 dan Python 3.5.

Tensorflow-GPU memiliki kemampuan lebih dalam hal kecepatan processing karena oleh VGA grafik card. Berdasarkan pengalaman, Tensorflow biasa (CPU) memiliki kecepatan 8x lebih lambat (misal jika kita menggunakan GPU membutuhkan waktu 1 jam untuk training model, pada Tensorflow CPU membutuhkan waktu 8 jam). Tensorflow CPU pada tutorial ini pun dapat digunakan, namun akan lebih lambat dalam hal processing. Jika anda ingin menggunakan Tensorflow CPU, maka, tidak perlu install CUDA dan CuDNN.

Install software yang dibutuhkan

Install anaconda, CUDA, dan cuDNN

Download Anaconda, lalu install pada computer anda. Perlu diperhatikan bahwa, installer Anaconda terbaru sudah menggunakan Python versi 3.7, sedangkan pada tutorial ini kita menggunakan Python 3.5. Namun, kita tidak perlu khawatir, karena kita akan menggunakan virtual environment.

Tahap selanjutnya adalah menginstall CUDA dari situs resmi NVIDA.  Perlu diperhatikan bahwa, versi CUDA dan cuDNN harus sesuai dengan versi Tensorflow yang kita gunakan.  Karena kita menggunakan Tensorflow 1.13.1, sehingga versi yang dibutuhkan adalah:

Tensorflow Object Detection - Versi GPU
Tensorflow Object Detection - Versi GPU

Untuk download cuDNN, kita harus membuat account NVIDIA. Setelah download cuDNN selesai sesuai dengan versinya, lalu kita ikuti cara installasi cuDNN.

Setup Folder Tensorflow dan Anaconda virtual environment

Tensorflow Object Detection API membutuhkan struktur folder yang spesifik sesuai dengan Github Repository nya. Selain itu, kita membutuhkan beberapa Python package tambahan dan juga variable PATH dan PYTHONPATH.

Download TensorFlow Object Detection API repo dari GitHub


Buatlah folder baru di dalam drive C: dengan nama “tensorflow1”. Folder ini meliputi Tensorflow framework untuk object detection, termasuk objek training tensorflow, data training, klasifikasi yang telah di train, konfigurasi file dan hal lain yang dibutuhkan untuk mendeteksi suatu objek.

Download/clone Tensorflow object detection repo pada link GitHub ini untuk versi 1.13. Versi terbaru adalah 2.0, namun jika kita menggukan versi 2.0, maka,  akan ada banyak perubahan pada library dan tentunya mempersulit hidup kita hingga versi yang telah stabil di rilis oleh Google.

Setelah proses cloning selesai, struktur folder akan seperti: C:\tensorflow1\models:

Tensorflow Object Detection - Struktur file
Tensorflow Object Detection - Struktur file

Download Tensorflow model Zoo


Tensorflow memiliki beberapa model pendeteksi objek (telah di training tensorflow menggunakan arsitektur neural network yang spesifik), pre trained model tersebut dapat ditemukan pada link ini. Model-model tersebut memiliki arsitektur yang berbeda. Ada yang sangat cepat dalam mendeteksi objek, namun memiliki akurasi yg kurang baik (seperti SSD mobilenet). Selain itu, ada yang lebih lambat mendeteksi objek dan memiliki akurasi yang lebih akurat (seperti Faster-RCNN model).

Kita dapat memilih model sesuai dengan keperluan masing-masing, jika kita ingin menggunakan smartphone atau Raspberry Pi, maka pilih lah SSD-Mobile net. Namun, jika kita memiliki komputer yang cepat, maka model RCNN  dapat digunakan.

Pada tutorial ini saya menggunakan laptop ASUS ROG GL502VT yang memiliki VGA NVIDIA GTX 970M 16GB. Oleh karena itu, kita akan menggunakan model Faster-RCNN-Inception-V2 model.

Setelah proses download Zoo model yang akan kita pakai selesai, selanjutnya adalah mengekstrak file tersebut, lalu letakkan di dalam folder C:\tensorflow1\models\research\object_detection.

Selanjutnya adalah download/clone full repository dari GitHub Edje Electronics, ekstrak zip file, lalu tempatkan di dalam folder C:\tensorflow1\models\research\object_detection.

Tensorflow Object Detection - Ekstrak Zip file
Tensorflow Object Detection - Ekstrak Zip file

Karena kita akan mengunakan object detector berdasarkan yang kita inginkan, maka kita dapat menghapus file di bawah ini (folder harus tetap ada)

Setup Anaconda virtual environment


Langkah selanjutnya adalah setup Anaconda virtual environment untuk menjalankan tensorflow-gpu. Dari windows search, cari “Anaconda prompt” dan jalankan sebagai administrator.
Selanjutnya kita akan membuat environment bernama “tensorflow1” dengan cara mengeksekusi perintah:
C:\> conda create -n tensorflow1 pip python=3.5
Lalu aktivasi environment “tensorflow1” dan upgrade pip
C:\> activate tensorflow1
(tensorflow1) C:\>python -m pip install --upgrade pip
Selanjutnya install tensorflow-gpu dalam environment tersebut dengan mengeksekusi:
(tensorflow1) C:\> pip install --ignore-installed --upgrade tensorflow-gpu==1.13.1
Lalu kita harus install beberapa paket lainnya yang dibutuhkan oleh tensorflow yaitu:

(tensorflow1) C:> conda install -c anaconda protobuf
(tensorflow1) C:> pip install pillow
(tensorflow1) C:> pip install lxml
(tensorflow1) C:> pip install Cython
(tensorflow1) C:> pip install contextlib2
(tensorflow1) C:> pip install jupyter
(tensorflow1) C:> pip install matplotlib
(tensorflow1) C:> pip install pandas
(tensorflow1) C:> pip install opencv-python

Mengkonfigurasikan variable environment pada PYTHONPATH


Variable PYTHONPATH harus ditentukan dan  mengarah kepada direktori \models, \models\research, dan \models\research\slim dengan cara mengeksekusi perintah:

(tensorflow1) C:> set PYTHONPATH=C:\tensorflow1\models;C:\tensorflow1\models\research;C:\tensorflow1\models\research\slim

Catatan: Kita harus selalu setup ulang PYTHONPATH setiap kali keluar dari virtual environment “tensorflow1”. Untuk memastikan bahwa path telah sesuai, kita dapat memeriksanya dengan perintah “echo %PYTHONPATH%”

Compile Protobufs dan eksekusi setup.py


Selanjutnya adalah mengkompilasikan file protobuf yang diperlukan untuk parameter model dan konfigurasi training pada tensorflow.

Pada Anaconda Command prompt, arahkan directory ke \models\research:

(tensorflow1) C:\> cd C:\tensorflow1\models\research

Lalu, copy dan paste perintah ini:

protoc --python_out=. .\object_detection\protos\anchor_generator.proto .\object_detection\protos\argmax_matcher.proto .\object_detection\protos\bipartite_matcher.proto .\object_detection\protos\box_coder.proto .\object_detection\protos\box_predictor.proto .\object_detection\protos\eval.proto .\object_detection\protos\faster_rcnn.proto .\object_detection\protos\faster_rcnn_box_coder.proto .\object_detection\protos\grid_anchor_generator.proto .\object_detection\protos\hyperparams.proto .\object_detection\protos\image_resizer.proto .\object_detection\protos\input_reader.proto .\object_detection\protos\losses.proto .\object_detection\protos\matcher.proto .\object_detection\protos\mean_stddev_box_coder.proto .\object_detection\protos\model.proto .\object_detection\protos\optimizer.proto .\object_detection\protos\pipeline.proto .\object_detection\protos\post_processing.proto .\object_detection\protos\preprocessor.proto .\object_detection\protos\region_similarity_calculator.proto .\object_detection\protos\square_box_coder.proto .\object_detection\protos\ssd.proto .\object_detection\protos\ssd_anchor_generator.proto .\object_detection\protos\string_int_label_map.proto .\object_detection\protos\train.proto .\object_detection\protos\keypoint_box_coder.proto .\object_detection\protos\multiscale_anchor_generator.proto .\object_detection\protos\graph_rewriter.proto .\object_detection\protos\calibration.proto .\object_detection\protos\flexible_grid_anchor_generator.proto

Perintah diatas akan menghasilkan python file xxx_pb2.py dari setiap xxx.proto di dalam folder  \object_detection\protos

Setelah itu, eksekusi perintah dari direktori

C:\tensorflow1\models\research:
(tensorflow1) C:\tensorflow1\models\research> python setup.py build
(tensorflow1) C:\tensorflow1\models\research> python setup.py install

Mengumpulkan dan melabeli gambar


Kita telah menyiapkan API Tensorflow Object Detection dan kita butuh mengumpulkan banyak gambar untuk di training tensorflow. Pada tutorial ini kita akan menggunakan kemasan botol plastic dan kaleng pada minuman yang berbeda merk.

Mengumpulkan gambar


Tensorflow membutuhkan ratusan objek gambar untuk di train agar mendapatkan hasil deteksi objek yang bagus.

Tensorflow Object Detection - Spesimen Objek Training
Tensorflow Object Detection - Spesimen Objek Training

Objek yang akan kita kenali ada enam macam jenis spesimen, yaitu: botol plastic (Aqua, Prima dan Le Minerale) serta kemasan minuman kaleng (Sprite, Coca-cola dan Pocari Sweat).

Pastikan ukuran gambar tidak terlalu besar, oleh karena itu saya buatkan Python script untuk membuat gambar lebih kecil dan memiliki ukuran yang sama

from PIL import Image
import os, sys
path = r"C:\xxx\xxx\xxxxxx\\"
dirs = os.listdir( path )
def resize():
    i = 1 
    for item in dirs:
        if os.path.isfile(path+item):
            im = Image.open(path+item)
            f, e = os.path.splitext(path+item)
            imResize = im.resize((720,540), Image.ANTIALIAS)
            imResize.save('Image_'+str(i)+'.jpg', 'JPEG', quality=90)
            i=i+1
            print("done image " + str(i))
resize()

Setelah kita memiliki gambar yang diinginkan, pisahkan menjadi dua bagian. 20% masuk ke dalam folder \object_detection\images\test sisanya (80%) pindahkan ke dalam \object_detection\images\train.

Labelling gambar


Setelah semua terkumpul, sekarang saatnya untuk memberi label pada setiap gambar. Labelimg adalah software yang mudah digunakan untuk melabeli gambar, dengan instruksi yang jelas dan dapat anda lihat di dalam repository Labelimg Github.

Tensorflow Object Detection -  labeling object
Tensorflow Object Detection - labeling object

Total semua gambar yang saya beri label adalah 225 gambar. Label gambar tersebut di simpan dalam bentuk .xml file. File xml ini akan digunakan untuk membuat TFRecords yang merupakan salah satu input TensorFlow trainer. Setelah kita memberikan label pada setiap gambar, maka, masing-masing gambar akan memiliki satu .xml file di dalam folder \test dan \train.

Membuat Data Training

Setelah selesai melabeli gambar, sekarang saat nya untuk membuat training tensorflow TFRecords dengan menggunakan script xml_to_csv.py dan generate_tfrecord.py dari link github ini.

Pertama-tama, file .xml akan digunakan untuk membuat file .csv yang meliputi semua informasi gambar pada folder train dan test. Eksekusi perintah dari folder \object_detection:

(tensorflow1) C:\tensorflow1\models\research\object_detection> python xml_to_csv.py

Perintah tersebut akan menghasilkan train_labels.csv dan test_labels.csv yang berada di dalam folder \object_detection\images.
Selanjutnya buka file generate_tfrecord.py dengan menggunakan text editor, lalu ubah label map pada baris 31.

def class_text_to_int(row_label):
    if row_label == 'botol plastik-Aqua':
        return 1
    elif row_label == 'botol plastik-Prima':
        return 2
    elif row_label == 'botol plastik-Le Minerale':
        return 3
    elif row_label == 'kaleng-CocaCola':
        return 4
    elif row_label == 'kaleng-Sprite':
        return 5
    elif row_label == 'kaleng-Pocari Sweat':
        return 6
    else:
        None

Selanjutnya adalah membuat TFRecord dengan mengesekusi dua perintah di bawah ini dari dalam folder \object_detection:

python generate_tfrecord.py --csv_input=images\train_labels.csv --image_dir=images\train --output_path=train.record

python generate_tfrecord.py --csv_input=images\test_labels.csv --image_dir=images\test --output_path=test.record

Membuat label map dan konfigurasi training

Hal terakhir yang dilakukan sebelum melakukan training tensorflow adalah membuat label map yang menyesuaikannya dengan konfigurasi training.

Label map


Label map memberitahu Tensorflow trainer untuk setiap object, dengan cara mendefinisikan nama kelas ke dalam nomer ID kelas tersebut. Dengan menggunakan text editor, buatlah file dengan nama labelmap.pbtxt di dalam folder:
C:\tensorflow1\models\research\object_detection\training

Konfigurasi Training


Untuk menjalankan konfigurasi yang tepat, pipeline training object detection harus disesuaikan. Hal tersebut digunakan untuk mendefinisikan model dan parameter apa yang digunakan. Ini merupakan langkah terakhir sebelum kita menjalankan training.

Masuk ke dalam folder: C:\tensorflow1\models\research\object_detection\samples\configs, lalu copy file faster_rcnn_inception_v2_pets.config

ke dalam folder
C:\tensorflow1\models\research\object_detection\training  dan edit sesuai dengan konfigurasi di bawah ini:

Menjalankan Training

Sekarang saatnya kita menjalankan training untuk objek yang dikehendaki. Pada Anaconda Prompt navigasikan ke folder  \object_detection, lalu training di mulai dengan mengeksekusi perintah:

python train.py --logtostderr --train_dir=training/ --pipeline_config_path=training/faster_rcnn_inception_v2_pets.config

Jika training ter-setup dengan benar, Tensorflow akan memulai inisiasi training tensorflow. Pada inisialisasi ini dibutuhkan waktu sekitar 30 detik sebelum training dijalankan. Proses training akan terlihat seperti pada gambar di bawah ini:

Tensorflow Object Detection - Progress training
Tensorflow Object Detection - Progress training

Setiap step training tensorflow akan terlihat loss yang dihasilkan. Dimulai dari angka tinggi dan terus mengecil. Direkomendasikan untuk terus melakukan training hingga loss di bawah 0.05 dengan steady.

Jumlah loss akan berbeda dari setiap model yang akan di pakai untuk training. Sebagai contoh jika menggunakan MobileNet-SSD, loss akan di mulai dari angka 20 dan terus dilakukan training hingga di bawah angka 2.

Progress dari training tensorflow dapat di lihat melalui TensorBoard. Untuk membukanya, kita harus menjalankan Anaconda Prompt pada window lain, aktivasi environment tensorflow1, lalu setup kembali PYTHONPATH seperti yang telah dijelaskan pada bagian sebelumnya.

Perintah untuk mengeksekusi training adalah:

(tensorflow1) C:\tensorflow1\models\research\object_detection>tensorboard --logdir=training

Perintah di atas akan membuka webpage pada local machine pada alamat (yang akan terlihat setelah eksekusi tensorboard) sesuai dengan nama komputer anda:

[training tensorflow] Address Tensorboard

Alamat web ini dapat di buka dengan menggunakan web browser apa saja. Tensorboard memberikan informasi dalam bentuk grafik yang menunjukkan progress training tensorflow. Grafik yang perlu diperhatikan adalah Loss, grafik ini menunjukkan loss secara keseluruhan dari klassifier seiring berjalannya waktu.

Tensorflow Object Detection - Tampilan tensorboard
Tensorflow Object Detection - Tampilan tensorboard

Training tensorflowtersebut secara berkala akan menyimpan data checkpoint setiap sepuluh menit. Untuk mengentikan training, kita dapat melakukannya dengan menekan CTRL+C pada Anaconda Prompt. Hal yang menarik adalah kita dapat menghentikan nya, lalu menjalankan kembali proses training tanpa harus di mulai dari awal.

Export Inference Graph

Setelah training selesai, langkah terakhir adalah membuat frozen inference graph (file .pb). Pada Anaconda Prompt, navigasikan ke folder \object_detection, lalu eksekusi dengan perintah:

python export_inference_graph.py --input_type image_tensor --pipeline_config_path training/faster_rcnn_inception_v2_pets.config --trained_checkpoint_prefix training/model.ckpt-XXXX --output_directory inference_graph

XXXX adalah angka paling besar pada file “model.ckpt-XXXX” (yang paling up to date).

Perintah diatas akan menghasilkan file frozen_inference_graph.pb di dalam folder \object_detection\inference_graph. File .pb adalah hasil training klasifikasi object detection.

Menggunakan Pengklasifikasian Object Detection yang telah di training

Object detection telah siap untuk digunakan!!! Edje Electronic telah membuat script untuk mendeteksi obyek berupa gambar, video dan live camera.

Sebelum menjalankan Python script tersebut, kita harus memodifikasi variable NUM_CLASSES sesuai dengan jumlah klasifikasi yang telah kita tentukan.

Untuk menjalankan Python Script, kita dapat mengeksekusi perintah “idle” di dalam Anaconda Prompt dengan menggunakan “tensorflow1” environment. Setelah Python idle window terbuka, lalu kita dapat membuka file untuk mendeteksi obyek, lalu di klik run. Pada contoh ini, kita akan menggunakan webcam untuk mendeteksi objek.

Sekian tutorial yang cukup panjang ini. Bila anda tertarik untuk menggunakan raspberry pi untuk mendeteksi object. Anda dapat melihatnya pada link ini.

Voila!! Selamat mencoba

Referensi:

https://github.com/EdjeElectronics/TensorFlow-Object-Detection-API-Tutorial-Train-Multiple-Objects-Windows-10

https://www.tensorflow.org/install/source#tested_build_configurations

https://docs.nvidia.com/deeplearning/sdk/cudnn-install/index.html

https://github.com/tensorflow/models/tree/r1.13.0

https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/detection_model_zoo.md

https://github.com/tzutalin/labelImg

https://github.com/datitran/raccoon_dataset

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.

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