Link to this sectionDockerで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ノートブック
、GCP Deep Learning VM、またはAmazon AWSのガイドをご検討ください。Ultralyticsモデルでの一般的なDocker使用方法については、Ultralytics Dockerクイックスタートガイドを参照してください。
Link to this section前提条件#
開始する前に、以下のものがインストールされていることを確認してください:
- Docker: 公式DockerウェブサイトからDockerをダウンロードしてインストールしてください。Dockerはコンテナを作成および管理するために不可欠です。
- NVIDIAドライバー (GPUサポートに必須): NVIDIAドライバーのバージョン455.23以降がインストールされていることを確認してください。最新のドライバーはNVIDIAのウェブサイトからダウンロードできます。
- NVIDIA Container Toolkit (GPUサポートに必須): このツールキットにより、DockerコンテナからホストマシンのNVIDIA GPUにアクセスできるようになります。詳細な手順については、公式のNVIDIA Container Toolkitインストールガイドに従ってください。
Link to this sectionNVIDIA 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最新バージョンのnvidia-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 dockerLink to this sectionDockerでのNVIDIAランタイムの確認#
docker info | grep -i runtime を実行して、ランタイムのリストに nvidia が含まれていることを確認します:
docker info | grep -i runtime利用可能なランタイムの一つとして nvidia が表示されるはずです。
Link to this sectionステップ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リポジトリで確認できます。
Link to this sectionステップ2: Dockerコンテナを実行する#
イメージをプルしたら、コンテナとして実行できます。
Link to this sectionCPUのみを使用する場合#
CPUのみを使用してインタラクティブなコンテナインスタンスを実行するには、 -it フラグを使用します。 --ipc=host フラグはホストのIPC名前空間を共有することを可能にし、共有メモリへのアクセスに重要です。
# Run an interactive container instance using CPU
sudo docker run -it --ipc=host $tLink to this sectionGPUを使用する場合#
コンテナ内で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リファレンスを参照してください。
Link to this sectionローカルディレクトリのマウント#
コンテナ内でローカルファイル(データセット、モデルの重みなど)を使用するには、 -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)に置き換えてください。
Link to this sectionステップ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各モードの詳細な使用方法については、ドキュメントを参照してください:
精度 (Precision)、再現率 (Recall)、mAPなどの評価指標について学びましょう。 ONNX、CoreML、TFLiteなどの異なるエクスポート形式を理解し、さまざまなモデルデプロイオプションを確認してください。 モデルの重みを効果的に管理することも忘れないでください。

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