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

Phát hiện đối tượng hộp giới hạn định hướng

Phát hiện đối tượng theo định hướng tiến một bước xa hơn so với phát hiện đối tượng và giới thiệu thêm một góc để xác định vị trí các đối tượng chính xác hơn trong hình ảnh.

Đầu ra của máy dò đối tượng định hướng là một tập hợp các hộp giới hạn xoay bao quanh chính xác 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ó.

Mẹo

YOLOv8 Các mô hình OBB sử dụng -obb hậu tố, tức là yolov8n-obb.pt và được đào tạo trước về DOTAv1.


Xem: Phát hiện đối tượng bằng cách sử dụng Ultralytics YOLOv8 Hộp giới hạn định hướng (YOLOv8-OBB)

Xem: Phát hiện đối tượng với YOLOv8-OBB sử dụng Ultralytics Trung tâm

Mẫu hình ảnh

Phát hiện tàu bằng OBB Phát hiện xe bằng OBB
Phát hiện tàu bằng OBB Phát hiện xe bằng OBB

Mô hình

YOLOv8 Các mô hình OBB được đào tạo trước được hiển thị ở đây, được đào tạo trước trên tập dữ liệu DOTAv1 .

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 đồkiểm tra
50
Tốc độ
CPU ONNX
(Cô)
Tốc độ
A100 TensorRT
(Cô)
Params
(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
  • Kiểm tra mAP Các giá trị dành cho đa mô hình đơn trên Thử nghiệm DOTAv1 tập dữ liệu.
    Sinh sản bằng yolo val obb data=DOTAv1.yaml device=0 split=test và gửi kết quả hợp nhất đến Đánh giá DOTA.
  • Tốc độ trung bình trên hình ảnh val DOTAv1 bằng cách sử dụng một Amazon EC2 P4d ví dụ.
    Sinh sản bằng yolo val obb data=DOTAv1.yaml batch=1 device=0|cpu

Xe lửa

Xe lửa YOLOv8n-obb trên dota8.yaml Tập dữ liệu 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 Cấu hình trang.

Ví dụ

from ultralytics import YOLO

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

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

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

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

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

Định dạng tập dữ liệu OBB có thể được tìm thấy chi tiết trong Hướng dẫn tập dữ liệu.

Val

Xác thực đào tạo YOLOv8nĐộ chính xác của mô hình -obb trên tập dữ liệu DOTA8. 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-obb.pt")  # load an official model
model = YOLO("path/to/best.pt")  # load a custom model

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

Dự đoán

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

Ví dụ

from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n-obb.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 obb predict model=yolov8n-obb.pt source='https://ultralytics.com/images/bus.jpg'  # predict with official model
yolo obb 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-obb 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-obb.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-obb.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 OBB nằm 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-obb.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-obb.pt -
TorchScript torchscript yolov8n-obb.torchscript imgsz, optimize, batch
ONNX onnx yolov8n-obb.onnx imgsz, half, dynamic, simplify, opset, batch
OpenVINO openvino yolov8n-obb_openvino_model/ imgsz, half, int8, batch
TensorRT engine yolov8n-obb.engine imgsz, half, dynamic, simplify, workspace, int8, batch
CoreML coreml yolov8n-obb.mlpackage imgsz, half, int8, nms, batch
TF SavedModel saved_model yolov8n-obb_saved_model/ imgsz, keras, int8, batch
TF GraphDef pb yolov8n-obb.pb imgsz, batch
TF Lite tflite yolov8n-obb.tflite imgsz, half, int8, batch
TF Cạnh TPU edgetpu yolov8n-obb_edgetpu.tflite imgsz
TF.Js tfjs yolov8n-obb_web_model/ imgsz, half, int8, batch
PaddlePaddle paddle yolov8n-obb_paddle_model/ imgsz, batch
NCNN ncnn yolov8n-obb_ncnn_model/ imgsz, half, batch

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



Created 2024-01-05, Updated 2024-06-10
Authors: glenn-jocher (20), Burhan-Q (4), Laughing-q (3), AyushExel (1)

Ý kiến