Comparação de modelos: YOLOv7 vs. YOLOv8 para deteção de objectos
No panorama em rápida evolução da visão por computador, a família de modelos "You Only Look Once"YOLO) definiu consistentemente o padrão para a deteção de objectos em tempo real. Dois marcos significativos nesta linhagem são YOLOv7 e o Ultralytics YOLOv8. Embora ambos os modelos tenham ultrapassado os limites da precisão e da velocidade aquando do seu lançamento, representam diferentes filosofias de conceção e maturidades do ecossistema.
Este guia fornece uma comparação técnica detalhada para ajudar os programadores e investigadores a escolher a ferramenta certa para as suas necessidades específicas, desde a investigação académica até à implementação em produção.
Comparação de métricas de desempenho
A tabela seguinte apresenta uma comparação direta das métricas de desempenho entre os principais modelos YOLOv7 e YOLOv8 . YOLOv8 demonstra uma vantagem significativa na velocidade de inferência e uma contagem de parâmetros favorável, particularmente nas variantes de modelo mais pequenas que são críticas para aplicações de IA de ponta.
| 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 evolução do "saco de brindes
Lançado em julho de 2022, YOLOv7 foi desenvolvido principalmente pelos autores do YOLOv4 e do YOLOR. Introduziu várias inovações arquitetônicas destinadas a otimizar o processo de treinamento sem aumentar os custos de inferência, um conceito conhecido como "saco de brindes treinável".
- 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
- Ligações:Artigo Arxiv | Repositório GitHub
Principais caraterísticas arquitectónicas
YOLOv7 introduziu a Rede de Agregação de Camadas Eficiente Alargada (E-ELAN). Esta arquitetura controla os caminhos de gradiente mais curtos e mais longos para permitir que a rede aprenda caraterísticas mais diversas. Além disso, utilizou técnicas de escalonamento de modelos que modificam simultaneamente a profundidade e a largura da arquitetura, garantindo um desempenho ótimo em diferentes tamanhos.
Apesar dos seus impressionantes valores de referência no lançamento, YOLOv7 centra-se principalmente na deteção de objectos, com menos suporte integrado para outras tarefas em comparação com as estruturas mais recentes.
Ultralytics YOLOv8: Estrutura unificada e arquitetura moderna
Lançado no início de 2023 pela Ultralytics, YOLOv8 representou uma grande reformulação da arquitetura YOLO . Foi concebido não apenas como um modelo, mas como uma estrutura unificada capaz de efetuar deteção, segmentação de instâncias, estimativa de pose e classificação sem problemas.
- Autores: Glenn Jocher, Ayush Chaurasia e Jing Qiu
- Organização: Ultralytics
- Data: 2023-01-10
- Ligações:Ultralytics Docs | Repositório GitHub
Inovações arquitectónicas
YOLOv8 passou da deteção baseada em âncoras utilizada nas versões anteriores (incluindo YOLOv7) para um mecanismo de deteção sem âncoras. Esta mudança simplifica o processo de treino ao eliminar a necessidade de calcular caixas de ancoragem, tornando o modelo mais robusto a variações na forma e tamanho do objeto.
A espinha dorsal foi actualizada para utilizar módulos C2f (Cross-Stage Partial Bottleneck with two convolutions), que substituem os módulos C3 do YOLOv5. Esta alteração melhora o fluxo de gradientes e permite que o modelo permaneça leve, ao mesmo tempo que capta informações mais ricas sobre as caraterísticas.
Comparação técnica pormenorizada
Baseado em âncora vs. Sem âncora
Uma das diferenças mais marcantes é a cabeça de deteção. YOLOv7 baseia-se em caixas de ancoragem - formas pré-definidas que o modelo tenta fazer corresponder aos objectos. Embora eficaz, isso requer o ajuste de hiperparâmetros para conjuntos de dados personalizados.
Em contraste, YOLOv8 utiliza uma abordagem sem âncoras, prevendo diretamente o centro de um objeto. Isto reduz o número de previsões de caixa, acelerando a Supressão Não MáximaNMS) e tornando o modelo mais fácil de treinar em diversos dados sem configuração manual de âncora.
Eficiência de treino e utilização de memória
Os modelos Ultralytics são conhecidos pela sua eficiência de engenharia. YOLOv8 utiliza uma estratégia inteligente de aumento de dados que desactiva o aumento do Mosaico durante as épocas finais do treino. Esta técnica estabiliza a perda de treino e melhora a precisão.
Eficiência da memória
Uma vantagem significativa do Ultralytics YOLOv8 em relação a arquitecturas complexas como os transformadores (por exemplo RT-DETR) é a sua menor necessidade de memória CUDA . Isso permite que os usuários treinem lotes maiores em GPUs de nível de consumidor, democratizando o acesso ao treinamento de modelos de última geração.
Ecossistema e facilidade de utilização
Embora YOLOv7 seja um poderoso repositório de investigação, Ultralytics YOLOv8 oferece uma experiência de produto aperfeiçoada. O ecossistema Ultralytics fornece:
- API simplificada: Uma interface Python consistente para todas as tarefas.
- Implementação: Exportação com um clique para formatos como ONNX, TensorRT, CoreML e TFLite através do modo Exportar.
- Suporte da comunidade: Uma comunidade ativa no Discord e atualizações frequentes que garantem a compatibilidade com as versões mais recentes PyTorch .
Comparação de códigos
A lacuna de usabilidade é evidente quando se compara o código necessário para executar a inferência. Ultralytics dá prioridade a uma abordagem com pouco código, permitindo que os programadores integrem a IA de visão nas aplicações com um mínimo de despesas gerais.
Executando YOLOv8 com Python
from ultralytics import YOLO
# Load a pre-trained YOLOv8 model
model = YOLO("yolov8n.pt")
# Run inference on an image
results = model("https://ultralytics.com/images/bus.jpg")
# Display the results
for result in results:
result.show()
Implementação CLI
YOLOv8 também pode ser executado diretamente a partir da linha de comandos, uma caraterística que simplifica a integração de condutas e os testes rápidos.
# Detect objects in an image using the nano model
yolo predict model=yolov8n.pt source='https://ultralytics.com/images/zidane.jpg' imgsz=640
Casos de Uso Ideais
Quando utilizar YOLOv7
YOLOv7 continua a ser uma escolha viável para os investigadores que efectuam a avaliação comparativa em relação às normas de 2022/2023 ou que mantêm sistemas legados construídos especificamente em torno da arquitetura de estilo Darknet. A sua abordagem "bag-of-freebies" oferece informações interessantes para quem estuda estratégias de otimização de redes neurais.
Quando utilizar YOLOv8
YOLOv8 é a escolha recomendada para a grande maioria dos novos projectos, incluindo:
- Aplicações em tempo real: O modelo YOLOv8n (nano) oferece velocidades incríveis (aprox. 80ms na CPU), tornando-o perfeito para aplicações móveis e sistemas incorporados.
- Pipelines de várias tarefas: Os projectos que requerem estimativa de pose ou segmentação juntamente com a deteção podem utilizar uma única API.
- Implementação comercial: A robusta compatibilidade de exportação garante que os modelos treinados no PyTorch podem ser implantados de forma eficiente em ambientes de produção usando o TensorRT ou o OpenVINO.
Conclusão
Enquanto YOLOv7 deu contributos significativos para o campo da visão computacional ao otimizar os parâmetros treináveis, Ultralytics YOLOv8 representa o padrão moderno para o desenvolvimento prático de IA.
O equilíbrio superior de velocidade e precisão do YOLOv8, combinado com um design sem âncoras e o extenso ecossistema de suporte Ultralytics , torna-o mais acessível para iniciantes e mais poderoso para especialistas. Para os programadores que procuram criar aplicações de visão escaláveis, fáceis de manter e de elevado desempenho, YOLOv8os seus sucessores como o YOLO11-oferecem o caminho mais atraente para o futuro.
Leitura Adicional
Para os interessados em explorar os últimos avanços na deteção de objectos, considere a possibilidade de rever estes modelos relacionados:
- YOLO11: A mais recente iteração da Ultralytics, refinando a arquitetura para uma eficiência ainda maior.
- YOLOv6: Outro modelo sem âncoras centrado em aplicações industriais.
- YOLOv9: Centra-se na Informação de Gradiente Programável (PGI) para formação de redes profundas.