Chuyển đến nội dung

Ultralytics YOLOv5

Tổng quan

YOLOv5u thể hiện một bước tiến trong phương pháp luận phát hiện đối tượng. 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 split head không neo, không objectness, một tính năng đã được giới thiệu trước đó trong các mô hình YOLOv8. Sự điều chỉnh 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. Với các kết quả thực nghiệm và các tính năng có được, YOLOv5u cung cấp một giải pháp thay thế hiệu quả cho những người 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ế.

Ultralytics YOLOv5

Các tính năng chính

  • Ultralytics Head tách rời không neo: Các mô hình phát hiện đối tượng truyền thống dựa vào các hộp neo đượ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 head tách rời không neo, nó đảm bảo cơ chế phát hiện linh hoạt và thích ứng hơn, do đó nâng cao hiệu suất trong các tình huống khác nhau.

  • 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 điều chỉnh, đảm bảo phát hiệ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á đối với các ứng dụng yêu cầu phản hồi nhanh chóng, chẳng hạn như xe tự hành, robotics và phân tích video theo thời gian thực.

  • Nhiều Mô Hình Được Huấn Luyện Sẵ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 rất nhiều mô hình được huấn luyện sẵn. Cho dù bạn đang tập trung vào Suy luận, Xác thực hay Huấn luyện, luôn có một mô hình đượ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 giải pháp một kích thước phù hợp với tất cả, mà là một mô hình được tinh chỉnh đặc biệt cho thử thách riêng của bạn.

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, vượt trội trong các tác vụ Phát Hiện Đối Tượng. 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 các ứng dụng đa dạng, từ phát triển đến triển khai.

Loại mô hình Trọng số được huấn luyện trước Tác vụ Suy luận Xác thực Huấn luyện Xuất
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 một 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ư Suy luận, Xác thực, Huấn luyệnXuất. 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 mô hình YOLOv5u trong một loạt các tình huống phát hiện đối tượng.

Các chỉ số hiệu suất

Hiệu suất

Tham khảo Tài liệu về Nhận diện để xem các ví dụ sử dụng với những 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
(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 Dự đoán, Huấn luyện, ValXuất.

Ví dụ

PyTorch đã được huấn luyện trước *.pt các mô hình cũng như cấu hình *.yaml các tệp có thể được chuyển đến YOLO() class để tạo một thể hiện mô hình 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")

Các lệnh CLI có sẵn để chạy trực tiếp các mô hình:

# Load a COCO-pretrained YOLOv5n model and train it on the COCO8 example dataset for 100 epochs
yolo train model=yolov5n.pt data=coco8.yaml epochs=100 imgsz=640

# Load a COCO-pretrained YOLOv5n model and run inference on the 'bus.jpg' image
yolo predict model=yolov5n.pt source=path/to/bus.jpg

Trích dẫn và ghi nhận

Ấn phẩm Ultralytics YOLOv5

Ultralytics chưa công bố 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 nâng cao công nghệ và giúp công nghệ này dễ sử dụng hơn, thay vì tạo ra 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 lưu trữ GitHubtà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 mô hình YOLOv5 được cung cấp theo giấy phép AGPL-3.0Doanh nghiệp.

Câu hỏi thường gặp

Ultralytics YOLOv5u là gì và nó khác với YOLOv5 như thế nào?

Ultralytics YOLOv5u là một phiên bản nâng cao của YOLOv5, tích hợp split head không neo, không objectness giúp tăng cường sự đánh đổi 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ông giống như YOLOv5 truyền thống, YOLOv5u áp dụng cơ chế phát hiện không neo, giúp nó linh hoạt và thích ứng hơn trong nhiều tình huống khác nhau. Để 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 Tổng quan về YOLOv5.

Đầu Ultralytics không neo cải thiện hiệu suất phát hiện đối tượng trong YOLOv5u như thế nào?

Ultralytics head không neo 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 neo đượ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ó thể 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. 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 độ, làm cho 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 nó trong phần Các tính năng chính.

Tôi có thể sử dụng các mô hình YOLOv5u được huấn luyện trước cho các tác vụ và chế độ khác nhau không?

Có, bạn có thể sử dụng các mô hình YOLOv5u được huấn luyện trước cho nhiều tác vụ khác nhau như Phát hiện đối tượng. Các mô hình này hỗ trợ nhiều chế độ, bao gồm Suy luận, Xác thực, Huấn luyệnXuất. Sự linh hoạt này cho phép người dùng tận dụng khả năng của các mô hình YOLOv5u trên các yêu cầu hoạt động 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ợ.

Hiệu suất của các mô hình YOLOv5u được so sánh trên các nền tảng khác nhau như thế nào?

Các số liệu hiệu suất của mô hình YOLOv5u khác nhau 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 được 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. Số liệu 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 Số liệu hiệu suất, cung cấp so sánh toàn diện trên các thiết bị khác nhau.

Làm cách nào để huấn luyện mô hình YOLOv5u bằng Ultralytics Python API?

Bạn có thể huấn luyện mô hình YOLOv5u bằng cách tải mô hình đã được huấn luyện trước và chạy lệnh huấn luyện với bộ 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)
# Load a COCO-pretrained YOLOv5n model and train it on the COCO8 example dataset for 100 epochs
yolo train model=yolov5n.pt data=coco8.yaml epochs=100 imgsz=640

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



📅 Đã tạo 1 năm trước ✏️ Cập nhật 5 tháng trước

Bình luận