Ultralytics YOLOv5 Comet ile Nasıl Kullanılır?
Ultralytics'in Ultralytics YOLOv5 model optimizasyonu için Comet ile nasıl iş ortaklığı yaptığını keşfet: gerçek zamanlı takip, kolaylaştırılmış iş birliği ve geliştirilmiş yeniden üretilebilirlik.

Ultralytics olarak, YOLOv5 gibi harika açık kaynaklı araçlarımızı herkes için ücretsiz tutabilmek amacıyla araştırma ve geliştirme çalışmalarımızı finanse etmemize yardımcı olmaları için diğer startup'larla ticari ortaklıklar kuruyoruz. Bu makale, bu ortaklara ait satış ortaklığı bağlantıları içerebilir.
En yeni iş ortağımız Comet, veri bilimcilerin, mühendislerin ve ekip liderlerinin makine öğrenimi ve derin öğrenme modellerini hızlandırmasına ve optimize etmesine yardımcı olan araçlar geliştirir.
Comet, modellerini, veri kümelerini ve metriklerini izlemek için güçlü bir araçtır. Ayrıca her çalıştırmanın yeniden üretilebilir olmasını ve sorunsuz şekilde hata ayıklanabilmesini sağlamak için sistem ve ortam değişkenlerini de kaydeder. Bu, hangi notların tutulacağını sihirli bir şekilde bilen sanal bir asistana sahip olmak gibidir. Model metriklerini gerçek zamanlı olarak izle ve görselleştir, hiperparametrelerini, veri kümelerini ve model kontrol noktalarını kaydet, model tahminlerini Comet Custom Panels ile görselleştir!
Ayrıca Comet, çalışmalarının izini asla kaybetmemenizi sağlar ve her büyüklükteki ekip arasında sonuçları paylaşmayı ve iş birliği yapmayı kolaylaştırır!
YOLOv5, bilgisayarlı görü yolculuğun için harika bir başlangıç noktasıdır. Modelinin performansını iyileştirmek ve üretime hazır hâle getirmek için sonuçları Comet gibi bir deney izleme aracına kaydetmen gerekir.
Comet ve YOLOv5 entegrasyonu 3 temel özellik sunar:
- Otomatik kayıt ve özel kayıt özellikleri
- Hata ayıklama ve yeniden üretilebilirlik için veri kümelerini ve modelleri yapıt olarak kaydetme
- Comet'in özel panelleriyle görünümünü düzenleme
Bu kılavuzda YOLOv5'in Comet ile nasıl kullanılacağını ele alacağız.
Deneylerini gerçek zamanlı olarak izlemeye hazır mısın? Hemen başlayalım!
Başlarken#
1. Comet'i yükle#
pip install comet_ml2. 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 ayarlayabilir veya çalışma dizininde bir .comet.config dosyası oluşturup kimlik bilgilerini bu dosyada 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'Comet Yapılandırma Dosyası#
[comet]
api_key=<Your API Key>
project_name=<Your Comet Project Name> # This will default to 'yolov5'3. Eğitim betiğini çalıştır#
# Train YOLOv5s on COCO128 for 5 epochs
python train.py --img 640 --batch 16 --epochs 5 --data coco128.yaml --weights yolov5s.ptHepsi bu kadar!
Comet, hiperparametrelerini, komut satırı bağımsız değişkenlerini, eğitim ve doğrulama metriklerini otomatik olarak kaydeder. Çalıştırmalarını Comet kullanıcı arayüzünde görselleştirebilir ve analiz edebilirsin.

