Ir para o conteúdo

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.

Modelotamanho
(pixels)
mAPval
50-95
Velocidade
CPU ONNX
(ms)
Velocidade
T4 TensorRT10
(ms)
parâmetros
(M)
FLOPs
(B)
YOLOv7l64051.4-6.8436.9104.7
YOLOv7x64053.1-11.5771.3189.9
YOLOv8n64037.380.41.473.28.7
YOLOv8s64044.9128.42.6611.228.6
YOLOv8m64050.2234.75.8625.978.9
YOLOv8l64052.9375.29.0643.7165.2
YOLOv8x64053.9479.114.3768.2257.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.

Saiba mais sobre o YOLOv7

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.

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.

Saiba mais sobre o YOLOv8.

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:

  1. API simplificada: Uma interface Python consistente para todas as tarefas.
  2. Implementação: Exportação com um clique para formatos como ONNX, TensorRT, CoreML e TFLite através do modo Exportar.
  3. 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.

Comentários