Detecção de Objetos
Detecção de objetos é uma tarefa que envolve identificar a localização e a classe de objetos em uma imagem ou fluxo de vídeo.
A saída de um detector de objetos é um conjunto de caixas delimitadoras que cercam os objetos na imagem, junto com rótulos de classe e pontuações de confiança para cada caixa. A detecção de objetos é uma boa escolha quando você precisa identificar objetos de interesse em uma cena, mas não precisa saber exatamente onde o objeto está ou seu formato exato.
Assista: Detecção de Objetos com Modelo Pre-treinado Ultralytics YOLOv8.
Dica
Os modelos YOLOv8 Detect são os modelos padrão do YOLOv8, ou seja, yolov8n.pt
e são pré-treinados no COCO.
Modelos
Os modelos pré-treinados YOLOv8 Detect são mostrados aqui. Os modelos Detect, Segment e Pose são pré-treinados no dataset COCO, enquanto os modelos Classify são pré-treinados no dataset ImageNet.
Os Modelos são baixados automaticamente a partir do último lançamento da Ultralytics release no primeiro uso.
Modelo | Tamanho (pixels) |
mAPval 50-95 |
Velocidade CPU ONNX (ms) |
Velocidade A100 TensorRT (ms) |
Parâmetros (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 |
- Os valores de mAPval são para um único modelo e uma única escala no dataset COCO val2017.
Reproduza usandoyolo val detect data=coco.yaml device=0
- A Velocidade é média tirada sobre as imagens do COCO val num Amazon EC2 P4d
instância.
Reproduza usandoyolo val detect data=coco128.yaml batch=1 device=0|cpu
Treinar
Treine o YOLOv8n no dataset COCO128 por 100 épocas com tamanho de imagem 640. Para uma lista completa de argumentos disponíveis, veja a página Configuração.
Exemplo
from ultralytics import YOLO
# Carregar um modelo
model = YOLO('yolov8n.yaml') # construir um novo modelo pelo YAML
model = YOLO('yolov8n.pt') # carregar um modelo pré-treinado (recomendado para treinamento)
model = YOLO('yolov8n.yaml').load('yolov8n.pt') # construir pelo YAML e transferir pesos
# Treinar o modelo
results = model.train(data='coco128.yaml', epochs=100, imgsz=640)
# Construir um novo modelo pelo YAML e começar o treinamento do zero
yolo detect train data=coco128.yaml model=yolov8n.yaml epochs=100 imgsz=640
# Começar o treinamento a partir de um modelo pré-treinado *.pt
yolo detect train data=coco128.yaml model=yolov8n.pt epochs=100 imgsz=640
# Construir um novo modelo pelo YAML, transferir pesos pré-treinados e começar o treinamento
yolo detect train data=coco128.yaml model=yolov8n.yaml pretrained=yolov8n.pt epochs=100 imgsz=640
Formato do Dataset
O formato do dataset de detecção do YOLO pode ser encontrado em detalhes no Guia de Datasets. Para converter seu dataset existente de outros formatos (como COCO, etc.) para o formato YOLO, por favor utilize a ferramenta JSON2YOLO da Ultralytics.
Validar
Valide a precisão do modelo YOLOv8n treinado no dataset COCO128. Não é necessário passar nenhum argumento, pois o modelo
mantém seus dados
de treino e argumentos como atributos do modelo.
Exemplo
from ultralytics import YOLO
# Carregar um modelo
model = YOLO('yolov8n.pt') # carregar um modelo oficial
model = YOLO('caminho/para/best.pt') # carregar um modelo personalizado
# Validar o modelo
metrics = model.val() # sem a necessidade de argumentos, dataset e configurações lembradas
metrics.box.map # map50-95
metrics.box.map50 # map50
metrics.box.map75 # map75
metrics.box.maps # uma lista contém map50-95 de cada categoria
Predizer
Use um modelo YOLOv8n treinado para fazer predições em imagens.
Exemplo
Veja os detalhes completos do modo predict
na página Predição.
Exportar
Exporte um modelo YOLOv8n para um formato diferente, como ONNX, CoreML, etc.
Exemplo
Os formatos de exportação YOLOv8 disponíveis estão na tabela abaixo. Você pode fazer predições ou validar diretamente em modelos exportados, ou seja, yolo predict model=yolov8n.onnx
. Exemplos de uso são mostrados para o seu modelo após a exportação ser concluída.
Formato | Argumento format |
Modelo | Metadados | Argumentos |
---|---|---|---|---|
PyTorch | - | yolov8n.pt |
✅ | - |
TorchScript | torchscript |
yolov8n.torchscript |
✅ | imgsz , optimize |
ONNX | onnx |
yolov8n.onnx |
✅ | imgsz , half , dynamic , simplify , opset |
OpenVINO | openvino |
yolov8n_openvino_model/ |
✅ | imgsz , half |
TensorRT | engine |
yolov8n.engine |
✅ | imgsz , half , dynamic , simplify , workspace |
CoreML | coreml |
yolov8n.mlpackage |
✅ | imgsz , half , int8 , nms |
TF SavedModel | saved_model |
yolov8n_saved_model/ |
✅ | imgsz , keras |
TF GraphDef | pb |
yolov8n.pb |
❌ | imgsz |
TF Lite | tflite |
yolov8n.tflite |
✅ | imgsz , half , int8 |
TF Edge TPU | edgetpu |
yolov8n_edgetpu.tflite |
✅ | imgsz |
TF.js | tfjs |
yolov8n_web_model/ |
✅ | imgsz |
PaddlePaddle | paddle |
yolov8n_paddle_model/ |
✅ | imgsz |
ncnn | ncnn |
yolov8n_ncnn_model/ |
✅ | imgsz , half |
Veja os detalhes completos de exportar
na página Exportação.