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クイックスタートガイドを参照してください。

前提条件#

開始する前に、以下のものがインストールされていることを確認してください:

  1. Docker: 公式DockerウェブサイトからDockerをダウンロードしてインストールします。Dockerは、コンテナを作成および管理するために不可欠です。
  2. NVIDIAドライバGPUサポートに必要):NVIDIAドライバのバージョン455.23以降がインストールされていることを確認してください。NVIDIAのウェブサイトから最新のドライバをダウンロードできます。
  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 デバイスが利用可能であることを確認します(ツールキットの nvidia-cdi-refresh サービスは、ツールキット 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コンテナの中にアクセスしました!ここから、オブジェクト検出 のようなさまざまな 機械学習 および ディープラーニング タスクのための標準的な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のセットアップと実行が完了しました。

コメント