Deteção de objectos
A deteção de objectos é uma tarefa que envolve a identificação da localização e da classe dos objectos numa imagem ou fluxo de vídeo.
O resultado de um detetor de objectos é um conjunto de caixas delimitadoras que envolvem 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 necessita de identificar objectos de interesse numa cena, mas não necessita de saber exatamente onde se encontra o objeto ou a sua forma exacta.
Observa: Deteção de objectos com modelo Ultralytics YOLOv8 pré-treinado.
Dica
YOLOv8 Os modelos de deteção são os modelos predefinidos de YOLOv8 , ou seja yolov8n.pt
e são pré-treinados em COCO.
Modelos
YOLOv8 Os modelos Detect pré-treinados são mostrados aqui. Os modelos Detect, Segment e Pose são pré-treinados no conjunto de dados COCO, enquanto os modelos Classify são pré-treinados no conjunto de dados ImageNet.
Os modelos são transferidos automaticamente a partir daversão mais recente de Ultralytics na primeira utilização.
Modelo | tamanho (pixéis) |
mAPval 50-95 |
Velocidade CPU ONNX (ms) |
Velocidade A100 TensorRT (ms) |
params (M) |
FLOPs (B) |
---|---|---|---|---|---|---|
YOLOv8n | 640 | 37.3 | 80.4 | 0.99 | 3.2 | 8.7 |
YOLOv8s | 640 | 44.9 | 128.4 | 1.20 | 11.2 | 28.6 |
YOLOv8m | 640 | 50.2 | 234.7 | 1.83 | 25.9 | 78.9 |
YOLOv8l | 640 | 52.9 | 375.2 | 2.39 | 43.7 | 165.2 |
YOLOv8x | 640 | 53.9 | 479.1 | 3.53 | 68.2 | 257.8 |
- mAPval Os valores são para o modelo único de escala única em COCO val2017 conjunto de dados.
Reproduzir poryolo val detect data=coco.yaml device=0
- Velocidade calcula a média das imagens COCO val utilizando um Amazon EC2 P4d instância.
Reproduzir poryolo val detect data=coco8.yaml batch=1 device=0|cpu
Comboio
Treina YOLOv8n no conjunto de dados COCO8 para 100 épocas com o tamanho de imagem 640. Para obter uma lista completa dos argumentos disponíveis, consulta a página Configuração.
Exemplo
from ultralytics import YOLO
# Load a model
model = YOLO('yolov8n.yaml') # build a new model from YAML
model = YOLO('yolov8n.pt') # load a pretrained model (recommended for training)
model = YOLO('yolov8n.yaml').load('yolov8n.pt') # build from YAML and transfer weights
# Train the model
results = model.train(data='coco8.yaml', epochs=100, imgsz=640)
# Build a new model from YAML and start training from scratch
yolo detect train data=coco8.yaml model=yolov8n.yaml epochs=100 imgsz=640
# Start training from a pretrained *.pt model
yolo detect train data=coco8.yaml model=yolov8n.pt epochs=100 imgsz=640
# Build a new model from YAML, transfer pretrained weights to it and start training
yolo detect train data=coco8.yaml model=yolov8n.yaml pretrained=yolov8n.pt epochs=100 imgsz=640
Formato do conjunto de dados
YOLO O formato do conjunto de dados de deteção pode ser consultado em pormenor no Guia do conjunto de dados. Para converter o teu conjunto de dados existente de outros formatos (como COCO, etc.) para o formato YOLO , utiliza a ferramenta JSON2YOLO em Ultralytics.
Val
Valida a precisão do modelo YOLOv8n treinado no conjunto de dados COCO8. 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.pt') # load an official model
model = YOLO('path/to/best.pt') # load a custom model
# Validate the model
metrics = model.val() # no arguments needed, dataset and settings remembered
metrics.box.map # map50-95
metrics.box.map50 # map50
metrics.box.map75 # map75
metrics.box.maps # a list contains map50-95 of each category
Prevê
Utiliza um modelo YOLOv8n treinado para executar previsões em imagens.
Exemplo
Ver completo predict
detalhes do modo no Prevê página.
Exportação
Exporta um modelo YOLOv8n para um formato diferente, como ONNX, CoreML, etc.
Exemplo
Os formatos de exportação disponíveis em YOLOv8 encontram-se na tabela abaixo. Podes exportar para qualquer formato utilizando o botão format
argumento, ou seja format='onnx'
ou format='engine'
. Podes prever ou validar diretamente nos modelos exportados, ou seja yolo predict model=yolov8n.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.pt |
✅ | - |
TorchScript | torchscript |
yolov8n.torchscript |
✅ | imgsz , optimize , batch |
ONNX | onnx |
yolov8n.onnx |
✅ | imgsz , half , dynamic , simplify , opset , batch |
OpenVINO | openvino |
yolov8n_openvino_model/ |
✅ | imgsz , half , int8 , batch |
TensorRT | engine |
yolov8n.engine |
✅ | imgsz , half , dynamic , simplify , workspace , batch |
CoreML | coreml |
yolov8n.mlpackage |
✅ | imgsz , half , int8 , nms , batch |
TF SavedModel | saved_model |
yolov8n_saved_model/ |
✅ | imgsz , keras , int8 , batch |
TF GraphDef | pb |
yolov8n.pb |
❌ | imgsz , batch |
TF Leve | tflite |
yolov8n.tflite |
✅ | imgsz , half , int8 , batch |
TF Borda TPU | edgetpu |
yolov8n_edgetpu.tflite |
✅ | imgsz , batch |
TF.js | tfjs |
yolov8n_web_model/ |
✅ | imgsz , half , int8 , batch |
PaddlePaddle | paddle |
yolov8n_paddle_model/ |
✅ | imgsz , batch |
NCNN | ncnn |
yolov8n_ncnn_model/ |
✅ | imgsz , half , batch |
Ver completo export
detalhes no Exportação página.
Criado em 2023-11-12, Atualizado em 2024-04-27
Autores: glenn-jocher (14), Burhan-Q (1), Laughing-q (1), AyushExel (1)