DockerでYOLOv5 🚀 を使い始める
Welcome to the Ultralytics YOLOv5 Docker Quickstart Guide! This tutorial provides step-by-step instructions for setting up and running YOLOv5 within a Docker container. Using Docker enables you to run YOLOv5 in an isolated, consistent environment, simplifying deployment and dependency management across different systems. This approach leverages containerization to package the application and its dependencies together.
その他のセットアップ方法については、Colab Notebook
、GCP Deep Learning VM、またはAmazon AWSのガイドをご検討ください。UltralyticsモデルとDocker使用の概要については、Ultralytics Dockerクイックスタートガイドを参照してください。
前提条件
開始する前に、以下のものがインストールされていることを確認してください。
- Docker: 公式DockerウェブサイトからDockerをダウンロードしてインストールします。Dockerはコンテナの作成と管理に不可欠です。
- NVIDIAドライバ (GPUサポートに必須): NVIDIAドライバのバージョン455.23以降がインストールされていることを確認してください。最新のドライバはNVIDIAのウェブサイトからダウンロードできます。
- 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 updatenvidia-container-toolkitの最新バージョンをインストールします。
sudo apt-get install -y nvidia-container-toolkit \
nvidia-container-toolkit-base libnvidia-container-tools \
libnvidia-container1オプション:nvidia-container-toolkitの特定バージョンのインストール
オプションとして、環境変数NVIDIA_CONTAINER_TOOLKIT_VERSIONを設定することで、nvidia-container-toolkitの特定のバージョンをインストールできます。
export NVIDIA_CONTAINER_TOOLKIT_VERSION=1.17.8-1
sudo apt-get install -y \
nvidia-container-toolkit=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
nvidia-container-toolkit-base=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
libnvidia-container-tools=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
libnvidia-container1=${NVIDIA_CONTAINER_TOOLKIT_VERSION}sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart dockerDockerでのNVIDIAランタイムの検証
docker info | grep -i runtimeを実行して、ランタイムのリストにnvidiaが表示されることを確認します。
docker info | grep -i runtimenvidiaが利用可能なランタイムの一つとしてリストされているのが確認できるはずです。
ステップ 1: YOLOv5 Dockerイメージをプルする
Ultralyticsは公式のYOLOv5イメージをDocker Hubで提供しています。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 --runtime=nvidia --ipc=host $tGPUを使用する場合
コンテナ内でGPUアクセスを有効にするには、--gpusフラグを使用します。これにはNVIDIA Container Toolkitが正しくインストールされている必要があります。
# Run with access to all available GPUs
sudo docker run -it --runtime=nvidia --ipc=host --gpus all $t
# Run with access to specific GPUs (e.g., GPUs 2 and 3)
sudo docker run -it --runtime=nvidia --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 --runtime=nvidia --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 🚀 を使用する
You are now inside the running YOLOv5 Docker container! From here, you can execute standard YOLOv5 commands for various Machine Learning and Deep Learning tasks like Object Detection.
# 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などの評価指標について学びましょう。ONNX、CoreML、TFLiteなどのさまざまなエクスポート形式を理解し、多様なモデルデプロイメントオプションを探求してください。モデルの重みを効果的に管理することも忘れないでください。

これでYOLOv5をDockerコンテナ内でセットアップし、実行することができました。