React Flow mini map
🌍 Gerçek Dünyaileri25 dk

Bilgisayarlı Görü: Nesne Tespiti

YOLO ve modern detection mimarileri

Önce bunlara göz at

🎯

30 saniyede özet · Ne öğreneceksin

  • Nesne tespiti ve segmentasyon farkını anlamak
  • YOLO mimarisinin çalışma prensibini kavramak
  • mAP metriğini yorumlamak
25 dk okuma·ileri

Bir fotoğrafa bakıp 'burada bir kedi var' demek kolay — peki kedi tam olarak nerede? Nesne tespiti (object detection), görüntüdeki nesneleri hem sınıflandırır hem de konumlandırır. Sürücüsüz araçlardan tıbbi tanıya, bu teknoloji makinelere 'görmeyi' öğretiyor.

Sınıflandırma: Görüntüde ne var? (tek etiket)

Sınıflandırma

  • ·Tek çıktı: sınıf etiketi
  • ·Konum bilgisi yok
  • ·Görüntü başına tek nesne varsayımı
  • ·Cross-entropy loss yeterli

Nesne Tespiti

  • ·Çoklu çıktı: sınıf + koordinatlar
  • ·Her nesne için bounding box
  • ·Görüntüde N nesne olabilir
  • ·Classification + regression loss

Bounding box: Nesneyi çevreleyen dikdörtgen — (x, y, width, height) veya (x₁, y₁, x₂, y₂) …

IoU = |A ∩ B| / |A ∪ B|

A tahmin edilen bounding box, B ground truth. IoU=1 mükemmel örtüşme, IoU=0 hiç örtüşme yok. mAP hesaplamasında farklı IoU eşikleri kullanılır (0.5, 0.75, vb.).

🎪YOLO: Tek Bakışta Tespit

Geleneksel yöntemler görüntüyü binlerce pencereyle tarar — sanki bir odada her köşeyi büyüteçle incelemek gibi. YOLO ise tüm odaya bir kez bakıp 'şurada masa, köşede sandalye' der. Görüntüyü grid'e böler, her hücre kendi bölgesindeki nesnelerden sorumludur.

YOLOv1 (2016): Tek geçişte tespit, 45 FPS devrim.

Anchor boxes: Önceden tanımlanmış farklı boyut/oran şablonları. Ağ 'sıfırdan kutu çizme' y…

💡Küçük nesneleri tespit etmek zordur çünkü yüksek seviye feature map'lerde kaybolurlar. FPN ve multi-scale training bu sorunu hafifletir.

Ultralytics YOLOv8 ile nesne tespiti

Python
1from ultralytics import YOLO
2
3# Pretrained model yükle
4model = YOLO('yolov8n.pt') # nano versiyon, hızlı
5
6# Görüntüde tespit yap
7results = model('sokak.jpg')
8
9# Sonuçları işle
10for result in results:
11 boxes = result.boxes
12 for box in boxes:
13 cls = int(box.cls[0]) # sınıf indeksi
14 conf = float(box.conf[0]) # güven skoru
15 xyxy = box.xyxy[0].tolist() # koordinatlar
16 print(f"{model.names[cls]}: {conf:.2f}")

torchvision Faster R-CNN ile inference

Python
1import torchvision
2from torchvision.io import read_image
3
4# Pretrained Faster R-CNN
5model = torchvision.models.detection.fasterrcnn_resnet50_fpn(
6 weights='DEFAULT'
7)
8model.eval()
9
10# Görüntü yükle ve normalize et
11img = read_image('trafik.jpg') / 255.0
12
13# Tespit yap
14with torch.no_grad():
15 preds = model([img])[0]
16
17# IoU > 0.5 olan tespitleri filtrele
18for i, score in enumerate(preds['scores']):
19 if score > 0.5:
20 print(f"Box: {preds['boxes'][i]}")

Otonom araçlar: Yaya, araç, trafik işareti tespiti — milisaniye gecikme hayati.

⚠️Nesne tespiti modelleri eğitim verisindeki bias'ı miras alır. Örneğin, belirli ten renklerinde veya aydınlatma koşullarında performans düşebilir. Kritik uygulamalarda kapsamlı test şart.

✦ Quiz

IoU (Intersection over Union) değeri 0.7 ise bu ne anlama gelir?

✦ Quiz

YOLO'nun geleneksel sliding window yöntemlerine göre en büyük avantajı nedir?

✦ Quiz

Feature Pyramid Network (FPN) hangi sorunu çözer?

ℹ️İlgili konular: CNN mimarileri temel oluşturur (cnn), ImageNet pretrained ağırlıklar transfer edilir (imagenet-2012, transfer-learning), feature extraction için boyut indirgeme önemli (boyut-indirgeme).