Installation von YOLOv5

Objektdetektion mit YoloV5 und Python

Erfolgreiche "Bob-Detektion" durch ein mit YOLOv5 trainiertes neuronales Netzwerk.

Was ist YOLOv5?

YOLOv5 von Ultralytics ist auf künstlicher Intelligenz basierender Open-Source Objektdetektionsalgorithmus, der in einer auf der Bibliothek PyTorch basierenden Implementierung von GitHub heruntergeladen werden kann. Auf dieser Webseite befindet sich eine Anleitung um das System auf einem lokalen Rechner mit Hardwarebeschleunigung durch GPU-Unterstützung aufzusetzen. Sie ist mit der offiziellen Installationsanleitung weitgehend identisch, enthält aber weiterführende Instruktionen, für die Aktivierung der GPU-Unterstützung.

Hardwarevorraussetzungen

Pytorch ist in verschiedenen vorkompilierten Versionen verfügbar. Um die Rechenleistung einer modernen Grafikkarte für die Bibliothek zu erschließen, ist es erforderlich eine Version zu installieren, welche die Programmierschnittstelle CUDA von NVIDIA verwendet. Damit werden Teile der Berechnung des neuronalen Netzwerkes auf die Grafikkarte ausgelagert und dadurch massiv beschleunigt (10-20 x).

Um die GPU-Unterstützung zu verwenden benötigt man zwingend eine aktuelle Grafikkarte mit NVIDIA-Chipsatz. Die Verwendung von YOLOv5 auf einem lokalen Rechner ist zwar auch ohne Grafikkarte möglich, allerdings ist die Geschwindigkeit eine Größenordnung kleiner als mit Hardwarebeschleunigung.

Lokale Installation von YOLOv5

Schritt 1: Python aktualisieren oder installieren

Zunächst wird eine aktuelle Python Version benötigt, wenn diese nicht schon auf dem Computer installiert ist. Diese kann bei python.org herunter geladen werden. Die hier erwähnten Python-Skripte wurden mit Python Version 3.10 erstellt.

Schritt 2: CUDA Treiber installieren

Auf dem Computer müssen passende NVIDIA CUDA Treiber installiert werden. PyTorch arbeitet nur mit bestimmten Versionen von CUDA. Man sollte die jeweils höchste unterstützte Version installieren. Welche das ist, kann auf der Pytorch Webseite nachgelesen werden. (Aktuell ist es die Version 11.6) Sollten Probleme auftreten, so kann man auch versuchen eine ältere CUDA Version zu installieren. Die installierte PyTorch Version muss aber in jedem Fall zur installierten CUDA Version passen!

Schritt 3: YOLOv5 herunterladen und Abhängigkeiten installieren

Sobald Python auf dem System installiert ist, kann YOLOv5 direkt von GitHub herunter geladen werden. Danach muss man mit dem Python Paketmanager PIP die von YOLOv5 benötigten Abhängigkeiten installieren.

git clone https://github.com/ultralytics/yolov5  # clone
cd yolov5
pip install -r requirements.txt  # install

YOLOv5 sollte jetzt bereits funktionsfähig sein. Es wird aber vermutlich noch keine GPU Unterstützung haben. Für die GPU Unterstützung werden spezielle Versionen von PyTorch benötigt. Diese müssen bei Bedarf manuell nachinstalliert werden. Um zu testen, ob pytorch mit CUDA-Unterstützung aktive ist kann man in der Windows Powershell folgenden Befehl eingeben:

python -c "import torch; print(torch.cuda.is_available())"

Nur wenn "True" zurückgegeben wird, ist alles in Ordnung. Wenn nicht sollte man das folgende Python-Skript ausführen um mehr Informationen zu erhalten:

import torch
print(f'torch {torch.__version__} {torch.cuda.get_device_properties(0) if torch.cuda.is_available() else "CPU"}')
Die Ausgabe des Skriptes check_torch_cuda.py zeigt die Version von PyTorch, sowie für welche CUDA Version diese kompiliert wurde an.

Wenn hinter der torch Versionsnummer "+cpu" steht, dann sind nicht die richtigen pytorch Bibliotheken installiert. Ein Zusatz wie "+cu116" weist darauf hin, dass PyTorch mit Unterstützung für CUDA Version 11.6 kompiliert wurde.

Die PyTorch Seite hilft bei der Auswahl der richtigen Bibliothek. Man sollte immer die stabile Version wählen. Für ein Windows System sollte man "Windows", "Pip", "Python" und die passende CUDA Version auswählen. Dann wird in der letzten Zeile das passende Kommando für die Installation angezeigt.

Schritt 4: Eine PyTorch Version mit CUDA Unterstützung nachinstallieren

Sollte torch keine CUDA Unterstützung melden, dann müssen die pytorch Bibliotheken gegen Versionen mit CUDA-Unterstützung getauscht werden. Dafür müssen zunächst die installierten pytorch Bibliotheken deinstalliert werden. Danach müssen die passenden Versionen mit CUDA Unterstützung installiert werden. Die Befehle unten sind lediglich ein Beispiel für CUDA 11.6. Welche pytorch Version die richtige ist, kann der Tabelle auf dieser webseite entnommen werden.

pip3 uninstall torch torchvision torchaudio     
pip3 install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu116

Damit ist die Installation von YOLOv5 komplett und man kann sich nun dem sammeln von Trainingsbildern widmen.

Schritt 5: Testen von YOLOv5

Man kann YOLOv5 testen, indem man das mitgelieferte Skript detect.py ausführt. Dieses Skript führt einen Testlauf an den im Unterverzeichnis "data/images" enthaltenen Bildern durch. Die Ergebnisse werden im Unterordner "runs" gespeichert.