Transformada Imagem-Floresta (IFT) Prof. Dr. Paulo A. V. de Miranda pmiranda@vision.ime.usp.br Instituto de Matemática e Estatística (IME), Universidade de São Paulo (USP) P.A.V. Miranda, aula 3 p.
Caminhos no grafo Um caminho π no grafo G = (D I,A) é uma sequência de pixels distintos p,p,...,p n, onde (p i,p i+ ) A, i =,,...,n. O pixel p é a origem org(π) do caminho, e p n é o destino dst(π). O caminho π é dito trivial se π = p. Seja π um caminho que termina em um pixel p e (p,q) A, então π p,q é dito o caminho resultante da concatenação de π e p,q com as duas instâncias de p se fundindo em uma. Um pixel q é dito conexo a um pixel p se existir um caminho de p a q em G = (D I,A). P.A.V. Miranda, aula 3 p.
Funções de conexidade Uma função de conexidade f(π) associa um valor escalar a qualquer caminho no grafo G = (D I,A), com base em propriedades da imagem ao longo deste caminho. Em segmentação, por exemplo, propriedades locais da imagem (vetor de atributos) e globais do objeto desejado (textura, cor e forma) podem ser exploradas no cálculo de f(π) para indicar a força de conexidade entre seus nós terminais através do caminho π. P.A.V. Miranda, aula 3 p. 3
Funções de conexidade As funções de conexidade são especificadas por uma regra de inicialização e uma regra de extensão de caminho. f max ( t ) = H(t) f max (π s s,t ) = max{f max (π s ),w(s,t)} () f sum ( t ) = H(t) f sum (π s s,t ) = f sum (π s )+w(s,t) () { if t S f euc ( t ) = + caso contrário f euc (π s s,t ) = t R(s) (3) onde H(t) é um valor inicial, R(s) = org(π s ), w(s,t) é um peso de arco (w(s,t) em f sum ), e S D I é um conjunto de sementes. P.A.V. Miranda, aula 3 p. 4
Funções de conexidade As funções f max e f sum são casos particulares de funções f mi monotonicamente incrementais. f mi ( t ) = H(t), f mi (π s s,t ) = f mi (π s ) (s,t), (4) onde : V A V é uma operação binária entre o valor de um caminho e um arco que satisfaz as condições: (M) a b a (s,t) b (s,t), (M) a (s,t) a, para a, b V e quaisquer arcos (s,t) A. Uma característica essencial deste modelo de função é que depende apenas do valor de π s, e não de qualquer outra propriedade deste caminho. P.A.V. Miranda, aula 3 p.
Caminho Ótimo Um caminho π t é ótimo se f(π t ) f(τ t ) para qualquer outro caminho τ t, independentemente de sua raiz. Para cada nó t D I, temos um valor único V(t) que armazena o valor de um caminho ótimo com término em t: V(t) = min π t in(d I,A) {f(π t)}. () P.A.V. Miranda, aula 3 p. 6
Transformada Imagem-Floresta A transformada imagem-floresta (IFT - Image Foresting Transform) reduz problemas de processamento de imagem baseados em conexidade ao cálculo: de uma floresta de caminhos ótimos no grafo derivado da imagem, seguido de um pós-processamento simples de atributos da floresta resultante. P.A.V. Miranda, aula 3 p. 7
Motivação Unificação: Vários operadores de imagem são derivados de um algoritmo geral. Isto favorece implementações baseadas em hardware, compreender a relação entre alguns operadores de imagem, possíveis extensões P.A.V. Miranda, aula 3 p.
Motivação Eficiência: A maioria dos operadores de imagem podem ser implementados em tempo linear e otimizações adicionais são possíveis com cálculo diferencial,e paralelo,e para algumas aplicações específicas. Simplicidade: Os operadores de imagem são reduzidos a escolha de poucos parâmetros no algoritmo da IFT e um processamento local de sua saída. P.A.V. Miranda, aula 3 p.
Quais problemas podem ser resolvidos? Transformadas de distância e operadores relacionados: Euclidean distance transform,multiscale skeletonization,fractal dimensions,shape filtering,shape saliences,shape description,geodesic paths, etc. Filtragem e segmentação de imagens: Morphological reconstructions, and image segmentation based on watershed transforms,live wire, riverbed, growcut by cellular automaton,and fuzzy-connected components. Reconhecimento de padrões: Data clustering,and supervised pattern classification. P.A.V. Miranda, aula 3 p.
Floresta de espalhamento Um mapa de predecessores é um função P que atribui para cada nó t em D I algum outro nó adjacente em D I, ou uma marca distintiva nil / D I caso em que t é dito ser uma raiz do mapa. Uma floresta de espalhamento é um mapa de predecessores que não contém ciclos isto é, um que leva cada pixel para nil em um número finito de iterações. Para qualquer pixel t D I, uma floresta de espalhamento P define um caminho π t recursivamente como t se P(t) = nil, e π s s,t se P(t) = s nil. P.A.V. Miranda, aula 3 p.
Floresta de espalhamento r s t P(t) t R(t) πt r π s (a) (b) (c) O predecessor P(t) de cada nó t leva a um nó raiz R(t) e P(R(t)) = nil. Um caminho π t é trivial quando π t = t (i.e., P(t) = nil). P.A.V. Miranda, aula 3 p.
Transformada Imagem-Floresta A IFT essencialmente generaliza o algoritmo de Dijkstra para funções de conexidade, onde para qualquer nó q D I, existe um caminho ótimo π q que é ou trivial, ou tem a forma π p p,q onde: (C) f(π p ) f(π q ), (C) π p é ótimo, e (C3) para qualquer caminho ótimo τ p, f(τ p p,q ) = f(π q ). Note que estas condições são aplicadas apenas a caminhos ótimos. P.A.V. Miranda, aula 3 p. 3
Algoritmo da IFT Algoritmo ALGORITMO GERAL DA IFT ENTRADA: Imagem Î = (D I, I), adjacência A, e função de conexidade f. SAÍDA: Imagens ˆP = (D I,P) de predecessores, e ˆV = (D I,V) de conexidade. AUXILIARES: Fila de prioridade Q, variável tmp, e vetor de estado inicialmente zerado.. Para Cadat D I, FaçaP(t) nil e V(t) f( t ). SeV(t) +, Então insira t em Q.. EnquantoQ, Faça 3. Remova um pixel s de Q cujo valor V(s) seja minimo. 4. estado(s).. Para Cadat A(s), tal que estado(t) =, Faça 6. tmp f(π s s,t ). 7. Setmp < V(t), Então. SeV(t) +, Então remova t de Q.. P(t) s, V(t) tmp, e insira t em Q. P.A.V. Miranda, aula 3 p. 4
3 3 3 7 P.A.V. Miranda, aula 3 p.
3 3 3 7 3 3 após iteração. P.A.V. Miranda, aula 3 p.
3 3 3 7 3 3 após iterações. P.A.V. Miranda, aula 3 p.
3 3 3 7 3 3 após 3 iterações. P.A.V. Miranda, aula 3 p.
3 3 3 7 3 3 após 4 iterações. P.A.V. Miranda, aula 3 p.
3 3 3 7 3 3 após iterações. P.A.V. Miranda, aula 3 p.
3 3 3 7 após 6 iterações. P.A.V. Miranda, aula 3 p.
3 3 3 7 após 7 iterações. P.A.V. Miranda, aula 3 p.
3 3 3 7 após iterações. P.A.V. Miranda, aula 3 p.
3 3 3 7 após iterações. P.A.V. Miranda, aula 3 p.
3 3 3 7 após iterações. P.A.V. Miranda, aula 3 p.
3 3 3 7 após iterações. P.A.V. Miranda, aula 3 p.
3 3 3 7 após iterações. P.A.V. Miranda, aula 3 p.
3 3 3 7 após 3 iterações. P.A.V. Miranda, aula 3 p.
3 3 3 7 após 4 iterações. P.A.V. Miranda, aula 3 p.
3 3 3 7 após iterações. P.A.V. Miranda, aula 3 p.
3 3 3 7 após 6 iterações. P.A.V. Miranda, aula 3 p.
3 3 3 7 3 3 após 7 iterações. P.A.V. Miranda, aula 3 p.
3 3 3 7 3 3 após iterações. P.A.V. Miranda, aula 3 p.
3 3 3 7 3 3 após iterações. P.A.V. Miranda, aula 3 p.
3 3 3 7 3 3 após iterações. P.A.V. Miranda, aula 3 p.
3 3 3 7 3 3 após iterações. P.A.V. Miranda, aula 3 p.
3 3 3 7 3 3 após iterações. P.A.V. Miranda, aula 3 p.
3 3 3 7 3 3 após 3 iterações. P.A.V. Miranda, aula 3 p.
3 3 3 7 após 4 iterações. P.A.V. Miranda, aula 3 p.
3 3 3 7 após iterações. P.A.V. Miranda, aula 3 p.
Resolvendo empates O que fazer quando um pixel é alcançado por dois ou mais caminhos de mesmo custo? Exemplos de tie-breaking. (a) Política FIFO. (b) Política LIFO. (c) Política FIFO com adjacência vizinhos-. P.A.V. Miranda, aula 3 p. 6
Estrutura da fila de prioridade t K K t 4 t 4 t t 6 K K t t t 3 t t 6 t t 3 (a) Estrutura de Dial para a fila Q. (b) Estrutura proposta por Falcão. P.A.V. Miranda, aula 3 p. 7