Link to this sectionCaixas delimitadoras orientadas para Detecção de Objetos#
A detecção de objetos orientados vai um passo além da detecção de objetos padrão ao introduzir um ângulo extra para localizar objetos com mais precisão em uma imagem.
A saída de um detector de objetos orientados é um conjunto de caixas delimitadoras rotacionadas que envolvem precisamente os objetos na imagem, juntamente com rótulos de classe e pontuações de confiança para cada caixa. As caixas delimitadoras orientadas são particularmente úteis quando os objetos aparecem em vários ângulos, como em imagens aéreas, onde as caixas delimitadoras tradicionais alinhadas aos eixos podem incluir fundo desnecessário.
Os modelos YOLO26 OBB usam o sufixo -obb, por exemplo, yolo26n-obb.pt, e são pré-treinados no DOTAv1.
Watch: How to Detect & Track Objects with Ultralytics YOLO26 Oriented Bounding Boxes (OBB) | Ship Tracking 🚢
Link to this sectionAmostras Visuais#
| Detecção de Navios usando OBB | Detecção de Veículos usando OBB |
|---|---|
![]() | ![]() |
Link to this sectionModelos#
Os modelos OBB pré-treinados YOLO26 são mostrados aqui, os quais são pré-treinados no conjunto de dados DOTAv1.
Os Modelos baixam automaticamente a partir do release mais recente da Ultralytics no primeiro uso.
| Modelo | tamanho (pixels) | mAPtest 50-95(e2e) | mAPtest 50(e2e) | Velocidade CPU ONNX (ms) | Velocidade T4 TensorRT10 (ms) | parâmetros (M) | FLOPs (B) |
|---|---|---|---|---|---|---|---|
| YOLO26n-obb | 1024 | 52.4 | 78.9 | 97.7 ± 0.9 | 2.8 ± 0.0 | 2.5 | 14.0 |
| YOLO26s-obb | 1024 | 54.8 | 80.9 | 218.0 ± 1.4 | 4.9 ± 0.1 | 9.8 | 55.1 |
| YOLO26m-obb | 1024 | 55.3 | 81.0 | 579.2 ± 3.8 | 10.2 ± 0.3 | 21.2 | 183.3 |
| YOLO26l-obb | 1024 | 56.2 | 81.6 | 735.6 ± 3.1 | 13.0 ± 0.2 | 25.6 | 230.0 |
| YOLO26x-obb | 1024 | 56.7 | 81.7 | 1485.7 ± 11.5 | 30.5 ± 0.9 | 57.6 | 516.5 |
- Os valores de mAPtest são para modelo único multiescala no conjunto de dados DOTAv1.
Reproduza comyolo val obb data=DOTAv1.yaml device=0 split=teste envie os resultados mesclados para a avaliação do DOTA. - Velocidade calculada com média sobre imagens de validação do DOTAv1 usando uma instância Amazon EC2 P4d.
Reproduza comyolo val obb data=DOTAv1.yaml batch=1 device=0|cpu - Os valores de Params e FLOPs são para o modelo fundido após
model.fuse(), que mescla as camadas Conv e BatchNorm e, para modelos end2end, remove a head de detecção auxiliar one-to-many. Checkpoints pré-treinados mantêm a arquitetura de treinamento completa e podem exibir contagens maiores.
Link to this sectionTreinar#
Treine o YOLO26n-obb no conjunto de dados DOTA8 por 100 épocas com tamanho de imagem 640. Para uma lista completa de argumentos disponíveis, veja a página de Configuração.
Uma OBB e sua rotação de 180° são idênticas, portanto a rotação é definida módulo 180° e a caixa não possui direção. Internamente, o ângulo é armazenado em radianos e normalizado para [-π/4, 3π/4) ([-45°, 135°)), a largura da caixa w é considerada como o lado mais longo, e o ângulo é definido como o ângulo horário a partir do eixo x positivo em direção a w. A forma [0°, 90°) é a convenção regularizada estilo DOTA e não é aplicada durante o treinamento ou inferência.
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n-obb.yaml") # build a new model from YAML
model = YOLO("yolo26n-obb.pt") # load a pretrained model (recommended for training)
model = YOLO("yolo26n-obb.yaml").load("yolo26n-obb.pt") # build from YAML and transfer weights
# Train the model
results = model.train(data="dota8.yaml", epochs=100, imgsz=640)Watch: How to Train Ultralytics YOLO-OBB (Oriented Bounding Boxes) Models on DOTA Dataset using Ultralytics Platform
Link to this sectionFormato do conjunto de dados#
O formato do conjunto de dados OBB pode ser encontrado em detalhes no Guia de Conjuntos de Dados. O formato YOLO OBB designa caixas delimitadoras pelos seus quatro pontos de canto com coordenadas normalizadas entre 0 e 1, seguindo esta estrutura. A Plataforma Ultralytics suporta anotação OBB com uma ferramenta dedicada de desenho de caixas delimitadoras orientadas:
class_index x1 y1 x2 y2 x3 y3 x4 y4
Internamente, o YOLO processa perdas e saídas no formato xywhr, que representa o ponto central (xy), largura, altura e rotação da caixa delimitadora.
Link to this sectionValidar#
Valide a precisão do modelo YOLO26n-obb treinado no conjunto de dados DOTA8. Nenhum argumento é necessário, pois o model retém seus dados de treinamento (data) e argumentos como atributos do modelo.
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n-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 containing mAP50-95(B) for each category
metrics.box.image_metrics # per-image metrics dictionary with precision, recall, F1, TP, FP, and FNLink to this sectionPrever#
Use um modelo YOLO26n-obb treinado para executar previsões em imagens.
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n-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
# Access the results
for result in results:
xywhr = result.obb.xywhr # center-x, center-y, width, height, angle (radians)
xyxyxyxy = result.obb.xyxyxyxy # polygon format with 4-points
names = [result.names[cls.item()] for cls in result.obb.cls.int()] # class name of each box
confs = result.obb.conf # confidence score of each boxWatch: How to Detect and Track Storage Tanks using Ultralytics YOLO-OBB | Oriented Bounding Boxes | DOTA
Veja os detalhes completos do modo predict na página Predict.
Link to this sectionSaída de Resultados#
A detecção de caixa delimitadora orientada retorna um objeto Results por imagem. O campo de previsão primário é result.obb, que contém caixas rotacionadas, IDs de classe e pontuações de confiança para cada objeto detectado.
| Atributo | Tipo | Forma | Descrição |
|---|---|---|---|
result.obb | OBB | (N) | Caixas orientadas. |
result.obb.data | torch.float32 | (N,7/8) | Caixas rotacionadas brutas com confiança/classe. |
result.obb.xywhr | torch.float32 | (N,5) | Caixas rotacionadas xywhr. |
result.obb.xyxyxyxy | torch.float32 | (N,4,2) | Quatro pontos de canto. |
result.obb.conf | torch.float32 | (N,) | Pontuações de confiança. |
Para campos de Results específicos de cada tarefa em todas as tarefas, veja a seção Prever Resultados por Tarefa.
Link to this sectionExportar#
Exporte um modelo YOLO26n-obb para um formato diferente como ONNX, CoreML, etc.
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n-obb.pt") # load an official model
model = YOLO("path/to/best.pt") # load a custom-trained model
# Export the model
model.export(format="onnx")Os formatos de exportação disponíveis para o YOLO26-obb estão na tabela abaixo. Você pode exportar para qualquer formato usando o argumento format, por exemplo, format='onnx' ou format='engine'. Você pode prever ou validar diretamente em modelos exportados, por exemplo, yolo predict model=yolo26n-obb.onnx. Exemplos de uso são mostrados para seu modelo após a conclusão da exportação.
| Formato | Argumento format | Modelo | Metadados | Argumentos |
|---|---|---|---|---|
| PyTorch | - | yolo26n-obb.pt | ✅ | - |
| TorchScript | torchscript | yolo26n-obb.torchscript | ✅ | imgsz, half, dynamic, optimize, nms, batch, device |
| ONNX | onnx | yolo26n-obb.onnx | ✅ | imgsz, half, int8, dynamic, simplify, opset, nms, batch, data, fraction, device |
| OpenVINO | openvino | yolo26n-obb_openvino_model/ | ✅ | imgsz, half, dynamic, int8, nms, batch, data, fraction, device |
| TensorRT | engine | yolo26n-obb.engine | ✅ | imgsz, half, dynamic, simplify, workspace, int8, nms, batch, data, fraction, device |
| CoreML | coreml | yolo26n-obb.mlpackage | ✅ | imgsz, dynamic, half, int8, nms, batch, device |
| TF SavedModel | saved_model | yolo26n-obb_saved_model/ | ✅ | imgsz, keras, int8, nms, batch, data, fraction, device |
| TF GraphDef | pb | yolo26n-obb.pb | ❌ | imgsz, batch, device |
| TF Lite | tflite | yolo26n-obb.tflite | ✅ | imgsz, half, int8, nms, batch, data, fraction, device |
| TF Edge TPU | edgetpu | yolo26n-obb_edgetpu.tflite | ✅ | imgsz, int8, data, fraction, device |
| TF.js | tfjs | yolo26n-obb_web_model/ | ✅ | imgsz, half, int8, nms, batch, data, fraction, device |
| PaddlePaddle | paddle | yolo26n-obb_paddle_model/ | ✅ | imgsz, batch, device |
| MNN | mnn | yolo26n-obb.mnn | ✅ | imgsz, batch, int8, half, device |
| NCNN | ncnn | yolo26n-obb_ncnn_model/ | ✅ | imgsz, half, batch, device |
| IMX500 | imx | yolo26n-obb_imx_model/ | ✅ | imgsz, int8, data, fraction, nms, device |
| RKNN | rknn | yolo26n-obb_rknn_model/ | ✅ | imgsz, batch, name, int8, data, fraction, device |
| ExecuTorch | executorch | yolo26n-obb_executorch_model/ | ✅ | imgsz, batch, device |
| Axelera | axelera | yolo26n-obb_axelera_model/ | ✅ | imgsz, batch, int8, data, fraction, device |
| DEEPX | deepx | yolo26n-obb_deepx_model/ | ✅ | imgsz, int8, data, optimize, device |
| Qualcomm QNN | qnn | yolo26n-obb_qnn_model/ | ✅ | imgsz, batch, name, int8, data, fraction, device |
Vê os detalhes completos de export na página de Exportação.
Link to this sectionAplicações no Mundo Real#
A detecção OBB com YOLO26 tem inúmeras aplicações práticas em vários setores:
- Gestão Marítima e Portuária: Detectando navios e embarcações em vários ângulos para gestão de frota e monitoramento.
- Planejamento Urbano: Analisando edifícios e infraestrutura a partir de imagens aéreas.
- Agricultura: Monitorando plantações e equipamentos agrícolas a partir de imagens de drones.
- Setor de Energia: Inspecionando painéis solares e turbinas eólicas em diferentes orientações.
- Transporte: Rastreando veículos em estradas e estacionamentos a partir de várias perspectivas.
Estas aplicações beneficiam da capacidade do OBB de se ajustar precisamente a objetos em qualquer ângulo, proporcionando uma deteção mais precisa do que as caixas delimitadoras tradicionais.
Link to this sectionFAQ#
Link to this sectionO que são Oriented Bounding Boxes (OBB) e como diferem das caixas delimitadoras normais?#
As Oriented Bounding Boxes (OBB) incluem um ângulo adicional para melhorar a precisão da localização de objetos em imagens. Ao contrário das caixas delimitadoras normais, que são retângulos alinhados pelos 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 de objetos, como imagens aéreas ou de satélite (Guia de Conjuntos de Dados).
Link to this sectionComo posso treinar um modelo YOLO26n-obb usando um conjunto de dados personalizado?#
Para treinar um modelo YOLO26n-obb com um conjunto de dados personalizado, segue o exemplo abaixo usando Python ou CLI:
from ultralytics import YOLO
# Load a pretrained model
model = YOLO("yolo26n-obb.pt")
# Train the model
results = model.train(data="path/to/custom_dataset.yaml", epochs=100, imgsz=640)Para mais argumentos de treino, consulta a secção Configuração.
Link to this sectionQue conjuntos de dados posso usar para treinar modelos YOLO26-OBB?#
Os modelos YOLO26-OBB são pré-treinados em conjuntos de dados como o DOTAv1, mas podes usar qualquer conjunto de dados formatado para OBB. Informações detalhadas sobre formatos de conjuntos de dados OBB podem ser encontradas no Guia de Conjuntos de Dados.
Link to this sectionComo posso exportar um modelo YOLO26-OBB para o formato ONNX?#
Exportar um modelo YOLO26-OBB para o formato ONNX é simples, usando Python ou CLI:
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n-obb.pt")
# Export the model
model.export(format="onnx")Para mais formatos de exportação e detalhes, consulta a página Exportar.
Link to this sectionComo valido a precisão de um modelo YOLO26n-obb?#
Para validar um modelo YOLO26n-obb, podes usar comandos Python ou CLI conforme mostrado abaixo:
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n-obb.pt")
# Validate the model
metrics = model.val(data="dota8.yaml")Vê todos os detalhes da validação na secção Val.

