Glossário

Rede Neural Convolucional (CNN)

Aprende os fundamentos das Redes Neuronais Convolucionais (CNNs) e as suas aplicações na classificação de imagens, deteção de objectos e visão computacional.

Treina os modelos YOLO simplesmente
com Ultralytics HUB

Aprende mais

Uma rede neural convolucional (CNN) é um tipo de modelo de aprendizagem profunda particularmente adequado para analisar imagens visuais. As CNN inspiram-se na organização do córtex visual dos animais e são concebidas para aprender automaticamente e de forma adaptativa hierarquias espaciais de caraterísticas a partir de imagens de entrada. Tornaram-se uma pedra angular no campo da visão computacional, impulsionando avanços em várias aplicações, desde a classificação de imagens e deteção de objectos até tarefas mais complexas como a segmentação de imagens e a análise de vídeo.

Conceitos chave em CNNs

As CNNs são construídas com base em vários conceitos fundamentais que permitem as suas poderosas capacidades de processamento de imagem. Na sua essência, as CNNs utilizam camadas convolucionais para digitalizar imagens de entrada com pequenos filtros, extraindo caraterísticas relevantes enquanto preservam as suas relações espaciais. Estes filtros, aprendidos durante o treino, detectam padrões como arestas, texturas e formas.

As camadas de pooling são outro componente essencial, reduzindo as dimensões espaciais dos mapas de caraterísticas produzidos pelas camadas convolucionais. Este processo de redução da amostragem ajuda a diminuir a complexidade computacional e proporciona um grau de invariância à tradução, o que significa que a rede pode reconhecer caraterísticas independentemente da sua localização exacta na imagem.

As funções de ativação introduzem a não linearidade na rede, permitindo que as CNNs aprendam relações complexas e não lineares dentro dos dados. As funções de ativação comuns incluem a ReLU (Unidade Linear Rectificada), que ajuda a mitigar o problema do gradiente de desaparecimento e acelera o treino.

Estrutura de uma CNN

Uma arquitetura típica de CNN consiste numa série de camadas convolucionais e de agrupamento, seguidas de uma ou mais camadas totalmente ligadas. As camadas convolucionais efectuam a extração de caraterísticas, enquanto as camadas de pooling reduzem a dimensionalidade. As camadas totalmente conectadas, semelhantes às das redes neurais tradicionais, classificam as caraterísticas extraídas em várias categorias.

A entrada para uma CNN é normalmente uma imagem multicanal (por exemplo, RGB) e cada camada convolucional aplica um conjunto de filtros aprendíveis a esta entrada, produzindo um conjunto de mapas de caraterísticas. Estes mapas de caraterísticas passam depois por uma função de ativação e, frequentemente, por uma camada de agrupamento antes de serem introduzidos na camada convolucional seguinte. Este processamento hierárquico permite que as CNNs aprendam caraterísticas cada vez mais complexas em cada camada.

Aplicações das CNNs

As CNNs revolucionaram vários domínios através da sua capacidade de processar e interpretar dados visuais. Duas aplicações proeminentes no mundo real incluem:

Classificação de imagens

A classificação de imagens envolve a atribuição de um rótulo a uma imagem inteira. As CNNs alcançaram um desempenho de ponta nesta tarefa, categorizando com precisão as imagens em classes predefinidas. Por exemplo, uma CNN pode ser treinada para distinguir entre diferentes tipos de animais, veículos ou condições médicas em imagens. Esta capacidade é utilizada em várias aplicações, como o diagnóstico médico automático, a marcação de conteúdos nas redes sociais e o controlo de qualidade no fabrico.

Deteção de objectos

A deteção de objectos vai além da classificação, não só identificando objectos dentro de uma imagem, mas também localizando-os com caixas delimitadoras. Ultralytics YOLO (You Only Look Once) é uma arquitetura popular que utiliza CNNs para a deteção de objectos em tempo real. YOLO divide uma imagem numa grelha e prevê caixas delimitadoras e probabilidades de classe para cada célula da grelha. Esta abordagem permite uma deteção rápida e precisa, tornando-a adequada para aplicações como condução autónoma, sistemas de vigilância e gestão de inventário. Saiba mais sobre arquiteturas de deteção de objetos.

Distinguir CNNs de outras redes neurais

Embora as CNN sejam um tipo de rede neuronal, diferem significativamente de outras arquitecturas como as Redes Neuronais Recorrentes (RNN) e os Perceptrons de Múltiplas Camadas (MLP).

  • MLPs: Trata-se de redes totalmente ligadas, em que cada neurónio de uma camada está ligado a todos os neurónios da camada seguinte. Embora eficazes para várias tarefas, as MLP são computacionalmente dispendiosas para dados de elevada dimensão, como as imagens, e não tiram partido da estrutura espacial inerente aos dados visuais.
  • RNNs: São concebidas para processar dados sequenciais, mantendo um estado oculto que capta informações de entradas anteriores. As RNNs são adequadas para tarefas como o processamento de linguagem natural e a análise de séries temporais, mas são menos eficazes para dados de imagem em que as relações espaciais são cruciais.

As CNN, por outro lado, são especificamente concebidas para explorar a estrutura espacial das imagens através de camadas convolucionais e de pooling. Esta especialização torna-as altamente eficazes para tarefas de visão computacional.

Avanços e ferramentas

O domínio das CNN está em constante evolução, com a investigação em curso a conduzir a novas arquitecturas e técnicas. A aprendizagem por transferência, em que os modelos pré-treinados são aperfeiçoados para tarefas específicas, tornou-se uma prática comum, reduzindo a necessidade de grandes conjuntos de dados rotulados e de um tempo de treino extenso. Explora mais sobre a aprendizagem por transferência.

Ferramentas como Ultralytics HUB fornecem plataformas para treinar e implementar modelos CNN, simplificando o processo de desenvolvimento. Além disso, estruturas como PyTorch e TensorFlow oferecem suporte robusto para criar e treinar CNNs, com bibliotecas extensas e recursos da comunidade. Sabe mais sobre reconhecimento de imagens.

Para os interessados em explorar mais sobre as arquitecturas CNN, recursos como "Deep Learning with Python" de François Chollet e artigos académicos em Google Scholar fornecem um conhecimento aprofundado. Para obter mais informações sobre como as CNNs se comparam a outras redes neurais, o glossárioUltralytics oferece comparações detalhadas.

Lê tudo