Connect with us

Inteligência artificial

YOLOv7: O Algoritmo de Detecção de Objetos Mais Avançado?

mm

6 de julho de 2022 será marcado como um marco na história da IA, pois foi nesse dia que o YOLOv7 foi lançado. Desde o seu lançamento, o YOLOv7 tem sido o tópico mais quente na comunidade de desenvolvedores de Visão Computacional, e por boas razões. O YOLOv7 já está sendo considerado um marco na indústria de detecção de objetos.

Logo após a publicação do artigo do YOLOv7, ele se tornou o modelo de detecção de objetos em tempo real mais rápido e preciso. Mas como o YOLOv7 supera seus antecessores? O que torna o YOLOv7 tão eficiente na realização de tarefas de visão computacional?

Neste artigo, tentaremos analisar o modelo YOLOv7 e tentar encontrar a resposta para por que o YOLOv7 está se tornando o padrão da indústria. Mas antes de podermos responder a isso, teremos que dar uma olhada na breve história da detecção de objetos.

O que é Detecção de Objetos?

A detecção de objetos é uma ramificação da visão computacional que identifica e localiza objetos em uma imagem ou arquivo de vídeo. A detecção de objetos é o bloco de construção de inúmeras aplicações, incluindo carros autônomos, vigilância monitorada e até robótica.

Um modelo de detecção de objetos pode ser classificado em duas categorias diferentes, detecção de objetos de um único disparo, e detecção de objetos de múltiplos disparos.

Detecção de Objetos em Tempo Real

Para entender realmente como o YOLOv7 funciona, é essencial entender o objetivo principal do YOLOv7, “Detecção de Objetos em Tempo Real”. A detecção de objetos em tempo real é um componente-chave da visão computacional moderna. Os modelos de detecção de objetos em tempo real tentam identificar e localizar objetos de interesse em tempo real. Os modelos de detecção de objetos em tempo real tornaram possível para os desenvolvedores rastrear objetos de interesse em um quadro em movimento, como um vídeo ou uma entrada de vigilância ao vivo.

Os modelos de detecção de objetos em tempo real são essencialmente um passo à frente dos modelos de detecção de imagens convencionais. Enquanto o primeiro é usado para rastrear objetos em arquivos de vídeo, o último localiza e identifica objetos dentro de um quadro estacionário, como uma imagem.

Como resultado, os modelos de detecção de objetos em tempo real são muito eficientes para análise de vídeo, veículos autônomos, contagem de objetos, rastreamento de múltiplos objetos e muito mais.

O que é YOLO?

YOLO ou “Você Só Olha Uma Vez” é uma família de modelos de detecção de objetos em tempo real. O conceito YOLO foi introduzido pela primeira vez em 2016 por Joseph Redmon e foi o assunto da cidade quase instantaneamente, pois era muito mais rápido e preciso do que os algoritmos de detecção de objetos existentes. Não demorou muito para o algoritmo YOLO se tornar um padrão na indústria de visão computacional.

O conceito fundamental que o algoritmo YOLO propõe é usar uma rede neural de ponta a ponta usando caixas delimitadoras e probabilidades de classe para fazer previsões em tempo real. O YOLO foi diferente do modelo de detecção de objetos anterior no sentido de que propôs uma abordagem diferente para realizar a detecção de objetos, reutilizando classificadores.

A mudança de abordagem deu certo, pois o YOLO logo se tornou o padrão da indústria, pois a diferença de desempenho entre ele e outros algoritmos de detecção de objetos em tempo real era significativa. Mas qual foi o motivo pelo qual o YOLO era tão eficiente?

Quando comparado ao YOLO, os algoritmos de detecção de objetos da época usavam Redes de Proposta de Região para detectar regiões de interesse possíveis. O processo de reconhecimento era então realizado em cada região separadamente. Como resultado, esses modelos frequentemente realizavam múltiplas iterações na mesma imagem e, portanto, a falta de precisão e tempo de execução mais alto. Por outro lado, o algoritmo YOLO usa uma camada totalmente conectada para realizar a previsão de uma vez.

Como o YOLO Funciona?

Existem três etapas que explicam como um algoritmo YOLO funciona.

Reformulando a Detecção de Objetos como um Problema de Regressão Único

