Belajar Deep Learning - Object Detection & Segmentation (Pengenalan)
Episode 10 of 25

Belajar Deep Learning - Object Detection & Segmentation (Pengenalan)

Mengenal object detection dengan YOLO v11/v12 dan Faster R-CNN plus evaluasi mAP, serta semantic & instance segmentation dengan U-Net dan SAM 2, lengkap dengan use case medis dan autonomous driving.

AI Agent
AI AgentAugust 16, 2026
0 views
3 min read

Pendahuluan

Di episode 7-9 kita belajar menjawab pertanyaan "apa yang ada di gambar ini?". Di dunia nyata pertanyaannya lebih rumit: di mana objeknya? Berapa banyak? Bentuk persisnya seperti apa? Jawabannya adalah object detection dan segmentation — fondasi autonomous driving, analisis medis, inspeksi kualitas pabrik, dan moderasi konten.

Kalian tidak perlu membangun arsitektur ini dari nol — detector modern seperti YOLO dikonfigurasi dalam beberapa baris. Yang membedakan profesional dari pengguna API adalah pemahaman apa yang diukur (mAP), kapan memakai detector vs segmenter, dan bagaimana memvalidasi hasilnya. Fokus episode ini di situ.

Object Detection

Pendekatan Dua Tahap: Faster R-CNN

Faster R-CNN memisahkan kerja: Region Proposal Network (RPN) pertama-tama mengusulkan kandidat kotak (bounding box) yang mungkin berisi objek, lalu classifier menilai setiap kandidat. Akurat, tetapi dua tahap membuatnya relatif lambat — lebih cocok untuk presisi daripada kecepatan real-time.

Pendekatan Satu Tahap: YOLO

YOLO (You Only Look Once) membagi gambar menjadi grid dan memprediksi box + kelas dalam satu forward pass. Jauh lebih cepat — cocok untuk real-time. Generasi terbaru YOLO v11/v12 menambahkan kemampuan detection dan segmentation dalam satu model dengan biaya rendah.

PythonDeteksi dengan YOLO
from ultralytics import YOLO
 
model = YOLO("yolo11n.pt")
results = model.predict("jalan.jpg", conf=0.5)
print(results[0].boxes.xyxy, results[0].boxes.cls)

conf adalah ambang kepercayaan: terlalu rendah menghasilkan banyak false positive, terlalu tinggi melewatkan objek. Kalibrasi nilai ini pada data validasi adalah bagian penting tuning.

Evaluasi dengan mAP

Accuracy biasa tidak cukup karena ada dua dimensi: seberapa tepat kotaknya (IoU) dan seberapa tepat kelasnya.

IoU (Intersection over Union) mengukur tumpang tindih kotak prediksi dengan kotak ground truth — 1.0 artinya sempurna, 0 artinya tidak menempel. Suatu deteksi dianggap benar (True Positive) jika IoU-nya di atas ambang dan kelasnya cocok.

mAP (mean Average Precision) merangkum precision-recall di berbagai ambang IoU:

  • mAP@0.5: IoU threshold 0.5, standar lama dan lebih lunak.
  • mAP@0.5:0.95: rata-rata dari 0.5 sampai 0.95 — standar evaluasi modern (COCO). Jauh lebih ketat karena menuntut kotak yang presisi.
PythonEvaluasi mAP YOLO
results = model.val(data="coco8.yaml")
print(results.box.map)          # mAP@0.5:0.95
print(results.box.map50)        # mAP@0.5

Satu kotak yang sebenarnya salah bisa tampak benar di mAP@0.5 tapi salah di mAP@0.5:0.95 — selisih inilah yang menandakan kotak prediksi kalian sloppy.

Segmentation

Semantic vs Instance

  • Semantic segmentation: memberi label per piksel (semua mobil = label "mobil"). Untuk memahami "apa di mana".
  • Instance segmentation: membedakan tiap objek (mobil 1, mobil 2, mobil 3). Untuk menghitung jumlah objek.

U-Net untuk Medis

U-Net adalah arsitektur encoder-decoder: encoder mengecilkan resolusi untuk menangkap konteks, decoder menaikkannya kembali untuk prediksi per-piksel, dengan skip connection yang membawa detail spasial halus. Bentuk "U" inilah asal namanya. U-Net adalah standar segmentasi biomedis — segmen tumor, organ, dan sel:

PythonSegmentasi U-Net via segmentation_models_pytorch
import segmentation_models_pytorch as smp
 
model = smp.Unet(
    encoder_name="resnet34",
    encoder_weights="imagenet",
    in_channels=3,
    classes=1,  # misal segmentasi tumor biner
)

Perhatikan pola yang sudah familier dari episode 8: pretrained encoder (ImageNet) + head baru. Transfer learning berlaku juga untuk segmentasi.

SAM 2: Segment Anything

SAM 2 (Segment Anything Model 2) dari Meta adalah foundation model segmentasi: ia menerima prompt — titik klik, kotak, atau teks — dan menghasilkan maska untuk objek yang diminta, bahkan di video. Tanpa training, SAM 2 bisa menyegmentasi objek baru yang belum pernah dilihatnya:

PythonSAM 2 dengan prompt
from transformers import SamModel, SamProcessor
 
processor = SamProcessor.from_pretrained("facebook/sam2-vit-base")
model = SamModel.from_pretrained("facebook/sam2-vit-base")
 
inputs = processor(images=image, input_points=[[[300, 200]]], return_tensors="pt")
masks = model(**inputs).pred_masks

SAM 2 bukan pengganti U-Net untuk tugas medis terspesialisasi, tetapi luar biasa untuk general-purpose segmentation dan menjadi komponen pipeline labeling otomatis.

Tip

Untuk proyek riil, hampir selalu mulai dari model yang sudah dilatih: YOLO pretrained untuk detection, U-Net pretrained untuk segmentasi medis, SAM 2 untuk segmentasi general. Melatih detector/segmenter dari nol butuh ribuan anotasi — investasi yang jarang sepadan.

Use Case: Medis dan Autonomous

  • Autonomous driving: deteksi kendaraan/pedestrian (YOLO/Faster R-CNN) + semantic segmentation jalan + depth. Semua berjalan real-time di edge device.
  • Medis: U-Net untuk segmen tumor MRI, deteksi sel abnormal pada slide patologi. Kesalahan mahal, sehingga validasi ketat dan human-in-the-loop wajib.
  • Industri: inspeksi cacat produk dengan deteksi anomali; counting objek dengan instance segmentation.

Common Pitfalls

  • Bounding box sloppy: latih dan evaluasi dengan mAP@0.5:0.95 agar kotak benar-benar presisi, bukan sekadar menempel.
  • Threshold asal-asalan: conf terlalu rendah membanjiri hasil dengan false positive. Kalibrasi di validation set.
  • Salah memilih task: kalian hanya perlu jumlah objek? Instance segmentation berlebihan. Butuh maska presisi? Detection tidak cukup. Pilih minimal tool yang menjawab masalah.
  • Dataset anotasi kotor: satu kotak ground truth yang salah menyebalkan model dan mAP. Audit anotasi sebelum training.

Warning

Untuk use case medis dan keamanan, mAP yang tinggi tidak cukup — perhatikan failure mode per kelas. Detector yang sempurna untuk "tumor besar" tapi sering meleset di "tumor kecil" berbahaya di klinik. Laporan per-kelas dan analisis false negative adalah wajib, bukan opsional.

Penutup

Pada episode 10 ini, kalian telah mengenal deteksi dan segmentasi.

Inti yang harus dibawa pulang:

  • Detection: Faster R-CNN (dua tahap, akurat) vs YOLO (satu tahap, real-time).
  • mAP@0.5:0.95 adalah standar evaluasi modern; IoU mengukur presisi kotak.
  • U-Net (encoder-decoder + skip) adalah standar segmentasi medis.
  • SAM 2 menyegmentasi objek apa pun dengan prompt, tanpa training.
  • Pilih task minimal yang menjawab masalah; validasi per-kelas untuk kasus kritis.

Di episode 11 selanjutnya kita berpindah dari gambar ke sequence data — RNN, LSTM, dan GRU, masalah vanishing gradient, serta praktik forecasting time series dan text generation sederhana. Sampai jumpa di episode 11!

Belajar Deep Learning - Object Detection & Segmentation (Pengenalan) | Belajar Deep Learning