A U-Net é uma arquitetura especializada de Rede Neural Convolucional (CNN) originalmente desenvolvida para tarefas de segmentação de imagens biomédicas. A sua estrutura distintiva em forma de U permite a localização e segmentação precisas de objectos em imagens, mesmo com dados de treino limitados. Introduzida por Olaf Ronneberger, Philipp Fischer e Thomas Brox no seu artigo de 2015"U-Net: Convolutional Networks for Biomedical Image Segmentation", a U-Net tornou-se rapidamente influente para além do seu domínio inicial devido à sua eficácia em várias aplicações de visão computacional (CV) que requerem classificação ao nível do pixel.
Arquitetura de base
A arquitetura da rede U consiste em duas vias principais ligadas de uma forma que se assemelha à letra "U": uma via de contração (também conhecida como codificador) e uma via de expansão (também conhecida como descodificador).
- Percurso de contratação (codificador): Este caminho segue a arquitetura típica de uma CNN. Consiste em aplicações repetidas de duas convoluções 3x3 (convoluções não compensadas), cada uma seguida por uma função de ativação de Unidade Linear Rectificada (ReLU) e, em seguida, uma operação de pooling máximo 2x2 com passo 2 para a redução da amostragem. Em cada etapa de redução da amostragem, o número de canais de caraterísticas é duplicado. Este caminho capta o contexto da imagem de entrada, reduzindo progressivamente a resolução espacial enquanto aumenta a informação das caraterísticas.
- Via expansiva (descodificador): Esta via consiste em passos repetidos de aumento da amostragem do mapa de caraterísticas, seguidos de uma convolução 2x2 ("up-convolution") que reduz para metade o número de canais de caraterísticas, uma concatenação com o mapa de caraterísticas cortado correspondente da via de contração e duas convoluções 3x3, cada uma seguida de uma ReLU. O recorte é necessário devido à perda de pixels de borda em cada convolução. A camada final utiliza uma convolução 1x1 para mapear cada vetor de caraterística para o número desejado de classes. Este caminho permite uma localização precisa, aumentando gradualmente a resolução da saída e combinando-a com caraterísticas de alta resolução do caminho de contração através de ligações de salto. Arquitecturas de codificador-descodificador como a U-Net são comuns em tarefas de segmentação.
- Salta as ligações: A principal inovação que liga estes dois percursos é a utilização de ligações de saltos. Essas conexões copiam mapas de caraterísticas das camadas no caminho de contração e as concatenam com os mapas de caraterísticas de amostragem superior correspondentes no caminho de expansão. Isso permite que o decodificador acesse diretamente os recursos de alta resolução aprendidos pelo codificador, o que é crucial para produzir mapas de segmentação com detalhes precisos.
Principais caraterísticas e vantagens
O design da U-Net oferece várias vantagens, particularmente para tarefas de segmentação:
- Localização precisa: O caminho expansivo combinado com as conexões de salto permite que a rede gere máscaras de segmentação com detalhes muito finos.
- Eficiência com pequenos conjuntos de dados: A U-Net pode ser treinada de forma eficaz mesmo com conjuntos de dados de treinamento relativamente pequenos, o que é comum na análise de imagens médicas. O uso de aumento extensivo de dados é freqüentemente empregado junto com a U-Net para ensinar à rede as invariâncias desejadas.
- Treinamento de ponta a ponta: Toda a rede pode ser treinada diretamente a partir de imagens de entrada para mapas de segmentação de saída, simplificando o processo de treino.
- Boa generalização: Tem demonstrado um bom desempenho não só na imagiologia médica, mas também noutros domínios que exigem uma segmentação precisa.
Aplicações no mundo real
Embora inicialmente concebida para imagiologia biomédica, a arquitetura da U-Net é versátil e foi adaptada a inúmeras aplicações:
Distinguir a U-Net de conceitos semelhantes
A U-Net centra-se principalmente na segmentação semântica, atribuindo uma etiqueta de classe (por exemplo, "tumor", "estrada", "edifício") a cada pixel de uma imagem. Isto difere de:
- Segmentação de instâncias: Esta tarefa não só classifica pixels, mas também distingue entre instâncias individuais de objectos pertencentes à mesma classe (por exemplo, rotulando distintamente carro_1, carro_2, carro_3). Embora a U-Net possa ser adaptada para a segmentação de instâncias, modelos como a Máscara R-CNN são frequentemente mais adequados para isso.
- Deteção de objectos: Isto envolve identificar objectos e desenhar caixas delimitadoras à sua volta, em vez de classificar cada pixel. Modelos como o Ultralytics YOLO são os mais avançados para a deteção de objectos, conhecidos pela sua velocidade e precisão.
- Modelos modernos de segmentação: Embora a U-Net continue a ser influente, as arquitecturas mais recentes, incluindo variantes de segmentação de modelos como Ultralytics YOLOv8 e YOLO11fornecem recursos poderosos de segmentação, geralmente otimizados para inferência mais rápida em tempo real e aproveitando os avanços no aprendizado profundo, como blocos de transformadores ou designs sem âncoras.