Learn how anchor boxes act as templates for object detection. Explore their role in localization, compare anchor-based vs. anchor-free models like [YOLO26](https://docs.ultralytics.com/models/yolo26/), and discover real-world CV applications.
Anchor kutuları, nesne algılama modellerinin nesneleri bulup sınıflandırmasına yardımcı olmak için bir görüntünün üzerine yerleştirilen, belirli en boy oranlarına ve ölçeklere sahip önceden tanımlanmış referans dikdörtgenlerdir. Model, sinir ağından nesnenin tam boyutunu ve konumunu sıfırdan tahmin etmesini istemek yerine (ki bu, nesnelerin çok çeşitli şekilleri nedeniyle istikrarsız olabilir) bu sabit şablonları başlangıç noktası olarak kullanır. Bu ilk kutuların gerçek duruma uyacak şekilde ne kadar ayarlanması veya "gerilemesi" gerektiğini tahmin etmeyi öğrenerek, sistem daha hızlı yakınsama ve daha yüksek doğruluk elde edebilir. Bu teknik, karmaşık yerelleştirme görevini daha yönetilebilir bir optimizasyon sorununa indirgeyerek bilgisayar görme (CV) alanını temelden dönüştürdü.
Klasik çapa tabanlı dedektörlerde, giriş görüntüsü bir hücre ızgarasına bölünür. Her hücre konumunda, ağ farklı geometrilere sahip birden fazla çapa kutusu oluşturur . Örneğin, uzun detect yayayı ve geniş bir arabayı aynı anda detect için model, aynı merkez noktasında uzun, dar bir kutu ve kısa, geniş bir kutu önerebilir .
During model training, these anchors are matched against actual objects using a metric called Intersection over Union (IoU). Anchors that overlap significantly with a labeled object are designated as "positive" samples. The network then learns two parallel tasks:
Bu yaklaşım, modelin birbirine yakın konumlanmış farklı boyutlardaki birden fazla nesneyi işleyebilmesini sağlar, çünkü her nesne kendi şekline en uygun bağlantı noktasına atanabilir.
Daha yeni mimariler çapa içermeyen tasarımlara doğru ilerliyor olsa da, çapa kutuları nesne özelliklerinin öngörülebilir olduğu birçok yerleşik üretim sisteminde hayati önemini korumaktadır.
Geleneksel çapa tabanlı yöntemler ile modern çapasız dedektörler arasında ayrım yapmak önemlidir.
Ultralytics gibi modern üst düzey API'ler eğitim sırasında bu ayrıntıları soyutlasa da, eski model mimarileriyle çalışırken veya model yapılandırma dosyalarını analiz ederken çapaları anlamak yararlıdır. Aşağıdaki kod parçacığı, bir modeli yüklemeyi ve yapılandırmasını incelemeyi gösterir. Çapa ayarları (varsa) genellikle burada tanımlanır.
from ultralytics import YOLO
# Load a pre-trained YOLO model (YOLO26 is anchor-free, but legacy configs act similarly)
model = YOLO("yolo26n.pt")
# Inspect the model's stride, which relates to grid cell sizing in detection
print(f"Model strides: {model.model.stride}")
# For older anchor-based models, anchors might be stored in the model's attributes
# Modern anchor-free models calculate targets dynamically without fixed boxes
if hasattr(model.model, "anchors"):
print(f"Anchors: {model.model.anchors}")
else:
print("This model architecture is anchor-free.")
Etkili olmalarına rağmen, çapa kutuları karmaşıklık yaratır. Oluşturulan çok sayıda çapa (genellikle görüntü başına on binlerce) çoğu çapa sadece arka planı kapladığından sınıf dengesizliği sorunu yaratır. Focal Loss gibi teknikler, kolay arka plan örneklerinin ağırlığını azaltarak bu sorunu hafifletmek için kullanılır. Ek olarak, nihai çıktı genellikle Non-Maximum Suppression (NMS) gerektirir, böylece gereksiz çakışan kutular filtrelenir ve her nesne için yalnızca en güvenilir algılama kalır.
