Saltar 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 em 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 SOTA

Com base nos resultados da tabela de comparação YOLO , sabemos que o método proposto tem a melhor relação velocidade-precisão em termos globais. 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 em termos de PA. Além disso, o YOLOv7 tem 51,4% de PA a uma taxa de fotogramas de 161 fps, enquanto o PPYOLOE-L com o mesmo PA tem apenas uma taxa de fotogramas de 78 fps. 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).

Modelo Parâmetros
(M)
FLOPs
(G)
Tamanho
(píxeis)
FPS APtest/ val
50-95
APtest
50
APtest
75
APtest
S
APtest
M
AProva
L
YOLOX-S 9.0M 26.8G 640 102 40.5% / 40.5% - - - - -
YOLOX-M 25.3M 73.8G 640 81 47.2% / 46.9% - - - - -
YOLOX-L 54.2M 155.6G 640 69 50.1% / 49.7% - - - - -
YOLOX-X 99.1M 281.9G 640 58 51.5% / 51.1% - - - - -
PPYOLOE-S 7.9M 17.4G 640 208 43.1% / 42.7% 60.5% 46.6% 23.2% 46.4% 56.9%
PPYOLOE-M 23.4M 49.9G 640 123 48.9% / 48.6% 66.5% 53.0% 28.6% 52.9% 63.8%
PPYOLOE-L 52.2M 110.1G 640 78 51.4% / 50.9% 68.9% 55.6% 31.4% 55.3% 66.1%
PPYOLOE-X 98.4M 206.6G 640 45 52.2% / 51.9% 69.9% 56.5% 33.3% 56.3% 66.4%
YOLOv5-N (r6.1) 1.9M 4.5G 640 159 - / 28.0% - - - - -
YOLOv5-S (r6.1) 7.2M 16.5G 640 156 - / 37.4% - - - - -
YOLOv5-M (r6.1) 21.2M 49.0G 640 122 - / 45.4% - - - - -
YOLOv5-L (r6.1) 46.5M 109.1G 640 99 - / 49.0% - - - - -
YOLOv5-X (r6.1) 86.7M 205.7G 640 83 - / 50.7% - - - - -
YOLOR-CSP 52.9M 120.4G 640 106 51.1% / 50.8% 69.6% 55.7% 31.7% 55.3% 64.7%
YOLOR-CSP-X 96.9M 226.8G 640 87 53.0% / 52.7% 71.4% 57.9% 33.7% 57.1% 66.8%
YOLOv7-tiny-SiLU 6.2M 13.8G 640 286 38.7% / 38.7% 56.7% 41.7% 18.8% 42.4% 51.9%
YOLOv7 36.9M 104.7G 640 161 51.4% / 51.2% 69.7% 55.9% 31.8% 55.5% 65.0%
YOLOv7-X 71.3M 189.9G 640 114 53.1% / 52.9% 71.2% 57.8% 33.8% 57.1% 67.4%
YOLOv5-N6 (r6.1) 3.2M 18.4G 1280 123 - / 36.0% - - - - -
YOLOv5-S6 (r6.1) 12.6M 67.2G 1280 122 - / 44.8% - - - - -
YOLOv5-M6 (r6.1) 35.7M 200.0G 1280 90 - / 51.3% - - - - -
YOLOv5-L6 (r6.1) 76.8M 445.6G 1280 63 - / 53.7% - - - - -
YOLOv5-X6 (r6.1) 140.7M 839.2G 1280 38 - / 55.0% - - - - -
YOLOR-P6 37.2M 325.6G 1280 76 53.9% / 53.5% 71.4% 58.9% 36.1% 57.7% 65.6%
YOLOR-W6 79.8G 453.2G 1280 66 55.2% / 54.8% 72.7% 60.5% 37.7% 59.1% 67.1%
YOLOR-E6 115.8M 683.2G 1280 45 55.8% / 55.7% 73.4% 61.1% 38.4% 59.7% 67.7%
YOLOR-D6 151.7M 935.6G 1280 34 56.5% / 56.1% 74.1% 61.9% 38.9% 60.4% 68.7%
YOLOv7-W6 70.4M 360.0G 1280 84 54.9% / 54.6% 72.6% 60.1% 37.3% 58.7% 67.1%
YOLOv7-E6 97.2M 515.2G 1280 56 56.0% / 55.9% 73.5% 61.2% 38.0% 59.9% 68.4%
YOLOv7-D6 154.7M 806.8G 1280 44 56.6% / 56.3% 74.0% 61.8% 38.8% 60.1% 69.5%
YOLOv7-E6E 151.7M 843.2G 1280 36 56.8% / 56.8% 74.4% 62.1% 39.3% 60.5% 69.0%

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 dispositivos móveis GPU e GPU , desde o limite até à nuvem.

