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