Menghitung Mean Intersection over Union (mIoU)

Pada postingan yang lalu telah dibahas cara menghitung matriks konfusi. Matriks ini dapat digunakan untuk menghitung akurasi. Saat ini perhitungan akurasi dengan Mean Intersection over union (miou) banyak dipakai mengingat metode ini memberikan perhitungan yang ketat. Hal ini sangat memudahkan analisa dimana % akurasi model saat ini yang sudah sangat akurat (90% lebih).

Dengan perhitungan yang ketat diharapkan model usulan dapat dengan mudah membandingkan antara satu metode dengan metode lainnya. Prinsip dasarnya adalah mIoU membandingkan intersection prediksi dan ground truth (aktual) dengan union (gabungan) prediksi dan ground truth.

Secara logis, IoU lebih kecil dari % acurasi karena bagian penyebut hanya melihat sisi prediksi saja, yakni Area of Overlap/area of Prediction. Secara matematis persamaan berikut menunjukan IoU dengan tambahan False Negative (FN) yang merupakan sisi ground truth yang salah tebak.

Jika pada postingan yg lalu akurasi dapat langsung dihitung dengan menjumlahkan diagonal matriks konfusi sebelum dibagi total area, mean IoU dihitung dengan cara mererate seluruh IoU tiap-tiap kelas/segmen. Misal kasus berikut:

Matriks konfusi di atas menunjukan baris sebagai prediksi dan kolom sebagai nilai aktual/groundtruth. Misal, kita ingin menghitung IoU kelas ke-3 (yang berwarna kuning di atas). Dari rumus 8 di atas True Positive (TP) sebesar 62.413. Berikutnya menghitung False Positive (FP) dan False Negative (FN).

Nilai yang disorot warna hijau di atas merupakan FP dimana memprediksi kelas ke-3 tetapi hasilnya kelas yang lain. Sementara nilai yang disorot warna merah menunjukan nilai FN dimana ‘memprediksi yang bukan kelas ke-3 tetapi secara aktual (kolom) adalah kelas ke-3. Koding Matlab adalah sebagai berikut untuk kelas ke-3.

  • iou_3=matriks(3,3)/(sum(matriks(3,1:end))+sum(matriks(1:end,3))-matriks(3,3))

Bisa saja Anda menggunakan teknik yang lain misalnya menjumlahkan satu persatu tiap elemen, tapi lebih panjang sebagai berikut. Tapi yang penting logikanya mengerti.

  • iou_3=matriks(3,3)/( matriks(3,3)+ matriks(3,1)+ matriks(3,2)+ matriks(3,3)+ matriks(3,4)+ matriks(3,5)+ matriks(3,6)+ matriks(1,3)+ matriks(2,3)+ matriks(4,3)+ matriks(5,3)+ matriks(6,3)

Untuk menghitung rata-rata IoU, atau disingkat mIoU, caranya adalah menghitung IoU seluruh kelas, lalu merata-ratakannya seperti rumus 9. Diperoleh miou = 0.6391. Selamat mencoba.