Em visão computacional, um mapa de saliência é uma imagem que destaca ou a região na qual os olhos das pessoas focam primeiro ou as regiões mais relevantes para modelos de aprendizado de máquina. O objetivo de um mapa de saliência é refletir o grau de importância de um pixel para o sistema visual humano ou para um modelo de ML opaco. Por exemplo, em uma imagem de uma paisagem, uma pessoa pode primeiro olhar para um forte e nuvens claras, então essas regiões seriam destacadas no mapa de saliência. Mapas de saliência são amplamente usados em aplicações que vão desde compressão de imagem até inteligência artificial explicável, onde fornecem explicações visuais das decisões do modelo.
O conceito de saliência origina-se de estudos da atenção visual humana. O córtex visual primário (V1) parece ser responsável pelo mapa de saliência, de acordo com a Hipótese de Saliência V1. Em aprendizado de máquina, mapas de saliência são tipicamente gerados para redes neurais profundas, especialmente redes neurais convolucionais e transformadores, para indicar quais partes da entrada influenciam mais a saída.
Aplicações no Olho Humano
Mapas de saliência têm aplicações em uma variedade de problemas diferentes. Para a atenção do olho humano, eles são usados em:
- Compressão de imagem e vídeo: O olho humano foca apenas em uma pequena região de interesse no quadro. Portanto, não é necessário comprimir todo o quadro com qualidade uniforme. Usar um mapa de saliência reduz o tamanho final do vídeo com a mesma percepção visual.
- Avaliação de qualidade de imagem e vídeo: A principal tarefa para uma métrica de qualidade de imagem ou vídeo é uma alta correlação com as opiniões dos usuários. Diferenças em regiões salientes recebem mais importância e, assim, contribuem mais para a pontuação de qualidade.
- Redimensionamento de imagem: Isso visa redimensionar uma imagem expandindo ou encolhendo as regiões não informativas. Algoritmos de redimensionamento dependem da disponibilidade de mapas de saliência que estimam com precisão todos os detalhes salientes da imagem.
- Detecção e reconhecimento de objetos: Em vez de aplicar um algoritmo computacionalmente complexo a toda a imagem, pode-se aplicá-lo às regiões mais salientes de uma imagem que provavelmente contêm um objeto.
IA Explicável
Mapas de saliência são uma ferramenta proeminente em inteligência artificial explicável, fornecendo explicações visuais do processo de tomada de decisão de modelos de aprendizado de máquina, particularmente redes neurais profundas. Esses mapas destacam as regiões nos dados de entrada que são mais influentes na saída do modelo, indicando efetivamente onde o modelo está "olhando" ao fazer uma previsão. Em tarefas de classificação de imagens, por exemplo, mapas de saliência podem identificar pixels ou regiões que contribuem mais para uma decisão de classe específica.
Desenvolvidas para redes neurais convolucionais, as técnicas de mapeamento de saliência variam desde simplesmente calcular o gradiente da pontuação da classe em relação aos dados de entrada até algoritmos mais complexos, como gradientes integrados e mapeamento de ativação de classe. Na arquitetura de transformadores, mecanismos de atenção levaram a mapas de saliência análogos, como mapas de atenção, rolagens de atenção e mapas de atenção discriminativos de classe.
Saliência como um Problema de Segmentação
A estimativa de saliência pode ser vista como uma instância de segmentação de imagem. Em visão computacional, segmentação de imagem é o processo de particionar uma imagem digital em múltiplos segmentos (conjuntos de pixels, também conhecidos como superpixels). O objetivo da segmentação é simplificar e/ou mudar a representação de uma imagem em algo mais significativo e mais fácil de analisar. A segmentação de imagem é tipicamente usada para localizar objetos e bordas (linhas, curvas, etc.) em imagens. Mais precisamente, segmentação de imagem é o processo de atribuir um rótulo a cada pixel em uma imagem, de modo que pixels com o mesmo rótulo compartilhem certas características.
Algoritmos Clássicos
Existem três formas de algoritmos clássicos de estimativa de saliência implementados no OpenCV:
- Saliência estática: Depende de características e estatísticas da imagem para localizar as regiões de interesse de uma imagem.
- Saliência de movimento: Depende do movimento em um vídeo, detectado por fluxo óptico. Objetos que se movem são considerados salientes.
- Objetividade: A objetividade reflete quão provável é que uma janela de imagem cubra um objeto. Esses algoritmos geram um conjunto de caixas delimitadoras de onde um objeto pode estar em uma imagem.
Além das abordagens clássicas, métodos baseados em redes neurais também são populares. Há exemplos de redes neurais para estimativa de saliência de movimento:
- TASED-Net: Consiste em dois blocos de construção. Primeiro, a rede codificadora extrai características espaço-temporais de baixa resolução, e então a rede de previsão seguinte decodifica as características espacialmente codificadas enquanto agrega toda a informação temporal.
- STRA-Net: Enfatiza duas questões essenciais. Primeiro, características espaço-temporais integradas via acoplamento de aparência e fluxo óptico, e então saliência multiescala aprendida via mecanismo de atenção.
- STAViS: Combina informação visual e auditiva espaço-temporal. Essa abordagem emprega uma única rede que aprende a localizar fontes sonoras e a fundir as duas saliências para obter um mapa de saliência final.
Há um método mais novo de saliência estática chamado sensibilidade à distorção visual. Ele é baseado na ideia de que as bordas verdadeiras, ou seja, contornos de objetos, são mais salientes do que outras regiões texturizadas complexas. Ele detecta bordas de uma maneira diferente dos algoritmos clássicos de detecção de bordas. Usa um limiar bastante pequeno para as magnitudes do gradiente para considerar a mera presença dos gradientes. Obtém quatro mapas binários para direções vertical, horizontal e duas diagonais. Fechamento e abertura morfológicos são aplicados às imagens binárias para fechar pequenos intervalos. Para limpar formas semelhantes a manchas, utiliza a transformada de distância. Após tudo, os grupos de pixels conectados são bordas individuais (ou contornos). Um limiar de tamanho do conjunto de pixels conectados é usado para determinar se um bloco de imagem contém uma borda perceptível (região saliente) ou não.
Exemplo de Implementação
Um mapa de saliência simples pode ser calculado calculando a distância de cada pixel ao restante dos pixels no mesmo quadro. O valor de saliência para um pixel \(I_k\) é dado por:
\(\mathrm{SALS}(I_k) = \sum_{i=1}^{N} |I_k - I_i|\)
onde \(I_i\) é o valor do pixel \(i\), no intervalo de [0,255]. A forma expandida é:
\(\mathrm{SALS}(I_k) = |I_k - I_1| + |I_k - I_2| + ... + |I_k - I_N|\)
onde N é o número total de pixels no quadro atual. A fórmula pode ser reestruturada agrupando pixels com o mesmo valor de intensidade:
\(\mathrm{SALS}(I_k) = \sum_{n=0}^{255} F_n \times |I_k - I_n|\)
onde \(F_n\) é a frequência do valor de intensidade \(I_n\). As frequências são expressas na forma de um histograma, e o tempo computacional do histograma é \(O(N)\). Essa abordagem é eficiente e forma a base para muitos métodos clássicos de detecção de saliência.
Abordagens de Redes Neurais
A geração moderna de mapas de saliência frequentemente depende de aprendizado profundo. Para redes neurais convolucionais, métodos baseados em gradiente calculam a derivada da pontuação da classe em relação à imagem de entrada, produzindo um mapa de saliência que destaca pixels com a influência mais forte. Gradientes integrados e mapeamento de ativação de classe (CAM) são técnicas mais avançadas que fornecem mapas mais suaves e mais discriminativos. Em transformadores, mecanismos de atenção produzem mapas de atenção que podem ser agregados entre camadas, conhecidos como rolagens de atenção, para criar mapas de saliência para entradas visuais e textuais. Esses métodos são amplamente usados em Machine learning e Deep learning para interpretabilidade de modelos.
Aplicações em Outros Domínios
Embora mapas de saliência sejam mais comuns em visão computacional, eles foram adaptados a outros domínios. Em processamento de linguagem natural, mapas de saliência podem destacar palavras ou tokens que mais influenciam a previsão de um modelo, especialmente em modelos baseados em Transformer (architecture) como Large language models. Em processamento de áudio, mapas de saliência podem indicar regiões tempo-frequência relevantes para classificação. O princípio subjacente permanece o mesmo: identificar as partes da entrada que mais importam para a saída.
Desafios e Limitações
Mapas de saliência não estão isentos de críticas. Eles podem ser sensíveis a pequenas perturbações na entrada, levando a explicações instáveis. Alguns métodos produzem mapas que não são discriminativos de classe, o que significa que destacam regiões que são geralmente salientes em vez de específicas para uma previsão particular. Além disso, avaliar a qualidade dos mapas de saliência é difícil, pois não há verdade fundamental para a atenção do modelo. Pesquisadores continuam a desenvolver novas técnicas para melhorar a confiabilidade e a interpretabilidade, frequentemente baseando-se em insights da pesquisa em Neural network e ética de Artificial intelligence.
Direções Futuras
À medida que modelos de Artificial intelligence se tornam mais complexos, a necessidade de explicações transparentes cresce. Mapas de saliência provavelmente permanecerão uma ferramenta chave em IA explicável, especialmente para aplicações de alto risco, como imagem médica e direção autônoma. Avanços em Generative AI e modelos multimodais podem levar a novas formas de saliência que combinam pistas visuais, textuais e auditivas. Pesquisa em instituições como MIT CSAIL, Stanford AI Lab e BAIR (Berkeley AI Research) continua a empurrar os limites da interpretabilidade, com mapas de saliência servindo como uma técnica fundamental.