Cara Menghitung Akurasi Model Deteksi Objek untuk Pemula

Setelah model deteksi objek selesai dilatih, pertanyaan berikutnya yang wajar muncul: seberapa akurat model ini sebenarnya? Cara menghitung akurasi model deteksi objek tidak sesederhana akurasi klasifikasi karena ada posisi kotak pembatas yang harus diperhitungkan. Ada beberapa metrik sederhana yang bisa kamu hitung sendiri tanpa alat berat.

Pembahasan dimulai dari Intersection over Union (IoU), lalu menghitung precision dan recall, hingga menggabungkannya menjadi mean Average Precision (mAP).

Kenapa Akurasi Model Deteksi Objek Perlu Dihitung

Model deteksi objek tidak hanya memprediksi kelas, tetapi juga lokasi objek dalam bentuk kotak pembatas. Jika kamu hanya mengandalkan akurasi klasifikasi, kamu akan melewatkan kesalahan lokasi. Model bisa saja memprediksi kelas dengan benar tetapi kotaknya meleset jauh dari objek sebenarnya.

Metrik seperti precision dan recall membantu melihat seberapa baik model menemukan objek dan seberapa tepat prediksinya. IoU mengukur seberapa pas kotak prediksi dengan kotak ground truth. Dengan kombinasi metrik ini, kamu bisa menilai kualitas model lebih menyeluruh.

Mengenal Intersection over Union (IoU)

IoU adalah metrik yang mengukur tumpang tindih antara kotak prediksi dan kotak ground truth. Rumusnya sederhana: luas irisan dibagi luas gabungan. Nilai IoU berkisar dari 0 hingga 1. Semakin mendekati 1, semakin tepat prediksi kotak model.

Untuk menghitung IoU, kamu perlu koordinat kotak dalam format (x_min, y_min, x_max, y_max). Irisan dihitung dari perpotongan area, sedangkan gabungan adalah total area kedua kotak dikurangi irisan. Sebagai contoh, jika kotak prediksi dan ground truth memiliki IoU 0,5, setengah dari area gabungan adalah irisan.

Biasanya, ambang batas IoU yang dipakai adalah 0,5. Artinya, prediksi dianggap benar jika IoU-nya minimal 0,5. Untuk beberapa kasus, ambang yang lebih tinggi seperti 0,75 juga digunakan.

Menghitung Precision dan Recall

Setelah memiliki IoU, kita bisa menentukan true positive (TP), false positive (FP), dan false negative (FN). TP adalah prediksi dengan IoU ≥ ambang dan kelas benar. FP adalah prediksi yang tidak cocok dengan ground truth mana pun atau kelasnya salah. FN adalah ground truth yang tidak terdeteksi oleh model.

Precision = TP / (TP + FP). Precision mengukur seberapa banyak prediksi yang benar dari seluruh prediksi yang dibuat. Recall = TP / (TP + FN). Recall mengukur seberapa banyak objek ground truth yang berhasil dideteksi.

Keduanya penting. Model dengan precision tinggi tetapi recall rendah akan sering melewatkan objek. Sebaliknya, recall tinggi tetapi precision rendah akan menghasilkan banyak deteksi palsu.

Mean Average Precision (mAP)

mAP adalah metrik yang paling umum digunakan untuk mengevaluasi model deteksi objek. Cara menghitungnya: urutkan prediksi berdasarkan skor kepercayaan, lalu hitung average precision (AP) untuk setiap kelas dengan mengintegrasikan area di bawah kurva precision-recall. mAP adalah rata-rata AP dari semua kelas.

Untuk pemula, menghitung mAP secara manual bisa membingungkan. Banyak library seperti TensorFlow Object Detection API atau PyTorch sudah menyediakan fungsi untuk menghitung mAP. Kamu tinggal menyiapkan data ground truth dan hasil prediksi dalam format yang sesuai.

Jika kamu ingin menyimpan hasil deteksi ke file CSV untuk analisis lebih lanjut, lihat panduan cara menyimpan hasil deteksi objek ke CSV.

Langkah Praktis Menghitung Akurasi Model Deteksi Objek

Berikut urutan langkah yang bisa kamu ikuti untuk menghitung akurasi model deteksi objek secara manual maupun dengan bantuan kode.

  1. Siapkan data ground truth dalam format yang mudah diolah, misalnya CSV atau JSON. Pastikan setiap objek memiliki label kelas dan koordinat kotak.
  2. Jalankan model pada data uji dan simpan hasil prediksi (kelas, skor kepercayaan, koordinat kotak).
  3. Hitung IoU antara setiap prediksi dan ground truth yang berpasangan. Gunakan ambang tertentu, misalnya 0,5.
  4. Tentukan TP, FP, FN berdasarkan hasil IoU dan kecocokan kelas.
  5. Hitung precision dan recall untuk setiap kelas.
  6. Hitung AP dengan mengurutkan prediksi berdasarkan skor dan mengintegrasikan kurva precision-recall.
  7. Hitung mAP sebagai rata-rata AP dari semua kelas.

