Bỏ để qua phần nội dung

Phát hiện đối tượng

Ví dụ phát hiện đối tượng

Phát hiện đối tượng là một nhiệm vụ liên quan đến việc xác định vị trí và lớp đối tượng trong luồng hình ảnh hoặc video.

Đầu ra của máy dò đối tượng là một tập hợp các hộp giới hạn bao quanh các đối tượng trong hình ảnh, cùng với nhãn lớp và điểm tin cậy cho mỗi hộp. Phát hiện đối tượng là một lựa chọn tốt khi bạn cần xác định các đối tượng quan tâm trong một cảnh, nhưng không cần biết chính xác đối tượng ở đâu hoặc hình dạng chính xác của nó.



Xem: Phát hiện đối tượng với Pre-trained Ultralytics YOLOv8 Mẫu.

Mẹo

YOLOv8 Phát hiện mô hình là mặc định YOLOv8 mô hình, tức là yolov8n.pt và được đào tạo trước về COCO.

Mô hình

YOLOv8 Các mô hình Phát hiện được đào tạo trước được hiển thị ở đây. Các mô hình Phát hiện, Phân đoạn và Tư thế được đào tạo trước trên tập dữ liệu COCO , trong khi các mô hình Phân loại được đào tạo trước trên tập dữ liệu ImageNet .

Mô hình tải xuống tự động từ phiên bản mới nhất Ultralytics phát hành vào lần sử dụng đầu tiên.

