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)
Mẫu hình ảnh
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ằngyolo 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ằngyolo 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
Xem: How to Train Ultralytics YOLOv8-OBB (Oriented Bounding Boxes) Models on DOTA Dataset using Ultralytics HUB
Đị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
Validate trained YOLOv8n-obb model accuracy on the DOTA8 dataset. No arguments are needed as the 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
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ụ
Xem: How to Detect and Track Storage Tanks using Ultralytics YOLOv8-OBB | Oriented Bounding Boxes | DOTA
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ụ
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.
FAQ
Hộp giới hạn định hướng (OBB) là gì và chúng khác với hộp giới hạn thông thường như thế nào?
Hộp giới hạn định hướng (OBB) bao gồm một góc bổ sung để nâng cao độ chính xác định vị đối tượng trong hình ảnh. Không giống như các hộp giới hạn thông thường, là các hình chữ nhật được căn chỉnh trục, OBB có thể xoay để phù hợp với hướng của đối tượng tốt hơn. Điều này đặc biệt hữu ích cho các ứng dụng yêu cầu vị trí đối tượng chính xác, chẳng hạn như hình ảnh trên không hoặc vệ tinh (Hướng dẫn tập dữ liệu).
Làm cách nào để đào tạo một YOLOv8n-Mô hình OBB sử dụng tập dữ liệu tùy chỉnh?
Để đào tạo một YOLOv8n-Mô hình OBB với tập dữ liệu tùy chỉnh, hãy làm theo ví dụ bên dưới bằng cách sử dụng Python hoặc CLI:
Ví dụ
Để biết thêm các đối số đào tạo, hãy kiểm tra phần Cấu hình .
Tôi có thể sử dụng bộ dữ liệu nào để đào tạo YOLOv8-Mô hình OBB?
YOLOv8Các mô hình OBB được đào tạo sẵn trên các bộ dữ liệu như DOTAv1 nhưng bạn có thể sử dụng bất kỳ tập dữ liệu nào được định dạng cho OBB. Thông tin chi tiết về các định dạng tập dữ liệu OBB có thể được tìm thấy trong Hướng dẫn tập dữ liệu.
Làm cách nào để xuất một YOLOv8-Mô hình OBB để ONNX định dạng?
Xuất khẩu một YOLOv8-Mô hình OBB để ONNX Định dạng rất đơn giản bằng cách sử dụng một trong hai Python hoặc CLI:
Ví dụ
Để biết thêm định dạng và chi tiết xuất, hãy tham khảo trang Xuất .
Làm cách nào để xác thực tính chính xác của một YOLOv8n-Mô hình OBB?
Để xác thực một YOLOv8n-Mô hình OBB, bạn có thể sử dụng Python hoặc CLI Các lệnh như hình dưới đây:
Ví dụ
Xem chi tiết xác thực đầy đủ trong phần Val .