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) |
Observa: Deteção de objectos com YOLOv8-OBB utilizando Ultralytics HUB |
Amostras visuais
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 os valores são para o modelo único de multiescala em Teste DOTAv1 conjunto de dados.
Reproduzir poryolo 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 poryolo 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
Prevê
Utiliza um modelo YOLOv8n-obb treinado para executar previsões em imagens.
Exemplo
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
Os formatos de exportação YOLOv8-obb disponíveis encontram-se na tabela abaixo. Podes exportar para qualquer formato utilizando o format
argumento, ou seja format='onnx'
ou format='engine'
. 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 , batch |
ONNX | onnx |
yolov8n-obb.onnx |
✅ | imgsz , half , dynamic , simplify , opset , batch |
OpenVINO | openvino |
yolov8n-obb_openvino_model/ |
✅ | imgsz , half , int8 , batch |
TensorRT | engine |
yolov8n-obb.engine |
✅ | imgsz , half , dynamic , simplify , workspace , int8 , batch |
CoreML | coreml |
yolov8n-obb.mlpackage |
✅ | imgsz , half , int8 , nms , batch |
TF SavedModel | saved_model |
yolov8n-obb_saved_model/ |
✅ | imgsz , keras , int8 , batch |
TF GraphDef | pb |
yolov8n-obb.pb |
❌ | imgsz , batch |
TF Leve | tflite |
yolov8n-obb.tflite |
✅ | imgsz , half , int8 , batch |
TF Borda TPU | edgetpu |
yolov8n-obb_edgetpu.tflite |
✅ | imgsz , batch |
TF.js | tfjs |
yolov8n-obb_web_model/ |
✅ | imgsz , half , int8 , batch |
PaddlePaddle | paddle |
yolov8n-obb_paddle_model/ |
✅ | imgsz , batch |
NCNN | ncnn |
yolov8n-obb_ncnn_model/ |
✅ | imgsz , half , batch |
Ver completo export
detalhes no Exportação página.
Criado em 2024-01-05, Atualizado em 2024-05-08
Autores: Burhan-Q (3), glenn-jocher (16), Laughing-q (3), AyushExel (1)