İçeriğe geç

Ultralytics YOLO ile Model Doğrulama

Ultralytics YOLO ekosistemi ve entegrasyonları

Giriş

Doğrulama, eğitilmiş modellerinizin kalitesini değerlendirmenize olanak tanıyan makine öğrenimi hattında kritik bir adımdır. Ultralytics YOLO11'deki Val modu, nesne algılama modellerinizin performansını değerlendirmek için güçlü bir araç ve metrik paketi sağlar. Bu kılavuz, modellerinizin hem doğru hem de güvenilir olduğundan emin olmak için Val modunu nasıl etkili bir şekilde kullanacağınızı anlamanız için eksiksiz bir kaynak görevi görür.



İzle: Ultralytics Modları Eğitimi: Doğrulama

Neden Ultralytics YOLO ile Doğrulama Yapmalısınız?

İşte YOLO11'in Doğrulama modunu kullanmanın neden avantajlı olduğu:

  • Hassasiyet: Modelinizi kapsamlı bir şekilde değerlendirmek için mAP50, mAP75 ve mAP50-95 gibi doğru metrikler alın.
  • Kolaylık: Doğrulama sürecini basitleştiren, eğitim ayarlarını hatırlayan yerleşik özellikleri kullanın.
  • Esneklik: Modelinizi aynı veya farklı veri kümeleri ve görüntü boyutlarıyla doğrulayın.
  • Hiperparametre Ayarlama: Daha iyi performans için modelinize ince ayar yapmak üzere doğrulama metriklerini kullanın.

Değerlendirme Modunun Temel Özellikleri

Bunlar, YOLO11'in Doğrulama modunun sunduğu önemli işlevlerdir:

  • Otomatik Ayarlar: Modeller, basit doğrulama için eğitim yapılandırmalarını hatırlar.
  • Çoklu Metrik Desteği: Modelinizi bir dizi doğruluk metriğine göre değerlendirin.
  • CLI ve Python API: Doğrulama için komut satırı arayüzü veya python API'si arasından tercihinize göre seçim yapın.
  • Veri Uyumluluğu: Eğitim aşamasında kullanılan veri kümeleri ve özel veri kümeleriyle sorunsuz çalışır.

İpucu

  • YOLO11 modelleri, eğitim ayarlarını otomatik olarak hatırlar, böylece bir modeli aynı görüntü boyutunda ve orijinal veri kümesinde kolayca doğrulayabilirsiniz. yolo val model=yolo11n.pt veya model('yolo11n.pt').val()

Kullanım Örnekleri

Eğitilmiş YOLO11n modelini doğrulayın doğruluğu COCO8 veri kümesi üzerinde. Herhangi bir argümana gerek yoktur, çünkü model eğitimini korur data ve argümanları model öznitelikleri olarak kullanır. Doğrulama argümanlarının tam listesi için aşağıdaki Argümanlar bölümüne bakın.

Örnek

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.pt")  # load an official model
model = YOLO("path/to/best.pt")  # load a custom model

# Validate the model
metrics = model.val()  # no arguments needed, dataset and settings remembered
metrics.box.map  # map50-95
metrics.box.map50  # map50
metrics.box.map75  # map75
metrics.box.maps  # a list contains map50-95 of each category
yolo detect val model=yolo11n.pt      # val official model
yolo detect val model=path/to/best.pt # val custom model

YOLO Model Doğrulama Argümanları

YOLO modellerini doğrularken, değerlendirme sürecini optimize etmek için çeşitli argümanlar ince ayarlanabilir. Bu argümanlar, girdi görüntüsü boyutu, toplu işleme ve performans eşikleri gibi hususları kontrol eder. Doğrulama ayarlarınızı etkili bir şekilde özelleştirmenize yardımcı olmak için her bir argümanın ayrıntılı bir dökümü aşağıda verilmiştir.

