Ich habe gehört, dass YOLO v5 veröffentlicht wurde, also habe ich es versucht. https://github.com/ultralytics/yolov5/
Ich habe Bilder zur Objekterkennung von den folgenden Websites aufgenommen. https://public.roboflow.ai/object-detection/ Es gibt verschiedene Daten, aber da es sich um die Koronaperiode handelt, habe ich die Daten mit und ohne Maske ausgewählt.
Der Zweck besteht darin, Objekte mit und ohne Masken zu erkennen, wie in der Abbildung gezeigt.
Laden Sie zuerst die Daten herunter. Greifen Sie auf die folgende URL zu. https://public.roboflow.ai/object-detection/
Klicken Sie auf ** Mask Wearing Dataset **.
Klicken Sie auf ** 416x416-Schwarz-Polsterung **.
Klicken Sie oben rechts auf ** Herunterladen **, wählen Sie ** YOLOv5 Pytorch ** aus und klicken Sie zum Herunterladen auf ** Weiter **.
Bitte laden Sie das Set von folgenden herunter. https://drive.google.com/drive/folders/1Drs_Aiu7xx6S-ix95f9kNsA6ueKRpN2J
Siehe unten für COCO-Datensätze. COCO-Datensatz
Laden Sie ** YOLOv5.ipynb ** vom GitHub unten herunter. https://github.com/yuomori0127/YOLOv5_mask_wearing_data
Wenn Sie den Code in Google Colab sehen möchten, klicken Sie hier [https://colab.research.google.com/drive/1TvyOG9sf-yx86SzBmYO8f1Y6wxVZEKDN?authuser=2#scrollTo=iCLXFYlQbPTM/)
Die verwendete Umgebung ** Google Colab **. Informationen zur Verwendung finden Sie im folgenden Artikel. Die Servergebühr ist kostenlos. Zusammenfassung der Verwendung von Google Colab
Legen Sie die folgenden drei in einen beliebigen Ordner von ** GooleDrive **. ・ Heruntergeladene Daten in 2-1. ・ Vorgeschultes Modell in 2-2 heruntergeladen. ・ ** YOLOv5.ipynb ** in 2-3 heruntergeladen.
Öffnen Sie ** YOLOv5.ipynb ** von ** Goole Drive ** in ** Google Colab **.
Zunächst benötigen Sie eine GPU-Ähnlichkeit.
Führen Sie oben ! Nvidia-smi
aus (Umschalt + Eingabetaste) und ähneln Sie, bis Sie Tesla P100 sehen.
Sie können innerhalb von 5 Mal schließen.
Sie können es wie folgt zurücksetzen.
Wenn Sie "Laufzeit" ausführen -> "Alle Verarbeitung ausführen", wird alles ausgeführt. ** Wahrscheinlich stimmt der Ordnername oder die Hierarchie nicht überein. ** ** ** Der Code ist kurz und sollte nicht zu hart sein. Versuchen Sie daher, ihn abzugleichen. Es tut mir Leid.
Da es kurz ist, werde ich den Code einzeln erklären.
Ich überprüfe die GPU.
!nvidia-smi
importieren.
from IPython.display import Image, clear_output # to display images
Ich mounte Google Drive.
from google.colab import drive
drive.mount('/content/drive')
Verzeichnis verschieben
import os
os.chdir("./drive/My Drive/YOLOv5/")
Ressourcen überprüfen. Dies dient hauptsächlich zur Überprüfung des Arbeitsspeichers, aber diesmal gibt es nur wenige Daten und es ist eine Epoche von 100, sodass Sie sich nicht zu viele Sorgen machen müssen.
!ln -sf /opt/bin/nvidia-smi /usr/bin/nvidia-smi
!pip install gputil
!pip install psutil
!pip install humanize
import psutil
import humanize
import os
import GPUtil as GPU
GPUs = GPU.getGPUs()
# XXX: only one GPU on Colab and isn’t guaranteed
gpu = GPUs[0]
def printm():
process = psutil.Process(os.getpid())
print("Gen RAM Free: " + humanize.naturalsize( psutil.virtual_memory().available ), " | Proc size: " + humanize.naturalsize( process.memory_info().rss))
print("GPU RAM Free: {0:.0f}MB | Used: {1:.0f}MB | Util {2:3.0f}% | Total {3:.0f}MB".format(gpu.memoryFree, gpu.memoryUsed, gpu.memoryUtil*100, gpu.memoryTotal))
printm()
Ich klone yolov5.
!git clone https://github.com/ultralytics/yolov5
Ich habe die für die Ausführung erforderlichen Pakete installiert.
!pip install -r yolov5/requirements.txt
Ich habe "Apex" installiert. Das Lernen wird schneller sein.
!git clone https://github.com/NVIDIA/apex
!pip install -v --no-cache-dir --global-option="--cpp_ext" --global-option="--cuda_ext" ./apex
Tensorboard vorbereiten. Es ist cool.
# Start tensorboard
%load_ext tensorboard
%tensorboard --logdir runs
Übrigens war es so, nachdem ich 100 Epochen gelernt hatte. 100 ist nicht genug. (Ich habe vergessen, das Bild des Verlustes aufzunehmen.)
Lernen Die Argumente werden unter train.py
geschrieben, aber ich werde sie auch hier kurz erklären.
#--img: Bildgröße
#--Charge: Chargengröße
#--Epochen: Anzahl der Epochen.
#--Daten: Datendefinitionsdatei. Es wird automatisch erstellt, wenn die Daten heruntergeladen werden. Es ist einfach, also schauen Sie sich bitte den Inhalt an.
#--cfg: Modellkonfigurationsdatei.
#--Name: Modelldateiname. Das genaueste Modell nach dem Training ist das beste_mask_wearing.Es wird als pt gespeichert.
#--Gewichte: Das Originalmodell zur Feinabstimmung. Dieses Mal haben wir das vorab trainierte COCO-Modell angegeben, aber Sie können auch das Modell angeben, das Sie selbst gelernt haben.
!python yolov5/train.py --img 416 --batch 16 --epochs 100 --data data/data.yaml --cfg yolov5/models/yolov5x.yaml --name mask_wearing --weights yolov5_models/yolov5x.pt
Ich schließe daraus. Ich hatte kein gut aussehendes Bild in den Testdaten, daher schließe ich diesmal auf die Trainingsdaten.
!python yolov5/detect.py --weights weights/best_mask_wearing.pt --img 416 --conf 0.4 --source data/train/images/
Image(filename='/content/drive/My Drive/YOLOv5/inference/output/0_10725_jpg.rf.99ff78c82dadd6d49408164489cb6582.jpg', width=600)
YOLOv5 war zu einfach zu bedienen.
Sie können einfach lernen, indem Sie die Daten angeben und train.py
ausführen.
Darüber hinaus erfolgt die Hauptdatenerweiterung automatisch.
Die Parameter wurden ebenfalls stark angepasst.
Er sagte, er habe ein wenig Krisengefühl, wie die Fähigkeiten des Datenanalysten auf diese Weise gezeigt werden könnten. Das ist es.
Recommended Posts