Salta 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

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



Observa: Deteção de objectos utilizando Ultralytics YOLOv8 Oriented Bounding Boxes (YOLOv8-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

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

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

Modelo tamanho
(pixéis)
mAPtest
50
Velocidade
CPU ONNX
(ms)
Velocidade
A100 TensorRT
(ms)
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
  • mAPtest s√£o valores para modelo √ļnico multi-escala em Teste DOTAv1 conjunto de dados.
    Reproduzir por yolo val obb data=DOTAv1.yaml device=0 split=test e envia os resultados combinados para Avaliação DOTA.
  • Velocidade calcula a 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

Comboio YOLOv8n-obb no dota8.yaml para 100 épocas com o tamanho de imagem 640. Para obter uma lista completa dos argumentos disponíveis, consulta a secção Configuração página.

Exemplo

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

Formato do conjunto de dados

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

Val

Valida a precisão do modelo YOLOv8n-obb treinado no conjunto de dados DOTA8. Não precisas de passar nenhum argumento, pois 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('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
yolo obb val model=yolov8n-obb.pt data=dota8.yaml  # val official model
yolo obb val model=path/to/best.pt data=path/to/data.yaml  # val custom model

Prevê

Utiliza um modelo YOLOv8n-obb treinado para executar previs√Ķes em imagens.

Exemplo

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

# Predict with the model
results = model('https://ultralytics.com/images/bus.jpg')  # predict on an image
yolo obb predict model=yolov8n-obb.pt source='https://ultralytics.com/images/bus.jpg'  # predict with official model
yolo obb predict model=path/to/best.pt source='https://ultralytics.com/images/bus.jpg'  # predict with custom model

Ver completo predict detalhes do modo no Prevê página.

Exportação

Exporta um modelo YOLOv8n-obb para um formato diferente como ONNX, CoreML, etc.

Exemplo

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 trained model

# Export the model
model.export(format='onnx')
yolo export model=yolov8n-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 YOLOv8-obb disponíveis encontram-se na tabela abaixo. Podes prever ou validar diretamente nos modelos exportados, ou seja yolo predict model=yolov8n-obb.onnx. São apresentados exemplos de utilização para o teu modelo após a conclusão da exportação.

Formato format Argumenta Modelo Metadados Argumentos
PyTorch - yolov8n-obb.pt ‚úÖ -
TorchScript torchscript yolov8n-obb.torchscript ‚úÖ imgsz, optimize
ONNX onnx yolov8n-obb.onnx ‚úÖ imgsz, half, dynamic, simplify, opset
OpenVINO openvino yolov8n-obb_openvino_model/ ‚úÖ imgsz, half, int8
TensorRT engine yolov8n-obb.engine ‚úÖ imgsz, half, dynamic, simplify, workspace
CoreML coreml yolov8n-obb.mlpackage ‚úÖ imgsz, half, int8, nms
TF SavedModel saved_model yolov8n-obb_saved_model/ ‚úÖ imgsz, keras
TF GraphDef pb yolov8n-obb.pb ‚ĚĆ imgsz
TF Leve tflite yolov8n-obb.tflite ‚úÖ imgsz, half, int8
TF Borda TPU edgetpu yolov8n-obb_edgetpu.tflite ‚úÖ imgsz
TF.js tfjs yolov8n-obb_web_model/ ‚úÖ imgsz, half, int8
PaddlePaddle paddle yolov8n-obb_paddle_model/ ‚úÖ imgsz
ncnn ncnn yolov8n-obb_ncnn_model/ ‚úÖ imgsz, half

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



Criado em 2024-01-05, Atualizado em 2024-02-03
Autores: glenn-jocher (10), Laughing-q (3), AyushExel (1)

Coment√°rios