Argüman Tür Varsayılan Açıklama
data str None Veri kümesi yapılandırma dosyasının yolunu belirtir (örn. coco8.yaml). Bu dosya, şunlara giden yolları içerir: doğrulama verilerinin yolları, sınıf adları ve sınıf sayısı dahil olmak üzere veri kümesine özgü parametreleri içerir.
imgsz int 640 Giriş görüntülerinin boyutunu tanımlar. Tüm görüntüler işlenmeden önce bu boyuta yeniden boyutlandırılır. Daha büyük boyutlar küçük nesneler için doğruluğu artırabilir ancak hesaplama süresini artırır.
batch int 16 Her bir toplu işte bulunan görüntü sayısını ayarlar. Daha yüksek değerler GPU belleğini daha verimli kullanır ancak daha fazla VRAM gerektirir. Mevcut donanım kaynaklarına göre ayarlayın.
save_json bool False Eğer True, sonuçları daha fazla analiz, diğer araçlarla entegrasyon veya COCO gibi değerlendirme sunucularına gönderme için bir JSON dosyasına kaydeder.
conf float 0.001 Algılamalar için minimum güven eşiğini ayarlar. Daha düşük değerler hatırlamayı artırır ancak daha fazla yanlış pozitif sonuç verebilir. Kesinlik-hatırlama eğrilerini hesaplamak için doğrulama sırasında kullanılır.
iou float 0.7 Non-Maximum Suppression için Intersection Over Union eşiğini ayarlar. Kopya algılama elemesini kontrol eder.
max_det int 300 Görüntü başına maksimum tespit sayısını sınırlar. Aşırı tespitleri önlemek ve işlem kaynaklarını yönetmek için yoğun sahnelerde kullanışlıdır.
half bool True Yarı-duyarlıklı (FP16) hesaplamayı etkinleştirir, bellek kullanımını azaltır ve doğruluk üzerinde minimum etkiyle hızı potansiyel olarak artırır.
device str None Doğrulama için cihazı belirtir (cpu, cuda:0, vb.). Ne zaman None, otomatik olarak mevcut en iyi cihazı seçer. Birden çok CUDA cihazı virgülle ayrılarak belirtilebilir.
dnn bool False Eğer True, şunu kullanır OpenCV ONNX model çıkarımı için DNN modülü, şuna bir alternatif sunar: PyTorch çıkarım yöntemleri.
plots bool False Şu şekilde ayarlandığında True, model performansının görsel olarak değerlendirilmesi için tahminlere karşı gerçek değerlerin, karışıklık matrislerinin ve PR eğrilerinin grafiklerini oluşturur ve kaydeder.
classes list[int] None Üzerinde eğitim yapılacak sınıf kimliklerinin bir listesini belirtir. Değerlendirme sırasında yalnızca belirli sınıflara odaklanmak ve bunları filtrelemek için kullanışlıdır.
rect bool True Eğer True, toplu işlem için dikdörtgen çıkarım kullanır, dolguyu azaltır ve görüntüleri orijinal en boy oranlarında işleyerek hızı ve verimliliği potansiyel olarak artırır.
split str 'val' Doğrulama için kullanılacak veri kümesi bölümünü belirler (val, test, veya train). Performans değerlendirmesi için veri bölümünü seçmede esneklik sağlar.
project str None Doğrulama çıktılarının kaydedildiği proje dizininin adı. Farklı deneylerden veya modellerden elde edilen sonuçları düzenlemeye yardımcı olur.
name str None Doğrulama çalıştırmasının adı. Doğrulama günlüklerinin ve çıktılarının saklandığı proje klasörü içinde bir alt dizin oluşturmak için kullanılır.
verbose bool False Eğer True, sınıf başına metrikler, toplu iş ilerlemesi ve ek hata ayıklama bilgileri dahil olmak üzere doğrulama işlemi sırasında ayrıntılı bilgi görüntüler.
save_txt bool False Eğer True, algılama sonuçlarını, görüntü başına bir dosya olacak şekilde metin dosyalarına kaydeder; bu, daha fazla analiz, özel işlem sonrası veya diğer sistemlerle entegrasyon için kullanışlıdır.
save_conf bool False Eğer True, ne zaman kaydedilen metin dosyalarında güven değerlerini içerir save_txt etkinleştirildi, analiz ve filtreleme için daha ayrıntılı çıktı sağlıyor.
workers int 8 Veri yükleme için çalışan iş parçacığı sayısı. Daha yüksek değerler veri ön işlemeyi hızlandırabilir ancak CPU kullanımını artırabilir. 0'a ayarlamak ana iş parçacığını kullanır, bu da bazı ortamlarda daha kararlı olabilir.
augment bool False Girişin dönüştürülmüş sürümlerinde çıkarım çalıştırarak çıkarım hızı pahasına algılama doğruluğunu potansiyel olarak artıran, doğrulama sırasında test zamanı artırmayı (TTA) etkinleştirir.
agnostic_nms bool False Tahmin edilen sınıflarından bağımsız olarak örtüşen kutuları birleştiren, sınıftan bağımsız Non-Maximum Suppression özelliğini etkinleştirir. Örnek odaklı uygulamalar için kullanışlıdır.
single_cls bool False Doğrulama sırasında tüm sınıfları tek bir sınıf olarak ele alır. İkili algılama görevlerinde veya sınıf ayrımlarının önemli olmadığı durumlarda model performansını değerlendirmek için kullanışlıdır.

