Ultralytics YOLO27: Entre na lista de espera.
Licenciar o YOLO
Voltar ao glossário da Ultralytics

Convolutional Neural Network (CNN)

Uma rede neural convolucional (CNN) aprende características de imagens com filtros deslizantes compartilhados. Veja suas camadas, propriedades e principais modelos, além das diferenças entre CNNs e ViTs.

Uma rede neural convolucional (CNN) é uma arquitetura de aprendizagem profunda que processa dados em grelha, geralmente imagens, com pequenos filtros aprendíveis que deslizam sobre a entrada. Cada filtro reutiliza os mesmos pesos em todas as posições, por isso uma CNN deteta um padrão, como uma borda ou uma roda, onde quer que apareça, usando muito menos parâmetros do que uma rede totalmente conectada. As camadas empilhadas constroem uma hierarquia de características, desde bordas e texturas nas primeiras camadas até partes e objetos inteiros nas camadas mais profundas. As CNNs impulsionaram a maior parte do progresso da visão computacional desde que o AlexNet venceu o desafio ImageNet em 2012, e continuam a ser a opção mais comum para a visão em tempo real em hardware de borda.

Como funciona uma CNN#

Uma CNN repete alguns tipos de camadas em etapas, e cada etapa trabalha com uma resolução inferior à da anterior:

  • Camadas de convolução: Cada camada desliza um conjunto de filtros aprendíveis, normalmente 3×3, sobre a altura e a largura da entrada. Cada filtro produz um canal do mapa de características de saída; por isso, uma camada com 64 filtros produz 64 canais.
  • Normalização e ativação: A normalização em lotes mantém as saídas de cada camada num intervalo estável durante o treino, e uma função de ativação não linear, como ReLU ou SiLU, permite que as camadas empilhadas representem mais do que uma única transformação linear.
  • Redução da resolução: O max pooling ou uma convolução com passo 2 reduz para metade a altura e a largura, aumentando o campo recetivo das camadas posteriores e reduzindo o cálculo. Muitos designs modernos reduzem a resolução sobretudo com convoluções com passo.
  • Cabeça: Para a classificação de imagens, o pooling médio global reduz cada canal final a um número, e uma camada totalmente conectada mapeia esses números para pontuações de classe. Os modelos de deteção e segmentação substituem esta cabeça por camadas que preveem caixas ou máscaras por píxel.

Propriedades principais das CNNs#

Três propriedades explicam por que as convoluções são adequadas para imagens. A conectividade local significa que cada saída depende apenas de uma pequena vizinhança da entrada, refletindo a forte correlação entre pixels próximos. O compartilhamento de pesos significa que um único filtro é aplicado à imagem inteira, então o número de parâmetros permanece igual para qualquer tamanho de entrada. A equivariância à translação significa que, ao deslocar a entrada, o mapa de características se desloca na mesma medida, de modo que um padrão aprendido em um canto é reconhecido em qualquer lugar, e as camadas de pooling ainda acrescentam alguma tolerância a pequenos deslocamentos. Juntas, essas propriedades formam o viés indutivo da CNN: os pressupostos incorporados que permitem que ela aprenda com menos imagens do que um transformer precisa.

O trecho de código PyTorch abaixo compara uma camada convolucional com uma camada totalmente conectada aplicadas à mesma imagem RGB de 224×224.

import torch
from torch import nn

image = torch.randn(1, 3, 224, 224)

# 64 learnable 3x3 filters, each reused at every position of the RGB image
conv = nn.Conv2d(in_channels=3, out_channels=64, kernel_size=3, padding=1)

# A fully connected layer mapping the same flattened image to only 64 numbers
dense = nn.Linear(3 * 224 * 224, 64)

conv_params = sum(p.numel() for p in conv.parameters())
dense_params = sum(p.numel() for p in dense.parameters())
print(f"Conv2d: output {tuple(conv(image).shape)}, {conv_params:,} parameters")
print(f"Linear: output {tuple(dense(image.flatten(1)).shape)}, {dense_params:,} parameters")

Imprime Conv2d: output (1, 64, 224, 224), 1,792 parameters e Linear: output (1, 64), 9,633,856 parameters. A partilha de pesos permite que a convolução produza 64 mapas de características na resolução total com 1.792 parâmetros; a camada totalmente conectada precisa de 5.376 vezes mais para produzir apenas 64 números.

Arquiteturas CNN de referência#

  • LeNet-5 (1998): A rede de Yann LeCun para ler dígitos manuscritos definiu o padrão de alternar camadas convolucionais e de pooling, seguidas por camadas totalmente conectadas, e foi implementada comercialmente para ler cheques bancários.
  • AlexNet (2012): Treinada em duas GPUs com ativações ReLU e dropout, venceu o desafio ILSVRC 2012 com um erro de teste top-5 de 15,3%, contra 26,2% da segunda melhor submissão.
  • VGG (2014): Demonstrou que empilhar pequenas convoluções 3×3 até atingir 16 a 19 camadas com pesos melhora substancialmente a precisão no ImageNet.
  • ResNet (2015): As conexões residuais permitiram treinar redes com até 152 camadas, e um conjunto de ResNets venceu o ILSVRC 2015.
  • U-Net (2015): Uma CNN de codificador-decodificador com conexões de atalho que se tornou a arquitetura padrão para segmentação de imagens biomédicas.
  • ConvNeXt (2022): Uma ResNet modernizada com escolhas de design da era dos transformers, que alcança 87,8% de precisão top-1 no ImageNet e supera o Swin Transformer na deteção no COCO.

