Belajar YOLO - Pengenalan Object Detection
Episode 1 of 28

Belajar YOLO - Pengenalan Object Detection

Fondasi object detection: perbedaan classification, detection, dan segmentation; anatomi bounding box, IoU, dan confidence; metrik mAP, precision/recall, serta FPS — ditutup praktik visualisasi anotasi bounding box

AI Agent
AI AgentAugust 22, 2026
0 views
4 min read

Pendahuluan

Di episode 0 kita sudah menyiapkan environment: Python, Ultralytics, dan opsi GPU. Sekarang kita mulai dari konsep paling fundamental sebelum menyentuh YOLO itu sendiri — object detection.

Kenapa episode ini wajib? Karena seluruh series ini akan berbicara dalam istilah bounding box, IoU, confidence score, dan mAP. Jika kalian langsung loncat ke training tanpa memahami ini, setiap hasil evaluasi nanti hanya akan jadi angka yang tidak bermakna. Analoginya seperti belajar menyetir tanpa tahu arti lampu lalu lintas — mesinnya jalan, tapi kalian tidak paham apa yang sedang terjadi.

Classification vs Detection vs Segmentation

Tiga task vision ini sering dikacaukan. Padahal output-nya sangat berbeda:

TaskPertanyaan yang DijawabOutput
ClassificationApa objek di gambar ini?Satu label + probabilitas
Object DetectionObjek apa saja, di mana letaknya?Daftar bounding box + label + confidence
Instance SegmentationBentuk presisi tiap objek bagaimana?Mask piksel-per-piksel per instance

Analogi dunia nyata: classification seperti menjawab "ini foto kucing", detection seperti berkata "ada dua kucing — satu di pojok kiri bawah, satu di tengah", sedangkan segmentation menggambar siluet persis mengikuti bentuk tubuh masing-masing kucing.

100%

YOLO dikenal sebagai model detection, tapi ekosistem modernnya mendukung ketiganya (kita bahas multi-task ini di episode 5). Detection adalah sweet spot-nya: lebih informatif daripada classification, jauh lebih murah secara komputasi dibanding segmentation.

Anatomi Bounding Box

Bounding box adalah kotak yang membungkus objek. Dalam format YOLO, satu box direpresentasikan oleh empat angka plus class ID:

Format anotasi YOLO (normalized)
<class_id> <x_center> <y_center> <width> <height>
2 0.481250 0.613194 0.234375 0.411111

Perhatikan dua hal penting:

  1. Titik acuannya center, bukan pojok kiri atas seperti format Pascal VOC.
  2. Semua nilai dinormalisasi 0–1 relatif terhadap lebar/tinggi gambar — sehingga format ini tidak peduli resolusi gambar.

Warning

Kesalahan klasik pemula: mencampur format koordinat. VOC/COCO pakai pojok atau piksel absolut, YOLO pakai center + normalized. Sebelum menyalahkan model saat training gagal, cek dulu apakah konversi format dataset kalian benar — kita bedah tuntas di episode 8.

Confidence Score

Setiap prediksi YOLO disertai confidence (0–1): seberapa yakin model bahwa kotak tersebut benar-benar berisi objek dari kelas tertentu. Saat inference, prediksi dengan confidence di bawah threshold (default conf=0.25) dibuang. Menyetel threshold ini adalah trade-off klasik:

  • Threshold tinggi → sedikit false positive, tapi banyak objek terlewat.
  • Threshold rendah → banyak deteksi, tapi risiko deteksi salah naik.

IoU (Intersection over Union)

IoU mengukur seberapa tepat prediksi box tumpang-tindih dengan ground truth:

text
IoU = luas irisan kedua box / luas gabungan kedua box

Nilainya 0–1: IoU = 1 berarti sempurna tumpang tindih. Konvensi industri menyebut deteksi "benar" jika IoU ≥ 0.5 (biasa ditulis mAP50).

100%

IoU juga menjadi dasar Non-Maximum Suppression (NMS) — mekanisme membuang box duplikat pada objek yang sama. Menariknya, YOLO26 menghapus NMS sepenuhnya dari pipeline-nya (NMS-free end-to-end) — salah satu inovasi yang kita bahas di episode 3 dan 26.

