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 đến hiệu năng 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 đây, YOLOv8 giới thiệu các tính năng và tối ưu hóa mới, biến nó thành lựa chọn lý tưởng cho nhiều tác vụ nhận diện đối tượng trong đa dạng ứng dụng.

Biểu đồ so sánh hiệu năng YOLOv8



Watch: Ultralytics YOLOv8 Model Overview
Thử nghiệm trên Nền tảng Ultralytics

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

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

  • Kiến trúc Backbone và Neck tiên tiến: YOLOv8 sử dụng các kiến trúc backbone và neck hiện đại nhất, giúp cải thiện trích xuất đặc trưng và hiệu suất nhận diện đối tượng.
  • Đầu ra Ultralytics dạng phân tách không phụ thuộc neo (Anchor-free): YOLOv8 áp dụng đầu ra Ultralytics dạng phân tách không phụ thuộc neo, góp phần tăng độ chính xác và làm cho quy trình nhận diệ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 là 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ụ nhận diện đối tượng thời gian thực trong các lĩnh vực ứng dụng đa dạng.
  • Đa dạng các model tiền huấn luyện: YOLOv8 cung cấp nhiều loại model tiền huấn luyện để phục vụ các tác vụ và yêu cầu hiệu suất khác nhau, giúp dễ dàng tìm ra model 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 đa dạng các model, mỗi loại được chuyên biệt hóa cho các tác vụ cụ thể trong thị giác máy tính. Những model này được thiết kế để đáp ứng các yêu cầu khác nhau, từ nhận diện đối tượng đến các tác vụ phức tạp hơn như phân đoạn cá thể, nhận diện tư thế/điểm đặc trưng, nhận diện đối tượng xoay và phân loại.

Mỗi biến thể của dòng YOLOv8 đều được tối ưu hóa cho tác vụ tương ứng, đảm bảo hiệu suất và độ chính xác cao. Ngoài ra, các model này tương thích với nhiều chế độ vận hành bao gồm Inference, Validation, Training, và Export, tạo điều kiện thuận lợi cho việc triển khai và phát triển ở nhiều giai đoạn khác nhau.

ModelTên tệpTác vụInferenceValidationTrainingExport
YOLOv8yolov8n.pt yolov8s.pt yolov8m.pt yolov8l.pt yolov8x.ptDetection
YOLOv8-segyolov8n-seg.pt yolov8s-seg.pt yolov8m-seg.pt yolov8l-seg.pt yolov8x-seg.ptInstance Segmentation
YOLOv8-poseyolov8n-pose.pt yolov8s-pose.pt yolov8m-pose.pt yolov8l-pose.pt yolov8x-pose.pt yolov8x-pose-p6.ptPose/Keypoints
YOLOv8-obbyolov8n-obb.pt yolov8s-obb.pt yolov8m-obb.pt yolov8l-obb.pt yolov8x-obb.ptOriented Detection
YOLOv8-clsyolov8n-cls.pt yolov8s-cls.pt yolov8m-cls.pt yolov8l-cls.pt yolov8x-cls.ptClassification

Bảng này cung cấp tổng quan về các biến thể model YOLOv8, nêu bật khả năng ứng dụng trong các tác vụ cụ thể và tính tương thích với nhiều chế độ vận hành như Inference, Validation, Training, và Export. Bảng này thể hiện tính linh hoạt và mạnh mẽ của dòng YOLOv8, khiến chúng trở nên phù hợp cho nhiều ứng dụng 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 model này đã được đào tạo trên COCO, bao gồm 80 lớp được đào tạo trước.

Modelkí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

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 (inference) với YOLOv8. Để có tài liệu đầy đủ về các ví dụ này và các chế độ khác, hãy xem các trang tài liệu Predict, Train, ValExport.

Lưu ý rằng ví dụ bên dưới dành cho các model Detect của YOLOv8 để phát hiện đối tượng. Đối với các tác vụ được hỗ trợ bổ sung, hãy xem tài liệu về Segment, Classify, OBBPose.

Ví dụ

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 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")

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

Công bố về Ultralytics YOLOv8

Ultralytics chưa công bố bài báo nghiên cứu chính thức cho YOLOv8 do tính chất phát triển nhanh chóng của các model này. Chúng tôi tập trung vào việc thúc đẩy công nghệ và làm cho nó dễ sử dụng hơn thay vì sản xuất 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 GitHub repositorytài liệu của chúng tôi.

Nếu bạn sử dụng model YOLOv8 hoặc bất kỳ phần mềm nào khác từ repository này trong công việc của mình, vui lòng trích dẫn nó theo định dạng sau:

Trích dẫn
@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 phần trích dẫn ngay khi có sẵn. Các model YOLOv8 được cung cấp theo giấy phép AGPL-3.0Enterprise.

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

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

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

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

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ực thể (instance segmentation), phát hiện tư thế/điểm đặc trưng, phát hiện đối tượng có định hướng (OBB) và phân loại. Mỗi biến thể model đều được tối ưu hóa cho tác vụ cụ thể và tương thích với các chế độ vận hành khác nhau như Inference, Validation, TrainingExport. Tham khảo phần Supported Tasks and Modes để biết thêm thông tin.

Các chỉ số hiệu suất cho model YOLOv8 là gì?

Các model YOLOv8 đạt được hiệu suất hiện đại trên nhiều bộ dữ liệu benchmark khác nhau. Ví dụ, model YOLOv8n đạt mAP (mean Average Precision) 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ể model 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 Performance Metrics.

Làm cách nào để huấn luyện model YOLOv8?

Việc huấn luyện model YOLOv8 có thể được thực hiện bằng Python hoặc CLI. Dưới đây là các ví dụ về việc huấn luyện model sử dụng model YOLOv8 đã được huấn luyện trước trên COCO với 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)

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

Tôi có thể đánh giá benchmark model YOLOv8 về hiệu suất không?

Có, các model YOLOv8 có thể được đánh giá benchmark về hiệu suất dựa trên tốc độ và độ chính xác thông qua các định dạng xuất khác nhau. Bạn có thể sử dụng PyTorch, ONNX, TensorRT và nhiều công cụ khác để thực hiện benchmark. Dưới đây là các ví dụ lệnh để thực hiện benchmark 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)

Để biết thêm thông tin, hãy xem phần Performance Metrics.

Bình luận