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

Bilgisayarlı Görü: Nesne Tespiti

YOLO ve modern detection mimarileri

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₂, …

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 çizm…

💡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).

Bağlantılı Konular