İçeriğe geç

Özel Verileri Eğitin

📚 Bu kılavuzda kendi özel veri setinizi nasıl eğiteceğiniz açıklanmaktadır YOLOv5 🚀.

Başlamadan Önce

Repoyu klonlayın ve requirements.txt dosyasını bir Python>=3.8.0 ortamı dahil olmak üzere PyTorch>=1.8. Modeller ve veri setleri en son YOLOv5 sürümünden otomatik olarak indirilir.

git clone https://github.com/ultralytics/yolov5  # clone
cd yolov5
pip install -r requirements.txt  # install

Özel Veriler Üzerinde Eğitim

Ultralytics aktif öğrenme

Nesnelerinizi tespit etmek için özel bir model oluşturmak; görüntülerin toplanması ve düzenlenmesi, ilgilenilen nesnelerin etiketlenmesi, bir modelin eğitilmesi, tahminler yapmak için bu modelin vahşi doğaya yerleştirilmesi ve ardından tekrarlamak ve iyileştirmek için uç durum örneklerini toplamak üzere bu yerleştirilmiş modelin kullanılması gibi yinelemeli bir süreçtir.

Lisanslama

Ultralytics iki lisanslama seçeneği sunar:

Daha fazla ayrıntı için bkz. Ultralytics Lisanslama.

YOLOv5 modeller, bu verilerdeki nesnelerin sınıflarını öğrenmek için etiketlenmiş veriler üzerinde eğitilmelidir. Eğitime başlamadan önce veri kümenizi oluşturmak için iki seçenek vardır:

Seçenek 1: Bir Roboflow Veri Seti

1.1 Görüntüleri Toplayın

Modeliniz örnek alarak öğrenecektir. Doğada göreceklerine benzer görüntüler üzerinde eğitim almak son derece önemlidir. İdeal olarak, projenizi nihai olarak dağıtacağınız için aynı yapılandırmadan (kamera, açı, aydınlatma vb.) çok çeşitli görüntüler toplayacaksınız.

Bu mümkün değilse, ilk modelinizi eğitmek için herkese açık bir veri kümesinden başlayabilir ve ardından veri kümenizi ve modelinizi yinelemeli olarak geliştirmek için çıkarım sırasında doğal ortamdan görüntüler örnekleyebilirsiniz.

1.2 Etiket Oluşturma

Görüntüleri topladıktan sonra, modelinizin öğrenebileceği bir temel gerçek oluşturmak için ilgili nesnelere açıklama eklemeniz gerekecektir.

YOLOv5 doğruluklar

Roboflow Annotate, görüntülerinizi ekibinizle birlikte yönetmek, etiketlemek ve YOLOv5'un açıklama formatında dışa aktarmak için basit bir web tabanlı araçtır.

1.3 Veri Setini Şunlar İçin Hazırlayın YOLOv5

Görüntülerinizi Roboflow ile etiketleseniz de etiketlemeseniz de, veri kümenizi YOLO biçimine dönüştürmek, bir YOLOv5 YAML yapılandırma dosyası oluşturmak ve eğitim komut dosyanıza aktarmak üzere barındırmak için kullanabilirsiniz.

Ücretsiz bir Roboflow hesabı oluşturun ve veri kümenizi bir Public çalışma alanını açın, açıklamasız görüntüleri etiketleyin, ardından veri kümenizin bir sürümünü YOLOv5 Pytorch format.

Not: YOLOv5 eğitim sırasında çevrimiçi artırma yapar, bu nedenle YOLOv5 ile eğitim için Roboflow 'de herhangi bir artırma adımı uygulamanızı önermiyoruz. Ancak aşağıdaki ön işleme adımlarını uygulamanızı öneririz:

Önerilen Ön İşleme Adımları

  • Otomatik Yönlendirme - EXIF yönlendirmesini resimlerinizden çıkarmak için.
  • Yeniden Boyutlandır (Uzat) - modelinizin kare giriş boyutuna (640x640 YOLOv5 varsayılanıdır).

Bir sürüm oluşturmak size veri setinizin anlık görüntüsünü verecektir, böylece daha sonra daha fazla görüntü ekleseniz veya yapılandırmasını değiştirseniz bile her zaman geri dönebilir ve gelecekteki model eğitim çalışmalarınızı bununla karşılaştırabilirsiniz.

YOLOv5 Formatında Dışa Aktar

İhracat YOLOv5 Pytorch biçiminde kopyalayın, ardından veri kümenizi indirmek için parçacığı eğitim komut dosyanıza veya not defterinize kopyalayın.

