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 tiên tiến 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, biến nó thành một lựa chọn lý tưởng cho các tác vụ phát hiện đối tượng khác nhau trong nhiều ứng dụng.

YOLOv8 biểu đồ so sánh hiệu suất



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

Thử mặc Ultralytics Nền tảng

Khám phá và chạy YOLOv8 các mô hình trực tiếp trên Nền tảng Ultralytics .

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 để đáp ứng các tác vụ và yêu cầu hiệu suất khác nhau, giúp 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 bạn.

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ìnhTên tập tinTác vụSuy luậnXác thựcHuấn luyệnXuất
YOLOv8yolov8n.pt yolov8s.pt yolov8m.pt yolov8l.pt yolov8x.ptPhát hiện vật thể
YOLOv8-segyolov8n-seg.pt yolov8s-seg.pt yolov8m-seg.pt yolov8l-seg.pt yolov8x-seg.ptPhân đoạn thực thể
YOLOv8-poseyolov8n-pose.pt yolov8s-pose.pt yolov8m-pose.pt yolov8l-pose.pt yolov8x-pose.pt yolov8x-pose-p6.ptTư thế/Điểm chính
YOLOv8-obbyolov8n-obb.pt yolov8s-obb.pt yolov8m-obb.pt yolov8l-obb.pt yolov8x-obb.ptPhát hiện theo hướng (Oriented Detection)
YOLOv8-clsyolov8n-cls.pt yolov8s-cls.pt yolov8m-cls.pt yolov8l-cls.pt yolov8x-cls.ptPhâ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

Xem Tài liệu Detection để 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ìnhKích thước
(pixels)
mAPval
50-95
Tốc độ
CPU ONNX
(ms)
Tốc độ
A100 TensorRT
(ms)
Tham số
(M)
FLOPs
(B)
YOLOv8n64037.380.40.993.28.7
YOLOv8s64044.9128.41.2011.228.6
YOLOv8m64050.2234.71.8325.978.9
YOLOv8l64052.9375.22.3943.7165.2
YOLOv8x64053.9479.13.5368.2257.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ìnhKích thước
(pixels)
mAPval
50-95
Tốc độ
CPU ONNX
(ms)
Tốc độ
A100 TensorRT
(ms)
Tham số
(M)
FLOPs
(B)
YOLOv8n64018.4142.41.213.510.5
YOLOv8s64027.7183.11.4011.429.7
YOLOv8m64033.6408.52.2626.280.6
YOLOv8l64034.9596.92.4344.1167.4
YOLOv8x64036.3860.63.5668.7260.6

Xem Tài liệu Segmentation để biết 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ìnhKí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-seg64036.730.596.11.213.412.6
YOLOv8s-seg64044.636.8155.71.4711.842.6
YOLOv8m-seg64049.940.8317.02.1827.3110.2
YOLOv8l-seg64052.342.6572.42.7946.0220.5
YOLOv8x-seg64053.443.4712.14.0271.8344.1

Xem Tài liệu Classification để biết ví dụ sử dụng với các 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ìnhKí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-cls22469.088.312.90.312.70.5
YOLOv8s-cls22473.891.723.40.356.41.7
YOLOv8m-cls22476.893.585.40.6217.05.3
YOLOv8l-cls22476.893.5163.00.8737.512.3
YOLOv8x-cls22479.094.6232.01.0157.419.0

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

Mô hìnhKí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-pose64050.480.1131.81.183.39.2
YOLOv8s-pose64060.086.2233.21.4211.630.2
YOLOv8m-pose64065.088.8456.32.0026.481.0
YOLOv8l-pose64067.690.0784.52.5944.4168.6
YOLOv8x-pose64069.290.21607.13.7369.4263.2
YOLOv8x-pose-p6128071.691.24088.710.0499.11066.4

Xem Tài liệu Oriented Detection để biết ví dụ sử dụng với các 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ìnhKích thước
(pixels)
mAPtest
50
Tốc độ
CPU ONNX
(ms)
Tốc độ
A100 TensorRT
(ms)
Tham số
(M)
FLOPs
(B)
YOLOv8n-obb102478.0204.773.573.123.3
YOLOv8s-obb102479.5424.884.0711.476.3
YOLOv8m-obb102480.5763.487.6126.4208.6
YOLOv8l-obb102480.71278.4211.8344.5433.8
YOLOv8x-obb102481.361759.1013.2369.5676.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, Xác thựcXuấ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à Lời cảm ơ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 hiệu suất tiên tiến nhất trên nhiều bộ dữ liệu benchmark 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. Các chỉ số hiệu suất chi tiết cho 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 Chỉ số Hiệu suất.

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

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

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.



📅 Được tạo 2 năm trước ✏️ Cập nhật 5 ngày trước
glenn-jocherRizwanMunawarY-T-GLaughing-qpderrengerLexBarouMatthewNoyceUltralyticsAssistantBurhan-QAyushExelfcakyon

Bình luận