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

Các mô hình OBB của YOLO11 sử dụng -obb hậu tố, tức là yolo11n-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 YOLO Hộp giới hạn định hướng ( YOLO (OBB)

Mẫu hình ảnh

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

Mô hình

Các mô hình OBB được đào tạo trước YOLO11 đượ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ẫukích thước
(điểm ảnh)
bản đồkiểm tra
50
Tốc độ
CPU ONNX
(Cô)
Tốc độ
T4 TensorRT10
(bệnh đa xơ cứng)
Params
(M)
Thất bại
(B)
YOLO11n-obb102478.4117,6 ± 0,84,4 ± 0,02.717.2
YOLO11s-obb102479.5219,4 ± 4,05,1 ± 0,09.757.5
YOLO11m-obb102480.9562,8 ± 2,910,1 ± 0,420.9183.5
YOLO11l-obb102481.0712,5 ± 5,013,5 ± 0,626.2232.0
YOLO11x-obb102481.31408,6 ± 7,728,6 ± 1,058.8520.2
  • Kiểm tra mAP Các giá trị dành cho đa mô hình đơn trên 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

Huấn luyện YOLO11n-obb trên tập dữ liệu DOTA8 trong 100 kỷ nguyên ở kích thước hình ảnh 640. Để biết danh sách đầy đủ các đối số khả dụng, hãy xem trang Cấu hình .

Ví dụ

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n-obb.yaml")  # build a new model from YAML
model = YOLO("yolo11n-obb.pt")  # load a pretrained model (recommended for training)
model = YOLO("yolo11n-obb.yaml").load("yolo11n.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=yolo11n-obb.yaml epochs=100 imgsz=640

# Start training from a pretrained *.pt model
yolo obb train data=dota8.yaml model=yolo11n-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=yolo11n-obb.yaml pretrained=yolo11n-obb.pt epochs=100 imgsz=640



Xem: Cách luyện tập Ultralytics YOLO -Các mô hình OBB (Hộp giới hạn định hướng) trên Bộ dữ liệu DOTA sử dụng Ultralytics TRUNG TÂM

Đị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 mô hình YOLO11n-obb đã được đào tạo sự chính xác trên tập dữ liệu DOTA8. Không cần đối số vì 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("yolo11n-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=yolo11n-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ô hình YOLO11n-obb đã được đào tạo để chạy dự đoán trên hình ảnh.

Ví dụ

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n-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/boats.jpg")  # predict on an image
yolo obb predict model=yolo11n-obb.pt source='https://ultralytics.com/images/boats.jpg'  # predict with official model
yolo obb predict model=path/to/best.pt source='https://ultralytics.com/images/boats.jpg'  # predict with custom model



Xem: Cách phát hiện và theo dõi các bồn chứa bằng cách sử dụng Ultralytics YOLO -OBB | Hộp giới hạn định hướng | DOTA

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

Xuất khẩu

Xuất mô hình YOLO11n-obb sang một định dạng khác như ONNX , CoreML , vân vân.

Ví dụ

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n-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=yolo11n-obb.pt format=onnx  # export official model
yolo export model=path/to/best.pt format=onnx  # export custom trained model

Các định dạng xuất YOLO11-obb có sẵn nằm trong bảng bên dưới. 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=yolo11n-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ạngformat Lý lẽMẫuSiêu dữ liệuLập luận
PyTorch-yolo11n-obb.pt-
TorchScripttorchscriptyolo11n-obb.torchscriptimgsz, optimize, batch
ONNXonnxyolo11n-obb.onnximgsz, half, dynamic, simplify, opset, batch
OpenVINOopenvinoyolo11n-obb_openvino_model/imgsz, half, int8, batch
TensorRTengineyolo11n-obb.engineimgsz, half, dynamic, simplify, workspace, int8, batch
CoreMLcoremlyolo11n-obb.mlpackageimgsz, half, int8, nms, batch
TF SavedModelsaved_modelyolo11n-obb_saved_model/imgsz, keras, int8, batch
TF GraphDefpbyolo11n-obb.pbimgsz, batch
TF Litetfliteyolo11n-obb.tfliteimgsz, half, int8, batch
TF Cạnh TPUedgetpuyolo11n-obb_edgetpu.tfliteimgsz
TF.Jstfjsyolo11n-obb_web_model/imgsz, half, int8, batch
PaddlePaddlepaddleyolo11n-obb_paddle_model/imgsz, batch
MNNmnnyolo11n-obb.mnnimgsz, batch, int8, half
NCNNncnnyolo11n-obb_ncnn_model/imgsz, half, batch
IMX500imxyolo11n-obb_imx_model/imgsz, int8

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 thế nào để đào tạo mô hình YOLO11n-obb bằng cách sử dụng tập dữ liệu tùy chỉnh?

Để đào tạo mô hình YOLO11n-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ụ

from ultralytics import YOLO

# Load a pretrained model
model = YOLO("yolo11n-obb.pt")

# Train the model
results = model.train(data="path/to/custom_dataset.yaml", epochs=100, imgsz=640)
yolo obb train data=path/to/custom_dataset.yaml model=yolo11n-obb.pt epochs=100 imgsz=640

Để 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 mô hình YOLO11-OBB?

Các mô hình YOLO11-OBB được đào tạo trước trên các tập 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 thế nào tôi có thể xuất mô hình YOLO11-OBB sang ONNX định dạng?

Xuất mô hình YOLO11-OBB sang ONNX định dạng là đơn giản bằng cách sử dụng một trong hai Python hoặc CLI :

Ví dụ

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n-obb.pt")

# Export the model
model.export(format="onnx")
yolo export model=yolo11n-obb.pt format=onnx

Để biết thêm định dạng và chi tiết xuất, hãy tham khảo trang Xuất .

Làm thế nào để xác thực độ chính xác của mô hình YOLO11n-obb?

Để xác thực mô hình YOLO11n-obb, bạn có thể sử dụng Python hoặc CLI lệnh như hiển thị bên dưới:

Ví dụ

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n-obb.pt")

# Validate the model
metrics = model.val(data="dota8.yaml")
yolo obb val model=yolo11n-obb.pt data=dota8.yaml

Xem chi tiết xác thực đầy đủ trong phần Val .

📅 Được tạo cách đây 10 tháng ✏️ Đã cập nhật cách đây 25 ngày

Ý kiến