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.
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:
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:
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
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
Para obter informações adicionais, consulte a secção Métrica de desempenho.