Ultralytics YOLOv5
Tổng quan
YOLOv5u đại diện cho một bước tiến trong các phương pháp luận nhận diện đối tượng. Bắt nguồn từ kiến trúc nền tảng của model YOLOv5 do Ultralytics phát triển, YOLOv5u tích hợp split head không dùng anchor, không dùng objectness, một tính năng đã được giới thiệu trước đó trong các model YOLOv8. Sự thích nghi này tinh chỉnh kiến trúc của model, dẫn đến sự cân bằng độ chính xác-tốc độ tốt hơn trong các tác vụ nhận diện đối tượng. Với các kết quả thực nghiệm và các tính năng kế thừa, YOLOv5u cung cấp một giải pháp thay thế hiệu quả cho những ai đang 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 một biến thể không dùng anchor của model YOLOv5. Các model được huấn luyện với repo YOLOv5 gốc không thể được sử dụng với thư viện Ultralytics.
Khám phá và chạy các model YOLOv5 trực tiếp trên Nền tảng Ultralytics.
Các tính năng chính
-
Split Ultralytics Head không dùng Anchor: Các model nhận diệ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 split Ultralytics head không dùng anchor, nó đảm bảo một cơ chế phát hiện linh hoạt và thích ứng hơn, từ đó nâng cao hiệu suất trong các kịch bản đa dạng.
-
Sự cân bằng Tối ưu giữa Độ chính xác và Tốc độ: Tốc độ và độ chính xác thường đi ngược chiều nhau. Nhưng YOLOv5u thách thức sự đánh đổi này. Nó cung cấp một sự cân bằng đã được hiệu chuẩn, đảm bảo việc nhận diện theo thời gian thực mà không ảnh hưởng đến độ chính xác. Tính năng này đặc biệt vô giá cho các ứng dụng đòi hỏi phản hồi nhanh, chẳng hạn như xe tự hành, robot học và phân tích video thời gian thực.
-
Đa dạng các Model 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 model tiền huấn luyện. Cho dù bạn đang tập trung vào Inference (Suy luận), Validation (Xác thực) hay Training (Huấn luyện), luôn có một model được thiết kế riêng đang chờ 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 "một kích thước cho tất cả", mà là một model được tinh chỉnh đặc biệt cho thách thức độc nhất của bạn.
Các tác vụ và chế độ được hỗ trợ
Các model YOLOv5u, với nhiều trọng số tiền huấn luyện khác nhau, vượt trội trong các tác vụ Nhận diện Đối tượng. Chúng hỗ trợ một loạt các chế độ toàn diện, giúp 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 | Weights Tiền huấn luyện | Tác vụ | Inference | Validation | Training | Export |
|---|---|---|---|---|---|---|
| YOLOv5u | yolov5nu, yolov5su, yolov5mu, yolov5lu, yolov5xu, yolov5n6u, yolov5s6u, yolov5m6u, yolov5l6u, yolov5x6u | Phát hiện đối tượng (Object Detection) | ✅ | ✅ | ✅ | ✅ |
Bảng này cung cấp cái nhìn chi tiết về các biến thể model YOLOv5u, nêu bật khả năng áp dụng của chúng trong các tác vụ nhận diện đối tượng và hỗ trợ cho nhiều chế độ vận hành khác nhau như Inference, Validation, Training, và Export. Sự 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 khả năng của các model YOLOv5u trong nhiều kịch bản nhận diện đối tượng.
Các chỉ số hiệu suất
Xem Tài liệu Detection để biết các ví dụ sử dụng với các model này đã được đào tạo trên COCO, bao gồm 80 lớp được đào tạo trước.
| Model | YAML | kích thước (pixels) | mAPval 50-95 | Tốc độ CPU ONNX (ms) | Tốc độ A100 TensorRT (ms) | tham số (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 chế độ này và các chế độ khác, hãy xem các trang tài liệu về Predict, Train, Val và Export.
PyTorch pretrained *.pt models as well as configuration *.yaml files can be passed to the YOLO() class to create a model instance in 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 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 model. Chúng tôi tập trung vào việc nâng cao công nghệ và làm cho nó dễ sử dụng hơn, thay vì tạo ra các 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 kho GitHub và tài liệu 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 model YOLOv5 được cung cấp theo giấy phép AGPL-3.0 và Enterprise.
Câu hỏi thường gặp (FAQ)
Ultralytics YOLOv5u là gì và nó khác biệt thế nào với YOLOv5?
Ultralytics YOLOv5u là một phiên bản nâng cao của YOLOv5, tích hợp split head không dùng anchor và không dùng objectness giúp tăng cường sự cân bằng giữa độ chính xác và tốc độ cho các tác vụ nhận diệ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 nhiều kịch bản đa dạng. Để biết thông tin chi tiết hơn về các tính năng của nó, bạn có thể tham khảo Tổng quan về YOLOv5.
Làm thế nào để Ultralytics head không dùng anchor cải thiện hiệu suất nhận diện đối tượng trong YOLOv5u?
Ultralytics head không dùng anchor trong YOLOv5u cải thiện hiệu suất nhận diện đối tượng bằng cách loại bỏ sự phụ thuộc vào các anchor box được xác định 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ó khả năng xử lý nhiều kích thước và hình dạng đối tượng khác nhau với hiệu quả cao hơn. Sự cải tiến này đóng góp trực tiếp vào sự cân bằng giữa độ chính xác và tốc độ, giúp 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 Tính năng Chính.
Tôi có thể sử dụng các model YOLOv5u tiền huấn luyện cho các tác vụ và chế độ khác nhau không?
Có, bạn có thể sử dụng các model YOLOv5u tiền huấn luyện cho nhiều tác vụ khác nhau như Nhận diện Đối tượng. Các model 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 khả năng của các model YOLOv5u cho 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 xem phần Các Tác vụ và Chế độ được Hỗ trợ.
Các chỉ số hiệu suất của các model YOLOv5u so sánh như thế nào trên các nền tảng khác nhau?
Các chỉ số hiệu suất của các model YOLOv5u thay đổi tùy thuộc vào nền tảng và phần cứng được sử dụng. Ví dụ, model 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 model YOLOv5u khác nhau có thể được tìm thấy trong phần Chỉ số Hiệu suất, phần này cung cấp một so sánh toàn diện trên nhiều thiết bị khác nhau.
Làm thế nào để tôi có thể huấn luyện một model YOLOv5u bằng Python API của Ultralytics?
Bạn có thể huấn luyện một model YOLOv5u bằng cách tải một model 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. Đây là một ví dụ nhanh:
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)Để biết thêm hướng dẫn chi tiết, hãy truy cập phần Ví dụ Sử dụng.