Bắt đầu với YOLOv5 🚀 trong Docker#
Chào mừng bạn đến với Hướng dẫn bắt đầu nhanh Ultralytics YOLOv5 Docker! Tutorial này cung cấp hướng dẫn từng bước để thiết lập và chạy YOLOv5 trong một container Docker. Docker cho phép bạn chạy YOLOv5 trong một môi trường biệt lập, nhất quán, giúp đơn giản hóa việc triển khai và quản lý dependency trên nhiều hệ thống khác nhau. Phương pháp này tận dụng containerization để đóng gói ứng dụng cùng các dependency của ứng dụng.
Đối với các phương pháp thiết lập thay thế, hãy tham khảo Colab Notebook
, các hướng dẫn về GCP Deep Learning VM hoặc Amazon AWS. Để có cái nhìn tổng quan về việc sử dụng Docker với các model Ultralytics, hãy xem Ultralytics Docker Quickstart Guide.
Điều kiện tiên quyết#
Trước khi bắt đầu, hãy đảm bảo bạn đã cài đặt các thành phần sau:
- Docker: Tải xuống và cài đặt Docker từ trang web Docker chính thức. Docker rất cần thiết để tạo và quản lý các container.
- NVIDIA Drivers (bắt buộc để hỗ trợ GPU): Đảm bảo bạn đã cài đặt NVIDIA drivers phiên bản 455.23 trở lên. Bạn có thể tải xuống drivers mới nhất từ trang web của NVIDIA.
- NVIDIA Container Toolkit (bắt buộc để hỗ trợ GPU): Toolkit này cho phép các container Docker truy cập GPU NVIDIA trên máy host của bạn. Hãy làm theo hướng dẫn cài đặt NVIDIA Container Toolkit chính thức để xem hướng dẫn chi tiết.
Thiết lập NVIDIA Container Toolkit (dành cho người dùng GPU)#
Trước tiên, hãy xác minh rằng NVIDIA drivers đã được cài đặt chính xác bằng cách chạy:
nvidia-smiLệnh này sẽ hiển thị thông tin về GPU của bạn và phiên bản driver đã cài đặt.
Tiếp theo, hãy cài đặt NVIDIA Container Toolkit. Các lệnh bên dưới thường được sử dụng cho những hệ thống dựa trên Debian như Ubuntu và những hệ thống dựa trên RHEL như Fedora/CentOS, nhưng hãy tham khảo hướng dẫn chính thức được liên kết ở trên để xem hướng dẫn dành riêng cho bản phân phối của bạn:
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.listCập nhật danh sách package và cài đặt NVIDIA Container Toolkit:
sudo apt-get updatesudo apt-get install -y nvidia-container-toolkitXác minh thiết bị CDI với Docker#
Chạy nvidia-ctk cdi list để đảm bảo các thiết bị GPU CDI khả dụng (dịch vụ nvidia-cdi-refresh của toolkit tự động tạo và duy trì spec trên toolkit >= 1.18):
nvidia-ctk cdi listBạn sẽ thấy các mục như nvidia.com/gpu=0 và nvidia.com/gpu=all. Trên Linux, các yêu cầu thiết bị CDI cần Docker >= 28.2.0 và NVIDIA Container Toolkit >= 1.18. Cờ --gpus all legacy có thể làm mất quyền truy cập GPU sau khi daemon trên host được reload, vì vậy hãy nâng cấp các host Linux cũ và sử dụng --device thay thế.
Bước 1: Pull Docker Image YOLOv5#
Ultralytics cung cấp các image YOLOv5 chính thức trên Docker Hub. Tag latest theo dõi commit mới nhất của repository, đảm bảo bạn luôn nhận được phiên bản mới nhất. Pull image bằng lệnh sau:
# Define the image name with tag
t=ultralytics/yolov5:latest
# Pull the latest YOLOv5 image from Docker Hub
sudo docker pull $tBạn có thể duyệt tất cả image hiện có tại repository YOLOv5 Docker Hub của Ultralytics.
Bước 2: Chạy Docker Container#
Sau khi pull image, bạn có thể chạy image đó dưới dạng container.
Sử dụng riêng CPU#
Để chạy một instance container tương tác chỉ sử dụng CPU, hãy dùng cờ -it. Cờ --ipc=host cho phép chia sẻ namespace IPC của host, điều này rất quan trọng để truy cập shared memory.
# Run an interactive container instance using CPU
sudo docker run -it --ipc=host $tSử dụng GPU#
Để bật quyền truy cập GPU bên trong container, hãy sử dụng cờ CDI --device nvidia.com/gpu=.... Yêu cầu này cần NVIDIA Container Toolkit được cài đặt chính xác.
# 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 $tTham khảo tài liệu tham chiếu Docker run để biết thêm chi tiết về các tùy chọn lệnh.
Mount các thư mục cục bộ#
Để làm việc với các tệp cục bộ của bạn (dataset, model weights, v.v.) bên trong container, hãy sử dụng cờ -v để mount một thư mục trên host vào container:
# 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 $tThay /path/on/host bằng đường dẫn thực tế trên máy của bạn và /path/in/container bằng đường dẫn mong muốn bên trong Docker container (ví dụ: /usr/src/datasets).
Bước 3: Sử dụng YOLOv5 🚀 trong Docker Container#
Bây giờ bạn đang ở trong Docker container YOLOv5 đang chạy! Từ đây, bạn có thể thực thi các lệnh YOLOv5 tiêu chuẩn cho nhiều tác vụ Học máy và Học sâu khác nhau, chẳng hạn như Phát hiện đối tượng.
# 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 modelKhám phá tài liệu để xem hướng dẫn chi tiết về cách sử dụng các mode khác nhau:
Tìm hiểu thêm về các metric đánh giá như Precision, Recall và mAP. Tìm hiểu các format export khác nhau như ONNX, CoreML và TFLite, đồng thời khám phá nhiều Tùy chọn triển khai model. Hãy nhớ quản lý model weights một cách hiệu quả.

Bạn đã thiết lập và chạy YOLOv5 thành công trong Docker container.