Anchor kutularının nesne algılama için referans şablonları olarak nasıl işlev gördüğünü öğrenin. Bunların doğruluğu nasıl artırdığını ve Ultralytics gibi modellerin anchor içermeyen tasarımları nasıl kullandığını keşfedin.
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 .
Model eğitimi sırasında, bu bağlantı noktaları Intersection over Union (IoU) adlı bir metrik kullanılarak gerçek nesnelerle eşleştirilir. Etiketli bir nesneyle önemli ölçüde örtüşen bağlantı noktaları "pozitif" örnekler olarak belirlenir. Ağ daha sonra iki paralel görevi öğrenir:
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.