Ultralytics YOLO27:

Ultralytics YOLOv5#

Tổng quan#

YOLOv5u đại diện cho một bước tiến trong các phương pháp phát hiệ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 anchor và không objectness, một tính năng được giới thiệu trước đó trong các model YOLOv8. Sự điều chỉnh này tinh chỉnh kiến trúc model, mang lại sự cân bằng tốt hơn 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à những tính năng kế thừa, YOLOv5u cung cấp một lựa chọn 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 và ứng dụng thực tế.

Kiến trúc và hiệu năng của model phát hiện đối tượng YOLOv5

Các model được train bằng repo YOLOv5 gốc không tương thích với thư viện Ultralytics

Ultralytics cung cấp một biến thể YOLOv5 model không anchor. Các model được train bằng repo ultralytics/yolov5 không thể được load bằng thư viện ultralytics/ultralytics. Để sử dụng YOLOv5 tại đây, hãy train một model mới từ checkpoint Ultralytics YOLOv5u (ví dụ: yolov5su.pt).

Dùng thử trên Ultralytics Platform

Khám phá và chạy trực tiếp các model YOLOv5 trên Ultralytics Platform.

Tính năng chính#

  • Ultralytics Split Head Không Anchor: Các model 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 Ultralytics split head không anchor, model cung cấp cơ chế phát hiện linh hoạt và thích ứng hơn, từ đó cải thiện hiệu năng trong nhiều kịch bản khác nhau.

  • Tối ưu hóa sự cân bằng giữa độ chính xác và tốc độ: Tốc độ và độ chính xác thường đi theo hai hướng ngược nhau. Tuy nhiên, YOLOv5u thách thức sự đánh đổi này. Model mang lại sự cân bằng được hiệu chỉnh, đảm bảo khả năng phát hiện theo thời gian thực mà không làm giảm độ chính xác. Tính năng này đặc biệt có giá trị đối với các ứng dụng yêu cầu phản hồi nhanh, chẳng hạn như xe tự hành, robotics và phân tích video theo thời gian thực.

  • Đa dạng model pretrained: Nhận thức rằng các tác vụ khác nhau yêu cầu những bộ công cụ khác nhau, YOLOv5u cung cấp rất nhiều model pretrained. Dù bạn tập trung vào Inference, Validation hay Training, luôn có một model được thiết kế phù hợp đ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 phù hợp cho mọi trường hợp, mà là một model được fine-tune riêng cho bài toán cụ thể của mình.

Các task và mode được hỗ trợ#

Các model YOLOv5u với nhiều pretrained weight khác nhau hoạt động xuất sắc trong các tác vụ Phát hiện đối tượng. Chúng hỗ trợ đầy đủ nhiều mode, phù hợp với các ứng dụng đa dạng từ phát triển đến triển khai.

Loại modelPretrained weightTaskTrainingValidationInferenceExport
YOLOv5uyolov5nu, yolov5su, yolov5mu, yolov5lu, yolov5xu, yolov5n6u, yolov5s6u, yolov5m6u, yolov5l6u, yolov5x6uPhát hiện đối tượng

Bảng này cung cấp tổng quan chi tiết về các biến thể model YOLOv5u, nêu bật khả năng áp dụng trong các tác vụ phát hiện đối tượng và hỗ trợ nhiều mode vận hành như Inference, Validation, TrainingExport. Khả năng hỗ trợ toàn diện này đảm bảo người dùng có thể tận dụng đầy đủ các tính năng của model YOLOv5u trong nhiều kịch bản phát hiện đối tượng.

Metrics hiệu năng#

Hiệu năng

Xem Tài liệu Phát hiện để biết các ví dụ sử dụng những model được huấn luyện trên COCO, bao gồm 80 class được huấn luyện trước.

ModelYAMLkích thước
(pixel)
mAPval
50-95
Tốc độ
CPU ONNX
(ms)
Tốc độ
A100 TensorRT
(ms)
tham số
(M)
FLOPs
(B)
yolov5nu.ptyolov5n.yaml64034.373.61.062.67.7
yolov5su.ptyolov5s.yaml64043.0120.71.279.124.0
yolov5mu.ptyolov5m.yaml64049.0233.91.8625.164.2
yolov5lu.ptyolov5l.yaml64052.2408.42.5053.2135.0
yolov5xu.ptyolov5x.yaml64053.2763.23.8197.2246.4
yolov5n6u.ptyolov5n6.yaml128042.1211.01.834.331.3
yolov5s6u.ptyolov5s6.yaml128048.6422.62.3415.397.6
yolov5m6u.ptyolov5m6.yaml128053.6810.94.3641.2261.3
yolov5l6u.ptyolov5l6.yaml128055.71470.95.4786.1549.4
yolov5x6u.ptyolov5x6.yaml128056.82436.58.98155.51002.8

