Salta para o conteúdo

YOLOv7: Saco de brindes treinável

O YOLOv7 é um detetor de objectos em tempo real de última geração que ultrapassa todos os detectores de objectos conhecidos, tanto em termos de velocidade como de precisão, na gama de 5 FPS a 160 FPS. Tem a maior precisão (56,8% AP) entre todos os detectores de objectos em tempo real conhecidos com 30 FPS ou mais na GPU V100. Além disso, o YOLOv7 supera outros detectores de objectos como o YOLOR, YOLOX, Scaled-YOLOv4, YOLOv5, e muitos outros em termos de velocidade e precisão. O modelo é treinado no conjunto de dados MS COCO a partir do zero, sem utilizar quaisquer outros conjuntos de dados ou pesos pré-treinados. O código-fonte do YOLOv7 está disponível no GitHub.

Comparação do YOLOv7 com os detectores de objectos SOTA Comparação dos detectores de objectos mais avançados. A partir dos resultados da Tabela 2, sabemos que o método proposto tem a melhor relação velocidade-precisão de forma abrangente. Se compararmos o YOLOv7-tiny-SiLU com o YOLOv5-N (r6.1), o nosso método é 127 fps mais rápido e 10,7% mais preciso no AP. Além disso, o YOLOv7 tem 51,4% de AP com uma taxa de fotogramas de 161 fps, enquanto o PPYOLOE-L com o mesmo AP tem apenas 78 fps de taxa de fotogramas. Em termos de utilização de parâmetros, o YOLOv7 é 41% inferior ao PPYOLOE-L. Se compararmos o YOLOv7-X com uma velocidade de inferência de 114 fps com o YOLOv5-L (r6.1) com uma velocidade de inferência de 99 fps, o YOLOv7-X pode melhorar o PA em 3,9%. Se o YOLOv7-X for comparado com YOLOv5-X (r6.1) de escala semelhante, a velocidade de inferência do YOLOv7-X é 31 fps mais rápida. Além disso, em termos de quantidade de parâmetros e de computação, o YOLOv7-X reduz 22% dos parâmetros e 8% da computação em comparação com o YOLOv5-X (r6.1), mas melhora o PA em 2,2% (Fonte).

Visão geral

A deteção de objectos em tempo real é um componente importante em muitos sistemas de visão por computador, incluindo o seguimento de vários objectos, a condução autónoma, a robótica e a análise de imagens médicas. Nos últimos anos, o desenvolvimento da deteção de objectos em tempo real tem-se centrado na conceção de arquitecturas eficientes e na melhoria da velocidade de inferência de vários CPUs, GPUs e unidades de processamento neural (NPUs). O YOLOv7 suporta GPU móvel e dispositivos GPU, desde a borda até a nuvem.

Ao contrário dos detectores de objectos tradicionais em tempo real que se centram na otimização da arquitetura, o YOLOv7 introduz um enfoque na otimização do processo de formação. Isto inclui módulos e métodos de otimização concebidos para melhorar a precisão da deteção de objectos sem aumentar o custo de inferência, um conceito conhecido como "trainable bag-of-freebies".

Características principais

O YOLOv7 apresenta várias funcionalidades importantes:

  1. Re-parametrização do modelo: O YOLOv7 propõe um modelo re-parametrizado planeado, que é uma estratégia aplicável a camadas em diferentes redes com o conceito de caminho de propagação de gradiente.

  2. Atribuição dinâmica de etiquetas: O treino do modelo com várias camadas de saída apresenta uma nova questão: "Como atribuir alvos dinâmicos para as saídas de diferentes ramos?" Para resolver este problema, o YOLOv7 introduz um novo método de atribuição de rótulos chamado atribuição de rótulos guiada por chumbo grosso a fino.

  3. Escala estendida e composta: O YOLOv7 propõe métodos de "extensão" e "escala composta" para o detetor de objectos em tempo real que podem utilizar eficazmente os parâmetros e a computação.

  4. Eficiência: O método proposto pelo YOLOv7 pode efetivamente reduzir cerca de 40% dos parâmetros e 50% da computação do detetor de objectos em tempo real mais avançado, e tem uma velocidade de inferência mais rápida e uma maior precisão de deteção.

Exemplos de utilização

No momento em que este artigo foi escrito, Ultralytics não suporta atualmente os modelos YOLOv7. Por conseguinte, os utilizadores interessados em utilizar o YOLOv7 terão de consultar diretamente o repositório GitHub do YOLOv7 para obterem instruções de instalação e utilização.

Segue-se uma breve descrição dos passos típicos que poderás seguir para utilizar o YOLOv7:

  1. Visita o repositório GitHub do YOLOv7: https://github.com/WongKinYiu/yolov7.

  2. Segue as instruções fornecidas no ficheiro README para a instalação. Normalmente, isso envolve a clonagem do repositório, a instalação das dependências necessárias e a configuração de quaisquer variáveis de ambiente necessárias.

  3. Quando a instalação estiver concluída, podes treinar e utilizar o modelo de acordo com as instruções de utilização fornecidas no repositório. Normalmente, isto envolve a preparação do conjunto de dados, a configuração dos parâmetros do modelo, o treino do modelo e, em seguida, a utilização do modelo treinado para efetuar a deteção de objectos.

Tem em atenção que os passos específicos podem variar consoante o teu caso de utilização específico e o estado atual do repositório YOLOv7. Por isso, recomenda-se vivamente que consultes diretamente as instruções fornecidas no repositório GitHub do YOLOv7.

Lamentamos qualquer inconveniente que isto possa causar e esforçar-nos-emos por atualizar este documento com exemplos de utilização para Ultralytics assim que o suporte para YOLOv7 for implementado.

Citações e agradecimentos

Gostaríamos de agradecer aos autores do YOLOv7 pelas suas contribuições significativas no domínio da deteção de objectos em tempo real:

@article{wang2022yolov7,
  title={{YOLOv7}: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors},
  author={Wang, Chien-Yao and Bochkovskiy, Alexey and Liao, Hong-Yuan Mark},
  journal={arXiv preprint arXiv:2207.02696},
  year={2022}
}

O artigo original do YOLOv7 pode ser encontrado no arXiv. Os autores tornaram o seu trabalho publicamente disponível e a base de código pode ser acedida no GitHub. Agradecemos os seus esforços para fazer avançar o campo e tornar o seu trabalho acessível à comunidade em geral.



Criado em 2023-11-12, Atualizado em 2024-01-07
Autores: glenn-jocher (5), sergiuwaxmann (1)

Comentários