Ultralytics YOLO ile Model Doğrulama
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
veyamodel('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
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
, batch
ve 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.