Training a Custom Object Detection Model with YOLOv5

Training a Custom Object Detection Model with YOLOv5

23 March 2021
NE ÖĞRENECEKSİN?

1-Docker kapsayıcısını ayarlama

2-veri kümesini yapılandırma

3-veri kümesinin Eğitimi



ÇEVRE

    İşletim sistemi: Ubuntu 18.04.5 LTS

    CPU: AMD Ryzen 7 3700X 8 çekirdekli işlemci

    RAM: 32 GB DDR4-2133 MHz

    Grafik kartı: RTX 2060 (6 GB)

    Grafik kartının Sürücü Sürümü: 460.39


Bu eğitimde, özel maskeli yüz veri kümemizi eğitmek için YOLOv5 deposunu kullandık NVIDIA konteyner Araç. Her şeyden önce, Docker ortamımızı ayarlayacağız ve G'yi kontrol edeceğizPU Python3 ile destek. İkincisi, veri kümesini karşılıklı YOLOv5 klasörümüzde (ana bilgisayar ve geçici Docker kapsayıcısı arasında kullanılabilir) ayarlayacağız. Son olarak, veri kümesini YOLOv5m ağırlık dosyası ile eğiteceğiz.

 

Ana bilgisayar bilgisi:

  • İşletim Sistemi: Ubuntu-18.04.5
  • Grafik kartı: RTX 2060 (6 GB)
  • Grafik Kartı Sürücü Sürümü: 460.39
  • CUDA sürümü: 11.2

 

Docker Konteyner Kurulumu

 

Başlamak için, YOLOv5 deposunu indirelim ve maskeli yüz veri kümesini eğitmek için PyTorch kabını (aynı docker sürümüyle) ayarlayalım.

 

$ docker --version

 

 

$ git clone https://github.com/ultralytics/yolov5.git
$ docker pull nvcr.io/nvidia/pytorch:20.10-py3
$ docker run -it --rm --gpus all -v ${PWD}/yolov5:/yolov5 nvcr.io/nvidia/pytorch:20.10-py3
$ cd /yolov5/
$ sed -i "s/opencv/#opencv/g" requirements.txt
$ sed -i "s/torch/#torch/g" requirements.txt
$ apt update && apt install -y zip htop screen libgl1-mesa-glx
$ apt install -y python3-opencv
$ pip3 install --upgrade pip
$ pip3 install --no-cache -r requirements.txt
$ python3
>>> import torch
>>> from IPython.display import Image
>>> print('torch %s %s' % (torch.__version__, torch.cuda.get_device_properties(0) if torch.cuda.is_available() else 'CPU'))
>>> exit()

 

 

Veri Kümesi Yapılandırması

 

Ardından, "veri kümesi" klasörü oluşturun ve eğitim ve doğrulama veri kümesini içine taşıyın.

 


Şimdi, oluşturalım ve yapılandıracağız".yaml " dosyaları. Veri kümemizin iki sınıfı vardır, böylece "nc" sabitlerini 2 olarak ayarlarız ve diziyi "maske" ve "Without_mask"olarak adlandırırız.

$ touch data.yaml
$ echo "train: /yolov5/dataset/train/images" > data.yaml
$ echo "val: /yolov5/dataset/valid/images" >> data.yaml
$ echo "nc: 2" >> data.yaml
$ echo "names: ['Mask', 'Without_mask']" >> data.yaml
$ cp models/*.yaml .
$ sed -i "s/nc: 80/nc: 2/g" yolov5*.yaml

 

Ayrıca, ağırlıkları ağırlıklar klasörüne indirin:


$ cd weights/
$ bash download_weights.sh
$ cd ..





 

Veri Kümesi Eğitimi

 

Kurulumumuzda 100 dönemle eğitim aldık, ancak daha istikrarlı sonuçlar elde etmek için bunu artırabilirsiniz. Parti boyutunu 16 ile eğitmeye başladık, ancak GPU'nin belleği eğitmek için yeterli değildi (kurulumunuzda, bu veri kümeniz nedeniyle çalışabilir). Böylece, toplu iş boyutunu adım adım azalttık (16,8,4,2,1). Daha fazla toplu iş boyutu kullanırsak, bu hatayı görebilirsiniz:

 

 

$ cd /yolov5/
$ python3 train.py --img 608 --batch 2 --epochs 100 --data '/yolov5/data.yaml' --cfg /yolov5/yolov5m.yaml --weights '/yolov5/weights/yolov5m.pt' --cache

 

Bir kaç dakika sonra...

 

 

Eğitim bittikten sonra...

 

 

Ağırlık dosyamız runs/train/exp10 klasörüne kaydedildi:

 

 

Sonuç grafiklerimiz runs/train/exp10/results.png dosyası:

 

 

Şimdi, ağırlık dosyamızı test edelim:


$ cd /yolov5/
$ python3 detect.py --weights runs/train/exp10/weights/best.pt --img 416 --conf 0.4 --source /yolov5/dataset/valid/images



Test sonuçları runs/detect/exp'ye kaydedilir. Bazı sonuçları kontrol edelim:

 

 

Modelinizi güçlü veya Minimum ortamlarda kullanmak için diğer ağırlıklar (YOLOv5s, YOLOv5l, YOLOv5x) ile de eğitebilirsiniz. Sana kalmış.

Örneğin, YOLOv5s modeli ile antrenman yapmak istiyorsanız, bu komutla antrenman yapabilirsiniz:

 

$ python3 train.py --img 608 --batch 2 --epochs 100 --data '/yolov5/data.yaml' --cfg /yolov5/yolov5s.yaml --weights '/yolov5/weights/yolov5s.pt' --cache

 


Blog yazımızı okuduğunuz için teşekkür ederiz. 


Yeni blog gönderileri, ürün lansmanları ve indirimler hakkında bilgi almak istiyorsanız, formu doldurabilir ve bültenimize kaydolabilirsiniz. Kaydolarak, AI, derin öğrenme, makine vizyonu, yüksek hızlı kameralar ve endüstriyel arayüzler hakkında çeşitli blog yayınlarına ulaşabilirsiniz. 


Bir sonraki satın alma işlemi için hemen bir "ücretsiz gönderim" kodu alacaksınız.

Türkçe