Mean Average Precision (mAP)
Ortalama kesinlik (mAP), kesinliği geri çağırma, sınıflar ve IoU eşikleri üzerinden ortalamasını alarak algılayıcıları puanlar. mAP50 ve mAP50-95'in nasıl hesaplandığını öğren.
Ortalama ortalama kesinlik (mAP), nesne algılama için standart değerlendirme metriğidir; aynı yöntem örnek bölütleme, poz tahmini ve yönelimli algılama performansını da puanlar. Modelin tüm nesneleri bulmasını, yanlış algılamalardan kaçınmasını ve her bir sınırlayıcı kutuyu sıkı biçimde yerleştirmesini ödüllendirir; bu üç ölçütü genellikle yüzde olarak ifade edilen 0 ile 1 arasındaki tek bir sayıda birleştirir. Ortalama kesinlik (AP), bir sınıfın kesinlik-duyarlılık eğrisinin altındaki alandır; mAP, sınıflar genelindeki AP ortalamasıdır ve en yaygın raporlanan biçim olan mAP50-95, on farklı kesişim-birleşim (IoU) eşiğinin ortalamasını da alır.
Temel Bileşenler#
- IoU: Tahmin edilen kutu ile etiketli kutu arasındaki 0 ile 1 arası örtüşme. Bir tahmin, yalnızca aynı sınıftaki ve henüz eşleştirilmemiş bir etiketle IoU değeri 0.5 gibi bir eşiğe ulaştığında doğru pozitif sayılır.
- Kesinlik: Doğru tahminlerin tüm tahminlere oranı, TP / (TP + FP).
- Duyarlılık: Modelin bulduğu etiketli nesnelerin oranı, TP / (TP + FN).
- Güven: Algılamaları sıralayan puan. Her güven eşiği bir kesinlik-duyarlılık çifti verir; tüm eşikler birlikte kesinlik-duyarlılık eğrisini oluşturur.
mAP Nasıl Hesaplanır#
Değerlendirme, tek bir sınıfa ait tüm veri kümesindeki algılamaları bir araya toplar ve güven puanına göre sıralar. Liste boyunca ilerlerken her algılama, kendi sınıfındaki örtüşmesi en yüksek ve henüz eşleştirilmemiş etiketi alarak doğru pozitif olur ya da yanlış pozitif olur. Bir etiket yalnızca bir kez alınabilir; bu nedenle daha önce bulunan bir nesne üzerindeki ikinci kutu kesinliği düşürür. Her adımdan sonra kesinlik ve duyarlılık yeniden hesaplanır ve en yüksek güvenli algılamadan en düşüğüne kadar kesinlik-duyarlılık eğrisi oluşturulur.
AP, bu eğrinin altındaki alandır. İntegral alınmadan önce eğri, her duyarlılık düzeyinde ya da sonrasında bulunan en yüksek kesinlik değerini gösteren zarfıyla değiştirilir; böylece küçük zikzaklar puanı etkilemez. COCO değerlendirmesi, zarfı 0 ile 1 arasındaki 101 duyarlılık noktasında örnekler; özgün PASCAL VOC kıyaslamasında ise 11 nokta kullanılmıştır. Modelin ulaşamadığı duyarlılık düzeyleri sıfır kesinlik katkısı sağlar; bu nedenle kaçırılan her nesne AP'yi düşürür.
import numpy as np
# One class: 8 detections sorted by confidence (1 = matched a label, 0 = false positive)
tp = np.array([1, 1, 0, 1, 0, 1, 0, 0])
num_labels = 5 # ground-truth objects of this class in the dataset
# Precision and recall after each detection in the ranked list
tp_cum = np.cumsum(tp)
precision = tp_cum / np.arange(1, len(tp) + 1)
recall = tp_cum / num_labels
# Precision envelope: best precision at this recall or any higher recall
envelope = np.maximum.accumulate(precision[::-1])[::-1]
# COCO-style AP: average the envelope at 101 recall points (0 beyond the highest recall reached)
points = np.linspace(0, 1, 101)
idx = np.searchsorted(recall, points, side="left")
ap = np.mean([envelope[i] if i < len(envelope) else 0.0 for i in idx])
print(f"Max recall: {recall[-1]:.1f}, AP: {ap:.3f}")Betik Max recall: 0.8, AP: 0.686 çıktısını verir. Etiketli beş nesneden biri hiç algılanmadığından, duyarlılık ekseninin son beşte biri alana katkı sağlamaz ve en yüksek güvenli iki algılama da doğru olsa bile AP 0.686'da kalır.
mAP ve İlgili Ölçütler#
- Doğruluk, doğru tahminleri tüm tahminlere böler; bu da doğru negatiflerin sayılmasını gerektirir. Bir algılayıcıda doğru negatifler, arka plandaki her boş yamayı kapsar; dolayısıyla doğruluğun algılamada anlamlı bir değeri yoktur.
- F1 puanı, tek bir güven eşiğinde kesinlik ile duyarlılığı birleştirir ve dağıtılan modelin çalıştığı eşik gibi tek bir çalışma noktasını tanımlar.
- Karışıklık matrisi, algılayıcının tek bir eşikte hangi sınıfları birbiriyle karıştırdığını sayar; tek bir mAP sayısının gizlediği ayrıntı budur.
mAP50, mAP75 ve mAP50-95#
mAP sınıflar üzerinden basit bir ortalama olduğundan, nadir görülen bir sınıf yaygın bir sınıf kadar ağırlık taşır. IoU eşiği, bir kutunun doğru sayılması için ne kadar sıkı olması gerektiğini belirler:
- mAP50: IoU 0.5 olduğunda bir tespit doğru kabul edilir; bu, PASCAL VOC kuralıdır.
- mAP75: Eşik 0.75'e yükselir; bu, konumlandırmayı katı biçimde sınar.
- mAP50-95: 0.50 ile 0.95 arasındaki on eşikte, 0.05'lik artışlarla hesaplanan mAP ortalamasıdır. COCO bu sayıya yalnızca "AP" der, AP ile mAP arasında ayrım yapmaz ve bunu birincil yarışma metriği olarak kullanır.
Ultralytics YOLO26 eğitimi, en yüksek doğrulama mAP50-95 değerine sahip epoch'taki best.pt öğesini tutar ve doğrulama, her çalıştırmada üç varyantın tümünü raporlar.
from ultralytics import YOLO
# Load a pretrained YOLO26 nano detector
model = YOLO("yolo26n.pt")
# Validate on the small COCO8 dataset to compute mAP
metrics = model.val(data="coco8.yaml")
# The same detections scored at three IoU thresholds
print(f"mAP50: {metrics.box.map50:.3f}")
print(f"mAP75: {metrics.box.map75:.3f}")
print(f"mAP50-95: {metrics.box.map:.3f}")IoU eşiği ne kadar düşükse o kadar çok tespit doğru sayılır; bu nedenle mAP50 en yüksek, mAP50-95 ise daha düşük çıkar. COCO, AP'yi nesne boyutuna göre de ayırır: küçük nesneler 32 × 32 pikselden küçük bir alan kaplar, orta boy nesneler 96 × 96 piksele kadar alan kaplar ve büyük nesneler bundan daha büyük alan kaplar.










