Chuyển đến nội dung

Khám phá Ultralytics YOLOv8

Tổng quan

YOLOv8 được Ultralytics phát hành vào ngày 10 tháng 1 năm 2023, mang lại hiệu suất vượt trội về độ chính xác và tốc độ. Dựa trên những tiến bộ của các phiên bản YOLO trước, YOLOv8 giới thiệu các tính năng và tối ưu hóa mới, khiến nó trở thành một lựa chọn lý tưởng cho nhiều tác vụ phát hiện đối tượng trong nhiều ứng dụng.

Ultralytics YOLOv8



Xem: Tổng quan về Mô hình Ultralytics YOLOv8

Các tính năng chính của YOLOv8

  • Kiến trúc Backbone và Neck nâng cao: YOLOv8 sử dụng các kiến trúc backbone và neck hiện đại, giúp cải thiện hiệu suất trích xuất đặc trưngphát hiện đối tượng.
  • Head Ultralytics tách rời không neo: YOLOv8 áp dụng head Ultralytics tách rời không neo, giúp cải thiện độ chính xác và quy trình phát hiện hiệu quả hơn so với các phương pháp dựa trên neo.
  • Tối ưu hóa sự đánh đổi giữa Độ chính xác và Tốc độ: Với trọng tâm duy trì sự cân bằng tối ưu giữa độ chính xác và tốc độ, YOLOv8 phù hợp cho các tác vụ phát hiện đối tượng theo thời gian thực trong các lĩnh vực ứng dụng đa dạng.
  • Đa dạng các Mô hình được Huấn luyện trước: YOLOv8 cung cấp một loạt các mô hình được huấn luyện trước để phục vụ cho các tác vụ và yêu cầu hiệu suất khác nhau, giúp bạn dễ dàng tìm thấy mô hình phù hợp cho trường hợp sử dụng cụ thể của mình.

Các Tác vụ và Chế độ được Hỗ trợ

Dòng YOLOv8 cung cấp một loạt các mô hình đa dạng, mỗi mô hình được chuyên biệt hóa cho các tác vụ cụ thể trong thị giác máy tính. Các mô hình này được thiết kế để đáp ứng các yêu cầu khác nhau, từ phát hiện đối tượng đến các tác vụ phức tạp hơn như phân đoạn thể hiện, phát hiện dáng/điểm chính, phát hiện đối tượng theo hướng và phân loại.

Mỗi biến thể của dòng YOLOv8 được tối ưu hóa cho tác vụ tương ứng của nó, đảm bảo hiệu suất và độ chính xác cao. Ngoài ra, các mô hình này tương thích với nhiều chế độ hoạt động khác nhau bao gồm Suy luận, Xác thực, Huấn luyệnXuất, tạo điều kiện thuận lợi cho việc sử dụng chúng trong các giai đoạn triển khai và phát triển khác nhau.

Mô hình Tên tập tin Tác vụ Suy luận Xác thực Huấn luyện Xuất
YOLOv8 yolov8n.pt yolov8s.pt yolov8m.pt yolov8l.pt yolov8x.pt Phát hiện vật thể
YOLOv8-seg yolov8n-seg.pt yolov8s-seg.pt yolov8m-seg.pt yolov8l-seg.pt yolov8x-seg.pt Phân đoạn thực thể
YOLOv8-pose yolov8n-pose.pt yolov8s-pose.pt yolov8m-pose.pt yolov8l-pose.pt yolov8x-pose.pt yolov8x-pose-p6.pt Tư thế/Điểm chính
YOLOv8-obb yolov8n-obb.pt yolov8s-obb.pt yolov8m-obb.pt yolov8l-obb.pt yolov8x-obb.pt Phát hiện theo hướng (Oriented Detection)
YOLOv8-cls yolov8n-cls.pt yolov8s-cls.pt yolov8m-cls.pt yolov8l-cls.pt yolov8x-cls.pt Phân loại (Classification)

Bảng này cung cấp tổng quan về các biến thể mô hình YOLOv8, nêu bật khả năng áp dụng của chúng trong các tác vụ cụ thể và khả năng tương thích của chúng với các chế độ hoạt động khác nhau như Suy luận, Xác thực, Huấn luyện và Xuất. Nó thể hiện tính linh hoạt và mạnh mẽ của dòng YOLOv8, làm cho chúng phù hợp với nhiều ứng dụng khác nhau trong thị giác máy tính.

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 Kích thước
(pixels)
mAPval
50-95
Tốc độ
CPU ONNX
(ms)
Tốc độ
A100 TensorRT
(ms)
Tham số
(M)
FLOPs
(B)
YOLOv8n 640 37.3 80.4 0.99 3.2 8.7
YOLOv8s 640 44.9 128.4 1.20 11.2 28.6
YOLOv8m 640 50.2 234.7 1.83 25.9 78.9
YOLOv8l 640 52.9 375.2 2.39 43.7 165.2
YOLOv8x 640 53.9 479.1 3.53 68.2 257.8

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 Open Image V7, bao gồm 600 lớp được huấn luyện trước.

