YOLO Vision 2026:

Comet ML logo for machine learning experiment tracking

Comet ile YOLOv5#

Bu kılavuz, makine öğrenimi deneylerini takip etmek, karşılaştırmak ve optimize etmek için güçlü bir araç olan Comet ile YOLOv5 kullanımını ele alacaktır.

Comet Hakkında#

Comet, veri bilimcilerin, mühendislerin ve takım liderlerinin makine öğrenimi ve derin öğrenme modellerini hızlandırmasına ve optimize etmesine yardımcı olan araçlar geliştirir.

Model metriklerini gerçek zamanlı olarak takip edin ve görselleştirin, hiperparametrelerinizi, veri kümelerinizi ve model kontrol noktalarınızı kaydedin ve Comet Custom Panels ile model tahminlerinizi görselleştirin! Comet, çalışmalarınızı asla kaybetmemeni sağlar ve sonuçları paylaşmayı ve her boyuttaki ekipler arasında iş birliği yapmayı kolaylaştırır!

Başlarken#

Comet Kurulumu#

pip install comet_ml

Comet Kimlik Bilgilerini Yapılandır#

YOLOv5 ile Comet'i yapılandırmanın iki yolu vardır.

Kimlik bilgilerini ortam değişkenleri aracılığıyla ayarlayabilirsin:

Ortam Değişkenleri

export COMET_API_KEY=YOUR_API_KEY
export COMET_PROJECT_NAME=YOUR_COMET_PROJECT_NAME # This will default to 'yolov5'

Veya çalışma dizininizde bir .comet.config dosyası oluştur ve kimlik bilgilerini orada ayarla:

Comet Yapılandırma Dosyası

[comet]
api_key=YOUR_API_KEY
project_name=YOUR_COMET_PROJECT_NAME # This will default to 'yolov5'

Eğitim Komut Dosyasını Çalıştır#

# Train YOLOv5s on COCO128 for 5 epochs
python train.py --img 640 --batch 16 --epochs 5 --data coco128.yaml --weights yolov5s.pt

İşte bu kadar! Comet, hiperparametrelerini, komut satırı argümanlarını, eğitim ve doğrulama metriklerini otomatik olarak günlüğe kaydeder. Çalışmalarını Comet arayüzünde görselleştirebilir ve analiz edebilirsin.

Comet dashboard showing YOLOv5 training metrics and experiment tracking

Bir Örnek Dene!#

Tamamlanmış bir çalışmanın örneğine buradan göz atın.

Veya daha iyisi, bu Colab Not Defteri'nde kendin dene:

Open In Colab

Otomatik Günlüğe Kaydet#

Varsayılan olarak Comet aşağıdaki öğeleri günlüğe kaydeder:

Metrikler#

  • Eğitim ve doğrulama verileri için Kutu Kaybı (Box Loss), Nesne Kaybı (Object Loss), Sınıflandırma Kaybı (Classification Loss)
  • Doğrulama verileri için mAP_0.5, mAP_0.5:0.95 metrikleri
  • Doğrulama verileri için Hassasiyet ve Duyarlılık

Parametreler#

  • Model Hiperparametreleri
  • Komut satırı seçenekleri aracılığıyla iletilen tüm parametreler

Görselleştirmeler#

  • Doğrulama verileri üzerindeki model tahminlerinin Karmaşıklık Matrisi
  • Tüm sınıflar genelinde PR ve F1 eğrileri için grafikler
  • Sınıf Etiketlerinin Korelogamı

Comet Günlüğe Kaydetmeyi Yapılandır#

Comet, eğitim komut dosyasına iletilen komut satırı bayrakları veya ortam değişkenleri aracılığıyla ek verileri günlüğe kaydedecek şekilde yapılandırılabilir:

