Saltar para o conteúdo

Ultralytics YOLOv8

Visão geral

YOLOv8 é a mais recente iteração da série YOLO de detectores de objectos em tempo real, oferecendo um desempenho de ponta em termos de precisão e velocidade. Com base nos avanços das versões anteriores do YOLO , o YOLOv8 introduz novas funcionalidades e optimizações que o tornam a escolha ideal para várias tarefas de deteção de objectos numa vasta gama de aplicações.

Ultralytics YOLOv8



Ver: Ultralytics YOLOv8 Visão geral do modelo

Caraterísticas principais

  • Arquitecturas avançadas de espinha dorsal e pescoço: YOLOv8 utiliza arquitecturas de espinha dorsal e pescoço de última geração, o que resulta num melhor desempenho de extração de caraterísticas e deteção de objectos.
  • Cabeça dividida Ultralytics sem âncoras: YOLOv8 adopta uma cabeça dividida Ultralytics sem âncoras, o que contribui para uma melhor precisão e um processo de deteção mais eficiente em comparação com as abordagens baseadas em âncoras.
  • Compensação optimizada entre precisão e velocidade: Com o objetivo de manter um equilíbrio ótimo entre precisão e velocidade, o YOLOv8 é adequado para tarefas de deteção de objectos em tempo real em diversas áreas de aplicação.
  • Variedade de modelos pré-treinados: YOLOv8 oferece uma gama de modelos pré-treinados para atender a várias tarefas e requisitos de desempenho, tornando mais fácil encontrar o modelo certo para o seu caso de utilização específico.

Tarefas e modos suportados

A série YOLOv8 oferece uma gama diversificada de modelos, cada um especializado em tarefas específicas de visão computacional. Estes modelos foram concebidos para responder a vários requisitos, desde a deteção de objectos a tarefas mais complexas como a segmentação de instâncias, a deteção de pose/pontos-chave, a deteção de objectos orientados e a classificação.

Cada variante da série YOLOv8 é optimizada para a sua respectiva tarefa, garantindo um elevado desempenho e precisão. Além disso, estes modelos são compatíveis com vários modos operacionais, incluindo Inferência, Validação, Treino e Exportação, facilitando a sua utilização em diferentes fases de implementação e desenvolvimento.

Modelo Nomes de ficheiros Tarefa Inferência Validação Formação Exportação
YOLOv8 yolov8n.pt yolov8s.pt yolov8m.pt yolov8l.pt yolov8x.pt Deteção
YOLOv8-seg yolov8n-seg.pt yolov8s-seg.pt yolov8m-seg.pt yolov8l-seg.pt yolov8x-seg.pt Segmentação de instâncias
YOLOv8-pose yolov8n-pose.pt yolov8s-pose.pt yolov8m-pose.pt yolov8l-pose.pt yolov8x-pose.pt yolov8x-pose-p6.pt Pose/Keypoints
YOLOv8-obb yolov8n-obb.pt yolov8s-obb.pt yolov8m-obb.pt yolov8l-obb.pt yolov8x-obb.pt Deteção orientada
YOLOv8-cls yolov8n-cls.pt yolov8s-cls.pt yolov8m-cls.pt yolov8l-cls.pt yolov8x-cls.pt Classificação

Esta tabela fornece uma visão geral das variantes do modelo YOLOv8 , destacando a sua aplicabilidade em tarefas específicas e a sua compatibilidade com vários modos operacionais, como Inferência, Validação, Treino e Exportação. Mostra a versatilidade e a robustez da série YOLOv8 , tornando-a adequada para uma variedade de aplicações em visão computacional.

Métricas de desempenho

Desempenho

Consulte os Documentos de deteção para obter exemplos de utilização com estes modelos treinados em COCO, que incluem 80 classes pré-treinadas.

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

Consulte os Documentos de deteção para obter exemplos de utilização com estes modelos treinados no Open Image V7, que incluem 600 classes pré-treinadas.

Modelo tamanho
(pixéis)
mAPval
50-95
Velocidade
CPU ONNX
(ms)
Velocidade
A100 TensorRT
(ms)
params
(M)
FLOPs
(B)
YOLOv8n 640 18.4 142.4 1.21 3.5 10.5
YOLOv8s 640 27.7 183.1 1.40 11.4 29.7
YOLOv8m 640 33.6 408.5 2.26 26.2 80.6
YOLOv8l 640 34.9 596.9 2.43 44.1 167.4
YOLOv8x 640 36.3 860.6 3.56 68.7 260.6