Mô hình Kích thước
(pixels)
mAPval
50-95
Tốc độ
CPU ONNX
(ms)
Tốc độ
A100 TensorRT
(ms)
Tham số
(M)
FLOPs
(B)
YOLOv8n 640 18.4 142.4 1.21 3.5 10.5
YOLOv8s 640 27.7 183.1 1.40 11.4 29.7
YOLOv8m 640 33.6 408.5 2.26 26.2 80.6
YOLOv8l 640 34.9 596.9 2.43 44.1 167.4
YOLOv8x 640 36.3 860.6 3.56 68.7 260.6

Tham khảo Tài liệu về Phân đoạ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 Kích thước
(pixels)
mAPbox
50-95
mAPmask
50-95
Tốc độ
CPU ONNX
(ms)
Tốc độ
A100 TensorRT
(ms)
Tham số
(M)
FLOPs
(B)
YOLOv8n-seg 640 36.7 30.5 96.1 1.21 3.4 12.6
YOLOv8s-seg 640 44.6 36.8 155.7 1.47 11.8 42.6
YOLOv8m-seg 640 49.9 40.8 317.0 2.18 27.3 110.2
YOLOv8l-seg 640 52.3 42.6 572.4 2.79 46.0 220.5
YOLOv8x-seg 640 53.4 43.4 712.1 4.02 71.8 344.1

Tham khảo Tài liệu về Phân loại để xem các ví dụ sử dụng với những mô hình này, được huấn luyện trên ImageNet, bao gồm 1000 lớp đã được huấn luyện trước.

Mô hình Kích thước
(pixels)
acc
top1
acc
top5
Tốc độ
CPU ONNX
(ms)
Tốc độ
A100 TensorRT
(ms)
Tham số
(M)
FLOPs
(B) ở 224
YOLOv8n-cls 224 69.0 88.3 12.9 0.31 2.7 0.5
YOLOv8s-cls 224 73.8 91.7 23.4 0.35 6.4 1.7
YOLOv8m-cls 224 76.8 93.5 85.4 0.62 17.0 5.3
YOLOv8l-cls 224 76.8 93.5 163.0 0.87 37.5 12.3
YOLOv8x-cls 224 79.0 94.6 232.0 1.01 57.4 19.0

Tham khảo Tài liệu về Ước tính tư thế để 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 1 lớp đã được huấn luyện trước, 'person'.

Mô hình Kích thước
(pixels)
mAPpose
50-95
mAPpose
50
Tốc độ
CPU ONNX
(ms)
Tốc độ
A100 TensorRT
(ms)
Tham số
(M)
FLOPs
(B)
YOLOv8n-pose 640 50.4 80.1 131.8 1.18 3.3 9.2
YOLOv8s-pose 640 60.0 86.2 233.2 1.42 11.6 30.2
YOLOv8m-pose 640 65.0 88.8 456.3 2.00 26.4 81.0
YOLOv8l-pose 640 67.6 90.0 784.5 2.59 44.4 168.6
YOLOv8x-pose 640 69.2 90.2 1607.1 3.73 69.4 263.2
YOLOv8x-pose-p6 1280 71.6 91.2 4088.7 10.04 99.1 1066.4

Tham khảo Tài liệu về Nhận diện có hướng để xem các ví dụ sử dụng với những mô hình này, được huấn luyện trên DOTAv1, bao gồm 15 lớp đã được huấn luyện trước.

Mô hình Kích thước
(pixels)
mAPtest
50
Tốc độ
CPU ONNX
(ms)
Tốc độ
A100 TensorRT
(ms)
Tham số
(M)
FLOPs
(B)
YOLOv8n-obb 1024 78.0 204.77 3.57 3.1 23.3
YOLOv8s-obb 1024 79.5 424.88 4.07 11.4 76.3
YOLOv8m-obb 1024 80.5 763.48 7.61 26.4 208.6
YOLOv8l-obb 1024 80.7 1278.42 11.83 44.5 433.8
YOLOv8x-obb 1024 81.36 1759.10 13.23 69.5 676.7

Ví dụ sử dụng YOLOv8

Ví dụ này cung cấp các ví dụ đơn giản về huấn luyện và suy luận YOLOv8. Để 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, Đánh giáXuất.

