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.
Observa: Ultralytics YOLOv8 Visão geral do modelo
Características principais
- Arquitecturas avançadas de espinha dorsal e de pescoço: YOLOv8 utiliza arquitecturas de espinha dorsal e de pescoço de última geração, o que resulta num melhor desempenho da extração de características e da 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 teu 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, deteção de pose/pontos-chave, deteção de objectos orientados e classificação.
Cada variante da série YOLOv8 é optimizada para a sua respectiva tarefa, garantindo um elevado desempenho e precisão. Além disso, esses modelos são compatíveis com vários modos operacionais, incluindo Inferência, Validação, Treinamento e Exportação, facilitando seu uso em diferentes estágios de implantaçã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
Consulta os Documentos de deteção para obteres 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 |
Consulta os Documentos de deteção para obteres exemplos de utilização com estes modelos treinados no Open Image V7, que inclui 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 |
Consulta os documentos de segmentação para obteres exemplos de utilização com estes modelos treinados em 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 |
Consulta os documentos de classificação para obteres 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 |
Consulta os Documentos de Estimativa de Pose para exemplos de utilização com estes modelos treinados em COCO, que incluem 1 classe pré-treinada, 'pessoa'.
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 |
Consulta os documentos de deteção orientada para obteres 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 treinamento e inferência em YOLOv8 . Para obter a documentação completa sobre estes e outros modos, consulta as páginas de documentação Predict, Train, Val e Export.
Nota que o exemplo abaixo é para YOLOv8 Detetar modelos para deteção de objectos. Para outras tarefas suportadas, consulta os documentos Segmentar, Classificar, OBB e Pose.
Exemplo
PyTorch pré-treinado *.pt
modelos, bem como a configuração *.yaml
podem ser passados para o 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
Se utilizares o modelo YOLOv8 ou qualquer outro software deste repositório no teu trabalho, por favor cita-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 models are provided under AGPL-3.0 e licenças Enterprise.
FAQ
O que é YOLOv8 e quais são as suas diferenças em relação às 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 mais detalhes, consulta as secções Visão geral e Principais caracterí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 é otimizada para sua tarefa específica e compatível com vários modos operacionais, como Inferência, Validação, Treinamento e Exportação. Consulta a secção Tarefas e modos suportados para obteres mais informações.
Quais são os indicadores de desempenho dos modelos YOLOv8 ?
YOLOv8 Os modelos da atingem o desempenho mais avançado em vários conjuntos de dados de referência. 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, consulta a documentação sobre formação.
Posso comparar o 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. Podes utilizar PyTorch, ONNX, TensorRT, entre outros, para a avaliação comparativa. Abaixo estão os comandos de exemplo para a avaliação comparativa usando Python e CLI:
Exemplo
Para mais informações, consulta a secção Métricas de desempenho.
Criado em 2023-11-12, Atualizado em 2024-07-04
Autores: glenn-jocher (17), Burhan-Q (1), Laughing-q (2), AyushExel (1), fcakyon (1)