Roboflow veri kümesi indirme snippet'i

Seçenek 2: Manuel Veri Kümesi Oluşturma

2.1 Oluşturma dataset.yaml

COCO128 'deki ilk 128 görüntüden oluşan örnek bir küçük öğretici veri kümesidir. COCO train2017. Bu aynı 128 görüntü, eğitim hattımızın aşırı uyum sağlayabildiğini doğrulamak için hem eğitim hem de doğrulama için kullanılmıştır. data/coco128.yamlaşağıda gösterilen, 1) veri kümesi kök dizinini tanımlayan veri kümesi yapılandırma dosyasıdır path ve göreli yolları train / val / test görüntü dizinleri (veya *.txt görüntü yollarını içeren dosyalar) ve 2) bir sınıf names Sözlük:

# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: ../datasets/coco128 # dataset root dir
train: images/train2017 # train images (relative to 'path') 128 images
val: images/train2017 # val images (relative to 'path') 128 images
test: # test images (optional)

# Classes (80 COCO classes)
names:
    0: person
    1: bicycle
    2: car
    # ...
    77: teddy bear
    78: hair drier
    79: toothbrush

2.2 Etiket Oluşturma

Resimlerinizi etiketlemek için bir açıklama aracı kullandıktan sonra etiketlerinizi YOLO Biçimbir tane ile *.txt görüntü başına dosya (görüntüde nesne yoksa *.txt dosyası gereklidir). Bu dosya *.txt dosya özellikleri şunlardır:

  • Nesne başına bir satır
  • Her satır class x_center y_center width height format.
  • Kutu koordinatları normalleştirilmiş xywh biçiminde (0'dan 1'e kadar). Kutularınız piksel cinsinden ise x_center ve width görüntü genişliğine göre ve y_center ve height görüntü yüksekliğine göre.
  • Sınıf numaraları sıfır endekslidir (0'dan başlar).

Roboflow EK AÇIKLAMALAR

Yukarıdaki resme karşılık gelen etiket dosyası 2 kişi içerir (sınıf 0) ve bir beraberlik (sınıf 27):

Roboflow veri kümesi ön işleme

2.3 Dizinleri Düzenleme

Tren ve val resimlerinizi ve etiketlerinizi aşağıdaki örneğe göre düzenleyin. YOLOv5 varsayar /coco128 içinde bir /datasets dizin yanında ve /yolov5 dizin. YOLOv5 her görüntü için etiketleri otomatik olarak bulur 'nin son örneğini değiştirerek /images/ ile her görüntü yolunda /labels/. Örneğin:

../datasets/coco128/images/im0.jpg  # image
../datasets/coco128/labels/im0.txt  # label

YOLOv5 veri kümesi yapısı

3. Bir Model Seçin

Eğitime başlamak için önceden eğitilmiş bir model seçin. Burada, mevcut ikinci en küçük ve en hızlı model olan YOLOv5s'i seçiyoruz. Tüm modellerin tam bir karşılaştırması için README tablomuza bakın.

YOLOv5 modeller

4. Tren

Veri kümesi, yığın boyutu, görüntü boyutu ve ön eğitimli modellerden birini belirterek COCO128 üzerinde bir YOLOv5s modeli eğitin --weights yolov5s.pt (önerilir) veya rastgele başlatılmış --weights '' --cfg yolov5s.yaml (önerilmez). Önceden eğitilmiş ağırlıklar otomatik olarak en son YOLOv5 sürümü.

python train.py --img 640 --epochs 3 --data coco128.yaml --weights yolov5s.pt

İpucu

💡 Ekle --cache ram veya --cache disk eğitimi hızlandırmak için (önemli RAM/disk kaynakları gerektirir).

İpucu

💡 Her zaman yerel bir veri kümesinden eğitin. Google Drive gibi takılı veya ağ sürücüleri çok yavaş olacaktır.

Tüm eğitim sonuçları şu adrese kaydedilir runs/train/ artan çalışma dizinleri ile, yani runs/train/exp2, runs/train/exp3 vb. Daha fazla ayrıntı için eğitim not defterimizin Eğitim bölümüne bakın. Colab'da Aç Kaggle'da Aç

5. Görselleştirin

Comet Günlüğe Kaydetme ve Görselleştirme 🌟 YENİ

Comet artık YOLOv5 ile tamamen entegre. Model ölçümlerini gerçek zamanlı olarak takip edin ve görselleştirin, hiperparametrelerinizi, veri kümelerinizi ve model kontrol noktalarınızı kaydedin ve Comet Özel Paneller ile model tahminlerinizi görselleştirin! Comet çalışmanızın izini asla kaybetmemenizi sağlar ve sonuçları paylaşmayı ve her büyüklükteki ekipler arasında işbirliği yapmayı kolaylaştırır!

Başlamak çok kolay:

pip install comet_ml  # 1. install
export COMET_API_KEY=<Your API Key>  # 2. paste API key
python train.py --img 640 --epochs 3 --data coco128.yaml --weights yolov5s.pt  # 3. train

Bu entegrasyon için desteklenen tüm Comet özellikleri hakkında daha fazla bilgi edinmek için Comet Öğretici. Comet hakkında daha fazla bilgi edinmek isterseniz dokümantasyon. Comet Colab Notebook'u deneyerek başlayın: Colab'da Aç

YOLO UI

ClearML Loglama ve Otomasyon 🌟 YENİ

ClearML deneylerinizi takip etmek, veri seti sürümlerini yönetmek ve hatta eğitim çalışmalarını uzaktan yürütmek için YOLOv5 adresine tamamen entegre edilmiştir. Etkinleştirmek için ClearML:

  • pip install clearml
  • koşmak clearml-init ClearML sunucusuna bağlanmak için

Bir deney yöneticisinden beklenen tüm harika özellikleri elde edersiniz: canlı güncellemeler, model yükleme, deney karşılaştırma vb. ancak ClearML ayrıca taahhüt edilmemiş değişiklikleri ve örneğin yüklü paketleri de izler. Bu sayede ClearML Görevleri (deney dediğimiz şey) farklı makinelerde de tekrarlanabilir! Sadece 1 ekstra satırla, herhangi bir sayıda ClearML Aracı (işçi) tarafından yürütülecek bir kuyrukta bir YOLOv5 eğitim görevi planlayabiliriz.

Veri setinizi sürümlendirmek için ClearML Data'yı kullanabilir ve daha sonra sadece benzersiz kimliğini kullanarak YOLOv5 adresine aktarabilirsiniz. Bu, ekstra güçlük çıkarmadan verilerinizi takip etmenize yardımcı olacaktır. Ayrıntılar için ClearML Öğreticisini keşfedin!

ClearML Deney Yönetimi Kullanıcı Arayüzü

Yerel Günlük Kaydı

Eğitim sonuçları otomatik olarak Tensorboard ve CSV kaydediciler runs/trainolarak her yeni eğitim için oluşturulan yeni bir deney dizini ile runs/train/exp2, runs/train/exp3vb.

Bu dizinde train ve val istatistikleri, mozaikler, etiketler, tahminler ve artırılmış mozaiklerin yanı sıra hassasiyet-geri çağırma (PR) eğrileri ve karışıklık matrisleri gibi metrikler ve grafikler yer almaktadır.

Yerel kayıt sonuçları

Sonuçlar dosyası results.csv her dönemden sonra güncellenir ve ardından şu şekilde çizilir results.png (aşağıda) eğitim tamamlandıktan sonra. Ayrıca herhangi bir results.csv dosyasına manuel olarak erişebilirsiniz:

from utils.plots import plot_results

plot_results("path/to/results.csv")  # plot 'results.csv' as 'results.png'

sonuçlar.png

Sonraki Adımlar

Modeliniz eğitildikten sonra en iyi kontrol noktanızı kullanabilirsiniz best.pt için:

  • Koşmak CLI veya Python yeni görüntüler ve videolar üzerinde çıkarım
  • Eğitim, val ve test bölünmelerinde doğruluğu doğrulayın
  • TensorFlow, Keras, ONNX, TFlite, TF.js, CoreML ve TensorRT formatlarına aktarın
  • Performansı artırmak için hiperparametreleri geliştirin
  • Gerçek dünya görüntülerini örnekleyerek ve veri setinize ekleyerek modelinizi geliştirin

Desteklenen Ortamlar

Ultralytics gibi temel bağımlılıklarla önceden yüklenmiş bir dizi kullanıma hazır ortam sağlar. CUDA, CUDNN, Pythonve PyTorchProjelerinizi başlatmak için.

Proje Durumu

YOLOv5 CI

Bu rozet, tüm YOLOv5 GitHub Actions Sürekli Entegrasyon (CI) testlerinin başarıyla geçtiğini gösterir. Bu CI testleri, YOLOv5 'un işlevselliğini ve performansını çeşitli temel yönlerden titizlikle kontrol eder: eğitim, doğrulama, çıkarım, dışa aktarma ve kıyaslamalar. Her 24 saatte bir ve her yeni işlemde yapılan testlerle macOS, Windows ve Ubuntu üzerinde tutarlı ve güvenilir çalışma sağlarlar.

SSS

YOLOv5 adresini özel veri kümem üzerinde nasıl eğitebilirim?

YOLOv5 adresinin özel bir veri kümesi üzerinde eğitilmesi birkaç adımdan oluşur:

  1. Veri Setinizi Hazırlayın: Görüntüleri toplayın ve etiketleyin. Gibi araçları kullanın Roboflow verileri düzenlemek ve YOLOv5 biçiminde dışa aktarmak için.
  2. Kurulum Ortamı: YOLOv5 reposunu klonlayın ve bağımlılıkları yükleyin:
    git clone https://github.com/ultralytics/yolov5
    cd yolov5
    pip install -r requirements.txt
    
  3. Veri Kümesi Yapılandırması Oluşturma: Yaz bir dataset.yaml train/val yollarını ve sınıf adlarını tanımlayan dosya.
  4. Modeli Eğitin:
    python train.py --img 640 --epochs 3 --data dataset.yaml --weights yolov5s.pt
    

YOLOv5 veri setime açıklama eklemek için hangi araçları kullanabilirim?

Görüntüleri etiketlemek için sezgisel bir web tabanlı araç olan Roboflow Annotate'i kullanabilirsiniz. Ekip işbirliğini destekler ve YOLOv5 formatında dışa aktarır. Görüntüleri topladıktan sonra, ek açıklamaları verimli bir şekilde oluşturmak ve yönetmek için Roboflow adresini kullanın. Diğer seçenekler arasında yerel ek açıklamalar için LabelImg ve CVAT gibi araçlar bulunmaktadır.

YOLO modellerimi eğitmek için neden Ultralytics HUB kullanmalıyım?

Ultralytics HUB, kapsamlı kodlama becerilerine ihtiyaç duymadan YOLO modellerini eğitmek, dağıtmak ve yönetmek için uçtan uca bir platform sunar. Ultralytics HUB kullanmanın faydaları şunlardır:

  • Kolay Model Eğitimi: Önceden yapılandırılmış ortamlar ile eğitim sürecini basitleştirir.
  • Veri Yönetimi: Veri kümelerini ve sürüm kontrolünü zahmetsizce yönetin.
  • Gerçek Zamanlı İzleme: Aşağıdaki gibi araçları entegre eder Comet gerçek zamanlı metrik takibi ve görselleştirme için.
  • İşbirliği: Paylaşılan kaynaklar ve kolay yönetim ile ekip projeleri için idealdir.

Açıklamalı verilerimi YOLOv5 formatına nasıl dönüştürebilirim?

Açıklamalı verileri Roboflow kullanarak YOLOv5 formatına dönüştürmek için:

  1. Veri Setinizi bir Roboflow çalışma alanına yükleyin.
  2. Henüz etiketlenmemişse Görüntüleri etiket leyin.
  3. Oluştur ve Dışa Aktar içindeki veri kümesi YOLOv5 Pytorch biçimlendirin. Otomatik Oryantasyon ve Kare giriş boyutuna (örn. 640x640) Yeniden Boyutlandırma (Uzatma) gibi ön işleme adımlarının uygulandığından emin olun.
  4. Veri Kümesini indirin ve YOLOv5 eğitim komut dosyanıza entegre edin.

Ticari uygulamalarda YOLOv5 kullanmak için lisanslama seçenekleri nelerdir?

Ultralytics iki lisanslama seçeneği sunar:

  • AGPL-3.0 Lisans: Ticari olmayan kullanıma uygun, öğrenciler ve meraklılar için ideal bir açık kaynak lisansı.
  • Kurumsal Lisans: YOLOv5 adresini ticari ürün ve hizmetlere entegre etmek isteyen işletmeler için özel olarak tasarlanmıştır. Ayrıntılı bilgi için Lisanslama sayfamızı ziyaret edin.

Daha fazla ayrıntı için Ultralytics Lisanslama kılavuzumuza bakın.



Oluşturma 2023-11-12, Güncelleme 2024-07-10
Yazarlar: glenn-jocher (17), Burhan-Q (1)

Yorumlar