Bu ayarların her biri, YOLO modellerinin özelleştirilebilir ve verimli bir şekilde değerlendirilmesini sağlayarak doğrulama sürecinde hayati bir rol oynar. Bu parametreleri özel ihtiyaçlarınıza ve kaynaklarınıza göre ayarlamak, doğruluk ve performans arasında en iyi dengeyi sağlamaya yardımcı olabilir.

Argümanlarla Örnek Doğrulama



İzle: Model Doğrulama Sonuçları CSV, JSON, SQL, Pandas DataFrame ve Daha Fazla Formatlarda Nasıl Dışa Aktarılır

Google Colab'da model doğrulamasını ve farklı dışa aktarma yöntemlerini keşfedin

Aşağıdaki örnekler, Python ve CLI'da özel argümanlarla YOLO model doğrulamasını göstermektedir.

Örnek

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.pt")

# Customize validation settings
metrics = model.val(data="coco8.yaml", imgsz=640, batch=16, conf=0.25, iou=0.6, device="0")
yolo val model=yolo11n.pt data=coco8.yaml imgsz=640 batch=16 conf=0.25 iou=0.6 device=0

Dışa Aktarım Karışıklık Matrisi

Sağlanan kodu kullanarak ConfusionMatrix sonuçlarını farklı formatlarda da kaydedebilirsiniz.

from ultralytics import YOLO

model = YOLO("yolo11n.pt")

results = model.val(data="coco8.yaml", plots=True)
print(results.confusion_matrix.to_df())
Metot Dönüş Türü Açıklama
summary() List[Dict[str, Any]] Doğrulama sonuçlarını özetlenmiş bir sözlüğe dönüştürür.
to_df() DataFrame Doğrulama sonuçlarını yapılandırılmış bir Pandas DataFrame olarak döndürür.
to_csv() str Doğrulama sonuçlarını CSV formatında dışa aktarır ve CSV dizesini döndürür.
to_xml() str Doğrulama sonuçlarını XML formatında dışa aktarır ve XML dizesini döndürür.
to_html() str Doğrulama sonuçlarını HTML tablo formatında dışa aktarır ve HTML dizesini döndürür.
to_json() str Doğrulama sonuçlarını JSON formatında dışa aktarır ve JSON dizesini döndürür.
to_sql() str Doğrulama sonuçlarını SQL veritabanına aktarır.

Daha fazla ayrıntı için şuraya bakın: DataExportMixin sınıf dokümantasyonu.

SSS

Ultralytics ile YOLO11 modelimi nasıl doğrularım?

YOLO11 modelinizi doğrulamak için, Ultralytics tarafından sağlanan Val modunu kullanabilirsiniz. Örneğin, Python API'sini kullanarak bir model yükleyebilir ve şu şekilde doğrulama çalıştırabilirsiniz:

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.pt")

# Validate the model
metrics = model.val()
print(metrics.box.map)  # map50-95

Alternatif olarak, komut satırı arayüzünü (CLI) kullanabilirsiniz:

yolo val model=yolo11n.pt