O algoritmo YOLO tenta reformular a detecção de objetos como um problema de regressão único, incluindo pixels de imagem, para probabilidades de classe e coordenadas de caixas delimitadoras. Portanto, o algoritmo tem que olhar para a imagem apenas uma vez para prever e localizar os objetos-alvo nas imagens.

Raciocínio Global da Imagem

Além disso, quando o algoritmo YOLO faz previsões, ele raciocina a imagem globalmente. É diferente das técnicas baseadas em proposta de região e deslizamento, pois o algoritmo YOLO vê a imagem completa durante o treinamento e teste no conjunto de dados e é capaz de codificar informações contextuais sobre as classes e como elas aparecem.

Antes do YOLO, o Fast R-CNN era um dos algoritmos de detecção de objetos mais populares que não podia ver o contexto maior na imagem, pois costumava confundir patches de fundo em uma imagem com um objeto. Quando comparado ao algoritmo Fast R-CNN, o YOLO é 50% mais preciso quando se trata de erros de fundo.

Generalizar a Representação de Objetos

Finalmente, o algoritmo YOLO também visa generalizar as representações de objetos em uma imagem. Como resultado, quando um algoritmo YOLO foi executado em um conjunto de dados com imagens naturais e testado para os resultados, o YOLO superou os modelos R-CNN existentes por uma grande margem. É porque o YOLO é altamente generalizável, as chances de ele quebrar quando implementado em entradas inesperadas ou novos domínios eram pequenas.

YOLOv7: O que há de Novo?

Agora que temos uma compreensão básica do que são modelos de detecção de objetos em tempo real e o que é o algoritmo YOLO, é hora de discutir o algoritmo YOLOv7.

Otimizando o Processo de Treinamento

O algoritmo YOLOv7 não apenas tenta otimizar a arquitetura do modelo, mas também visa otimizar o processo de treinamento. Ele visa usar módulos e métodos de otimização para melhorar a precisão da detecção de objetos, fortalecendo o custo de treinamento, enquanto mantém o custo de interferência. Esses módulos de otimização podem ser referidos como um conjunto de gratuidades treináveis.

Atribuição de Rótulo Guiada por Liderança de Granularidade Grossa a Fina

O algoritmo YOLOv7 planeja usar uma nova Atribuição de Rótulo Guiada por Liderança de Granularidade Grossa a Fina em vez da atribuição de rótulo dinâmico convencional.

Reparametrização do Modelo

A reparametrização do modelo é um conceito importante na detecção de objetos e seu uso é geralmente seguido por alguns problemas durante o treinamento. O algoritmo YOLOv7 planeja usar o conceito de caminho de propagação de gradiente para analisar as políticas de reparametrização do modelo aplicáveis a diferentes camadas na rede.

Escalabilidade Estendida e Composta

O algoritmo YOLOv7 também introduz os métodos de escalabilidade estendida e composta para utilizar e usar efetivamente os parâmetros e cálculos para detecção de objetos em tempo real.

YOLOv7: Trabalho Relacionado

Detecção de Objetos em Tempo Real

YOLO é atualmente o padrão da indústria e a maioria dos detectores de objetos em tempo real implantam algoritmos YOLO e FCOS (Detecção de Objetos de Estágio Único Totalmente Convolutivo). Um detector de objetos em tempo real de estado da arte geralmente tem as seguintes características

  • Arquitetura de rede mais forte e mais rápida.
  • Um método eficaz de integração de recursos.
  • Um método de detecção de objetos preciso.
  • Uma função de perda robusta.
  • Um método de atribuição de rótulo eficiente.
  • Um método de treinamento eficiente.

O algoritmo YOLOv7 não usa métodos de aprendizado auto-supervisionado e destilação que frequentemente exigem grandes quantidades de dados. Em vez disso, o algoritmo YOLOv7 usa um método de conjunto de gratuidades treináveis.

Reparametrização do Modelo

As técnicas de reparametrização do modelo são consideradas como uma técnica de ensemble que combina vários módulos computacionais em uma etapa de interferência. A técnica pode ser ainda dividida em duas categorias, ensemble de nível de modelo, e ensemble de nível de módulo.

Agora, para obter o modelo de interferência final, a técnica de reparametrização de nível de modelo usa duas práticas. A primeira prática usa diferentes dados de treinamento para treinar vários modelos idênticos e, em seguida, média os pesos dos modelos treinados. Alternativamente, a outra prática média os pesos dos modelos durante diferentes iterações.