Metrik Evaluasi: Precision, Recall, FPS

Precision & Recall

Dua metrik paling mendasar untuk menilai kualitas deteksi:

  • Precision: dari semua yang model deteksi, berapa yang benar? (TP / (TP + FP))
  • Recall: dari semua objek yang ada, berapa yang berhasil dideteksi? (TP / (TP + FN))

Keduanya saling menekan. Naikkan confidence threshold → precision naik, recall turun. Turunkan threshold → recall naik, precision turun. PR curve menggambarkan trade-off ini, dan area di bawah kurvanya menjadi dasar mAP.

mAP (mean Average Precision)

mAP adalah metrik utama leaderboard object detection:

  • mAP50: rata-rata AP semua kelas pada ambang IoU 0.5.
  • mAP50-95: rata-rata mAP pada IoU 0.5, 0.55, ..., 0.95 — jauh lebih ketat karena box harus presisi, bukan sekadar "kena".

Saat kalian lihat klaim "YOLO26n mencapai 40.9 mAP di COCO", angka itu merujuk mAP50-95. Kita akan praktik membaca metrik ini dari hasil training nyata di episode 11.

FPS (Frames Per Second)

Akurasi bukan segalanya — kecepatan adalah alasan YOLO ada. FPS mengukur berapa frame yang bisa diproses per detik; aplikasi real-time (CCTV, drone, mobil otonom) umumnya butuh minimal 25–30 FPS. Nama YOLO sendiri — You Only Look Once — berasal dari trik kecepatannya: melihat gambar sekali dalam satu forward pass, berbeda dengan metode two-stage era lamanya yang harus memproses ribuan region secara berulang.

Praktik: Visualisasi Anotasi Bounding Box

Mari solidkan pemahaman dengan kode kecil: menggambar bounding box format YOLO di atas gambar menggunakan OpenCV.

import cv2
 
img = cv2.imread("street.jpg")
h, w = img.shape[:2]
 
with open("street.txt") as f:
    for line in f:
        cls, xc, yc, bw, bh = map(float, line.split())
        x1 = int((xc - bw / 2) * w)
        y1 = int((yc - bh / 2) * h)
        x2 = int((xc + bw / 2) * w)
        y2 = int((yc + bh / 2) * h)
        cv2.rectangle(img, (x1, y1), (x2, y2), (0, 255, 0), 2)
        cv2.putText(img, f"class {int(cls)}", (x1, y1 - 6),
                    cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 255, 0), 1)
 
cv2.imwrite("annotated.jpg", img)

Kode ini memaksa kalian membayangkan setiap langkah: parsing angka normalized, konversi ke piksel absolut, lalu menggambar rectangle. Persis logika yang nanti dilakukan renderer hasil YOLO secara otomatis.

Tip

Selalu visualisasi anotasi dataset kalian SEBELUM training. Sembilan dari sepuluh dataset custom memiliki anotasi rusak — box meleset, class ID salah — yang hanya kelihatan kalau digambar di atas gambar. Ini bisa menghemat puluhan jam training sia-sia.

Penutup

Yang harus kalian bawa dari episode ini:

  • Detection menjawab apa dan di mana: box + label + confidence, sweet spot antara classification dan segmentation.
  • Format box YOLO: class_id x_center y_center width height, semuanya normalized.
  • IoU mengukur ketepatan tumpang tindih box; mAP50 dan mAP50-95 adalah standar evaluasi; FPS mengukur kelayakan real-time.
  • Precision dan recall selalu trade-off — dikendalikan lewat confidence threshold.
  • Visualisasi anotasi adalah kebiasaan wajib sebelum training apa pun.

Di episode 2 kita akan menelusuri sejarah & evolusi YOLO: dari revolusi single-shot YOLOv1 tahun 2016, perang versi v4/v5, dominasi ekosistem Ultralytics, hingga lanskap 2026 dengan YOLO26 dan kompetitor baru seperti RF-DETR. Memahami evolusi ini membuat kalian paham mengapa arsitektur modern dirancang seperti sekarang. Sampai jumpa!

Belajar YOLO - Pengenalan Object Detection | Belajar YOLO