export COMET_MODE=online                           # Set whether to run Comet in 'online' or 'offline' mode. Defaults to online
export COMET_MODEL_NAME="yolov5"                   # Set the name for the saved model. Defaults to yolov5
export COMET_LOG_CONFUSION_MATRIX=false            # Set to disable logging a Comet Confusion Matrix. Defaults to true
export COMET_MAX_IMAGE_UPLOADS=30                  # Controls how many total image predictions to log to Comet. Defaults to 100.
export COMET_LOG_PER_CLASS_METRICS=true            # Set to log evaluation metrics for each detected class at the end of training. Defaults to false
export COMET_DEFAULT_CHECKPOINT_FILENAME="last.pt" # Set this if you would like to resume training from a different checkpoint. Defaults to 'last.pt'
export COMET_LOG_BATCH_LEVEL_METRICS=true          # Set this if you would like to log training metrics at the batch level. Defaults to false.
export COMET_LOG_PREDICTIONS=true                  # Set this to false to disable logging model predictions

Comet ile Kontrol Noktalarını Günlüğe Kaydetme#

Modellerin Comet'e kaydedilmesi varsayılan olarak devre dışıdır. Etkinleştirmek için eğitim betiğine save-period argümanını geç. Bu, kaydedilen kontrol noktalarını save-period tarafından sağlanan aralık değerine göre Comet'e kaydeder:

python train.py \
  --img 640 \
  --batch 16 \
  --epochs 5 \
  --data coco128.yaml \
  --weights yolov5s.pt \
  --save-period 1

Model Tahminlerini Günlüğe Kaydetme#

Varsayılan olarak, model tahminleri (görüntüler, temel doğruluk etiketleri ve sınırlayıcı kutular) Comet'e günlüğe kaydedilir.

bbox_interval komut satırı argümanını geçirerek kaydedilen tahminlerin ve ilişkili görüntülerin sıklığını kontrol edebilirsin. Tahminler, Comet'in Object Detection Özel Paneli kullanılarak görselleştirilebilir. Bu sıklık, her bir epoch için veri yığınlarının (batch) N'incisine karşılık gelir. Aşağıdaki örnekte, her epoch için verilerin her 2. yığınını kaydediyoruz.

Not: YOLOv5 doğrulama veri yükleyicisi varsayılan olarak 32 batch size değerine ayarlanacaktır, bu nedenle kayıt sıklığını buna göre ayarlaman gerekecektir.

İşte Paneli kullanan bir örnek proje

python train.py \
  --img 640 \
  --batch 16 \
  --epochs 5 \
  --data coco128.yaml \
  --weights yolov5s.pt \
  --bbox_interval 2

Comet'e günlüğe kaydedilen Tahmin Görüntüleri sayısını kontrol etme#

YOLOv5'ten tahminleri günlüğe kaydederken Comet, her tahmin setiyle ilişkili görüntüleri günlüğe kaydeder. Varsayılan olarak en fazla 100 doğrulama görüntüsü günlüğe kaydedilir. COMET_MAX_IMAGE_UPLOADS ortam değişkenini kullanarak bu sayıyı artırabilir veya azaltabilirsin:

env COMET_MAX_IMAGE_UPLOADS=200 python train.py \
  --img 640 \
  --batch 16 \
  --epochs 5 \
  --data coco128.yaml \
  --weights yolov5s.pt \
  --bbox_interval 1

Sınıf Düzeyi Metriklerini Günlüğe Kaydetme#

Her sınıf için mAP, hassasiyet, duyarlılık, f1 değerlerini günlüğe kaydetmek için COMET_LOG_PER_CLASS_METRICS ortam değişkenini kullan:

env COMET_LOG_PER_CLASS_METRICS=true python train.py \
  --img 640 \
  --batch 16 \
  --epochs 5 \
  --data coco128.yaml \
  --weights yolov5s.pt

Bir Veri Kümesini Comet Yapıtlarına Yükleme#

Verilerini Comet Artifacts kullanarak depolamak istiyorsan, bunu upload_dataset bayrağını kullanarak yapabilirsin.

Veri kümesi YOLOv5 belgelerinde açıklandığı gibi düzenlenmelidir. Veri kümesi yapılandırma yaml dosyası, coco128.yaml dosyasının formatıyla aynı formatı izlemelidir.