Daha fazla özelleştirme için, gibi çeşitli argümanları ayarlayabilirsiniz. imgsz, batchve conf hem Python hem de CLI modlarında. Kontrol edin: YOLO Model Doğrulama Argümanları parametlerin tam listesi için bölümüne bakın.

YOLO11 model doğrulamasıyla hangi metrikleri elde edebilirim?

YOLO11 model doğrulaması, model performansını değerlendirmek için çeşitli temel metrikler sağlar. Bunlar şunları içerir:

  • mAP50 (IoU eşiği 0,5'te ortalama Ortalama Hassasiyet)
  • mAP75 (IoU eşiği 0,75'te ortalama Ortalama Hassasiyet)
  • mAP50-95 (0,5'ten 0,95'e kadar birden çok IoU eşiğinde ortalama Ortalama Hassasiyet)

Python API'sini kullanarak, bu metriklere aşağıdaki gibi erişebilirsiniz:

metrics = model.val()  # assumes `model` has been loaded
print(metrics.box.map)  # mAP50-95
print(metrics.box.map50)  # mAP50
print(metrics.box.map75)  # mAP75
print(metrics.box.maps)  # list of mAP50-95 for each category

Eksiksiz bir performans değerlendirmesi için, tüm bu metrikleri gözden geçirmek çok önemlidir. Daha fazla ayrıntı için Val Modunun Temel Özellikleri bölümüne bakın.

Doğrulama için Ultralytics YOLO kullanmanın avantajları nelerdir?

Doğrulama için Ultralytics YOLO kullanmak çeşitli avantajlar sağlar:

  • Kesinlik: YOLO11, mAP50, mAP75 ve mAP50-95 dahil olmak üzere doğru performans metrikleri sunar.
  • Kolaylık: Modeller, eğitim ayarlarını hatırlar ve bu da doğrulamayı kolaylaştırır.
  • Esneklik: Aynı veya farklı veri kümelerine ve görüntü boyutlarına karşı doğrulama yapabilirsiniz.
  • Hiperparametre Ayarlama: Doğrulama metrikleri, daha iyi performans için modellerin ince ayarlanmasına yardımcı olur.

Bu faydalar, modellerinizin kapsamlı bir şekilde değerlendirilmesini ve üstün sonuçlar için optimize edilebilmesini sağlar. Neden Ultralytics YOLO ile Doğrulama bölümünde bu avantajlar hakkında daha fazla bilgi edinin.

YOLO11 modelimi özel bir veri kümesi kullanarak doğrulayabilir miyim?

Evet, YOLO11 modelinizi bir kullanarak doğrulayabilirsiniz özel veri kümesi. Şunu belirtin: data veri kümesi yapılandırma dosyanızın yolunu içeren argüman. Bu dosya, şunlara giden yolları içermelidir: doğrulama verilerinin yolları, sınıf adları ve diğer ilgili ayrıntılar.

Python'da örnek:

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.pt")

# Validate with a custom dataset
metrics = model.val(data="path/to/your/custom_dataset.yaml")
print(metrics.box.map)  # map50-95

CLI kullanılarak örnek:

yolo val model=yolo11n.pt data=path/to/your/custom_dataset.yaml

Doğrulama sırasında daha fazla özelleştirilebilir seçenek için Argümanlarla Örnek Doğrulama bölümüne bakın.

YOLO11'de doğrulama sonuçlarını bir JSON dosyasına nasıl kaydederim?

Doğrulama sonuçlarını bir JSON dosyasına kaydetmek için şunu ayarlayabilirsiniz: save_json argümanını True doğrulama çalıştırılırken. Bu, hem Python API'sinde hem de CLI'da yapılabilir.

Python'da örnek:

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.pt")

# Save validation results to JSON
metrics = model.val(save_json=True)

CLI kullanılarak örnek:

yolo val model=yolo11n.pt save_json=True

Bu işlevsellik, diğer araçlarla daha fazla analiz veya entegrasyon için özellikle kullanışlıdır. Daha fazla ayrıntı için YOLO Model Doğrulaması için Argümanlar bölümünü kontrol edin.



📅 1 yıl önce oluşturuldu ✏️ 10 gün önce güncellendi

Yorumlar