Zum Inhalt springen

Erste Schritte mit YOLOv5 🚀 in Docker

Willkommen zum Ultralytics YOLOv5 Docker Quickstart Guide! Diese Anleitung enthält schrittweise Anweisungen zum Einrichten und Ausführen von YOLOv5 innerhalb eines Docker-Containers. Die Verwendung von Docker ermöglicht es Ihnen, YOLOv5 in einer isolierten, konsistenten Umgebung auszuführen, was die Bereitstellung und das Abhängigkeitsmanagement über verschiedene Systeme hinweg vereinfacht. Dieser Ansatz nutzt die Containerisierung, um die Anwendung und ihre Abhängigkeiten gemeinsam zu verpacken.

Alternative Einrichtungsmethoden finden Sie in unserem Colab Notebook In Colab öffnen In Kaggle öffnen, GCP Deep Learning VM, oder Amazon AWS Anleitungen. Einen allgemeinen Überblick über die Verwendung von Docker mit Ultralytics finden Sie in der Ultralytics Docker-Schnellstart-Anleitung.

Voraussetzungen

Bevor Sie beginnen, vergewissern Sie sich, dass Sie die folgenden Komponenten installiert haben:

  1. Docker: Laden Sie Docker von der offiziellen Docker-Website herunter und installieren Sie es. Docker ist für die Erstellung und Verwaltung von Containern unerlässlich.
  2. NVIDIA (erforderlich für GPU Unterstützung): Stellen Sie sicher, dass Sie NVIDIA der Version 455.23 oder höher installiert haben. Sie können die neuesten Treiber von derNVIDIA herunterladen.
  3. NVIDIA Container Toolkit (erforderlich für die GPU ): Dieses Toolkit ermöglicht Docker-Containern den Zugriff auf die NVIDIA Ihres Host-Rechners. Folgen Sie der offiziellen NVIDIA Container Toolkit-Installationsanleitung für detaillierte Anweisungen.

Einrichten des NVIDIA Container ToolkitGPU )

Vergewissern Sie sich zunächst, dass Ihre NVIDIA korrekt installiert sind, indem Sie sie ausführen:

nvidia-smi

Dieser Befehl sollte Informationen über Ihre GPU(s) und die installierte Treiberversion anzeigen.

Als nächstes installieren Sie das NVIDIA Container Toolkit. Die nachstehenden Befehle sind typisch für Debian-basierte Systeme wie Ubuntu, aber lesen Sie die oben verlinkte offizielle Anleitung für spezifische Anweisungen für Ihre Distribution:

# Add NVIDIA package repositories (refer to official guide for latest setup)
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
  && curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list \
  | sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' \
    | sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list

# Update package list and install the toolkit
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit

# Configure Docker to use the NVIDIA runtime
sudo nvidia-ctk runtime configure --runtime=docker

# Restart Docker service to apply changes
sudo systemctl restart docker

Stellen Sie schließlich sicher, dass die NVIDIA konfiguriert und für Docker verfügbar ist:

docker info | grep -i runtime

Sie sollten sehen nvidia als eine der verfügbaren Laufzeiten aufgeführt.

Schritt 1: Ziehen Sie das YOLOv5 Docker Image

Ultralytics bietet offizielle YOLOv5 auf Docker-Hub. Die latest Tag verfolgt den letzten Repository-Commit und stellt sicher, dass Sie immer die neueste Version erhalten. Ziehen Sie das Bild mit dem folgenden Befehl:

# Define the image name with tag
t=ultralytics/yolov5:latest

# Pull the latest YOLOv5 image from Docker Hub
sudo docker pull $t

Sie können alle verfügbaren Images im Ultralytics YOLOv5 Docker Hub Repository durchsuchen.

Schritt 2: Ausführen des Docker-Containers

Sobald das Image gezogen ist, können Sie es als Container ausführen.

Nur CPU verwenden

Um eine interaktive Container-Instanz zu betreiben, die nur die CPU nutzt, verwenden Sie die -it Flagge. Die Website --ipc=host Flag ermöglicht die gemeinsame Nutzung des Host-IPC-Namensraums, was für den gemeinsamen Speicherzugriff wichtig ist.

# Run an interactive container instance using CPU
sudo docker run -it --ipc=host $t

Verwendung von GPU

Um den GPU innerhalb des Containers zu aktivieren, verwenden Sie die --gpus Flagge. Dazu muss das NVIDIA Container Toolkit korrekt installiert sein.

# Run with access to all available GPUs
sudo docker run -it --ipc=host --gpus all $t

# Run with access to specific GPUs (e.g., GPUs 2 and 3)
sudo docker run -it --ipc=host --gpus '"device=2,3"' $t

Weitere Einzelheiten zu den Befehlsoptionen finden Sie in der Docker-Run-Referenz.

Lokale Verzeichnisse einbinden

Um mit Ihren lokalen Dateien (Datensätze, Modellgewichte usw.) innerhalb des Containers zu arbeiten, verwenden Sie die -v Flagge, um ein Host-Verzeichnis in den Container einzuhängen:

# Mount /path/on/host (your local machine) to /path/in/container (inside the container)
sudo docker run -it --ipc=host --gpus all -v /path/on/host:/path/in/container $t

Ersetzen Sie /path/on/host mit dem tatsächlichen Pfad auf Ihrem Rechner und /path/in/container mit dem gewünschten Pfad innerhalb des Docker-Containers (z.B., /usr/src/datasets).

Schritt 3: YOLOv5 🚀 innerhalb des Docker-Containers verwenden

Sie befinden sich nun im laufenden YOLOv5 ! Von hier aus können Sie YOLOv5 für verschiedene Machine Learning- und Deep Learning-Aufgaben wie die Objekterkennung ausführen.

# Train a YOLOv5 model on your custom dataset (ensure data is mounted or downloaded)
python train.py --data your_dataset.yaml --weights yolov5s.pt --img 640 # Start training

# Validate the trained model's performance (Precision, Recall, mAP)
python val.py --weights path/to/your/best.pt --data your_dataset.yaml # Validate accuracy

# Run inference on images or videos using a trained model
python detect.py --weights yolov5s.pt --source path/to/your/images_or_videos # Perform detection

# Export the trained model to various formats like ONNX, CoreML, or TFLite for deployment
python export.py --weights yolov5s.pt --include onnx coreml tflite # Export model

In der Dokumentation finden Sie ausführliche Informationen zur Verwendung der verschiedenen Modi:

Erfahren Sie mehr über Bewertungsmetriken wie Precision, Recall und mAP. Verstehen Sie verschiedene Exportformate wie ONNX, CoreMLund TFLite, und lernen Sie verschiedene Optionen für die Modellbereitstellung kennen. Denken Sie daran, Ihre Modellgewichte effektiv zu verwalten.

Ausführen von YOLOv5 in einem Docker-Container auf GCP

Herzlichen Glückwunsch! Sie haben YOLOv5 erfolgreich in einem Docker-Container eingerichtet und ausgeführt.



📅 Erstellt vor 1 Jahr ✏️ Aktualisiert vor 1 Monat

Kommentare