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.

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.
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.
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.
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.
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:
results = model.val(data="coco8.yaml")
print(results.box.map) # mAP@0.5:0.95
print(results.box.map50) # mAP@0.5Satu 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.
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:
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 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:
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_masksSAM 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.
conf terlalu rendah membanjiri hasil dengan false positive. Kalibrasi di validation set.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.
Pada episode 10 ini, kalian telah mengenal deteksi dan segmentasi.
Inti yang harus dibawa pulang:
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!