Cara Kerja Object Detection dengan YOLO (You Only Look Once)
Nuzulul Khairu Nissa Maret 23, 2023 6 min read
Saat ini sebagian besar dari kita sudah sering melihat bahkan merasakan fitur-fitur canggih berkat perkembangan teknologi.
Beberapa di antaranya adalah:
- teknologi deteksi suhu tubuh otomatis,
- deteksi pelat nomor kendaraan,
- deteksi pemakaian masker, dan
- deteksi jumlah kendaraan.
Hal-hal tersebut di atas adalah contoh aplikasi kecerdasan buatan atau Artificial Intelligence (AI).
Pada dasarnya, AI adalah suatu simulasi dari kecerdasan yang dimiliki oleh manusia, yang dimodelkan di dalam mesin, dan diprogram supaya bisa berpikir layaknya manusia.
Contoh populernya adalah aplikasi prediksi umur yang pernah booming beberapa tahun lalu dan saat ini, tentu saja, ChatGPT.
Aplikasi itu disebut “mampu memprediksi” berapa umur seseorang dengan pendekatan pengenalan wajah (facial recognition), yang merupakan contoh penerapan teknologi computer vision.
Computer vision ini adalah subbidang dari AI, yang berfokus pada analisis informasi dari suatu gambar atau citra.
Task lain yang dapat diselesaikan oleh computer vision adalah object detection.
Terdapat berbagai macam algoritma untuk deteksi objek yang berkembang saat ini, di antaranya adalah:
- Region-based Convolutional Neural Network (R-CNN),
- Fast R-CNN, dan
- Faster R-CNN.
Lagi, di industri data, ada satu model deteksi objek yang cukup terkenal karena kecepatan dan akurasinya, yaitu You Only Look Once (YOLO).
Nama-nama model yang kreatif seperti ini dinilai lumrah terjadi di data industry. Contoh lainnya yang Pacmann pernah bahas adalah LOLNeRF (model yang mampu menghasilkan rekonstruksi gambar 3D yang dilatih hanya dengan satu gambar) dalam artikel Google Research, 2022 and Beyond.
Apa itu YOLO?
You Only Look Once (YOLO) merupakan salah satu model deep learning yang diusulkan pertama kali oleh Joseph Redmond pada tahun 2015.
Hingga saat ini, YOLO memiliki beberapa versi, dan tentunya telah mengalami perkembangan dari satu versi ke versi terbarunya.
Saat artikel ini ditulis, YOLO sudah sampai ke versi ketujuhnya–YOLOv7.
Di versi yang dirilis pada Oktober 2021, yakni YOLOv5n6, model ini menawarkan banyak fitur dan perbaikan bugs di versi sebelumnya dan memiliki ~75% lebih sedikit parameter dibandingkan model sebelumnya.
Oleh karena itu, model ini cukup kecil dan ringan untuk dijalankan di perangkat dengan daya komputasi mobile sekalipun.
Bagaimana YOLO bekerja?
Algoritma YOLO menerapkan neural network pada sebuah gambar dan membagi input gambar menjadi sejumlah grid, lalu memprediksi bounding box serta probabilitas untuk masing-masing grid.
Pada gambar berikut diilustrasikan bounding box untuk kelas dog, bicycle, dan truck.
Untuk mendapatkan bounding box, dilakukan proses konvolusi dari input gambar, sehingga hasil akhirnya akan diperoleh ukuran bounding box sebesar SxSx(B*5+C) dengan B adalah banyaknya bounding box dalam 1 grid, dan C adalah banyaknya class yang dapat dideteksi.
Nilai B dikalikan dengan 5 karena sebuah bounding box memiliki 5 nilai yang perlu disimpan di antaranya:
- koordinat x,
- koordinat y,
- width (lebar),
- height (tinggi), dan
- confidence score (nilai probabilitas bounding box yang mendeteksi sebuah objek).
Semua atribut pada bounding box melalui proses normalisasi, sehingga akan menghasilkan nilai antara 0 dan 1.
Koordinat x dan y akan dinormalisasi dengan menyesuaikan titik kiri atas dari grid yang bersangkutan.
Width (lebar) dan height (tinggi) juga akan dinormalisasi menyesuaikan dengan ukuran gambar.
Ilustrasi proses ini dapat dilihat pada gambar berikut.
Kelebihan dan kelemahan YOLO
Beberapa kelebihan YOLO di antaranya sebagai berikut:
- Dapat melakukan pengenalan objek secara real-time.
- Tergolong cepat karena arsitektur frame detection-nya menggunakan model regresi dan tidak dibutuhkan pipeline yang kompleks.
- Mempertimbangkan unsur global dari gambar yang diprediksi, secara implisit bisa mengodekan informasi kontekstual dari gambar.
- Mempelajari representasi objek yang dapat digeneralisasikan. Oleh karena itu, mudah diterapkan pada input gambar baru.
Sementara itu, kelemahan YOLO adalah sebagai berikut:
- Walaupun bisa cepat mengidentifikasi objek pada gambar, YOLO harus berupaya keras untuk melokalisasi beberapa objek secara tepat, terutama objek berukuran kecil.
Arsitektur YOLO
Arsitektur dari algoritma YOLO menggunakan Convolutional Neural Network yang memiliki 24 convolutional layers dan diikuti oleh 2 fully connected layers.
Convolutional layer berfungsi untuk mengekstraksi fitur dari input gambar, sedangkan fully connected layer berperan dalam memprediksi probabilitas output dan koordinat.
Perbandingan performa YOLO
Untuk mengetahui bagaimana perbandingan tingkat performa model YOLO, dilakukan komparasi terhadap model deteksi objek lain menggunakan dataset dari lukisan-lukisan Picasso dan dataset People-Art.
Berdasarkan perbandingan nilai Precision dan Recall pada ilustrasi berikut, dapat disimpulkan bahwa model YOLO unggul dibandingkan dengan 4 model objek deteksi lain, yaitu D&T, RCNN, Poselets dan DPM.
Contoh kasus penerapan YOLO
Penerapan YOLO dapat ditemukan secara luas di berbagai bidang kehidupan.
Misalnya, pada suatu area terlarang (restricted area), YOLO bisa membantu petugas keamanan untuk secara otomatis melakukan deteksi, apabila ada orang yang memasuki area itu.
Atau pada kasus lahan parkir, YOLO juga dapat dieksplorasi untuk menghitung ada berapa kendaraan yang telah mengisi lahan, lalu memprediksi sisa lahan yang masih dapat diisi kendaraan lainnya.
Ada pula autonomous car yang sistem kerjanya mendeteksi objek (kendaraan lain, orang, area parkir, dll.) di sekitar mobil itu dengan tujuan menghindari tabrakan karena tidak ada pengemudi manusia yang mengendalikan mobil tersebut.
Selain YOLO, Pacmann juga pernah membahas penerapan computer vision untuk mengawasi lalu lintas.
Tertarik mengeksplorasi tentang machine learning model dan belajar mendalam tentang data artficial intelligence dan machine learning?
Pacmann punya beberapa program yang cocok untuk kamu, yaitu AI and ML Engineering Program.
Di program ini, kamu akan belajar mendalam tentang artificial intelligence dan machine learning sampai dengan melakukan deployment model kamu sendiri.
Untuk mengetahui informasi lebih lanjut mengenai program ini, silakan menuju halaman AI and ML Engineering Program.
Further reading:
You Only Look Once: Unified, real-time object detection
Artikel Popular
Big Data dan Data Mining: Perbedaan dan Hubungannya
June 5, 2023
Mengenal Lebih Jauh tentang Neural Network
June 2, 2023
10 Rekomendasi Blog Data Science Terbaik untuk Diikuti
June 1, 2023
Rekomendasi Course Data Engineering Bersertifikat
May 31, 2023
Bagaimana Machine Learning (ML) Dapat Bantu Mencegah Serangan Phishing
May 30, 2023