Lưu ý ví dụ dưới đây dành cho các mô hình Phát hiện YOLOv8 để phát hiện đối tượng. Để biết thêm các tác vụ được hỗ trợ, hãy xem tài liệu Phân đoạn, Phân loại, OBB và tài liệu Tư thế.

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 YOLOv8n model
model = YOLO("yolov8n.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 YOLOv8n 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 YOLOv8n model and train it on the COCO8 example dataset for 100 epochs
yolo train model=yolov8n.pt data=coco8.yaml epochs=100 imgsz=640

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

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

Ấn phẩm Ultralytics YOLOv8

Ultralytics chưa công bố bài báo nghiên cứu chính thức nào cho YOLOv8 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 mô hình YOLOv8 hoặc bất kỳ phần mềm nào khác từ kho lưu trữ này trong công việc của bạn, vui lòng trích dẫn nó theo định dạng sau:

@software{yolov8_ultralytics,
  author = {Glenn Jocher and Ayush Chaurasia and Jing Qiu},
  title = {Ultralytics YOLOv8},
  version = {8.0.0},
  year = {2023},
  url = {https://github.com/ultralytics/ultralytics},
  orcid = {0000-0001-5950-6979, 0000-0002-7603-6750, 0000-0003-3783-7069},
  license = {AGPL-3.0}
}

Xin lưu ý rằng DOI đang chờ xử lý và sẽ được thêm vào trích dẫn sau khi có sẵn. Các mô hình YOLOv8 được cung cấp theo giấy phép AGPL-3.0 và giấy phép Doanh nghiệp.

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

YOLOv8 là gì và nó khác với các phiên bản YOLO trước như thế nào?

YOLOv8 được thiết kế để cải thiện hiệu suất phát hiện đối tượng theo thời gian thực với các tính năng nâng cao. Không giống như các phiên bản trước, YOLOv8 kết hợp đầu Ultralytics phân tách không neo, kiến trúc backbone và neck hiện đại, đồng thời cung cấp sự đánh đổi độ chính xác - tốc độ được tối ưu hóa, làm cho nó trở nên lý tưởng cho các ứng dụng đa dạng. Để biết thêm chi tiết, hãy xem các phần Tổng quanCác tính năng chính.

Làm cách nào tôi có thể sử dụng YOLOv8 cho các tác vụ thị giác máy tính khác nhau?

YOLOv8 hỗ trợ nhiều tác vụ thị giác máy tính, bao gồm phát hiện đối tượng, phân đoạn thể hiện, phát hiện tư thế/điểm chính, phát hiện đối tượng theo hướng và phân loại. Mỗi biến thể mô hình được tối ưu hóa cho tác vụ cụ thể của nó và tương thích với các chế độ hoạt động khác nhau như Suy luận, Xác thực, Huấn luyệnXuất. Tham khảo phần Các tác vụ và Chế độ được Hỗ trợ để biết thêm thông tin.

Các số liệu hiệu suất cho các mô hình YOLOv8 là gì?

Các mô hình YOLOv8 đạt được hiệu suất hàng đầu trên nhiều bộ dữ liệu chuẩn khác nhau. Ví dụ: mô hình YOLOv8n đạt mAP (độ chính xác trung bình) là 37,3 trên bộ dữ liệu COCO và tốc độ 0,99 ms trên A100 TensorRT. Thông tin chi tiết về hiệu suất của từng biến thể mô hình trên các tác vụ và bộ dữ liệu khác nhau có thể được tìm thấy trong phần Số liệu Hiệu suất.

Làm cách nào để huấn luyện một mô hình YOLOv8?

Bạn có thể huấn luyện mô hình YOLOv8 bằng Python hoặc CLI. Dưới đây là các ví dụ về cách huấn luyện mô hình bằng mô hình YOLOv8 đã được huấn luyện trước trên COCO trên bộ dữ liệu COCO8 trong 100 epochs:

Ví dụ

from ultralytics import YOLO

# Load a COCO-pretrained YOLOv8n model
model = YOLO("yolov8n.pt")

# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
yolo train model=yolov8n.pt data=coco8.yaml epochs=100 imgsz=640

Để biết thêm chi tiết, hãy truy cập tài liệu Huấn luyện.

Tôi có thể đánh giá hiệu năng của các mô hình YOLOv8 không?

Có, các mô hình YOLOv8 có thể được đánh giá hiệu năng về tốc độ và độ chính xác trên các định dạng xuất khác nhau. Bạn có thể sử dụng PyTorch, ONNX, TensorRT và các công cụ khác để đánh giá. Dưới đây là các lệnh ví dụ để đánh giá bằng Python và CLI:

Ví dụ

from ultralytics.utils.benchmarks import benchmark

# Benchmark on GPU
benchmark(model="yolov8n.pt", data="coco8.yaml", imgsz=640, half=False, device=0)
yolo benchmark model=yolov8n.pt data='coco8.yaml' imgsz=640 half=False device=0

Để biết thêm thông tin, hãy xem phần Số liệu Hiệu suất.



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

Bình luận