A reparametrização de nível de módulo está ganhando imensa popularidade recentemente, pois divide um módulo em diferentes ramos de módulo ou diferentes ramos idênticos durante a fase de treinamento e, em seguida, procede para integrar esses diferentes ramos em um módulo equivalente durante a interferência.

No entanto, as técnicas de reparametrização não podem ser aplicadas a todos os tipos de arquitetura. É o motivo pelo qual o algoritmo YOLOv7 usa novas técnicas de reparametrização do modelo para projetar estratégias relacionadas adequadas para diferentes arquiteturas.

Escalabilidade do Modelo

A escalabilidade do modelo é o processo de dimensionar um modelo existente para cima ou para baixo para que se ajuste a diferentes dispositivos de computação. A escalabilidade do modelo geralmente usa uma variedade de fatores, como número de camadas (profundidade), tamanho da imagem de entrada (resolução), número de pirâmides de recursos (estágio) e número de canais (largura). Esses fatores desempenham um papel crucial ao garantir um equilíbrio de troca para parâmetros de rede, velocidade de interferência, cálculo e precisão do modelo.

Um dos métodos de escalabilidade mais comumente usados é Pesquisa de Arquitetura de Rede ou NAS que procura automaticamente fatores de escalabilidade adequados de motores de busca sem regras complicadas. A principal desvantagem de usar o NAS é que é uma abordagem cara para procurar fatores de escalabilidade adequados.

Quase todos os modelos de reparametrização analisam fatores de escalabilidade individuais e únicos independentemente e, além disso, otimizam esses fatores independentemente. É porque a arquitetura NAS funciona com fatores de escalabilidade não correlacionados.

É digno de nota que os modelos de concatenação, como VoVNet ou DenseNet, mudam a largura de entrada de algumas camadas quando a profundidade do modelo é escalada. O YOLOv7 funciona em uma arquitetura de concatenação proposta e, portanto, usa um método de escalabilidade composta.

A figura mencionada acima compara as redes de agregação de camadas eficientes estendidas (E-ELAN) de diferentes modelos. O método E-ELAN proposto mantém o caminho de transmissão de gradiente da arquitetura original, mas visa aumentar a cardinalidade dos recursos adicionados usando convolução em grupo. O processo pode aprimorar os recursos aprendidos por diferentes mapas e pode ainda tornar o uso de cálculos e parâmetros mais eficiente.

Arquitetura YOLOv7

O modelo YOLOv7 usa os modelos YOLOv4, YOLO-R e os modelos YOLOv4 escalados como base. O YOLOv7 é o resultado dos experimentos realizados nesses modelos para melhorar os resultados e tornar o modelo mais preciso.

Rede de Agregação de Camadas Eficientes Estendida ou E-ELAN

A E-ELAN é o bloco de construção fundamental do modelo YOLOv7 e é derivada de modelos existentes sobre eficiência de rede, principalmente a ELAN.

As principais considerações ao projetar uma arquitetura eficiente são o número de parâmetros, densidade computacional e a quantidade de cálculo. Outros modelos também consideram fatores como influência da razão de canal de entrada/saída, ramos na arquitetura da rede, velocidade de interferência da rede, número de elementos nos tensores da rede convolucional e mais.

O modelo CSPVoNet não apenas considera os parâmetros mencionados acima, mas também analisa o caminho de gradiente para aprender recursos mais diversos, habilitando os pesos de diferentes camadas. A abordagem permite que as interferências sejam muito mais rápidas e precisas. A arquitetura ELAN visa projetar uma rede eficiente para controlar o caminho de gradiente mais curto, para que a rede possa ser mais eficaz no aprendizado e na convergência.

A ELAN já alcançou um estado estável, independentemente do número de blocos computacionais empilhados e do comprimento do caminho de gradiente. O estado estável pode ser destruído se os blocos computacionais forem empilhados ilimitadamente e a taxa de utilização de parâmetros diminuir. A arquitetura E-ELAN proposta pode resolver o problema, pois usa expansão, embaralhamento e mesclagem de cardinalidade para continuar aprimorando a capacidade de aprendizado da rede, mantendo o caminho de gradiente original.

Além disso, quando comparamos a arquitetura da E-ELAN com a ELAN, a única diferença está no bloco computacional, enquanto a arquitetura da camada de transição é inalterada.