Consulte os documentos de segmentação para obter exemplos de uso com esses modelos treinados no COCO, que incluem 80 classes pré-treinadas.

Modelo tamanho
(pixéis)
mAPbox
50-95
mAPmask
50-95
Velocidade
CPU ONNX
(ms)
Velocidade
A100 TensorRT
(ms)
params
(M)
FLOPs
(B)
YOLOv8n-seg 640 36.7 30.5 96.1 1.21 3.4 12.6
YOLOv8s-seg 640 44.6 36.8 155.7 1.47 11.8 42.6
YOLOv8m-seg 640 49.9 40.8 317.0 2.18 27.3 110.2
YOLOv8l-seg 640 52.3 42.6 572.4 2.79 46.0 220.5
YOLOv8x-seg 640 53.4 43.4 712.1 4.02 71.8 344.1

Consulte os documentos de classificação para obter exemplos de utilização com estes modelos treinados no ImageNet, que incluem 1000 classes pré-treinadas.

Modelo tamanho
(pixéis)
acc
top1
acc
top5
Velocidade
CPU ONNX
(ms)
Velocidade
A100 TensorRT
(ms)
params
(M)
FLOPs
(B) a 640
YOLOv8n-cls 224 69.0 88.3 12.9 0.31 2.7 4.3
YOLOv8s-cls 224 73.8 91.7 23.4 0.35 6.4 13.5
YOLOv8m-cls 224 76.8 93.5 85.4 0.62 17.0 42.7
YOLOv8l-cls 224 76.8 93.5 163.0 0.87 37.5 99.7
YOLOv8x-cls 224 79.0 94.6 232.0 1.01 57.4 154.8

Ver Pose Estimation Docs para exemplos de utilização com estes modelos treinados em COCO, que incluem 1 classe pré-treinada, 'person'.

Modelo tamanho
(pixéis)
mAPpose
50-95
mAPpose
50
Velocidade
CPU ONNX
(ms)
Velocidade
A100 TensorRT
(ms)
params
(M)
FLOPs
(B)
YOLOv8n-pose 640 50.4 80.1 131.8 1.18 3.3 9.2
YOLOv8s-pose 640 60.0 86.2 233.2 1.42 11.6 30.2
YOLOv8m-pose 640 65.0 88.8 456.3 2.00 26.4 81.0
YOLOv8l-pose 640 67.6 90.0 784.5 2.59 44.4 168.6
YOLOv8x-pose 640 69.2 90.2 1607.1 3.73 69.4 263.2
YOLOv8x-pose-p6 1280 71.6 91.2 4088.7 10.04 99.1 1066.4

Consulte os documentos de deteção orientada para obter exemplos de utilização com estes modelos treinados no DOTAv1, que incluem 15 classes pré-treinadas.

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

Exemplos de utilização

Este exemplo fornece exemplos simples de formação e inferência em YOLOv8 . Para obter documentação completa sobre estes e outros modos, consulte as páginas de documentação Prever, Treinar, Val e Exportar.

Note que o exemplo abaixo é para YOLOv8 Detetar modelos para deteção de objectos. Para outras tarefas suportadas, consulte os documentos Segmentar, Classificar, OBB e Pose.

Exemplo

PyTorch pré-treinado *.pt modelos, bem como a configuração *.yaml podem ser passados para os ficheiros YOLO() para criar uma instância de modelo em python:

from ultralytics import YOLO

# Load a COCO-pretrained YOLOv8n model
model = YOLO("yolov8n.pt")

# Display model information (optional)
model.info()

# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

# Run inference with the YOLOv8n model on the 'bus.jpg' image
results = model("path/to/bus.jpg")

CLI estão disponíveis para executar diretamente os modelos:

# Load a COCO-pretrained YOLOv8n model and train it on the COCO8 example dataset for 100 epochs
yolo train model=yolov8n.pt data=coco8.yaml epochs=100 imgsz=640

# Load a COCO-pretrained YOLOv8n model and run inference on the 'bus.jpg' image
yolo predict model=yolov8n.pt source=path/to/bus.jpg

Citações e agradecimentos

Ultralytics YOLOv8 Publicação

