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 |
---|---|
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 poryolo 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 poryolo 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
Prever
Utilize um modelo YOLO11n-obb treinado para executar previsões em imagens.
Exemplo
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
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
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
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
Ver detalhes completos de validação na secção Val.