YOLOv7 vs YOLOv8: Evolução da Detecção de Objetos em Tempo Real
O panorama da visão computacional é definido por iterações rápidas e avanços arquitetónicos. Dois dos marcos mais significativos nessa história são YOLOv7, lançado em meados de 2022, e YOLOv8, lançado pela Ultralytics início Ultralytics 2023. Embora ambos os modelos tenham impulsionado o estado da arte (SOTA) no momento do seu lançamento, eles representam filosofias diferentes no design do modelo e na experiência do programador.
YOLOv7 um pico na otimização da abordagem «bag-of-freebies» para detetores baseados em âncoras, com foco intenso em estratégias de arquitetura treináveis. Por outro lado, YOLOv8 uma abordagem de ecossistema centrada no utilizador, fazendo a transição para uma arquitetura sem âncoras que priorizava a facilidade de uso, a implementação do modelo e o suporte unificado para diversas tarefas, como segmentação e estimativa de pose.
Comparação de Desempenho
A tabela a seguir ilustra as métricas de desempenho YOLOv8 YOLOv7 YOLOv8 . YOLOv8 eficiência superior, particularmente na contagem de parâmetros e FLOPs, mantendo ou excedendo a precisão (mAP) do seu antecessor.
| Modelo | tamanho (pixels) | mAPval 50-95 | Velocidade CPU ONNX (ms) | Velocidade T4 TensorRT10 (ms) | parâmetros (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv7l | 640 | 51.4 | - | 6.84 | 36.9 | 104.7 |
| YOLOv7x | 640 | 53.1 | - | 11.57 | 71.3 | 189.9 |
| YOLOv8n | 640 | 37.3 | 80.4 | 1.47 | 3.2 | 8.7 |
| YOLOv8s | 640 | 44.9 | 128.4 | 2.66 | 11.2 | 28.6 |
| YOLOv8m | 640 | 50.2 | 234.7 | 5.86 | 25.9 | 78.9 |
| YOLOv8l | 640 | 52.9 | 375.2 | 9.06 | 43.7 | 165.2 |
| YOLOv8x | 640 | 53.9 | 479.1 | 14.37 | 68.2 | 257.8 |
YOLOv7: A potência baseada em âncoras
Lançado em julho de 2022, YOLOv7 projetado para ultrapassar os limites da velocidade e precisão da deteção de objetos em tempo real. Ele introduziu várias inovações arquitetónicas com o objetivo de otimizar o caminho de propagação do gradiente.
- Autores: Chien-Yao Wang, Alexey Bochkovskiy e Hong-Yuan Mark Liao
- Organização: Instituto de Ciência da Informação, Academia Sinica, Taiwan
- Data: 2022-07-06
- Artigo:YOLOv7: O conjunto treinável de recursos gratuitos estabelece um novo padrão de excelência
- Repositório:GitHub
Principais Características Arquitetônicas
YOLOv7 a Rede de Agregação de Camadas Eficiente Estendida (E-ELAN). Essa arquitetura permite que o modelo aprenda características mais diversificadas, controlando os caminhos de gradiente mais curtos e mais longos, garantindo que a rede converja de forma eficaz sem destruir o fluxo de gradiente.
Também utilizou dimensionamento de modelo baseado em concatenação, que ajusta a profundidade e a largura do bloco simultaneamente. Embora eficaz, essa arquitetura depende de caixas âncora, exigindo o cálculo de âncoras ideais para conjuntos de dados personalizados para atingir o desempenho máximo. Isso adiciona uma camada de complexidade ao processo de treinamento em comparação com abordagens mais recentes sem âncoras.
Complexidade de Treinamento
YOLOv7 requer uma estrutura de repositório específica orientada para a investigação e gestão manual de cabeças auxiliares durante o treino. Os utilizadores têm frequentemente de ajustar manualmente os hiperparâmetros para que o «bag-of-freebies» (como MixUp Mosaic) funcione corretamente em conjuntos de dados mais pequenos.
YOLOv8: Ecossistema unificado e design sem âncora
YOLOv8 Ultralytics YOLOv8 uma mudança de paradigma, passando de uma ferramenta de pesquisa pura para uma estrutura de nível empresarial. Ele simplificou todo o ciclo de vida da aprendizagem automática, desde a anotação de dados até a implementação.
- Autores: Glenn Jocher, Ayush Chaurasia e Jing Qiu
- Organização:Ultralytics
- Data: 2023-01-10
- Documentação:Documentação do YOLOv8
Inovações Arquiteturais
YOLOv8 um modelo de última geração, sem âncoras. Ao eliminar a necessidade de caixas de âncora predefinidas, YOLOv8 o cabeçote de detecção e melhora a generalização em objetos com formas ou proporções incomuns.
- Módulo C2f: Substituindo o módulo C3 das gerações anteriores, o módulo C2f (inspirado no ELAN) combina funcionalidades de alto nível com informações contextuais para melhorar o fluxo gradiente, mantendo-se leve.
- Cabeça desacoplada: YOLOv8 as tarefas de objetividade, classificação e regressão em diferentes ramos. Essa separação permite que o modelo converja de forma mais rápida e precisa.
- Versatilidade de tarefas: Ao contrário YOLOv7, que é principalmente um modelo de deteção, YOLOv8 suporta YOLOv8 classificação de imagens, estimativa de pose, caixas delimitadoras orientadas (OBB) e segmentação de instâncias.
Comparação detalhada: por que os programadores escolhem Ultralytics
Embora YOLOv7 um modelo capaz, o Ultralytics em torno YOLOv8 e do mais recente YOLO26) oferece vantagens distintas para desenvolvedores e pesquisadores.
1. Facilidade de Uso e Ecossistema
YOLOv7 distribuído principalmente como um repositório de pesquisa. O seu treinamento geralmente requer a clonagem de um repositório GitHub específico, a organização de pastas em uma estrutura rígida e a execução CLI complexas.
Em contrapartida, Ultralytics estão disponíveis como um Python padrão (pip install ultralytics). O argumento Plataforma Ultralytics simplifica ainda mais isso, fornecendo uma interface gráfica para gestão de conjuntos de dados e monitoramento de treinamento. Essa experiência "do zero ao herói" reduz significativamente a barreira de entrada para o desenvolvimento de IA.
2. Eficiência de Treinamento e Memória
Um dos fatores mais críticos na IA moderna é a utilização de recursos. Modelos baseados em transformadores geralmente requerem grandes quantidades de CUDA e levam dias para serem treinados.YOLO Ultralytics são otimizados para eficiência de treinamento.
YOLOv8 o aumento de mosaico dinamicamente, desativando-o nos épocas finais para aumentar a precisão. Isso, combinado com um carregador de dados otimizado, permite que os utilizadores executem tamanhos de lote maiores em GPUs de nível consumidor em comparação com YOLOv7 alternativas baseadas em transformadores, como RT-DETR.
3. Implementação e exportação
Mover um modelo de um PyTorch para um dispositivo de produção costuma ser a parte mais difícil do pipeline. YOLOv8 isso com um modo de exportação unificado.
Com uma única linha de código, os programadores podem exportar YOLOv8 :
- ONNX para compatibilidade genérica entre plataformas.
- TensorRT para velocidade máxima de inferência em NVIDIA .
- CoreML para integração em aplicações iOS macOS.
- TFLite para implementação móvel e de ponta no Android Raspberry Pi.
Exemplo de exportação
A exportação de um YOLOv8 é feita de forma integrada através da Python :
from ultralytics import YOLO
model = YOLO("yolov8n.pt")
model.export(format="onnx", opset=12)
Exemplo de código: A API unificada
Python Ultralytics permite alternar entre arquiteturas de modelo sem esforço. É possível carregar um YOLOv8 ou um YOLOv7 (compatível com versões anteriores) usando a mesma interface.
from ultralytics import YOLO
# Load the latest YOLOv8 Nano model for efficiency
model = YOLO("yolov8n.pt")
# Train the model on the COCO8 dataset
# The API handles dataset downloading and configuration automatically
results = model.train(data="coco8.yaml", epochs=50, imgsz=640)
# Run inference on a sample image
# Returns a list of Results objects containing boxes, masks, or keypoints
results = model.predict("https://ultralytics.com/images/bus.jpg")
# Display the results
results[0].show()
# NOTE: You can also load YOLOv7 weights using the same API
# model_v7 = YOLO("yolov7.pt")
Casos de Uso Ideais
Quando usar o YOLOv7
- Benchmarking legado: Se estiver a reproduzir artigos académicos de 2022/2023 que comparam especificamente com a arquitetura E-ELAN.
- Entradas específicas de alta resolução: O
yolov7-w6As variantes foram especificamente ajustadas para entradas de 1280px, embora Ultralytics modernos agora suportem Resoluções P6/1280 nativamente.
Quando usar o YOLOv8
- Computação de ponta: Modelos como
yolov8nsão perfeitos para a funcionar no Raspberry Pi ou Jetson Nano devido à sua baixa contagem de parâmetros e alta velocidade. - Aplicações multitarefas: se a sua aplicação requer o rastreamento de pessoas e, simultaneamente, a identificação da sua postura (esqueletos), a estimativa de postura nativa YOLOv8 é a escolha ideal.
- Automação industrial: para linhas de produção de alto rendimento, onde a latência é crítica, a facilidade de exportação para TensorRT torna o YOLOv8 .
- Protótipo rápido: a Ultralytics permite que as equipas iterem em conjuntos de dados e modelos rapidamente, sem precisar gerir uma infraestrutura complexa.
Olhando para o futuro: O poder do YOLO26
Embora a comparação com YOLOv7 os pontos fortes do YOLOv8, o campo continuou a evoluir. Para os programadores que estão a iniciar novos projetos hoje, o YOLO26 representa o auge dessa evolução.
O YOLO26 baseia-se na facilidade de utilização do YOLOv8 introduz um design End-to-End NMS. Ao eliminar o pós-processamento Non-Maximum Suppression (NMS), o YOLO26 alcança uma lógica de implementação significativamente mais simples e menor latência em cenas complexas. Também apresenta o MuSGD Optimizer, inspirado nas técnicas de treino Large Language Model (LLM), garantindo uma convergência ainda mais estável durante o treino.
Além disso, com a remoção da Distribuição Focal Loss (DFL), o YOLO26 é até 43% mais rápido na inferência CPU, tornando-o a escolha definitiva para aplicações de IA de ponta onde as GPUs não estão disponíveis. Para tarefas especializadas, ele introduz melhorias específicas para cada tarefa, como a Estimativa Residual Log-Likelihood (RLE) para Pose e perda de ângulo especializada para OBB.
Para obter a solução mais preparada para o futuro, eficiente e precisa, recomendamos que você dê uma olhada no YOLO26.