Mẫu kích thước
(điểm ảnh)
bản đồVal
50-95
Tốc độ
CPU ONNX
(Cô)
Tốc độ
A100 TensorRT
(Cô)
Params
(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
  • mAPval Các giá trị dành cho thang đo đơn mô hình đơn trên COCO val2017 tập dữ liệu.
    Sinh sản bằng yolo val detect data=coco.yaml device=0
  • Tốc độ tính trung bình trên hình ảnh COCO val bằng cách sử dụng một Amazon EC2 P4d ví dụ.
    Sinh sản bằng yolo val detect data=coco8.yaml batch=1 device=0|cpu

Xe lửa

Xe lửa YOLOv8n trên bộ dữ liệu COCO8 cho 100 kỷ nguyên ở kích thước hình ảnh 640. Để biết danh sách đầy đủ các đối số có sẵn, hãy xem trang Cấu hình .

Ví dụ

from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n.yaml")  # build a new model from YAML
model = YOLO("yolov8n.pt")  # load a pretrained model (recommended for training)
model = YOLO("yolov8n.yaml").load("yolov8n.pt")  # build from YAML and transfer weights

# Train the model
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Build a new model from YAML and start training from scratch
yolo detect train data=coco8.yaml model=yolov8n.yaml epochs=100 imgsz=640

# Start training from a pretrained *.pt model
yolo detect train data=coco8.yaml model=yolov8n.pt epochs=100 imgsz=640

# Build a new model from YAML, transfer pretrained weights to it and start training
yolo detect train data=coco8.yaml model=yolov8n.yaml pretrained=yolov8n.pt epochs=100 imgsz=640

Định dạng tập dữ liệu

YOLO định dạng tập dữ liệu phát hiện có thể được tìm thấy chi tiết trong Hướng dẫn tập dữ liệu. Để chuyển đổi tập dữ liệu hiện có của bạn từ các định dạng khác (như COCO, v.v.) sang YOLO , vui lòng sử dụng công cụ JSON2YOLO bằng cách Ultralytics.

Val

Xác thực đào tạo YOLOv8n mô hình chính xác trên tập dữ liệu COCO8. Không cần phải thông qua tranh luận như model duy trì đào tạo data và các đối số làm thuộc tính mô hình.

Ví dụ

from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n.pt")  # load an official model
model = YOLO("path/to/best.pt")  # load a custom model

# Validate the model
metrics = model.val()  # no arguments needed, dataset and settings remembered
metrics.box.map  # map50-95
metrics.box.map50  # map50
metrics.box.map75  # map75
metrics.box.maps  # a list contains map50-95 of each category
yolo detect val model=yolov8n.pt  # val official model
yolo detect val model=path/to/best.pt  # val custom model

Dự đoán

Sử dụng một đào tạo YOLOv8n Mô hình để chạy dự đoán trên hình ảnh.

Ví dụ

from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n.pt")  # load an official model
model = YOLO("path/to/best.pt")  # load a custom model

# Predict with the model
results = model("https://ultralytics.com/images/bus.jpg")  # predict on an image
yolo detect predict model=yolov8n.pt source='https://ultralytics.com/images/bus.jpg'  # predict with official model
yolo detect predict model=path/to/best.pt source='https://ultralytics.com/images/bus.jpg'  # predict with custom model

Xem đầy đủ predict Chi tiết chế độ trong Dự đoán trang.

Xuất khẩu

Xuất một YOLOv8n mô hình sang một định dạng khác như ONNX, CoreMLv.v.

Ví dụ

from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n.pt")  # load an official model
model = YOLO("path/to/best.pt")  # load a custom trained model

# Export the model
model.export(format="onnx")
yolo export model=yolov8n.pt format=onnx  # export official model
yolo export model=path/to/best.pt format=onnx  # export custom trained model

Có sẵn YOLOv8 Định dạng xuất có trong bảng dưới đây. Bạn có thể xuất sang bất kỳ định dạng nào bằng cách sử dụng format lập luận, tức là format='onnx' hoặc format='engine'. Bạn có thể dự đoán hoặc xác thực trực tiếp trên các mô hình đã xuất, tức là yolo predict model=yolov8n.onnx. Ví dụ sử dụng được hiển thị cho mô hình của bạn sau khi xuất hoàn tất.

Định dạng format Lý lẽ Mẫu Siêu dữ liệu Lập luận
PyTorch - yolov8n.pt -
TorchScript torchscript yolov8n.torchscript imgsz, optimize, batch
ONNX onnx yolov8n.onnx imgsz, half, dynamic, simplify, opset, batch
OpenVINO openvino yolov8n_openvino_model/ imgsz, half, int8, batch
TensorRT engine yolov8n.engine imgsz, half, dynamic, simplify, workspace, int8, batch
CoreML coreml yolov8n.mlpackage imgsz, half, int8, nms, batch
TF SavedModel saved_model yolov8n_saved_model/ imgsz, keras, int8, batch
TF GraphDef pb yolov8n.pb imgsz, batch
TF Lite tflite yolov8n.tflite imgsz, half, int8, batch
TF Cạnh TPU edgetpu yolov8n_edgetpu.tflite imgsz
TF.Js tfjs yolov8n_web_model/ imgsz, half, int8, batch
PaddlePaddle paddle yolov8n_paddle_model/ imgsz, batch
NCNN ncnn yolov8n_ncnn_model/ imgsz, half, batch

Xem đầy đủ export Chi tiết trong Xuất khẩu trang.

FAQ

Làm cách nào để đào tạo một YOLOv8 Mô hình trên tập dữ liệu tùy chỉnh của tôi?

Đào tạo một YOLOv8 Mô hình trên tập dữ liệu tùy chỉnh bao gồm một vài bước:

  1. Chuẩn bị tập dữ liệu: Đảm bảo tập dữ liệu của bạn nằm trong YOLO định dạng. Để được hướng dẫn, hãy tham khảo Hướng dẫn tập dữ liệu của chúng tôi.
  2. Tải mô hình: Sử dụng Ultralytics YOLO để tải mô hình được đào tạo trước hoặc tạo mô hình mới từ tệp YAML.
  3. Đào tạo mô hình: Thực hiện train Phương pháp trong Python hoặc yolo detect train lệnh trong CLI.

Ví dụ

from ultralytics import YOLO

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

# Train the model on your custom dataset
model.train(data="my_custom_dataset.yaml", epochs=100, imgsz=640)
yolo detect train data=my_custom_dataset.yaml model=yolov8n.pt epochs=100 imgsz=640

Để biết các tùy chọn cấu hình chi tiết, hãy truy cập trang Cấu hình .

Những mô hình được đào tạo trước có sẵn trong YOLOv8?

Ultralytics YOLOv8 Cung cấp các mô hình được đào tạo sẵn khác nhau để phát hiện đối tượng, phân đoạn và ước tính tư thế. Các mô hình này được đào tạo sẵn trên tập dữ liệu COCO hoặc ImageNet cho các tác vụ phân loại. Dưới đây là một số mô hình có sẵn:

Để biết danh sách chi tiết và chỉ số hiệu suất, hãy tham khảo phần Mô hình .

Làm thế nào tôi có thể xác nhận tính chính xác của đào tạo của tôi YOLOv8 mẫu?

Để xác nhận tính chính xác của đào tạo của bạn YOLOv8 mô hình, bạn có thể sử dụng .val() Phương pháp trong Python hoặc yolo detect val lệnh trong CLI. Điều này sẽ cung cấp các số liệu như mAP50-95, mAP50, v.v.

Ví dụ

from ultralytics import YOLO

# Load the model
model = YOLO("path/to/best.pt")

# Validate the model
metrics = model.val()
print(metrics.box.map)  # mAP50-95
yolo detect val model=path/to/best.pt

Để biết thêm chi tiết xác thực, hãy truy cập trang Val .

Tôi có thể xuất một định dạng nào YOLOv8 Mô hình thành?

Ultralytics YOLOv8 Cho phép xuất các mô hình sang nhiều định dạng khác nhau như ONNX, TensorRT, CoreMLvà hơn thế nữa để đảm bảo khả năng tương thích trên các nền tảng và thiết bị khác nhau.

Ví dụ

from ultralytics import YOLO

# Load the model
model = YOLO("yolov8n.pt")

# Export the model to ONNX format
model.export(format="onnx")
yolo export model=yolov8n.pt format=onnx

Kiểm tra danh sách đầy đủ các định dạng và hướng dẫn được hỗ trợ trên trang Xuất .

Tại sao tôi nên sử dụng Ultralytics YOLOv8 để phát hiện đối tượng?

Ultralytics YOLOv8 được thiết kế để cung cấp hiệu suất hiện đại để phát hiện đối tượng, phân đoạn và ước tính tư thế. Dưới đây là một số ưu điểm chính:

  1. Mô hình được đào tạo trước: Sử dụng các mô hình được đào tạo trước trên các bộ dữ liệu phổ biến như COCO và ImageNet để phát triển nhanh hơn.
  2. Độ chính xác cao: Đạt điểm mAP ấn tượng, đảm bảo phát hiện đối tượng đáng tin cậy.
  3. Tốc độ: Được tối ưu hóa để suy luận theo thời gian thực, lý tưởng cho các ứng dụng yêu cầu xử lý nhanh chóng.
  4. Tính linh hoạt: Xuất mô hình sang nhiều định dạng khác nhau như ONNX và TensorRT để triển khai trên nhiều nền tảng.

Khám phá Blog của chúng tôi để biết các trường hợp sử dụng và câu chuyện thành công giới thiệu YOLOv8 trong hành động.



Đã tạo 2023-11-12, Cập nhật 2024-07-04
Tác giả: glenn-jocher (21), Burhan-Q (4), Laughing-q (1)

Ý kiến