YOLO Vision 2026:

DockerでYOLOv5 🚀を始める#

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

別のセットアップ方法として、Colab Notebook Open In Colab Open In KaggleGCP Deep Learning VM、またはAmazon AWSのガイドをご利用ください。UltralyticsモデルでのDocker使用方法の概要については、Ultralytics Docker Quickstart Guideをご覧ください。

前提条件#

始める前に、次のソフトウェアがインストールされていることを確認してください。

  1. Docker: Docker公式WebサイトからDockerをダウンロードしてインストールします。Dockerはコンテナの作成と管理に不可欠です。
  2. NVIDIA DriversGPUサポートに必要): 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ベースのシステムおよびFedora/CentOSなどのRHELベースのシステムで一般的に使用されますが、お使いのディストリビューション固有の手順については、上記の公式ガイドを参照してください。

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

パッケージリストを更新し、NVIDIA Container Toolkitをインストールします。

sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit

DockerでCDIデバイスを確認する#

nvidia-ctk cdi listを実行して、GPUのCDIデバイスが利用可能であることを確認します(Toolkitのnvidia-cdi-refreshサービスは、Toolkit >= 1.18では仕様を自動的に生成および管理します)。

nvidia-ctk cdi list

nvidia.com/gpu=0nvidia.com/gpu=allなどのエントリが表示されます。Linuxでは、CDIデバイスリクエストにDocker >= 28.2.0およびNVIDIA Container Toolkit >= 1.18が必要です。従来の--gpus allフラグは、ホストデーモンのリロード後にGPUへのアクセスを失う可能性があるため、古いLinuxホストをアップグレードし、代わりに--deviceを使用してください。

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

Ultralyticsは、Docker Hubで公式のYOLOv5イメージを提供しています。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へのアクセスを有効にするには、--device nvidia.com/gpu=... CDIフラグを使用します。これには、NVIDIA Container Toolkitが正しくインストールされている必要があります。

# Run with access to all available GPUs
sudo docker run -it --ipc=host --device nvidia.com/gpu=all $t

# Run with access to specific GPUs (e.g., GPUs 2 and 3)
sudo docker run -it --ipc=host --device nvidia.com/gpu=2 --device nvidia.com/gpu=3 $t

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

ローカルディレクトリをマウントする#

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

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

/path/on/hostをマシン上の実際のパスに、/path/in/containerをDockerコンテナ内の目的のパス(例: /usr/src/datasets)に置き換えてください。

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

これで、実行中のYOLOv5 Dockerコンテナ内に入っています。ここから、Machine LearningDeep Learningのさまざまなタスク(Object Detectionなど)で、標準の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

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

PrecisionRecallmAPなどの評価指標について詳しく学習できます。ONNXCoreMLTFLiteなどのさまざまなエクスポート形式を理解し、さまざまなモデルデプロイオプションを確認してください。モデルウェイトを適切に管理することも忘れないでください。

Running YOLOv5 inside a Docker container on GCP

Dockerコンテナ内でYOLOv5のセットアップと実行が正常に完了しました。

コメント