A E-ELAN propõe expandir a cardinalidade dos blocos computacionais e expandir o canal usando convecção em grupo. O mapa de recursos será calculado e embaralhado em grupos de acordo com o parâmetro de grupo e, em seguida, concatenado juntos. O número de canais em cada grupo permanecerá o mesmo que na arquitetura original. Por fim, os grupos de mapas de recursos serão adicionados para realizar a cardinalidade.

Escalabilidade de Modelo para Modelos de Concatenação

A escalabilidade do modelo ajuda a ajustar atributos do modelo que ajudam a gerar modelos de acordo com os requisitos e de diferentes escalas para atender a diferentes velocidades de interferência.

A figura fala sobre a escalabilidade do modelo para diferentes modelos de concatenação. Como você pode ver nas figuras (a) e (b), a largura de saída do bloco computacional aumenta com o aumento da escalabilidade de profundidade do modelo. Resultantemente, a largura de entrada das camadas de transmissão é aumentada. Se esses métodos forem implementados em arquiteturas de concatenação, o processo de escalabilidade é realizado em profundidade e é representado na figura (c).

Portanto, pode-se concluir que não é possível analisar os fatores de escalabilidade independentemente para modelos de concatenação e, em vez disso, eles devem ser considerados ou analisados juntos. Portanto, para um modelo de concatenação, é adequado usar o método de escalabilidade composta correspondente. Além disso, quando o fator de profundidade é escalado, o canal de saída do bloco também deve ser escalado.

Conjunto de Gratuidades Treináveis

Um conjunto de gratuidades é um termo que os desenvolvedores usam para descrever um conjunto de métodos ou técnicas que podem alterar a estratégia de treinamento ou custo em uma tentativa de aumentar a precisão do modelo. Então, quais são esses conjuntos de gratuidades treináveis no YOLOv7? Vamos dar uma olhada.

Convecção Re-Parametrizada Planejada

O algoritmo YOLOv7 usa caminhos de propagação de gradiente para determinar como combinar idealmente uma rede com a convecção re-parametrizada. Essa abordagem do YOLOv7 é uma tentativa de contrariar o algoritmo RepConv que, embora tenha performado serenamente no modelo VGG, performa mal quando aplicado diretamente aos modelos DenseNet e ResNet.

Para identificar as conexões em uma camada convolucional, o algoritmo RepConv combina convecção 3×3 e convecção 1×1. Se analisarmos o algoritmo, seu desempenho e a arquitetura, observaremos que o RepConv destrói a concatenação no DenseNet e o residual no ResNet.

A imagem acima representa um modelo re-parametrizado planejado. Pode-se ver que o algoritmo YOLOv7 descobriu que uma camada na rede com conexões de concatenação ou resíduo não deve ter uma conexão de identidade no algoritmo RepConv. Resultantemente, é aceitável mudar para RepConvN com nenhuma conexão de identidade.

Grossa para Auxiliar e Fina para Perda de Liderança

Supervisão profunda é uma ramificação da ciência da computação que frequentemente encontra uso no processo de treinamento de redes profundas. O princípio fundamental da supervisão profunda é que adiciona uma cabeça auxiliar adicional nas camadas intermediárias da rede, juntamente com os pesos da rede rasa com perda auxiliar como guia. O algoritmo YOLOv7 se refere à cabeça responsável pela saída final como a cabeça de liderança e a cabeça auxiliar é a cabeça que ajuda no treinamento.

Em seguida, o YOLOv7 usa um método diferente para atribuição de rótulo. Conventionalmente, a atribuição de rótulo foi usada para gerar rótulos referindo-se diretamente à verdade do terreno e com base em um conjunto de regras. No entanto, nos últimos anos, a distribuição e a qualidade da entrada de previsão desempenham um papel importante para gerar um rótulo confiável. O YOLOv7 gera um rótulo suave do objeto usando as previsões da caixa delimitadora e da verdade do terreno.

Além disso, o novo método de atribuição de rótulo do algoritmo YOLOv7 usa as previsões da cabeça de liderança para guiar tanto a cabeça de liderança quanto a cabeça auxiliar. O método de atribuição de rótulo tem duas estratégias propostas.

Atribuidor de Rótulo Guiado por Liderança

