Link to this sectionYOLOv5'i Özel Veriler Üzerinde Eğit#
📚 Bu kılavuz, YOLOv5 modelini kullanarak kendi özel veri setini nasıl eğiteceğini açıklar 🚀. Özel modeller eğitmek, bilgisayarlı görü çözümlerini genel nesne tespiti uygulamalarının ötesinde, belirli gerçek dünya uygulamalarına uyarlamak için temel bir adımdır.
Link to this sectionBaşlamadan Önce#
Öncelikle gerekli ortamı kurduğundan emin ol. YOLOv5 deposunu klonla ve requirements.txt dosyasından gerekli bağımlılıkları yükle. Python>=3.8.0 ve PyTorch>=1.8 kurulu bir ortam şarttır. Modeller ve veri setleri yerel olarak bulunamazsa en güncel YOLOv5 sürümünden otomatik olarak indirilir.
git clone https://github.com/ultralytics/yolov5 # Clone the repository
cd yolov5
pip install -r requirements.txt # Install dependenciesLink to this sectionÖzel Veriler Üzerinde Eğit#
Özel bir nesne tespiti modeli geliştirmek yinelemeli bir süreçtir:
- Görüntüleri Topla ve Düzenle: Belirli görevine uygun görüntüleri topla. Yüksek kaliteli ve çeşitli veriler çok önemlidir. Veri Toplama ve Etiketleme hakkındaki kılavuzumuza göz at.
- Nesneleri Etiketle: Görüntülerindeki ilgilendiğin nesneleri doğru bir şekilde işaretle.
- Model Eğit: Etiketlenmiş verileri kullanarak YOLOv5 modelini eğit. Önceden eğitilmiş ağırlıklarla başlayarak transfer öğreniminden yararlan.
- Dağıt ve Tahmin Et: Eğitilmiş modeli yeni, görülmemiş veriler üzerinde çıkarım yapmak için kullan.
- Uç Durumları Topla: Modelin zayıf performans gösterdiği senaryoları (uç durumlar) belirle ve sağlamlığını artırmak için veri setine benzer veriler ekle. Döngüyü tekrarla.
Ultralytics Platform, veri seti yönetimi, model eğitimi ve dağıtımı dahil olmak üzere bu makine öğrenimi operasyonları (MLOps) döngüsünün tamamı için kodsuz, akıcı bir çözüm sunar.
Ultralytics, çeşitli kullanım senaryolarına uyum sağlamak için iki lisans seçeneği sunar:
- AGPL-3.0 Lisansı: Bu OSI onaylı açık kaynak lisansı; öğrenciler, araştırmacılar ve açık iş birliği ile bilgi paylaşımına tutku duyan meraklılar için idealdir. Türetilmiş çalışmaların aynı lisans altında paylaşılmasını gerektirir. Tam ayrıntılar için LICENSE dosyasına bak.
- Kurumsal Lisans: Geliştirme ve üretim kullanımı için bu lisans, Ultralytics yazılımının ve yapay zeka modellerinin; dahili araçlar, otomatik iş akışları ve üretim dağıtımları dahil olmak üzere ticari ürün ve hizmetlere sorunsuz entegrasyonunu sağlar ve AGPL-3.0'ın açık kaynak gereksinimlerini atlar. Başlamak için lütfen Ultralytics Licensing aracılığıyla bizimle iletişime geç.
Lisanslama seçeneklerimizi Ultralytics Licensing sayfasında daha ayrıntılı keşfet.
Eğitimi başlatmadan önce veri seti hazırlığı esastır.
Link to this sectionBir Veri Seti Oluştur#
YOLOv5 modelleri, nesne sınıflarının görsel özelliklerini öğrenmek için etiketli veriye ihtiyaç duyar. Veri setini doğru bir şekilde düzenlemek anahtardır.
Link to this section1.1 dataset.yaml Oluştur#
Veri seti yapılandırma dosyası (örneğin, coco128.yaml), veri setinin yapısını, sınıf isimlerini ve görüntü dizinlerine giden yolları ana hatlarıyla belirtir. COCO128, geniş kapsamlı COCO veri setinden alınan ilk 128 görüntüden oluşan küçük bir örnek veri seti işlevi görür. Eğitim hattını hızla test etmek ve aşırı öğrenme gibi olası sorunları teşhis etmek için kullanışlıdır.
dataset.yaml dosya yapısı şunları içerir:
path: Veri setini içeren kök dizin.train,val,test:pathdizininden; eğitim, doğrulama ve test kümeleri için görüntüleri veya görüntü yollarını listeleyen metin dosyalarını içeren dizinlere göreceli yollar.names: Sınıf indekslerini (0'dan başlayarak) karşılık gelen sınıf isimleriyle eşleştiren bir sözlük.
path değerini, YOLOv5 deposunun kök dizininden eğitim başlatırken mutlak bir dizin (örneğin, /home/user/datasets/coco128) veya ../datasets/coco128 gibi göreceli bir yol olarak ayarlayabilirsin.
Aşağıda coco128.yaml için yapı bulunmaktadır (GitHub'da görüntüle):
# Dataset root directory relative to the yolov5 directory
path: coco128
# Train/val/test sets: specify directories, *.txt files, or lists
train: images/train2017 # 128 images for training
val: images/train2017 # 128 images for validation
test: # Optional path to test images
# Classes (example using 80 COCO classes)
names:
0: person
1: bicycle
2: car
# ... (remaining COCO classes)
77: teddy bear
78: hair drier
79: toothbrushLink to this section1.2 Otomatik Etiketleme için Modellerden Yararlan#
Manuel etiketleme yaygın bir yaklaşımdır ancak zaman alıcıdır. Temel modeller, etiketlemeyi otomatikleştirebilir veya yarı otomatikleştirebilir ve veri seti oluşturma sürecini hızlandırabilir. Etiket oluşturmaya yardımcı olabilecek model örnekleri:
- Google Gemini: Gemini gibi büyük çok modlu modeller güçlü görüntü anlama yeteneklerine sahiptir. Görüntülerdeki nesneleri tanımlamak ve konumlandırmak için yönlendirilebilirler; bu da YOLO formatındaki etiketlere dönüştürülebilen sınırlayıcı kutular veya açıklamalar oluşturmalarını sağlar. Sağlanan eğitim not defterinde potansiyelini keşfet.
- SAM2 (Segment Anything Model 2): SAM2 gibi segmentasyona odaklanan temel modeller, nesneleri yüksek hassasiyetle tanımlayabilir ve çizebilir. Öncelikle segmentasyon için olsa da, ortaya çıkan maskeler genellikle nesne tespiti görevleri için uygun olan sınırlayıcı kutu açıklamalarına dönüştürülebilir.
- YOLOWorld: Bu model, açık kelime dağarcığıyla tespit yetenekleri sunar. İlgilendiğin nesnelerin metin açıklamalarını sağlayabilirsin; YOLOWorld, bu sınıflar üzerinde önceden eğitim almadan görüntülerin içinde onları bulabilir. Bu, daha sonra iyileştirilebilecek başlangıç etiketlerini oluşturmak için bir çıkış noktası olarak kullanılabilir.
Bu modelleri kullanmak, manuel çabayı azaltan bir "ön etiketleme" adımı sağlayabilir. Ancak, doğruluğu ve tutarlılığı sağlamak için otomatik oluşturulan etiketleri gözden geçirmek ve iyileştirmek çok önemlidir, çünkü kalite, eğitilmiş YOLOv5 modelinin performansını doğrudan etkiler. Etiketlerini oluşturduktan (ve muhtemelen iyileştirdikten) sonra, YOLO formatına uygun olduklarından emin ol: her görüntü için bir *.txt dosyası ve her satır, bir nesneyi class_index x_center y_center width height (normalize edilmiş koordinatlar, sıfır tabanlı sınıf indeksi) olarak temsil eder. Bir görüntüde ilgilenilen nesne yoksa, karşılık gelen bir *.txt dosyasına gerek yoktur.
YOLO formatındaki *.txt dosyası özellikleri kesindir:
- Her sınırlayıcı kutu için bir satır.
- Her satır şunları içermelidir:
class_index x_center y_center width height. - Koordinatlar, 0 ile 1 arasındaki bir aralığa normalize edilmelidir. Bunu başarmak için
x_centervewidthdeğerlerini görüntünün toplam genişliğine,y_centerveheightdeğerlerini ise görüntünün toplam yüksekliğine böl. - Sınıf indeksleri sıfır tabanlıdır (yani ilk sınıf
0ile, ikincisi1ile temsil edilir ve bu şekilde devam eder).

İki 'person' nesnesi (sınıf indeksi 0) ve bir 'tie' nesnesi (sınıf indeksi 27) içeren yukarıdaki görüntüye karşılık gelen etiket dosyası şu şekilde görünecektir:

Link to this section1.3 Dizinleri Düzenle#
Structure your datasets directory as illustrated below. By default, YOLOv5 anticipates the dataset directory (e.g., /coco128) to reside within a /datasets folder located adjacent to the /yolov5 repository directory.
YOLOv5, görüntü yolundaki /images/ ifadesinin son örneğini /labels/ ile değiştirerek her görüntü için etiketleri otomatik olarak bulur. Örneğin:
../datasets/coco128/images/im0.jpg # Path to the image file
../datasets/coco128/labels/im0.txt # Path to the corresponding label fileÖnerilen dizin yapısı şöyledir:
/datasets/
└── coco128/ # Dataset root
├── images/
│ ├── train2017/ # Training images
│ │ ├── 000000000009.jpg
│ │ └── ...
│ └── val2017/ # Validation images (optional if using same set for train/val)
│ └── ...
└── labels/
├── train2017/ # Training labels
│ ├── 000000000009.txt
│ └── ...
└── val2017/ # Validation labels (optional if using same set for train/val)
└── ...
Link to this sectionBir Model Seç#
Choose a pretrained model to initiate the training process. Starting with pretrained weights significantly accelerates learning and improves performance compared to training from scratch. YOLOv5 offers various model sizes, each balancing speed and accuracy differently. For example, YOLOv5s is the second-smallest and fastest model, suitable for resource-constrained environments. Consult the README table for a detailed comparison of all available models.

Link to this sectionEğit#
Begin the model training using the train.py script. Essential arguments include:
--img: Giriş görüntü boyutunu tanımlar (örneğin,--img 640). Daha büyük boyutlar genellikle daha iyi doğruluk sağlar ancak daha fazla GPU belleği gerektirir.--batch: Yığın boyutunu belirler (örneğin,--batch 16). GPU'nun işleyebileceği en büyük boyutu seç.--epochs: Toplam eğitim dönem (epoch) sayısını belirtir (örneğin,--epochs 100). Bir dönem, tüm eğitim veri seti üzerinde tam bir geçişi temsil eder.--data:dataset.yamldosyanın yolu (örneğin,--data coco128.yaml).--weights: Başlangıç ağırlıkları dosyasının yolu. Daha hızlı yakınsama ve üstün sonuçlar için önceden eğitilmiş ağırlıkları (örneğin,--weights yolov5s.pt) kullanman şiddetle önerilir. Sıfırdan eğitmek için (çok büyük bir veri setin ve özel ihtiyaçların yoksa önerilmez),--weights '' --cfg yolov5s.yamlkullan.
Önceden eğitilmiş ağırlıklar, yerel olarak bulunamazsa en güncel YOLOv5 sürümünden otomatik olarak indirilir.
# Example: Train YOLOv5s on the COCO128 dataset for 3 epochs
python train.py --img 640 --batch 16 --epochs 3 --data coco128.yaml --weights yolov5s.pt💡 Employ --cache ram or --cache disk to cache dataset images in RAM or local disk, respectively. This dramatically accelerates training, particularly when dataset I/O (Input/Output) operations are a bottleneck. Note that this requires substantial RAM or disk space.
💡 Her zaman yerel olarak depolanan veri setlerini kullanarak eğit. Ağ sürücülerinden (Google Drive gibi) veya uzak depolama alanından verilere erişmek önemli ölçüde daha yavaş olabilir ve eğitim performansını engelleyebilir. Veri setini yerel bir SSD'ye kopyalamak genellikle en iyi uygulamadır.
Ağırlıklar ve günlükler dahil tüm eğitim çıktıları runs/train/ dizinine kaydedilir. Her eğitim oturumu yeni bir alt dizin oluşturur (örneğin, runs/train/exp, runs/train/exp2, vb.). Etkileşimli, uygulamalı bir deneyim için resmi eğitim not defterlerimizdeki eğitim bölümünü keşfet:
Link to this sectionGörselleştir#
YOLOv5, eğitim ilerlemesini görselleştirmek, sonuçları değerlendirmek ve performansı gerçek zamanlı olarak izlemek için çeşitli araçlarla sorunsuz bir şekilde entegre olur.
Link to this sectionComet Günlüğü ve Görselleştirme#
Comet, kapsamlı deney takibi için tamamen entegre edilmiştir. Metrikleri canlı olarak görselleştir, hiperparametreleri kaydet, veri setlerini ve model kontrol noktalarını yönet ve etkileşimli Comet Özel Panellerini kullanarak model tahminlerini analiz et.
Başlamak oldukça kolaydır:
pip install comet_ml # 1. Install Comet library
export COMET_API_KEY=YOUR_API_KEY_HERE # 2. Set your Comet API key (create a free account at Comet.ml)
python train.py --img 640 --epochs 3 --data coco128.yaml --weights yolov5s.pt # 3. Train your model - Comet automatically logs everything!Desteklenen özelliklerin derinliklerine Comet Entegrasyon Kılavuzumuzda in. Comet'in yetenekleri hakkında daha fazla bilgiyi resmi dokümantasyonlarından öğren. Canlı bir demo için Comet Colab Not Defterini dene:
Link to this sectionClearML Günlüğü ve Otomasyonu#
ClearML entegrasyonu; ayrıntılı deney takibi, veri seti sürüm yönetimi ve hatta eğitim çalışmalarının uzaktan yürütülmesini sağlar. ClearML'i şu basit adımlarla etkinleştir:
- Paketi yükle:
pip install clearml - Initialize ClearML: Run
clearml-initonce to connect to your ClearML server (either self-hosted or the free tier).
ClearML; deney ayrıntılarını, model yüklemelerini, karşılaştırmaları, işlenmemiş kod değişikliklerini ve yüklü paketleri otomatik olarak yakalar, böylece tam tekrarlanabilirlik sağlar. Eğitim görevlerini uzak aracı bilgisayarlarda kolayca zamanlayabilir ve ClearML Data kullanarak veri seti sürümlerini yönetebilirsin. Kapsamlı ayrıntılar için ClearML Entegrasyon Kılavuzunu keşfet.
Link to this sectionYerel Günlük Tutma#
Training results are automatically logged using TensorBoard and saved as CSV files within the specific experiment directory (e.g., runs/train/exp). Logged data includes:
- Eğitim ve doğrulama kaybı ile performans metrikleri.
- Uygulanan artırmaları (mozaikler gibi) gösteren örnek görüntüler.
- Görsel inceleme için model tahminlerinin yanındaki temel doğruluk etiketleri.
- Kesinlik-Duyarlılık (PR) eğrileri gibi ana değerlendirme metrikleri.
- Ayrıntılı sınıf bazlı performans analizi için karmaşıklık matrisleri.
results.csv dosyası her dönemden sonra güncellenir ve eğitim sona erdiğinde results.png olarak çizilir. Ayrıca, sağlanan yardımcı işlevi kullanarak herhangi bir results.csv dosyasını manuel olarak çizebilirsin:
from utils.plots import plot_results
# Plot results from a specific training run directory
plot_results("runs/train/exp/results.csv") # This will generate 'results.png' in the same directory
Link to this sectionSonraki Adımlar#
Eğitim başarıyla tamamlandığında, en iyi performans gösteren model kontrol noktası (best.pt) kaydedilir ve dağıtım veya daha fazla iyileştirme için hazırdır. Olası sonraki adımlar şunlardır:
- Run inference on new images or videos using the trained model via the CLI or Python.
- Perform validation to evaluate the model's accuracy and generalization capabilities on different data splits (e.g., a held-out test set).
- Export the model to various deployment formats like ONNX, TensorFlow SavedModel, or TensorRT for optimized inference on diverse platforms.
- Ek performans kazanımları elde etmek için hiperparametre ayarlama tekniklerini kullanmak.
- En İyi Eğitim Sonuçları İçin İpuçları kılavuzumuzu takip ederek ve performans analizine dayanarak yinelemeli olarak daha çeşitli ve zorlu veriler ekleyerek modelini geliştirmeye devam etmek.
Link to this sectionDesteklenen Ortamlar#
Ultralytics; CUDA, cuDNN, Python ve PyTorch gibi temel bağımlılıklarla donatılmış, kullanıma hazır ortamlar sağlayarak sorunsuz bir başlangıcı kolaylaştırır.
- Ücretsiz GPU Not Defterleri:
- Bulut Platformları:
- Google Cloud: GCP Başlangıç Kılavuzu
- Amazon AWS: AWS Hızlı Başlangıç Kılavuzu
- Microsoft Azure: AzureML Hızlı Başlangıç Kılavuzu
- Yerel Kurulum:
- Docker: Docker Hızlı Başlangıç Kılavuzu
- Docker: Docker Hızlı Başlangıç Kılavuzu
Link to this sectionProje Durumu#
Bu rozet, tüm YOLOv5 GitHub Actions Continuous Integration (CI) testlerinin başarıyla geçtiğini gösterir. Bu titiz CI testleri; macOS, Windows ve Ubuntu işletim sistemleri genelinde eğitim, doğrulama, çıkarım, dışa aktarma ve kıyaslama dahil olmak üzere temel işlevleri kapsar. Testler her 24 saatte bir ve her kod gönderiminde otomatik olarak yürütülerek tutarlı kararlılık ve optimum performans sağlanır.
Link to this sectionSSS#
Link to this sectionYOLOv5'i özel veri kümemde nasıl eğitebilirim?#
YOLOv5'i özel bir veri kümesinde eğitmek birkaç temel adımı içerir:
- Veri Kümeni Hazırla: Görselleri topla ve etiketle. Etiketlerin gerekli YOLO formatında olduğundan emin ol. Görselleri ve etiketleri
train/veval/(ve isteğe bağlı olaraktest/) dizinlerine göre düzenle. Etiketleme sürecine yardımcı olmak veya otomatikleştirmek için Google Gemini, SAM2 veya YOLOWorld gibi modelleri kullanmayı düşün (Bölüm 1.2'ye bak). - Ortamını Kur: YOLOv5 deposunu klonla ve
pip install -r requirements.txtkullanarak bağımlılıkları yükle.git clone https://github.com/ultralytics/yolov5 cd yolov5 pip install -r requirements.txt - Veri Kümesi Yapılandırmasını Oluştur: Bir
dataset.yamldosyasında veri kümesi yollarını, sınıf sayısını ve sınıf adlarını tanımla. - Start Training: Execute the
train.pyscript, providing paths to yourdataset.yaml, desired pretrained weights (e.g.,yolov5s.pt), image size, batch size, and the number of epochs.python train.py --img 640 --batch 16 --epochs 100 --data path/to/your/dataset.yaml --weights yolov5s.pt
Link to this sectionYOLO modellerimi eğitmek için neden Ultralytics Platform kullanmalıyım?#
Ultralytics Platform, genellikle kod yazmaya gerek kalmadan tüm YOLO model geliştirme yaşam döngüsünü kolaylaştırmak için tasarlanmış kapsamlı bir platformdur. Temel faydaları şunlardır:
- Basitleştirilmiş Eğitim: Önceden yapılandırılmış ortamları ve sezgisel bir kullanıcı arayüzünü kullanarak modelleri kolayca eğit.
- Entegre Veri Yönetimi: Veri kümelerini platform içinde verimli bir şekilde yükle, sürüm kontrolünü yap ve yönet.
- Gerçek Zamanlı İzleme: Comet veya TensorBoard gibi entegre araçları kullanarak eğitim ilerlemesini takip et ve performans metriklerini görselleştir.
- İş Birliği Özellikleri: Paylaşılan kaynaklar, proje yönetimi araçları ve kolay model paylaşımı yoluyla ekip çalışmasını kolaylaştırır.
- Kodsuz Dağıtım: Eğitilmiş modelleri doğrudan çeşitli hedeflere dağıt.
Pratik bir adım adım kılavuz için blog yazımıza göz at: Ultralytics Platform ile Özel Modellerini Nasıl Eğitirsin.
Link to this sectionEtiketlenmiş verilerimi YOLOv5 formatına nasıl dönüştürürüm?#
İster manuel olarak etiketle ister otomatik araçlar (Bölüm 1.2'de bahsedilenler gibi) kullan, nihai etiketler YOLOv5'in gerektirdiği özel YOLO formatında olmalıdır:
- Create one
.txtfile for each image. The filename should match the image filename (e.g.,image1.jpgcorresponds toimage1.txt). Place these files in alabels/directory parallel to yourimages/directory (e.g.,../datasets/mydataset/labels/train/). - Bir
.txtdosyası içindeki her satır bir nesne etiketini temsil eder ve şu formatı izler:class_index center_x center_y width height. - Koordinatlar (
center_x,center_y,width,height), görselin boyutlarına göre normalize edilmiş (0.0 ile 1.0 arasında değerler) olmalıdır. - Sınıf indeksleri sıfır tabanlıdır (ilk sınıf
0, ikincisi1şeklindedir).
Birçok manuel etiketleme aracı, doğrudan YOLO formatında dışa aktarma seçeneği sunar. Otomatik modeller kullanıyorsan, çıktılarını (örneğin sınırlayıcı kutu koordinatları, segmentasyon maskeleri) bu özel normalize edilmiş metin formatına dönüştürmek için betiklere veya süreçlere ihtiyacın olacaktır. Nihai veri kümesi yapının kılavuzda sağlanan örneğe uygun olduğundan emin ol. Daha fazla ayrıntı için Veri Toplama ve Etiketleme Kılavuzumuza bak.
Link to this sectionYOLOv5'i ticari uygulamalarda kullanmak için lisanslama seçenekleri nelerdir?#
Ultralytics, farklı ihtiyaçlara göre uyarlanmış esnek lisanslama seçenekleri sunar:
- AGPL-3.0 Lisansı: Bu açık kaynaklı lisans; akademik araştırmalar, kişisel projeler ve açık kaynak uyumluluğunun kabul edilebilir olduğu durumlar için uygundur. Değişikliklerin ve türetilmiş çalışmaların da AGPL-3.0 altında açık kaynaklı olmasını zorunlu kılar. AGPL-3.0 Lisans detaylarını incele.
- Enterprise License: A commercial license designed for businesses integrating YOLOv5 into proprietary products or services. This license removes the open-source obligations of AGPL-3.0, allowing for closed-source distribution. Visit our Licensing page for further details or to request an Enterprise License.
Projenin gereksinimleri ve dağıtım modeliyle en iyi eşleşen lisansı seç.