Sen de Dene!#
Tamamlanmış bir çalıştırma örneğine buradan göz at.
Daha iyisi, bu Colab Notebook'ta kendin dene.
Otomatik Olarak Kaydetme#
Comet varsayılan olarak aşağıdaki öğeleri kaydeder:
Metrikler#
- Eğitim ve doğrulama verileri için Kutu Kaybı, Nesne Kaybı ve Sınıflandırma Kaybı
- Doğrulama verileri için mAP_0.5, mAP_0.5:0.95 metrikleri
- Doğrulama verileri için Precision ve Recall
Parametreler#
- Model Hiperparametreleri
- Komut satırı seçenekleri aracılığıyla iletilen tüm parametreler
Görselleştirmeler#
- Modelin doğrulama verileri üzerindeki tahminlerine ait Karışıklık Matrisi
- Tüm sınıflardaki PR ve F1 eğrilerine ait grafikler
- Sınıf Etiketlerinin Korelogramı
Comet Kayıtlarını Yapılandırma#
Comet, eğitim betiğine iletilen komut satırı bayrakları veya ortam değişkenleri aracılığıyla ek verileri 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=<your model name> # 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=<number of allowed images to upload to Comet> # 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=<your checkpoint filename> # 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 predictionsKontrol Noktalarını Comet ile Kaydetme#
Modellerin Comet'e kaydedilmesi varsayılan olarak devre dışıdır. Etkinleştirmek için save-period bağımsız değişkenini eğitim betiğine ilet. Bu işlem, 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 1Model Tahminlerini Kaydetme#
Varsayılan olarak model tahminleri (görüntüler, temel gerçek etiketleri ve sınırlayıcı kutular) Comet'e kaydedilir. bbox_interval komut satırı bağımsız değişkenini ileterek kaydedilen tahminlerin ve ilişkili görüntülerin sıklığını kontrol edebilirsin. Tahminler, Comet'in Nesne Algılama Özel Paneli kullanılarak görselleştirilebilir. Bu sıklık, dönem başına her N'inci veri grubuna karşılık gelir. Aşağıdaki örnekte her dönem için her 2. veri grubunu kaydediyoruz.
Not: YOLOv5 doğrulama veri yükleyicisi varsayılan olarak 32'lik bir grup boyutu kullanır; bu nedenle kayıt sıklığını buna göre ayarlaman gerekir.
Paneli kullanan örnek bir projeye buradan ulaşabilirsin.
python train.py \
--img 640 \
--batch 16 \
--epochs 5 \
--data coco128.yaml \
--weights yolov5s.pt \
--bbox_interval 2Comet'e Kaydedilen Tahmin Görüntülerinin Sayısını Denetleme#
YOLOv5'ten tahminleri kaydederken Comet, her tahmin kümesiyle ilişkili görüntüleri kaydeder. Varsayılan olarak en fazla 100 doğrulama görüntüsü kaydedilir. Bu sayıyı COMET_MAX_IMAGE_UPLOADS ortam değişkenini kullanarak 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 1Sınıf Düzeyindeki Metrikleri Kaydetme#
Her sınıf için mAP, precision, recall ve f1 değerlerini kaydetmek üzere 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.ptComet Artifacts'e Veri Kümesi Yükleme#
Verilerini Comet Artifacts kullanarak depolamak istersen bunu upload_dataset bayrağıyla yapabilirsin.
Veri kümesi, YOLOv5 belgelerinde açıklanan şekilde düzenlenir. Veri kümesi yapılandırma yaml dosyası, coco128.yaml dosyasıyla aynı biçimi izlemelidir.
python train.py \
--img 640 \
--batch 16 \
--epochs 5 \
--data coco128.yaml \
--weights yolov5s.pt \
--upload_datasetYüklenen veri kümesini Comet Workspace'inin Artifacts sekmesinde bulabilirsin

Verileri doğrudan Comet kullanıcı arayüzünde önizleyebilirsin.

Artifacts sürümlendirilir ve veri kümesi hakkında meta veriler eklenmesini de destekler. Comet, veri kümesinin yaml dosyasındaki meta verileri otomatik olarak kaydeder.

Kaydedilmiş Bir Artifact'i Kullanma#
Comet Artifacts'ten bir veri kümesi kullanmak istiyorsan veri kümesi yaml dosyasındaki path değişkenini aşağıdaki Artifact kaynak URL'sini gösterecek şekilde ayarla.
# contents of artifact.yaml file
path: "comet://<workspace name>/<artifact name>:<artifact version or alias>"Ardından bu dosyayı eğitim betiğine aşağıdaki şekilde ilet:
python train.py \
--img 640 \
--batch 16 \
--epochs 5 \
--data artifact.yaml \
--weights yolov5s.ptArtifacts, veriler Deney sürecinden geçerken veri soyunu izlemeni de sağlar. Burada, yüklediğin veri kümesini kullanmış tüm deneyleri gösteren bir grafik görebilirsin.

Bir Eğitim Çalıştırmasına Devam Etme#
Eğitim çalıştırman herhangi bir nedenle, örneğin internet bağlantısının kesilmesi nedeniyle kesintiye uğrarsa resume bayrağını ve Comet Run Path'i kullanarak çalıştırmaya devam edebilirsin.
Run Path şu biçimdedir: comet://<your workspace name>/<your project name>/<experiment id>.
Bu işlem, kontrol noktasındaki modeli geri yüklemeyi, tüm hiperparametreleri ve eğitim bağımsız değişkenlerini geri yüklemeyi ve ilk çalıştırmada kullanılmışsa Comet veri kümesi Artifacts'lerini indirmeyi de içeren şekilde çalıştırmayı kesintiden önceki durumuna geri getirir. Devam ettirilen çalıştırma, Comet kullanıcı arayüzündeki mevcut Experiment'e kayıt yapmayı sürdürür.
python train.py \
--resume "comet://<your run path>"Comet Optimizer ile Hiperparametre Araması#
YOLOv5, Comet'in Optimizer'ı ile de entegredir ve hiperparametre taramalarını Comet kullanıcı arayüzünde görselleştirmeyi kolaylaştırır.
Bir Optimizer Taramasını Yapılandırma#
Comet Optimizer'ı yapılandırmak için tarama bilgilerini içeren bir JSON dosyası oluşturman gerekir.
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ı bağımsız değişkenleri kabul eder. Taramana ek bağımsız değişkenler iletmek istersen 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 1Bir Taramayı Paralel Olarak Çalıştırma#
comet optimizer -j <num_workers> utils/loggers/comet/hpo.py \
utils/loggers/comet/optimizer_config.jsonComet, taramanın sonuçlarını görselleştirmek için birçok yol sunar. Tamamlanmış bir taramanın bulunduğu projeye buradan göz at:

İletişimde Kal#
YOLOv5 modellerini eğitim çalıştırmalarından üretim izlemeye kadar yönetmek, görselleştirmek ve optimize etmek için Comet entegrasyonumuzu kullanmaya başla.
Ayrıca elbette, YOLOv5 eğitimi, doğrulaması ve dağıtımı hakkında sorular sormak ve ipuçları paylaşmak için Ultralytics Community'ye katıl.









