Ö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
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:
- AGPL-3.0 Lisansı, öğrenciler ve meraklılar için ideal olan OSI onaylı bir açık kaynak lisansıdır.
- Yapay zeka modellerimizi ürün ve hizmetlerine dahil etmek isteyen işletmeler için Kurumsal Lisans.
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 nihayetinde 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 vahşi doğadan 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.
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:
- 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.
İ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.
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şağıdakileri yapabildiğini doğrulamak için hem eğitim hem de doğrulama için kullanılır aşırı uyum. 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
vewidth
görüntü genişliğine göre vey_center
veheight
görüntü yüksekliğine göre. - Sınıf numaraları sıfır endekslidir (0'dan başlar).
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
):
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:
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.
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ü.
İ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.
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:
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!
Yerel Günlük Kaydı
Eğitim sonuçları otomatik olarak Tensorboard ve CSV kaydediciler runs/train
olarak her yeni eğitim için oluşturulan yeni bir deney dizini ile runs/train/exp2
, runs/train/exp3
vb.
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.
Sonuçlar dosyası results.csv
her güncellemeden sonra çağve daha sonra ş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'
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ğrul ayın
- Dışa aktar TensorFlow, Keras, ONNX, TFlite, TF.js, CoreML ve TensorRT formatları
- 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.
- Ücretsiz GPU Not Defterleri:
- Google Bulut: GCP Hızlı Başlangıç Kılavuzu
- Amazon: AWS Hızlı Başlangıç Kılavuzu
- Azure: AzureML Hızlı Başlangıç Kılavuzu
- Docker: Docker Hızlı Başlangıç Kılavuzu
Proje Durumu
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:
- Veri Kümenizi 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.
- Kurulum Ortamı: YOLOv5 reposunu klonlayın ve bağımlılıkları yükleyin:
- 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. - Modeli Eğitin:
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:
- Veri Setinizi bir Roboflow çalışma alanına yükleyin.
- Henüz etiketlenmemişse Görüntüleri etiket leyin.
- 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. - 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.