Ultralytics YOLOv5#
Tổng quan#
YOLOv5u đại diện cho một bước tiến trong các phương pháp object detection. Bắt nguồn từ kiến trúc nền tảng của mô hình YOLOv5 do Ultralytics phát triển, YOLOv5u tích hợp phần đầu tách biệt không dùng anchor (anchor-free) và không dùng objectness (objectness-free), một tính năng trước đây đã được giới thiệu trong các mô hình YOLOv8. Sự thích ứng này tinh chỉnh kiến trúc của mô hình, dẫn đến sự cải thiện về sự đánh đổi giữa độ chính xác và tốc độ trong các tác vụ phát hiện đối tượng. Dựa trên các kết quả thực nghiệm và các tính năng bắt nguồn từ đó, YOLOv5u cung cấp một giải pháp thay thế hiệu quả cho những ai tìm kiếm các giải pháp mạnh mẽ trong cả nghiên cứu lẫn ứng dụng thực tế.

Ultralytics cung cấp anchor-free variant of YOLOv5 model. Các mô hình được huấn luyện bằng repo ultralytics/yolov5 không thể tải được bằng thư viện ultralytics/ultralytics. Để sử dụng YOLOv5 ở đây, hãy huấn luyện một mô hình mới từ một checkpoint Ultralytics YOLOv5u (ví dụ: yolov5su.pt).
Khám phá và chạy các mô hình YOLOv5 trực tiếp trên Ultralytics Platform.
Tính năng chính#
-
Head Ultralytics tách biệt không cần anchor: Các mô hình phát hiện đối tượng truyền thống dựa vào các anchor box được xác định trước để dự đoán vị trí đối tượng. Tuy nhiên, YOLOv5u hiện đại hóa phương pháp này. Bằng cách áp dụng head Ultralytics tách biệt không cần anchor, nó đảm bảo một cơ chế phát hiện linh hoạt và thích ứng hơn, nhờ đó nâng cao hiệu suất trong nhiều tình huống khác nhau.
-
Đánh đổi tối ưu giữa độ chính xác và tốc độ: Tốc độ và độ chính xác thường kéo theo các hướng ngược nhau. Nhưng YOLOv5u thách thức sự đánh đổi này. Nó mang lại sự cân bằng được hiệu chuẩn, đảm bảo việc phát hiện thời gian thực mà không làm tổn hại đến độ chính xác. Tính năng này đặc biệt vô giá đối với các ứng dụng đòi hỏi phản hồi nhanh chóng, chẳng hạn như autonomous vehicles, robotics và phân tích video thời gian thực.
-
Đa dạng các mô hình tiền huấn luyện: Hiểu rằng các tác vụ khác nhau đòi hỏi các bộ công cụ khác nhau, YOLOv5u cung cấp vô số các mô hình tiền huấn luyện. Cho dù bạn đang tập trung vào suy luận (Inference), xác thực (Validation) hay huấn luyện (Training), luôn có một mô hình được thiết kế riêng dành cho bạn. Sự đa dạng này đảm bảo bạn không chỉ sử dụng một giải pháp
Các tác vụ và chế độ được hỗ trợ#
Các mô hình YOLOv5u, với nhiều trọng số được huấn luyện trước khác nhau, xuất sắc trong các tác vụ Object Detection. Chúng hỗ trợ một loạt các chế độ toàn diện, làm cho chúng phù hợp với nhiều ứng dụng đa dạng, từ phát triển cho đến triển khai.
| Loại model | Trọng số Pretrained | Tác vụ | Huấn luyện | Validation | Suy luận | Xuất (Export) |
|---|---|---|---|---|---|---|
| YOLOv5u | yolov5nu, yolov5su, yolov5mu, yolov5lu, yolov5xu, yolov5n6u, yolov5s6u, yolov5m6u, yolov5l6u, yolov5x6u | Phát hiện đối tượng | ✅ | ✅ | ✅ | ✅ |
Bảng này cung cấp cái nhìn tổng quan chi tiết về các biến thể mô hình YOLOv5u, làm nổi bật khả năng áp dụng của chúng trong các tác vụ phát hiện đối tượng và hỗ trợ cho các chế độ hoạt động khác nhau như Inference, Validation, Training và Export. Hỗ trợ toàn diện này đảm bảo rằng người dùng có thể tận dụng tối đa các khả năng của các mô hình YOLOv5u trong một loạt các kịch bản phát hiện đối tượng.
Chỉ số hiệu suất#
Xem Tài liệu Phát hiện để biết các ví dụ sử dụng với các mô hình này được huấn luyện trên COCO, bao gồm 80 lớp được huấn luyện trước.
| Mô hình | YAML | kích thước (pixel) | mAPval 50-95 | Tốc độ CPU ONNX (ms) | Tốc độ A100 TensorRT (ms) | params (M) | FLOPs (B) |
|---|---|---|---|---|---|---|---|
| yolov5nu.pt | yolov5n.yaml | 640 | 34.3 | 73.6 | 1.06 | 2.6 | 7.7 |
| yolov5su.pt | yolov5s.yaml | 640 | 43.0 | 120.7 | 1.27 | 9.1 | 24.0 |
| yolov5mu.pt | yolov5m.yaml | 640 | 49.0 | 233.9 | 1.86 | 25.1 | 64.2 |
| yolov5lu.pt | yolov5l.yaml | 640 | 52.2 | 408.4 | 2.50 | 53.2 | 135.0 |
| yolov5xu.pt | yolov5x.yaml | 640 | 53.2 | 763.2 | 3.81 | 97.2 | 246.4 |
| yolov5n6u.pt | yolov5n6.yaml | 1280 | 42.1 | 211.0 | 1.83 | 4.3 | 7.8 |
| yolov5s6u.pt | yolov5s6.yaml | 1280 | 48.6 | 422.6 | 2.34 | 15.3 | 24.6 |
| yolov5m6u.pt | yolov5m6.yaml | 1280 | 53.6 | 810.9 | 4.36 | 41.2 | 65.7 |
| yolov5l6u.pt | yolov5l6.yaml | 1280 | 55.7 | 1470.9 | 5.47 | 86.1 | 137.4 |
| yolov5x6u.pt | yolov5x6.yaml | 1280 | 56.8 | 2436.5 | 8.98 | 155.4 | 250.7 |
Ví dụ Sử dụng#
Ví dụ này cung cấp các ví dụ đơn giản về huấn luyện và suy luận YOLOv5. Để có tài liệu đầy đủ về các modes này và các chế độ khác, hãy xem các trang tài liệu Predict, Train, Val và Export.
Các model *.pt được huấn luyện trước bằng PyTorch cũng như các file cấu hình *.yaml có thể được truyền vào class YOLO() để tạo một instance model trong python:
from ultralytics import YOLO
# Load a COCO-pretrained YOLOv5n model
model = YOLO("yolov5n.pt")
# Display model information (optional)
model.info()
# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference with the YOLOv5n model on the 'bus.jpg' image
results = model("path/to/bus.jpg")Trích dẫn và Ghi nhận#
Ultralytics chưa xuất bản một bài báo nghiên cứu chính thức nào cho YOLOv5 do tính chất phát triển nhanh chóng của các mô hình. Chúng tôi tập trung vào việc thúc đẩy công nghệ và làm cho nó dễ sử dụng hơn, thay vì sản xuất tài liệu tĩnh. Để biết thông tin cập nhật nhất về kiến trúc, tính năng và cách sử dụng YOLO, vui lòng tham khảo GitHub repository và documentation của chúng tôi.
Nếu bạn sử dụng YOLOv5 hoặc YOLOv5u trong nghiên cứu của mình, vui lòng trích dẫn kho lưu trữ Ultralytics YOLOv5 như sau:
@software{yolov5,
title = {Ultralytics YOLOv5},
author = {Glenn Jocher},
year = {2020},
version = {7.0},
license = {AGPL-3.0},
url = {https://github.com/ultralytics/yolov5},
doi = {10.5281/zenodo.3908559},
orcid = {0000-0001-5950-6979}
}Xin lưu ý rằng các mô hình YOLOv5 được cung cấp theo giấy phép AGPL-3.0 và Enterprise.
Câu hỏi thường gặp#
Ultralytics YOLOv5u là một phiên bản nâng cao của YOLOv5, tích hợp phần đầu tách biệt không dùng anchor và không dùng objectness giúp nâng cao sự đánh đổi accuracy-speed cho các tác vụ phát hiện đối tượng thời gian thực. Không giống như YOLOv5 truyền thống, YOLOv5u áp dụng cơ chế phát hiện không dùng anchor, làm cho nó linh hoạt và thích ứng hơn trong các kịch bản đa dạng. Để biết thêm thông tin chi tiết về các tính năng của nó, bạn có thể tham khảo phần YOLOv5 Overview.
Phần đầu Ultralytics không dùng anchor trong YOLOv5u cải thiện hiệu suất phát hiện đối tượng bằng cách loại bỏ sự phụ thuộc vào các hộp anchor được định nghĩa trước. Điều này dẫn đến một cơ chế phát hiện linh hoạt và thích ứng hơn, có thể xử lý các kích thước và hình dạng đối tượng khác nhau với hiệu quả lớn hơn. Sự cải tiến này đóng góp trực tiếp vào sự đánh đổi cân bằng giữa độ chính xác và tốc độ, làm cho YOLOv5u phù hợp cho các ứng dụng thời gian thực. Tìm hiểu thêm về kiến trúc của nó trong phần Key Features.
Có, bạn có thể sử dụng các mô hình YOLOv5u được huấn luyện trước cho các tác vụ khác nhau như Object Detection. Các mô hình này hỗ trợ nhiều chế độ, bao gồm Inference, Validation, Training và Export. Sự linh hoạt này cho phép người dùng tận dụng các khả năng của các mô hình YOLOv5u trên các yêu cầu vận hành khác nhau. Để có cái nhìn tổng quan chi tiết, hãy kiểm tra phần Supported Tasks and Modes.
Các chỉ số hiệu suất của các mô hình YOLOv5u thay đổi tùy thuộc vào nền tảng và phần cứng được sử dụng. Ví dụ, mô hình yolov5nu đạt 34.3 mAP trên tập dữ liệu COCO với tốc độ 73.6 ms trên CPU (ONNX) và 1.06 ms trên A100 TensorRT. Các chỉ số hiệu suất chi tiết cho các mô hình YOLOv5u khác nhau có thể được tìm thấy trong phần Performance Metrics, cung cấp sự so sánh toàn diện trên các thiết bị khác nhau.
Bạn có thể huấn luyện một mô hình YOLOv5u bằng cách tải một mô hình tiền huấn luyện và chạy lệnh huấn luyện với tập dữ liệu của bạn. Dưới đây là một ví dụ nhanh:
Ví dụfrom ultralytics import YOLO # Load a COCO-pretrained YOLOv5n model model = YOLO("yolov5n.pt") # Display model information (optional) model.info() # Train the model on the COCO8 example dataset for 100 epochs results = model.train(data="coco8.yaml", epochs=100, imgsz=640)Để có thêm hướng dẫn chi tiết, hãy truy cập phần Usage Examples.