Proses ini bisa diotomatisasi dengan skrip Python. Kamu bisa memanfaatkan library seperti numpy untuk perhitungan matriks dan pandas untuk mengelola data. Jika ingin memvisualisasikan hasilnya, gunakan library seperti matplotlib atau seaborn.

Sebelum menghitung akurasi, pastikan model sudah diuji dengan benar. Ada baiknya kamu mengikuti 7 langkah uji model computer vision sebelum dipakai agar hasil evaluasi lebih valid.

Contoh Perhitungan Sederhana

Misalkan kamu memiliki satu gambar dengan satu objek ground truth (kelas: mobil). Model memprediksi dua kotak: satu dengan IoU 0,8 dan skor 0,9 (kelas mobil), satu lagi dengan IoU 0,6 dan skor 0,7 (kelas mobil). Dengan ambang IoU 0,5, kedua prediksi dianggap TP karena IoU ≥ 0,5. Namun, prediksi kedua sebenarnya duplikat. Dalam praktik, kita memilih prediksi dengan skor tertinggi sebagai TP dan sisanya sebagai FP. Jadi TP=1, FP=1, FN=0. Precision = 1/(1+1)=0,5. Recall = 1/(1+0)=1,0.

Contoh ini menunjukkan bahwa meskipun recall sempurna, precision bisa rendah karena adanya deteksi ganda. Oleh karena itu, keduanya perlu dilihat bersama.

Alat Bantu untuk Menghitung Akurasi

Menghitung metrik secara manual memang merepotkan. Beberapa alat berikut bisa mempermudah:

  • TensorFlow Object Detection API: menyediakan skrip evaluasi yang menghitung mAP secara otomatis.
  • PyTorch torchvision: memiliki fungsi untuk menghitung IoU dan metrik deteksi.
  • COCO API: sering dipakai untuk evaluasi model deteksi objek dengan format COCO.
  • scikit-learn: bisa dipakai untuk menghitung precision, recall, dan kurva PR untuk klasifikasi, lalu diadaptasi untuk deteksi.

Jika kamu tertarik dengan computer vision dan ingin mencoba proyek lain, ada ide proyek computer vision untuk pemula dengan kamera bekas yang bisa jadi inspirasi.

Untuk proyek yang melibatkan perangkat keras seperti Arduino, kamu mungkin perlu tips belajar Arduino untuk pemula: mulai dari nol tanpa bingung agar tidak tersesat saat merangkai sensor. Jika kamu menggunakan HP Android untuk memantau hasil deteksi, atur mode hemat daya di HP Android supaya baterai lebih tahan lama.

Ringkasan

Menghitung akurasi model deteksi objek memerlukan pemahaman tentang IoU, precision, recall, dan mAP. Mulailah dengan menghitung IoU untuk setiap prediksi, tentukan TP/FP/FN, lalu hitung precision dan recall per kelas. Untuk evaluasi menyeluruh, gunakan mAP. Manfaatkan library yang tersedia agar prosesnya lebih cepat. Selalu uji model dengan data yang representatif dan pahami arti metrik sebelum mengambil keputusan.

Pertanyaan yang Sering Diajukan

Apa itu IoU dan mengapa penting?

IoU (Intersection over Union) mengukur seberapa besar tumpang tindih antara kotak prediksi dan kotak ground truth. Nilainya dari 0 sampai 1. IoU penting karena menjadi dasar penentuan apakah suatu prediksi dianggap benar atau salah dalam deteksi objek.

Berapa ambang IoU yang umum digunakan?

Ambang IoU yang umum adalah 0,5. Artinya, prediksi dianggap benar jika IoU-nya minimal 0,5. Untuk aplikasi yang membutuhkan presisi tinggi, ambang 0,75 atau lebih tinggi bisa dipakai.

Apakah mAP harus dihitung manual?

Tidak harus. Banyak library dan framework menyediakan fungsi untuk menghitung mAP secara otomatis, misalnya TensorFlow Object Detection API atau COCO API. Menghitung manual berguna untuk memahami konsep, tetapi untuk produksi sebaiknya gunakan alat yang sudah teruji.