python train.py \
  --img 640 \
  --batch 16 \
  --epochs 5 \
  --data coco128.yaml \
  --weights yolov5s.pt \
  --upload_dataset

Yüklenen veri kümesini Comet Çalışma Alanındaki Yapıtlar sekmesinde bulabilirsin:

Comet artifacts panel for dataset versioning

Verileri doğrudan Comet arayüzünde önizleyebilirsin:

Comet dataset preview and version history

Artifact'lar versiyonlanır ve ayrıca veri kümesi hakkında meta veri eklemeyi destekler. Comet, veri kümesi yaml dosyanızdaki meta verileri otomatik olarak günlüğe kaydeder:

Comet Artifact Metadata

Kaydedilmiş bir Yapıtı kullanma#

Comet Artifacts'tan bir veri seti kullanmak istiyorsan, veri seti yaml dosyadaki path değişkenini aşağıdaki Artifact kaynak URL'sine işaret edecek şekilde ayarla:

# Contents of artifact.yaml file
path: "comet://WORKSPACE_NAME/ARTIFACT_NAME:ARTIFACT_VERSION_OR_ALIAS"

Ardından bu dosyayı eğitim komut dosyana aşağıdaki şekilde ilet:

python train.py \
  --img 640 \
  --batch 16 \
  --epochs 5 \
  --data artifact.yaml \
  --weights yolov5s.pt

Yapıtlar ayrıca, deney iş akışında ilerlerken verilerin soyunu takip etmene olanak tanır. Burada, yüklenen veri kümeni kullanan tüm deneyleri gösteren bir grafik görebilirsin:

Comet Artifact Lineage Graph

Bir Eğitim Çalışmasını Sürdürme#

Eğitim çalışman herhangi bir nedenle (örneğin kesintiye uğrayan internet bağlantısı) kesintiye uğrarsa, çalışmayı resume bayrağını ve Comet Run Path'i kullanarak devam ettirebilirsin.

Run Path şu formata sahiptir: comet://WORKSPACE_NAME/PROJECT_NAME/EXPERIMENT_ID.

Bu, çalışmayı kesintiden önceki durumuna geri yükleyecektir; buna modeli bir kontrol noktasından geri yükleme, tüm hiperparametreleri ve eğitim argümanlarını geri yükleme ve orijinal çalışmada kullanılmışlarsa Comet veri kümesi Yapıtlarını indirme dahildir. Sürdürülen çalışma, Comet arayüzündeki mevcut Deneyi günlüğe kaydetmeye devam edecektir:

python train.py \
  --resume "comet://YOUR_RUN_PATH"

Comet Optimizer ile Hiperparametre Araması#

YOLOv5 ayrıca Comet's Optimizer ile entegre edilmiştir; bu sayede Comet UI'da hiperparametre taramalarını görselleştirmek son derece kolaydır.

Bir Optimizer Taramasını Yapılandırma#

Comet Optimizer'ı yapılandırmak için tarama hakkında bilgi içeren bir JSON dosyası oluşturman gerekecektir. utils/loggers/comet/optimizer_config.json içinde örnek bir dosya sağlanmıştır:

python utils/loggers/comet/hpo.py \
  --comet_optimizer_config "utils/loggers/comet/optimizer_config.json"

hpo.py betiği, train.py ile aynı argümanları kabul eder. Taramana ek argümanlar geçirmek istiyorsan bunları betikten sonra eklemen yeterlidir:

python utils/loggers/comet/hpo.py \
  --comet_optimizer_config "utils/loggers/comet/optimizer_config.json" \
  --save-period 1 \
  --bbox_interval 1

Sonuçları Görselleştirme#

Comet, taramanın sonuçlarını görselleştirmek için birçok yol sunar. Buradaki taraması tamamlanmış projeye bir göz at.

Comet Hyperparameter Visualization

Katkıda Bulunanlar

Yorumlar