Saltar para o conteúdo

Caixas delimitadoras orientadas Deteção de objectos

A deteção orientada de objectos vai um passo mais além do que a deteção de objectos e introduz um ângulo extra para localizar objectos com maior precisão numa imagem.

O resultado de um detetor de objectos orientado é um conjunto de caixas delimitadoras rodadas que envolvem exatamente os objectos na imagem, juntamente com etiquetas de classe e pontuações de confiança para cada caixa. A deteção de objectos é uma boa escolha quando é necessário identificar objectos de interesse numa cena, mas não é necessário saber exatamente onde se encontra o objeto ou a sua forma exacta.

Dica

YOLO11 Os modelos OBB utilizam o -obb sufixo, ou seja yolo11n-obb.pt e são pré-treinados em DOTAv1.



Ver: Deteção de objectos utilizando Ultralytics YOLO Oriented Bounding Boxes (YOLO-OBB)

Amostras visuais

Deteção de navios utilizando OBB Deteção de veículos utilizando OBB
Deteção de navios utilizando OBB Deteção de veículos utilizando OBB

Modelos

YOLO11 são aqui apresentados modelos OBB pré-treinados, que são pré-treinados no conjunto de dados DOTAv1.

Os modelos são transferidos automaticamente a partir daversão mais recentede Ultralytics na primeira utilização.

Modelo tamanho
(pixéis)
mAPtest
50
Velocidade
CPU ONNX
(ms)
Velocidade
T4TensorRT10
(ms)
params
(M)
FLOPs
(B)
YOLO11n-obb 1024 78.4 117.6 ± 0.8 4.4 ± 0.0 2.7 17.2
YOLO11s-obb 1024 79.5 219.4 ± 4.0 5.1 ± 0.0 9.7 57.5
YOLO11m-obb 1024 80.9 562.8 ± 2.9 10.1 ± 0.4 20.9 183.5
YOLO11l-obb 1024 81.0 712.5 ± 5.0 13.5 ± 0.6 26.2 232.0
YOLO11x-obb 1024 81.3 1408.6 ± 7.7 28.6 ± 1.0 58.8 520.2
  • mAPtest os valores são para o modelo único multiescala em DOTAv1 conjunto de dados.
    Reproduzir por yolo val obb data=DOTAv1.yaml device=0 split=test e enviar os resultados combinados para Avaliação DOTA.
  • Velocidade média das imagens DOTAv1 val utilizando um Amazon EC2 P4d instância.
    Reproduzir por yolo val obb data=DOTAv1.yaml batch=1 device=0|cpu

Comboio

Treinar YOLO11n-obb no conjunto de dados DOTA8 para 100 épocas com o tamanho de imagem 640. Para obter uma lista completa dos argumentos disponíveis, consulte a página Configuração.

Exemplo

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



Ver: Como treinar Ultralytics YOLO -OBB (Oriented Bounding Boxes) Modelos no conjunto de dados DOTA usando Ultralytics HUB

Formato do conjunto de dados

O formato do conjunto de dados OBB pode ser consultado em pormenor no Guia do conjunto de dados.

Val

Validar o modelo YOLO11n-obb treinado exatidão no conjunto de dados DOTA8. Não são necessários argumentos, uma vez que o model mantém a sua formação data e argumentos como atributos do modelo.

Exemplo

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

Prever

Utilize um modelo YOLO11n-obb treinado para executar previsões em imagens.

Exemplo

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



Ver: Como detetar e localizar tanques de armazenamento utilizando Ultralytics YOLO -OBB | Oriented Bounding Boxes | DOTA

Ver completo predict detalhes do modo no Prever página.

Exportação

Exportar um modelo YOLO11n-obb para um formato diferente, como ONNX, CoreML, etc.

Exemplo

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

Os formatos de exportação YOLO11-obb disponíveis encontram-se na tabela abaixo. É possível exportar para qualquer formato utilizando o format argumento, ou seja format='onnx' ou format='engine'. É possível prever ou validar diretamente nos modelos exportados, ou seja yolo predict model=yolo11n-obb.onnx. São apresentados exemplos de utilização para o seu modelo após a conclusão da exportação.

Formato format Argumento Modelo Metadados Argumentos
PyTorch - yolo11n-obb.pt -
TorchScript torchscript yolo11n-obb.torchscript imgsz, optimize, batch
ONNX onnx yolo11n-obb.onnx imgsz, half, dynamic, simplify, opset, batch
OpenVINO openvino yolo11n-obb_openvino_model/ imgsz, half, int8, batch
TensorRT engine yolo11n-obb.engine imgsz, half, dynamic, simplify, workspace, int8, batch
CoreML coreml yolo11n-obb.mlpackage imgsz, half, int8, nms, batch
TF SavedModel saved_model yolo11n-obb_saved_model/ imgsz, keras, int8, batch
TF GraphDef pb yolo11n-obb.pb imgsz, batch
TF Leve tflite yolo11n-obb.tflite imgsz, half, int8, batch
TF Borda TPU edgetpu yolo11n-obb_edgetpu.tflite imgsz
TF.js tfjs yolo11n-obb_web_model/ imgsz, half, int8, batch
PaddlePaddle paddle yolo11n-obb_paddle_model/ imgsz, batch
MNN mnn yolo11n-obb.mnn imgsz, batch, int8, half
NCNN ncnn yolo11n-obb_ncnn_model/ imgsz, half, batch
IMX500 imx yolo11n-obb_imx_model/ imgsz, int8

Ver completo export pormenores no Exportação página.

FAQ

O que são caixas delimitadoras orientadas (OBB) e quais são as suas diferenças em relação às caixas delimitadoras normais?

As caixas delimitadoras orientadas (OBB) incluem um ângulo adicional para melhorar a precisão da localização de objectos em imagens. Ao contrário das caixas delimitadoras normais, que são rectângulos alinhados com os eixos, as OBB podem rodar para se adaptarem melhor à orientação do objeto. Isto é particularmente útil para aplicações que requerem uma colocação precisa do objeto, como imagens aéreas ou de satélite(Dataset Guide).

Como é que treino um modelo YOLO11n-obb utilizando um conjunto de dados personalizado?

Para treinar um modelo YOLO11n-obb com um conjunto de dados personalizado, siga o exemplo abaixo utilizando Python ou CLI:

Exemplo

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

Para mais argumentos de formação, consulte a secção Configuração.

Que conjuntos de dados posso utilizar para treinar modelos YOLO11-OBB?

YOLO11Os modelos OBB são pré-treinados em conjuntos de dados como o DOTAv1, mas pode utilizar qualquer conjunto de dados formatado para OBB. Informações detalhadas sobre os formatos de conjuntos de dados OBB podem ser encontradas no Guia de conjuntos de dados.

Como é que posso exportar um modelo YOLO11-OBB para o formato ONNX ?

A exportação de um modelo YOLO11-OBB para o formato ONNX é simples, utilizando Python ou CLI:

Exemplo

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

Para obter mais detalhes e formatos de exportação, consulte a página Exportar.

Como posso validar a exatidão de um modelo YOLO11n-obb?

Para validar um modelo YOLO11n-obb, pode utilizar os comandos Python ou CLI , como indicado abaixo:

Exemplo

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

Ver detalhes completos de validação na secção Val.

📅C riado há 11 meses ✏️ Atualizado há 1 mês

Comentários