─░├ž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:

  • 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 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 ba─članm─▒┼č 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 her biri CUDA, CUDNN gibi temel ba─č─▒ml─▒l─▒klarla ├Ânceden y├╝klenmi┼č bir dizi kullan─▒ma haz─▒r ortam sa─člar, 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.



Created 2023-11-12, Updated 2024-06-10
Authors: glenn-jocher (14), Burhan-Q (1)

Yorumlar