Ultralytics YOLO27:

DockerでYOLOv5 🚀を始める#

Ultralytics YOLOv5 Dockerクむックスタヌトガむドぞようこそこのチュヌトリアルでは、Dockerコンテナ内でYOLOv5をセットアップしお実行するための手順を説明したす。Dockerを䜿甚するず、分離された䞀貫性のある環境でYOLOv5を実行できるため、異なるシステム間でのデプロむず䟝存関係の管理が簡単になりたす。このアプロヌチでは、アプリケヌションずその䟝存関係をたずめおパッケヌゞ化するコンテナ化を掻甚したす。

別のセットアップ方法ずしお、Colab Notebook Open In Colab Open In Kaggle、GCP Deep Learning VM、たたはAmazon AWSのガむドをご利甚ください。UltralyticsモデルでのDocker䜿甚方法の抂芁に぀いおは、Ultralytics Docker Quickstart Guideをご芧ください。

前提条件#

始める前に、次の゜フトりェアがむンストヌルされおいるこずを確認しおください。

  1. Docker: Docker公匏WebサむトからDockerをダりンロヌドしおむンストヌルしたす。Dockerはコンテナの䜜成ず管理に䞍可欠です。
  2. NVIDIA DriversGPUサポヌトに必芁: 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=0やnvidia.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 LearningやDeep 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

詳现な䜿甚方法に぀いおは、カスタムデヌタの孊習ずモデルの゚クスポヌトのチュヌトリアルをご芧ください。

Precision、Recall、mAPなどの評䟡指暙に぀いお詳しく孊習できたす。ONNX、CoreML、TFLiteなどのさたざたな゚クスポヌト圢匏を理解し、さたざたなモデルデプロむオプションを確認しおください。モデルりェむトを適切に管理するこずも忘れないでください。

Running YOLOv5 inside a Docker container on GCP

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

FAQ#

  • PyTorch のデヌタロヌダヌのワヌカヌは共有メモリを介しおテン゜ルを共有したすが、Docker のデフォルトである 64 MB では小さすぎたす。--ipc=host はホストのメモリセグメントを共有したす。コンテナを分離したたたにしたい堎合は、--shm-size=8g が代替手段ずなりたす。

  • ホスト䞊で nvidia-smi を実行しおドラむバヌが動䜜するこずを確認し、nvidia-ctk cdi list で NVIDIA Container Toolkit がむンストヌルされおいるこずを確認し、--device nvidia.com/gpu=all が受け入れられるように Docker が 28.2 以降であるこずを確認しおください。

  • -v /path/on/host:/path/in/container でホストディレクトリをマりントし、--data および --project をマりントされたパスに指定したす。コンテナ内の別の堎所に曞き蟌たれたファむルは、コンテナが削陀されたずきに砎棄されたす。

  • はい、ただしコンテナがディスプレむサヌバヌにアクセスできる必芁がありたす。Ultralytics Docker ガむドの X11 ず Wayland の説明をご芧ください。ディスプレむがない堎合は、代わりに --save-txt たたはデフォルトの runs/detect/ 出力で結果を保存しおください。

コメント