Onde se usam as CNNs#

  • Deteção de objetos: Os detetores CNN de estágio único encontram e classificam objetos numa única passagem direta, com rapidez suficiente para vídeo em câmaras, telemóveis e placas incorporadas.
  • Análise de imagens médicas: As CNNs do tipo U-Net segmentam órgãos, tumores e lesões em exames CT e MRI, onde o rótulo de cada píxel importa.
  • Estimativa de pose: As CNNs preveem pontos-chave do corpo para análise desportiva, ergonomia e aplicações de fitness.
  • Sinais para além das imagens: As convoluções unidimensionais processam formas de onda de áudio e séries temporais de sensores, e as CNNs bidimensionais classificam espectrogramas no reconhecimento de fala.

CNNs em comparação com Vision Transformers#

Um vision transformer (ViT) divide uma imagem em patches e relaciona cada patch com todos os outros através da autoatenção, obtendo assim contexto global desde a primeira camada. O seu viés indutivo mais fraco tem um custo: o ViT original ficou atrás de ResNets de tamanho semelhante quando treinado apenas com ImageNet e só os igualou ou superou depois de pré-treino com 14 milhões a 300 milhões de imagens. O custo da atenção também cresce com o quadrado do número de patches, o que torna dispendiosas as entradas de alta resolução; o custo de uma convolução cresce apenas linearmente com a quantidade de píxeis. Por isso, muitos modelos atuais combinam as duas abordagens, mantendo etapas convolucionais em alta resolução e adicionando atenção quando o mapa de características é pequeno. O YOLO26 segue este padrão: os blocos Conv (convolução, normalização em lotes e SiLU) e os blocos C3k2 fazem a maior parte do trabalho, e a autoatenção multi-cabeça é executada apenas no mapa de características com passo 32, uma grelha de 20×20 para uma imagem de 640×640.

Explore as soluções

Visão computacional no desporto

Visão computacional no desporto

Descubra como o Ultralytics YOLO impulsiona a visão computacional no esporte com rastreamento de jogadores e bolas, análise de desempenho, insights para treinadores e reabilitação de atletas.
Saiba mais
Visão computacional para imagens aéreas

Visão computacional para imagens aéreas

Transforma imagens de drones e aéreas em informações em tempo real para a agricultura, a aquacultura, a conservação e a análise geoespacial com Ultralytics YOLO.
Saiba mais
Visão computacional no setor aeroespacial

Visão computacional no setor aeroespacial

Aplica visão computacional na indústria aeroespacial com Ultralytics YOLO para inspecionar aeronaves, detetar objetos estranhos na pista (FOD), apoiar operações aeroportuárias em terra e detetar defeitos em materiais compósitos.
Saiba mais
Visão computacional na segurança

Visão computacional na segurança

Protege todas as instalações com os modelos Ultralytics YOLO. A IA visual permite monitorizar perímetros, detetar ameaças, reconhecer matrículas e melhorar a segurança no local de trabalho.
Saiba mais
Visão computacional na robótica

Visão computacional na robótica

Potencia máquinas mais inteligentes com os modelos Ultralytics YOLO. A IA visual na robótica permite navegação autónoma, perceção, rastreamento de objetos e controlo em tempo real.
Saiba mais
Visão computacional na logística

Visão computacional na logística

Otimize a logística com os modelos Ultralytics YOLO. A IA de visão permite inspecionar pacotes, fazer triagem, rastrear veículos e monitorar a segurança em tempo real nos armazéns.
Saiba mais
Visão computacional no varejo

Visão computacional no varejo

Reinvente o varejo com os modelos Ultralytics YOLO. A IA de visão permite rastrear o estoque, monitorar prateleiras, gerenciar filas e obter insights mais inteligentes sobre clientes.
Saiba mais
Visão computacional na área da saúde

Visão computacional na área da saúde

Desenvolva soluções de saúde com os modelos Ultralytics YOLO. A IA de visão na área da saúde permite obter imagens médicas mais rapidamente, diagnósticos mais inteligentes e monitoramento de pacientes.
Saiba mais
Visão computacional na manufatura

Visão computacional na manufatura

Otimize a manufatura com modelos Ultralytics YOLO. A IA visual impulsiona o controle de qualidade, a detecção de defeitos, a conformidade com o uso de EPI e a automação da linha de montagem.
Saiba mais
Visão computacional no setor automotivo

Visão computacional no setor automotivo

Aplique visão computacional no setor automotivo com modelos Ultralytics YOLO. A IA visual aumenta a segurança viária, aprimora a assistência ao condutor e viabiliza a automação de veículos para estradas mais inteligentes.
Saiba mais
Visão computacional na agricultura

Visão computacional na agricultura

Leve a IA de visão à agricultura inteligente com os modelos Ultralytics YOLO. Aprimore o monitoramento de plantações, o rastreamento de animais e a agricultura de precisão para obter safras maiores e mais inteligentes.
Saiba mais

Vamos construir juntos o futuro da IA!

Comece sua jornada rumo ao futuro do aprendizado de máquina