Ví dụ sử dụng#

Ví dụ này cung cấp các ví dụ đơn giản về training và inference YOLOv5. Để xem tài liệu đầy đủ về các mode này và các mode khác, hãy xem các trang tài liệu Predict, Train, ValExport.

Ví dụ

Các model *.pt được huấn luyện trước bằng PyTorch, cũng như các tệp 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 YOLOv5nu model
model = YOLO("yolov5nu.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 YOLOv5nu model on the 'bus.jpg' image
results = model("path/to/bus.jpg")

Trích dẫn và ghi nhận đóng góp#

Ấn phẩm Ultralytics YOLOv5

Ultralytics chưa công bố bài nghiên cứu chính thức cho YOLOv5 do các model phát triển nhanh chóng. Chúng tôi tập trung vào việc thúc đẩy công nghệ và giúp công nghệ dễ sử dụng hơn, thay vì tạo ra tài liệu tĩnh. Để cập nhật thông tin mới nhất về kiến trúc, tính năng và cách sử dụng YOLO, vui lòng tham khảo repo GitHubtài liệu của chúng tôi.

Nếu sử dụng YOLOv5 hoặc YOLOv5u trong nghiên cứu, vui lòng trích dẫn repo Ultralytics YOLOv5 như sau:

Trích dẫn
@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.0Enterprise.

FAQ#

  • Ultralytics YOLOv5u là phiên bản nâng cao của YOLOv5, tích hợp split head không anchor và không objectness, giúp cải thiện sự cân bằng giữa độ chính xác và tốc độ cho các tác vụ phát hiện đối tượng theo thời gian thực. Khác với YOLOv5 truyền thống, YOLOv5u áp dụng cơ chế phát hiện không anchor, giúp model linh hoạt và thích ứng hơn trong nhiều kịch bản. Để biết thêm thông tin chi tiết về các tính năng, bạn có thể tham khảo Tổng quan về YOLOv5.

  • Ultralytics head không anchor trong YOLOv5u cải thiện hiệu năng phát hiệ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 tạo ra một cơ chế phát hiện linh hoạt và thích ứng hơn, có thể xử lý các đối tượng với nhiều kích thước và hình dạng khác nhau hiệu quả hơn. Cải tiến này trực tiếp góp phần tạo nên sự cân bằng giữa độ chính xác và tốc độ, giúp YOLOv5u phù hợp với các ứng dụng thời gian thực. Tìm hiểu thêm về kiến trúc của model trong phần Tính năng chính.

  • Có, bạn có thể sử dụng các model YOLOv5u pretrained cho nhiều tác vụ như Phát hiện đối tượng. Các model này hỗ trợ nhiều mode, bao gồm Inference, Validation, TrainingExport. Tính linh hoạt này cho phép người dùng tận dụng các tính năng của model YOLOv5u trong nhiều yêu cầu vận hành khác nhau. Để xem tổng quan chi tiết, hãy kiểm tra phần Tác vụ và mode được hỗ trợ.

  • Các chỉ số hiệu năng của 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 bộ dữ liệu COCO với tốc độ 73.6 ms trên CPU (ONNX) và 1.06 ms trên A100 TensorRT. Bạn có thể tìm thấy các chỉ số hiệu năng chi tiết của những model YOLOv5u khác nhau trong phần Chỉ số hiệu năng, nơi cung cấp so sánh toàn diện giữa nhiều thiết bị.

  • Bạn có thể train model YOLOv5u bằng cách load một model pretrained và chạy lệnh training với dataset của mình. Sau đây là một ví dụ nhanh:

    Ví dụ
    from ultralytics import YOLO
    
    # Load a COCO-pretrained YOLOv5nu model
    model = YOLO("yolov5nu.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)

    Để xem hướng dẫn chi tiết hơn, hãy truy cập phần Ví dụ sử dụng.

Bình luận