Breaking News

Membuat Program Image Detection Machine Learning Sederhana Dengan Python, TensorFlow, dan ImageAI

 



Computer vision atau penglihatan komputer adalah bidang interdisipliner yang membahas bagaimana komputer dapat direkayasa untuk mendapatkan pemahaman tingkat tinggi dari masukan data berupa gambar atau video digital. Dari perspektif teknik, bidang ini berupaya mengotomasikan tugas-tugas yang dapat dilakukan oleh sistem penglihatan manusia.

 "Penglihatan komputer berkaitan dengan ekstraksi otomatis, analisis, dan pemahaman informasi yang berguna dari satu gambar atau urutan gambar. Ini melibatkan pengembangan dasar teoritis dan algoritmik untuk mencapai pemahaman visual otomatis".

Sebagai disiplin ilmu, penglihatan komputer berkaitan dengan teori di balik sistem buatan yang mengekstraksi informasi dari gambar. Data gambar dapat mengambil banyak bentuk, seperti urutan video, pandangan dari beberapa kamera, atau data multi-dimensi dari pemindai medis.

Dengan kecanggihan bahasa pemrograman sekarang, orang awam pun bisa dengan mudah mencoba teknologi computer vision ini.

Pada artikel ini, akan dibahas mengenai pengimplementasian computer vision dalam hal pendeteksian objek dengan menggunakan Python.

Sebelum memulai, pastikan anda sudah paham cara menggunakan Google Colab Research yang dapat diakses melalui colab.research.google.com

Dengan menggunakan layanan dari Google tersebut, tidak perlu banyak berpikir untuk mengunduh versi standalone dari python dan juga compilernya.

Perlu dipahami pula bahwa untuk image atau gambar yang akan kita jadikan bahan percobaan pendeteksian objek ini, kita memerlukan contoh gambar yang harus diunggah secara manual oleh kita sendiri ke Jupyter Notebook pada Google Colab.

Caranya yaitu sebagai berikut.





Selanjutnya, ketikkan keempat script di masing-masing blok kode seperti dibawah ini di notebook.



Dan kemudian lakukan “Run All” seperti sebagai berikut.


Apabila terdapat warning atau semacamnya setelah di run, abaikan saja.

Setelah itu, tambahkan blok kode baru dengan cara seperti dibawah ini dan tambahkan script

from imageai.Detection import ObjectDetection



Tambah lagi beberapa blok kode baru dan pada masing-masing blok secara berurutan tambahkan script:

detector = ObjectDetection()

 

import urllib.request

urllib.request.urlretrieve('https://github.com/OlafenwaMoses/ImageAI/releases/download/1.0/yolo-tiny.h5''model.h5')

 

model_path = "model.h5"

input_path = "image.jpg"

output_path = "newimage.jpg"

 

detector.setModelTypeAsTinyYOLOv3()

 

detector.setModelPath(model_path)

 

detector.loadModel()

 

detection = detector.detectObjectsFromImage(input_image=input_path, output_image_path=output_path)

 

for eachItem in detection:

    print(eachItem["name"] , " : ", eachItem["percentage_probability"])

 

from IPython.display import Image

Image(filename='newimage.jpg')

 

Hasil akhirnya akan terlihat seperti dibawah ini.


Langkah terakhir yang perlu dilakukan adalah melakukan run atau menjalankan seluruh script yang telah diketikkan dengan menggunakan “Run All” lagi seperti yang sebelumnya telah diperlihatkan caranya.

Setelah menjalankan seluruh script, dapat dilihat objek-objek apa saja dari gambar yang diunggah tadi yang terdeteksi oleh program pendeteksi objek sederhana yang kita telah buat beserta persentase keakuratan program dalam mendeteksi objek-objek yang ada dalam gambar.


Dan, visualisasi dari hasil pendeteksiannya pun diperlihatkan seperti dibawah ini.

Pada blok ke-10 seperti dibawah ini, kita juga dapat merubah referensi repository pendeteksian objeknya. Sekadar info, repository yang tadi kita gunakan diatas adalah YOLO Tiny V3.


Anda hanya perlu merubah URL yang terdapat didalam kurung tersebut apabila ingin mencoba repository lain. Beberapa repository yang dapat anda coba yaitu:

·         o Keras RetinaNet

https://github.com/fizyr/keras-retinanet/releases/download/0.5.1/resnet50_coco_best_v2.1.0.h5

·         o YOLO V3

https://github.com/OlafenwaMoses/ImageAI/releases/download/essential-v4/pretrained-yolov3.h5


Namun, setelah anda berganti repository, tidaklah berarti tinggal dijalankan lagi scriptnya secara keseluruhan, tetapi ada yang harus dirubah pada blok ke-12 seperti dibawah ini.


Script tersebut hanya berlaku dan berfungsi apabila menggunakan repo YOLO Tiny V3. Untuk repo RetinaNet dan YOLO V3 harus menggunakan secara berurut yaitu setModelTypeAsRetinaNet()dan setModelTypeAsYOLOv3()

Setelah memutuskan mana repo yang ingin digunakan, lakukan Kembali “Run All”.

 

Tidak banyak rincian mengenai scriptnya itu sendiri yang dapat saya jelaskan, tetapi anda bisa mulai berpikir dari apa yang harus dilakukan apabila ingin menggunakan gambar lain dalam pendeteksian objek ini.

 

Selamat bereksperimen.

No comments