콘텐츠로 건너뛰기

Docker에서 YOLOv5 🚀 시작하기

Ultralytics YOLOv5 Docker 퀵스타트 가이드에 오신 것을 환영합니다! 이 튜토리얼은 Docker 컨테이너 내에서 YOLOv5를 설정하고 실행하기 위한 단계별 지침을 제공합니다. Docker를 사용하면 격리되고 일관된 환경에서 YOLOv5를 실행하여 다양한 시스템에서 배포 및 종속성 관리를 간소화할 수 있습니다. 이 접근 방식은 컨테이너화를 활용하여 애플리케이션과 해당 종속성을 함께 패키징합니다.

다른 설정 방법은 다음을 고려하십시오. Colab Notebook Colab에서 열기 Kaggle에서 열기, GCP 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 기반 시스템에 일반적이지만, 해당 배포판에 대한 구체적인 지침은 위에 링크된 공식 가이드를 참조하십시오.

# 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단계: 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 --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 실행 참조를 참조하십시오.

로컬 디렉터리 마운트

컨테이너 내부에서 로컬 파일(데이터셋, 모델 가중치 등)을 사용하려면 다음을 사용하세요. -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 컨테이너 내부에 있습니다! 여기에서 다양한 머신 러닝(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, RecallmAP와 같은 평가 지표에 대해 자세히 알아보세요. ONNX, CoreMLTFLite와 같은 다양한 내보내기 형식을 이해하고 다양한 모델 배포 옵션을 살펴보세요. 모델 가중치를 효과적으로 관리하는 것을 잊지 마세요.

GCP의 Docker 컨테이너 내에서 YOLOv5 실행

축하합니다! Docker 컨테이너 내에서 YOLOv5를 성공적으로 설정하고 실행했습니다.



📅 1년 전에 생성됨 ✏️ 4개월 전에 업데이트됨

댓글