Anchor Boxes
Çapa kutularının (anchor boxes) nesne algılama için nasıl referans şablonları olarak hareket ettiğini öğren. Doğruluğu nasıl iyileştirdiklerini ve Ultralytics YOLO26 gibi modellerin çapa kutusu olmayan (anchor-free) tasarımlardan nasıl yararlandığını keşfet.
Anchor kutuları, nesne tespit modellerinin nesneleri bulmasına ve sınıflandırmasına yardımcı olmak üzere bir görüntü üzerine yerleştirilen, belirli en-boy oranlarına ve ölçeklere sahip önceden tanımlanmış referans dikdörtgenleridir. Geniş bir nesne şekli yelpazesi nedeniyle kararsız olabilen, bir sinir ağından sıfırdan bir nesnenin tam boyutunu ve konumunu tahmin etmesini istemek yerine, model bu sabit şablonları bir başlangıç noktası olarak kullanır. Sistem, bu ilk kutuların gerçek değerle (ground truth) eşleşmesi için ne kadar ayarlanması gerektiğini, yani "regresyon" yapılması gerektiğini tahmin etmeyi öğrenerek daha hızlı yakınsama ve daha yüksek doğruluk elde edebilir. Bu teknik, yerelleştirmenin karmaşık görevini daha yönetilebilir bir optimizasyon problemine basitleştirerek computer vision (CV) alanını kökten dönüştürmüştür.
Çapa Kutularının Mekanizması#
Klasik anchor-based detectors sistemlerinde, giriş görüntüsü bir hücre ızgarasına bölünür. Her hücre konumunda ağ, farklı geometrilere sahip birden fazla anchor kutusu oluşturur. Örneğin, uzun bir yayayı ve geniş bir arabayı aynı anda tespit etmek için model, aynı merkez noktasında uzun, dar bir kutu ve kısa, geniş bir kutu önerebilir.
model training sırasında bu anchor'lar, Intersection over Union (IoU) adı verilen bir metrik kullanılarak gerçek nesnelerle eşleştirilir. Etiketlenmiş bir nesneyle önemli ölçüde örtüşen anchor'lar "pozitif" örnekler olarak belirlenir. Ağ daha sonra iki paralel görevi öğrenir:
-
Sınıflandırma: Belirli bir sınıfı (örneğin "köpek" veya "bisiklet") içerme olasılığını belirterek anchor'a bir olasılık puanı atar. Bu, çapraz entropi kaybı gibi standart supervised learning hedeflerini kullanır.
-
Kutu Regresyonu: Genel anchor'ı tam oturan bir bounding box haline getirmek için gereken kesin sapma değerlerini (koordinat kaymaları ve ölçekleme faktörleri) hesaplar.
Bu yaklaşım, modelin birbirine yakın konumlanmış farklı boyutlardaki birden fazla nesneyi işlemesine olanak tanır, çünkü her nesne kendi şekliyle en iyi eşleşen çapaya atanabilir.
Gerçek Dünya Uygulamaları#
Daha yeni mimariler çapa içermeyen (anchor-free) tasarımlara yöneliyor olsa da, çapa kutuları nesne özelliklerinin tahmin edilebilir olduğu birçok yerleşik üretim sisteminde hayati önemini korumaktadır.
- Perakende ve Envanter Yönetimi: AI-driven retail solutions içinde kameralar raf stoklarını izler. Mısır gevreği kutuları veya gazoz tenekeleri gibi ürünler standart boyutlara sahip olduğundan, anchor kutuları bu belirli en-boy oranlarına göre ayarlanabilir. Bu ön bilgi, modelin kalabalık ortamlarda bile yüksek recall değerini korumasına yardımcı olur.
- Otonom Sürüş: autonomous vehicles içindeki algı yığınları yayaları, araçları ve trafik işaretlerini tespit etmeye dayanır. Uzaktan görülen bir araba yola kıyasla nispeten tutarlı bir şekil profiline sahip olduğundan, bu şekillere göre uyarlanmış anchor'ların kullanılması güçlü bir object tracking ve mesafe tahmini sağlar.
Çapa Tabanlı vs. Çapa İçermeyen#
Geleneksel anchor tabanlı yöntemler ile modern anchor-free detectors arasındaki ayrımı yapmak önemlidir.
- Çapa Tabanlı: Orijinal Faster R-CNN veya erken YOLO sürümleri (ör. Ultralytics YOLOv5) gibi modeller bu önceden tanımlanmış şablonları kullanır. Bunlar güçlüdür ancak genellikle yeni veri setlerine uyum sağlamak için hiperparametrelerin (çapa boyutları/oranları) manuel olarak ayarlanmasını veya k-means clustering gibi kümeleme algoritmalarını gerektirir.
- Anchor'sız: YOLO26 dahil gelişmiş modeller genellikle anchor'sız veya uçtan uca yaklaşımlar kullanır. Bu ağlar nesne merkezlerini veya anahtar noktaları doğrudan tahmin ederek manuel anchor yapılandırmasına olan ihtiyacı ortadan kaldırır. Bu, binlerce boş arka plan anchor'ını işlemek için gereken hesaplamayı ortadan kaldırarak mimariyi basitleştirir ve inference sürecini hızlandırır.
Örnek: Çapa Bilgisine Erişim#
Ultralytics Platform gibi modern üst düzey API'ler eğitim sırasında bu detayları soyutlasa da, anchor'ları anlamak daha eski model mimarileriyle çalışırken veya model yapılandırma dosyalarını analiz ederken faydalıdır. Aşağıdaki kod parçacığı, bir modelin nasıl yükleneceğini ve anchor ayarlarının (varsa) tipik olarak tanımlandığı yapılandırmasının nasıl inceleneceğini gösterir.
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.")Zorluklar ve Hususlar#
Anchor kutuları etkili olmakla birlikte karmaşıklık da getirir. Oluşturulan devasa sayıdaki anchor (genellikle görüntü başına on binlerce), anchor'ların çoğunun yalnızca arka planı kapsaması nedeniyle bir sınıf dengesizliği problemi yaratır. Focal Loss gibi teknikler, kolay arka plan örneklerinin ağırlığını azaltarak bunu hafifletmek için kullanılır. Ek olarak, nihai çıktı genellikle gereksiz örtüşen kutuları filtrelemek için Non-Maximum Suppression (NMS) gerektirir, böylece her nesne için yalnızca en yüksek güvene sahip tespit kalır.