Ao contrário dos detectores de objectos tradicionais em tempo real, que se concentram 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".

Caraterísticas principais

O YOLOv7 apresenta várias caraterísticas fundamentais:

  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: A formação do modelo com várias camadas de saída apresenta uma nova questão: "Como atribuir objectivos 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 denominado atribuição de rótulos guiada por chumbo grosso a fino.

  3. Escalonamento estendido e composto: 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 reduzir eficazmente cerca de 40% dos parâmetros e 50% da computação do detetor de objectos em tempo real topo de gama, 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 obter instruções de instalação e utilização.

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

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

  2. Siga 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. Uma vez concluída a instalação, pode 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.

Tenha em atenção que os passos específicos podem variar consoante o seu caso de utilização específico e o estado atual do repositório YOLOv7. Por conseguinte, recomenda-se vivamente que consulte 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.

FAQ

O que é o YOLOv7 e porque é considerado um avanço na deteção de objectos em tempo real?

O YOLOv7 é um modelo avançado de deteção de objectos em tempo real que atinge uma velocidade e precisão sem paralelo. Ultrapassa outros modelos, tais como YOLOX, YOLOv5 e PPYOLOE, tanto na utilização de parâmetros como na velocidade de inferência. As caraterísticas distintivas do YOLOv7 incluem a re-parametrização do modelo e a atribuição dinâmica de etiquetas, que optimizam o seu desempenho sem aumentar os custos de inferência. Para mais detalhes técnicos sobre a sua arquitetura e métricas de comparação com outros detectores de objectos de última geração, consulte o documento YOLOv7.

Como é que o YOLOv7 melhora em relação aos modelos anteriores YOLO como o YOLOv4 e YOLOv5?

O YOLOv7 introduz várias inovações, incluindo a re-parametrização do modelo e a atribuição dinâmica de etiquetas, que melhoram o processo de formação e aumentam a precisão da inferência. Em comparação com YOLOv5, o YOLOv7 aumenta significativamente a velocidade e a precisão. Por exemplo, o YOLOv7-X melhora a precisão em 2,2% e reduz os parâmetros em 22% em comparação com YOLOv5-X. As comparações detalhadas podem ser encontradas na tabela de desempenho YOLOv7 comparação com detectores de objectos SOTA.

Posso utilizar o YOLOv7 com as ferramentas e plataformas Ultralytics ?

Atualmente, o Ultralytics não suporta diretamente o YOLOv7 nas suas ferramentas e plataformas. Os utilizadores interessados em utilizar o YOLOv7 têm de seguir as instruções de instalação e utilização fornecidas no repositório GitHub do YOLOv7. Para outros modelos de última geração, pode explorar e treinar utilizando ferramentas Ultralytics como Ultralytics HUB.

Como é que instalo e executo o YOLOv7 para um projeto de deteção de objectos personalizado?

Para instalar e executar o YOLOv7, siga estes passos:

  1. Clonar o repositório YOLOv7:
    git clone https://github.com/WongKinYiu/yolov7
    
  2. Navegue até ao diretório clonado e instale as dependências:
    cd yolov7
    pip install -r requirements.txt
    
  3. Prepare o seu conjunto de dados e configure os parâmetros do modelo de acordo com as instruções de utilização fornecidas no repositório. Para mais orientações, visite o repositório GitHub do YOLOv7 para obter as informações e actualizações mais recentes.

Quais são as principais caraterísticas e optimizações introduzidas no YOLOv7?

O YOLOv7 oferece várias caraterísticas chave que revolucionam a deteção de objectos em tempo real:

  • Re-parametrização do modelo: Melhora o desempenho do modelo, optimizando os caminhos de propagação do gradiente.
  • Atribuição dinâmica de rótulos: Utiliza um método guiado por chumbo grosso a fino para atribuir alvos dinâmicos para saídas em diferentes ramos, melhorando a precisão.
  • Escalonamento estendido e composto: Utiliza parâmetros e computação de forma eficiente para escalar o modelo para várias aplicações em tempo real.
  • Eficiência: Reduz a contagem de parâmetros em 40% e a computação em 50% em comparação com outros modelos de última geração, ao mesmo tempo que atinge velocidades de inferência mais rápidas. Para mais informações sobre estas caraterísticas, consulte a secção Descrição geral do YOLOv7.
📅C riado há 1 ano ✏️ Atualizado há 1 mês

Comentários