コンテンツにスキップ

DockerでYOLOv5を始めましょう 🚀

Ultralytics YOLOv5 Dockerクイックスタートガイドへようこそ!このチュートリアルでは、Dockerコンテナ内でYOLOv5をセットアップして実行するためのステップごとの手順を説明します。Dockerを使用すると、隔離された一貫性のある環境でYOLOv5を実行できるため、さまざまなシステムでのデプロイメントと依存関係の管理が簡素化されます。このアプローチは、コンテナ化を利用して、アプリケーションとその依存関係をまとめてパッケージ化します。

別のセットアップ方法については、 Colab Notebook Colabで開く Kaggleで開く, GCP Deep Learning VM、または Amazon AWS ガイドをご覧ください。Ultralytics モデルでの Docker の一般的な使用方法の概要については、こちらをご覧ください。 Ultralytics Dockerクイックスタートガイド.

前提条件

始める前に、以下がインストールされていることを確認してください。

  1. Docker: Dockerの公式サイトからDockerをダウンロードしてインストールしてください。Dockerは、コンテナの作成と管理に不可欠です。
  2. NVIDIAドライバー (GPUサポートに必要): NVIDIAドライバーのバージョン455.23以降がインストールされていることを確認してください。最新のドライバーは、NVIDIAのWebサイトからダウンロードできます。
  3. NVIDIA Container Toolkit (GPUサポートに必要): このツールキットを使用すると、DockerコンテナがホストマシンのNVIDIA GPUにアクセスできます。詳細な手順については、公式のNVIDIA Container Toolkitインストールガイドに従ってください。

NVIDIA Container Toolkitのセットアップ(GPUユーザー向け)

まず、次のコマンドを実行して NVIDIA ドライバーが正しくインストールされていることを確認します。

nvidia-smi

このコマンドは、GPUに関する情報とインストールされているドライバーのバージョンを表示します。

次に、NVIDIA Container Toolkitをインストールします。以下のコマンドはUbuntuのようなDebianベースのシステムでは一般的ですが、お使いのディストリビューションに固有の手順については、上記の公式ガイドを参照してください。

# 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

最後に、NVIDIA ランタイムが構成され、Docker で利用できることを確認します。

docker info | grep -i runtime

以下が表示されるはずです。 nvidia 利用可能なランタイムの一つとしてリストされています。

ステップ1:YOLOv5 Dockerイメージをプルする

Ultralyticsは、公式のYOLOv5イメージを Docker Hublatest latest タグは、リポジトリの最新コミットを追跡し、常に最新バージョンを入手できるようにします。以下のコマンドを使用してイメージをプルしてください:

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

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

Ultralytics YOLOv5 Docker Hubリポジトリで、利用可能なすべての画像を参照できます。

ステップ2:Dockerコンテナを実行する

イメージをプルしたら、コンテナとして実行できます。

CPUのみの使用

CPUのみを使用してインタラクティブなコンテナインスタンスを実行するには、以下を使用します。 -it フラグ。 --ipc=host フラグを使用すると、ホスト IPC 名前空間を共有でき、共有メモリアクセスにとって重要です。

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

GPUの使用

コンテナ内で GPU アクセスを有効にするには、以下を使用します。 --gpus フラグ。これには、NVIDIA Container Toolkitが正しくインストールされている必要があります。

# 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

コマンドオプションの詳細については、Docker run referenceを参照してください。

ローカルディレクトリのマウント

コンテナ内でローカルファイル(データセット、モデルの重みなど)を操作するには、以下を使用します。 -v フラグを使用して、ホストディレクトリをコンテナにマウントします:

# 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

置換 /path/on/host お使いのマシンの実際のパスと /path/in/container Dockerコンテナ内の目的のパス(例: /usr/src/datasets)。

ステップ 3: Docker コンテナ内で YOLOv5 🚀 を使用する

YOLOv5 Dockerコンテナ内で作業しています。ここでは、機械学習深層学習のタスク(物体検出など)のために、標準的なYOLOv5コマンドを実行できます。

# 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

さまざまなモードの詳細な使用法については、ドキュメントをご覧ください。

適合率再現率mAPなどの評価指標について詳しく学びましょう。ONNXCoreMLTFLiteなどのさまざまなエクスポート形式を理解し、さまざまなモデルのデプロイオプションを検討してください。モデルの重みを効果的に管理することを忘れないでください。

GCP上のDockerコンテナ内でYOLOv5を実行する

おめでとうございます! Dockerコンテナ内で YOLOv5 のセットアップと実行が正常に完了しました。



📅 1年前に作成 ✏️ 4か月前に更新

コメント