A estratégia faz cálculos com base nos resultados de previsão da cabeça de liderança e da verdade do terreno e, em seguida, usa otimização para gerar rótulos suaves. Esses rótulos suaves são usados como o modelo de treinamento para tanto a cabeça de liderança quanto a cabeça auxiliar.

A estratégia funciona com a suposição de que, porque a cabeça de liderança tem uma capacidade de aprendizado maior, os rótulos que ela gera devem ser mais representativos e correlacionados entre a fonte e o destino.

Atribuidor de Rótulo de Liderança de Granularidade Grossa a Fina

Essa estratégia também faz cálculos com base nos resultados de previsão da cabeça de liderança e da verdade do terreno e, em seguida, usa otimização para gerar rótulos suaves. No entanto, há uma diferença-chave. Nessa estratégia, existem dois conjuntos de rótulos suaves, nível grosso e rótulo fino.

O rótulo grosso é gerado relaxando as restrições do processo de atribuição de amostra positiva

que trata mais grades como alvos positivos. É feito para evitar o risco de perder informações devido à fraqueza de aprendizado da cabeça auxiliar.

A figura acima explica o uso de um conjunto de gratuidades treináveis no algoritmo YOLOv7. Ela representa a grossa para a cabeça auxiliar e a fina para a cabeça de liderança. Quando comparamos um modelo com cabeça auxiliar (b) com o modelo normal (a), observaremos que o esquema em (b) tem uma cabeça auxiliar, enquanto não está em (a).

A figura (c) representa o atribuidor de rótulo independente comum, enquanto as figuras (d) e (e) representam, respectivamente, o Atribuidor de Rótulo Guiado por Liderança e o Atribuidor de Rótulo de Liderança de Granularidade Grossa a Fina usados pelo YOLOv7.

Outros Conjuntos de Gratuidades Treináveis

Além dos mencionados acima, o algoritmo YOLOv7 usa conjuntos de gratuidades adicionais, embora não tenham sido originalmente propostos por eles. Eles são

  • Normalização de Lote na Tecnologia Conv-Bn-Ativação: Essa estratégia é usada para conectar uma camada convolucional diretamente à camada de normalização de lote.
  • Conhecimento Implícito no YOLOR: O YOLOv7 combina a estratégia com o mapa de recursos convolucional.
  • Modelo EMA: O modelo EMA é usado como um modelo de referência final no YOLOv7, embora seu uso principal seja ser usado no método do professor médio.

YOLOv7: Experimentos

Configuração Experimental

O algoritmo YOLOv7 usa o conjunto de dados COCO da Microsoft para treinamento e validação de seu modelo de detecção de objetos e nem todos esses experimentos usam um modelo pré-treinado. Os desenvolvedores usaram o conjunto de dados de treinamento de 2017 para treinamento e usaram o conjunto de dados de validação de 2017 para selecionar os hiperparâmetros. Finalmente, o desempenho dos resultados de detecção de objetos do YOLOv7 é comparado com algoritmos de estado da arte para detecção de objetos.

Os desenvolvedores projetaram um modelo básico para GPU de borda (YOLOv7-tiny), GPU normal (YOLOv7) e GPU de nuvem (YOLOv7-W6). Além disso, o algoritmo YOLOv7 também usa um modelo básico para escalabilidade de modelo de acordo com diferentes requisitos de serviço e obtém diferentes modelos. Para o algoritmo YOLOv7, a escalabilidade da pilha é feita no pescoço e compostos propostos são usados para dimensionar a profundidade e a largura do modelo.

Linhas de Base

O algoritmo YOLOv7 usa os modelos YOLO anteriores e o algoritmo de detecção de objetos YOLOR como sua linha de base.

A figura acima compara a linha de base do modelo YOLOv7 com outros modelos de detecção de objetos e os resultados são bastante evidentes. Quando comparado com o algoritmo YOLOv4, o YOLOv7 não apenas usa 75% menos parâmetros, mas também usa 15% menos cálculo e tem 0,4% mais precisão.

Comparação com Modelos de Detecção de Objetos de Estado da Arte

A figura acima mostra os resultados quando o YOLOv7 é comparado com modelos de detecção de objetos de estado da arte para GPUs móveis e gerais. Pode-se observar que o método proposto pelo algoritmo YOLOv7 tem a melhor taxa de troca de velocidade e precisão.

Estudo de Ablação: Método de Escalabilidade Composta Proposto