Ultralytics não publicou um documento de investigação formal para YOLOv8 devido à natureza em rápida evolução dos modelos. Concentramo-nos no avanço da tecnologia e em facilitar a sua utilização, em vez de produzir documentação estática. Para obter as informações mais actualizadas sobre a arquitetura, as funcionalidades e a utilização do YOLO , consulte o nosso repositório GitHub e a documentação.

Se utilizar o modelo YOLOv8 ou qualquer outro software deste repositório no seu trabalho, cite-o utilizando o seguinte formato:

@software{yolov8_ultralytics,
  author = {Glenn Jocher and Ayush Chaurasia and Jing Qiu},
  title = {Ultralytics YOLOv8},
  version = {8.0.0},
  year = {2023},
  url = {https://github.com/ultralytics/ultralytics},
  orcid = {0000-0001-5950-6979, 0000-0002-7603-6750, 0000-0003-3783-7069},
  license = {AGPL-3.0}
}

Tenha em atenção que o DOI está pendente e será adicionado à citação assim que estiver disponível. YOLOv8 modelos são fornecidos ao abrigo das licenças AGPL-3.0 e licenças Enterprise.

FAQ

O que é YOLOv8 e em que é que difere das versões anteriores de YOLO ?

YOLOv8 é a mais recente iteração da série Ultralytics YOLO , concebida para melhorar o desempenho da deteção de objectos em tempo real com funcionalidades avançadas. Ao contrário das versões anteriores, o YOLOv8 incorpora uma cabeça Ultralytics dividida sem âncoras, arquitecturas de espinha dorsal e pescoço de última geração e oferece uma compensação optimizada entre precisão e velocidade, tornando-o ideal para diversas aplicações. Para obter mais detalhes, consulte as secções Visão geral e Principais caraterísticas.

Como posso utilizar YOLOv8 para diferentes tarefas de visão computacional?

YOLOv8 suporta uma vasta gama de tarefas de visão computacional, incluindo deteção de objectos, segmentação de instâncias, deteção de pose/pontos-chave, deteção de objectos orientados e classificação. Cada variante de modelo é optimizada para a sua tarefa específica e compatível com vários modos operacionais, como Inferência, Validação, Formação e Exportação. Consulte a secção Tarefas e modos suportados para obter mais informações.

Quais são os indicadores de desempenho para os modelos YOLOv8 ?

YOLOv8 Os modelos da A100 alcançam o melhor desempenho em vários conjuntos de dados de avaliação comparativa. Por exemplo, o modelo YOLOv8n atinge um mAP (precisão média média) de 37,3 no conjunto de dados COCO e uma velocidade de 0,99 ms no A100 TensorRT. As métricas de desempenho detalhadas para cada variante do modelo em diferentes tarefas e conjuntos de dados podem ser encontradas na secção Métricas de desempenho.

Como é que treino um modelo YOLOv8 ?

O treinamento de um modelo YOLOv8 pode ser feito usando Python ou CLI. Abaixo estão exemplos de treinamento de um modelo usando um modelo YOLOv8 pré-treinado pelo COCO no conjunto de dados COCO8 para 100 épocas:

Exemplo

from ultralytics import YOLO

# Load a COCO-pretrained YOLOv8n model
model = YOLO("yolov8n.pt")

# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
yolo train model=yolov8n.pt data=coco8.yaml epochs=100 imgsz=640

Para mais informações, consulte a documentação sobre formação.

Posso efetuar uma avaliação comparativa do desempenho dos modelos YOLOv8 ?

Sim, os modelos YOLOv8 podem ser comparados quanto ao desempenho em termos de velocidade e precisão em vários formatos de exportação. Pode utilizar PyTorch, ONNX, TensorRT, entre outros, para efetuar a avaliação comparativa. Abaixo estão exemplos de comandos para avaliação comparativa usando Python e CLI:

Exemplo

from ultralytics.utils.benchmarks import benchmark

# Benchmark on GPU
benchmark(model="yolov8n.pt", data="coco8.yaml", imgsz=640, half=False, device=0)
yolo benchmark model=yolov8n.pt data='coco8.yaml' imgsz=640 half=False device=0

Para obter informações adicionais, consulte a secção Métrica de desempenho.

📅C riado há 1 ano ✏️ Atualizado há 26 dias

Comentários