コンテンツへスキップ

YOLOv5 🚀をDockerで始める

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

別のセットアップ方法については コラボ・ノートブック オープン・イン・コラボ Kaggleで開く, GCPディープラーニングVMあるいは アマゾン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ベースのシステムで典型的なものですが、お使いのディストリビューションに固有の手順については、上記のリンク先の公式ガイドを参照してください:

# 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つとしてリストアップされている。

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

Ultralytics 、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 アクセスを有効にするには --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リファレンスを参照してください。

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

コンテナ内でローカルファイル(データセット、モデル重みなど)を操作するには -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

各モードの詳細な使用方法については、ドキュメントを参照してください:

PrecisionRecallmAPのような評価指標について詳しく学びます。次のようなさまざまなエクスポート形式を理解する ONNX, CoreMLTFLite などのエクスポート形式を理解し、さまざまなモデル配置オプションを検討します。モデルの重みを効果的に管理することを忘れないでください。

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

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



📅作成:1年前 ✏️更新:1ヶ月前

コメント