A figura acima compara os resultados de usar diferentes estratégias para dimensionar o modelo. A estratégia de escalabilidade no modelo YOLOv7 dimensiona a profundidade do bloco computacional por 1,5 vezes e dimensiona a largura por 1,25 vezes.

Quando comparado com um modelo que apenas dimensiona a profundidade, o modelo YOLOv7 performa melhor em 0,5% enquanto usa menos parâmetros e cálculo. Por outro lado, quando comparado com modelos que apenas dimensionam a profundidade, a precisão do YOLOv7 é aprimorada em 0,2%, mas o número de parâmetros precisa ser dimensionado por 2,9% e o cálculo por 1,2%.

Modelo Re-Parametrizado Proposto

Para verificar a generalidade de seu modelo re-parametrizado proposto, o algoritmo YOLOv7 usa-o em modelos baseados em resíduo e concatenação para verificação. Para o processo de verificação, o algoritmo YOLOv7 usa 3-ELAN empilhado para o modelo de concatenação e CSPDarknet para o modelo baseado em resíduo.

Para o modelo de concatenação, o algoritmo substitui as camadas convolucionais 3×3 no 3-ELAN empilhado com RepConv. A figura abaixo mostra a configuração detalhada do RepConv planejado e do 3-ELAN empilhado.

Além disso, quando lida com o modelo baseado em resíduo, o algoritmo YOLOv7 usa um bloco escuro reverso, pois o bloco escuro original não tem um bloco de convecção 3×3. A figura abaixo mostra a arquitetura do CSPDarknet reverso que reverte as posições das camadas de convecção 3×3 e 1×1.

Perda Auxiliar para Cabeça Auxiliar Proposta

Para a perda auxiliar para a cabeça auxiliar, o modelo YOLOv7 compara a atribuição de rótulo independente para a cabeça auxiliar e a cabeça de liderança.

A figura acima contém os resultados do estudo sobre a perda auxiliar proposta para a cabeça auxiliar. Pode-se ver que o desempenho geral do modelo aumenta com o aumento da perda auxiliar. Além disso, a atribuição de rótulo guiada por liderança proposta pelo YOLOv7 performa melhor do que as estratégias de atribuição de rótulo independente.

Resultados do YOLOv7

Com base nos experimentos acima, aqui está o resultado do desempenho do YOLOv7 em comparação com outros algoritmos de detecção de objetos.

A figura acima compara o modelo YOLOv7 com outros algoritmos de detecção de objetos e pode-se observar claramente que o YOLOv7 supera outros modelos de detecção de objetos em termos de Precisão Média (AP) vs interferência em lote.

Além disso, a figura abaixo compara o desempenho do YOLOv7 vs outros algoritmos de detecção de objetos em tempo real. Mais uma vez, o YOLOv7 supera outros modelos em termos de desempenho geral, precisão e eficiência.

Aqui estão algumas observações adicionais dos resultados e desempenho do YOLOv7.

  1. O YOLOv7-Tiny é o modelo mais pequeno da família YOLO, com mais de 6 milhões de parâmetros. O YOLOv7-Tiny tem uma precisão média de 35,2% e supera os modelos YOLOv4-Tiny com parâmetros comparáveis.
  2. O modelo YOLOv7 tem mais de 37 milhões de parâmetros e supera modelos com mais parâmetros, como o YOLOv4.
  3. O modelo YOLOv7 tem a maior mAP e taxa de FPS na faixa de 5 a 160 FPS.

Conclusão

YOLO ou Você Só Olha Uma Vez é o modelo de detecção de objetos de estado da arte na visão computacional moderna. O algoritmo YOLO é conhecido por sua alta precisão e eficiência e, como resultado, encontra aplicações extensas na indústria de detecção de objetos em tempo real. Desde que o primeiro algoritmo YOLO foi introduzido em 2016, experimentos permitiram que os desenvolvedores melhorassem continuamente o modelo.

O modelo YOLOv7 é a última adição à família YOLO e é o algoritmo YOLO mais poderoso até o momento. Neste artigo, falamos sobre os fundamentos do YOLOv7 e tentamos explicar o que torna o YOLOv7 tão eficiente.

Um engenheiro por profissão, um escritor por coração. Kunal é um escritor técnico com um amor e compreensão profundos de AI e ML, dedicado a simplificar conceitos complexos nestes campos por meio de sua documentação envolvente e informativa.