Você está na página 1de 30

Transformadas de Distncia

Adelailson Peixoto
peixoto@inf.puc-rio.br

Luiz Velho
lvelho@visgraf.impa.br

PUC-Rio.Inf.MCC 35/00 Setembro, 2000 Resumo


O clculo de transformadas de distncia tem aplicaes nas mais diversas reas da Computao Grfica. Uma das principais dificuldades no clculo de funes distncia est associada passagem do universo matemtico contnuo para o universo discreto. Isto porque um mesmo mtodo, quando estudado no mundo discreto, pode apresentar propriedades completamente distintas daquelas apresentadas do ponto de vista contnuo. Este trabalho discute alguns dos principais mtodos utilizados para o clculo de transformadas de distncia, dando nfase principalmente s aplicaes a dados matriciais (imagens e volumes). feita tambm uma discusso sobre propagao de interfaces, como uma forma de calcular a transformada de distncia. Palavras Chave. funes implcitas, curvas de nvel, propagao de interfaces, equaes diferenciais, volumes, codificao de voxels.

Abstract
The computation of distance transforms has applications in several areas of Computer Graphics. One of the main difficulties in computing a distance function involves the transition between the continuous and discrete universes. When studied in the continuous universe, a method may present completely different properties than those exhibited in the discrete universe. This work presents a general framework about distance transforms, emphasizing mainly raster data (images and volumes). We will also discuss the interface propagation problem as an approach to distance transforms. Keywords. implicit functions, level set, interface propagation, differential equations, volumes, voxel coding.

1-Introduo
Transformadas de Distncia representam poderosas ferramentas utilizadas no processamento de objetos grficos [6], nas mais diversas reas da Computao Grfica. 1.1-Objetivos A transformada de distncia T, aplicada a um objeto grfico O, calcula um campo escalar (ou vetorial) que representa distncias mnimas entre o objeto e os pontos do espao no qual ele est envolvido. A transformada T pode ser definida da seguinte maneira:
T (O ) = min dist ( p, pi ),
pi O

onde p representa pontos arbitrrios do espao, e dist representa uma funo distncia ou mtrica utilizada. Assim, para cada ponto p do espao, a transformada calcula a distncia de p ao ponto pi (pi pertence ao suporte geomtrico [6] ou borda de O) que est mais prximo de p. claro que com esta definio, para os pontos p situados na borda do objeto, tem-se T(O)=0. A figura 1 mostra a distncia mnima entre um ponto p (interno ao objeto O) e a borda do objeto e a distncia mnima entre um ponto q (externo) e o objeto.
U (Espao onde o objeto est definido)

q min dist p min dist


1

Figura 1: Distncia mnima. O resultado da transformada T aplicada a um objeto O depende da mtrica ou funo distncia dist, como ser visto mais adiante, no captulo 2. 1.2-Aplicaes So inmeras as aplicaes que envolvem o uso de transformadas de distncia, nas mais diversas reas da Computao Grfica. Em [4], o clculo de campos distncia aplicado a metamorfose de objetos 3D. Dentre as diversas aplicaes no processamento de dados volumtrcos, dois exemplos do uso de transformadas de distncia so: em alguns mtodos de reconstruo de superfcies a partir de um conjunto de sees bidimensionais e no clculo de esqueletos de objetos volumtricos.

No primeiro exemplo funes distncia so utilizadas como ferramentas para auxiliar na reconstruo de uma superfcie S, a partir de um conjunto de contornos fechados situados em fatias paralelas (figura 2). Nos chamados mtodos implcitos de reconstruo, a superfcie S definida como a isosuperfcie F=0, onde F uma funo implcita que pode ser calculada a partir de funes distncia definidas em cada fatia. Um survey dos mtodos de reconstruo de superfcies pode ser encontrado em [12].

z Fatia 3 z Fatia 2
Contornos

z Fatia 1 x y

a) Contornos sobre as fatias

b) Superfcie reconstruda

Figura 2: Reconstruo de uma superfcie a partir de contornos.

No segundo exemplo, funes distncia so fundamentais para o clculo de esqueletos (particularmente para o clculo de eixos mediais) dos objetos. O esqueleto formado pelos pontos internos que se encontram centralizados em relao borda do objeto, ou seja, que possuem distncia mxima da borda. Em [13] pode ser encontrado um survey com os principais mtodos de extrao de esqueletos de dados volumtricos. A figura 3, retirada de [19], mostra o esqueleto (pontos brancos centralizados) de um objeto volumtrico (intestino).

Figura 3: Esqueleto extrado de um objeto volumtrico.

2-Mtricas
O resultado da transformada de distncia aplicada a um objeto O depende de qual mtrica ou funo distncia ser utilizada. Dentre as vrias mtricas destacam-se: a mtrica euclidiana, a chessboard e a city block. 2.1-Mtrica Euclidiana Na mtrica euclidiana a funo distncia definida como

dist ( p, q) = ( p1 q1 ) 2 + ( p 2 q 2 ) 2 + ... + ( p n q n ) 2 ,
onde p= (p1, p2,, pn) e q= (q1, q2,, qn) so pontos do espao n-dimensional. Com esta definio a transformada T pode ser aplicada tanto a objetos do espao contnuo quanto a objetos do espao discreto (como o caso dos objetos volumtricos). Apesar de ser a mtrica ideal, pois trata das medidas reais dos espaos euclidianos, e consequentemente apresenta excelentes resultados nas aplicaes, h algumas incovenincias computacionais com o uso da mtrica euclidiana. O problema de utilizar a transformada de distncia com tal mtrica para objetos discretizados que nem algoritmicamente fcil implement-la, nem seu clculo computacional eficiente, j que envolve o clculo de quadrados e razes. A figura 4 mostra o resultado da transformada de distncia com a mtrica euclidiana aplicada a um objeto 2D (uma imagem binria, onde pixels brancos, com valor 1, representam o objeto e pixels pretos, com valor 0, representam o background). O resultado (figura 4b) uma outra imagem onde o valor de cada pixel representa sua distncia euclidiana borda do objeto.

a) Imagem binria original

b) Tranformada distncia com mtrica euclidiana

Figura 4: Transformada de distncia com mtrica euclidiana. Devidos s dificuldades de implementao e eficincia da mtrica euclidiana, muitas aplicaes a substituem por mtrica regulares, como a city block e a chessboard, que possuem um clculo computacional mais eficiente e so de fcil implementao [10]. A seguir estas mtricas so definidas.

2.2-Mtrica City Block Nesta mtrica, tambm conhecida como mtrica de Manhattan, a funo dist definida como dist ( p, q) =| p1 q1 | + | p 2 q 2 | +...+ | p n q n | . Assim a norma de um vetor dada pela soma de suas componentes em cada eixo principal. A grande utilidade desta mtrica surge quando aplicada a problemas em espaos discretados. Neste caso h uma interpretao interessante sobre a mtrica city block: quando aplicada a objetos do espao discreto, esta mtrica assume que, para ir de um ponto p a um ponto q, s possvel andar nas direes dos eixos principais do sistema de coordenadas onde o objeto est definido (no permitido andar nas direes diagonais). Esta observao fica clara quando o objeto considerado uma imagem 2D ou um dado volumtrico. Conforme descrito abaixo, no caso de imagens esta mtrica define a topologia 4-conectado e no caso de volumes, define a topologia 6-conectado. No caso de imagens, onde um pixel p possui 8 pixels adjacentes (4 que compartilham uma aresta e 4 que compartilham um vrtice com p) esta mtrica determina que, saindo do pixel p s possvel andar nas direes dos pixels que compartilham uma aresta (figura 5a). Assim, se um pixel q compartilha uma aresta com p, ento dist(p,q)=1 e q um pixel vizinho a p. Se q compartilha um vrtice com p, ento dist(p,q)=2 (q no vizinho de p). Por esta razo a mtrica city block tambm referenciada como mtrica 1-2, no sentido de que, dado um ponto p, seus pixels adjacentes por aresta tm distncia 1 (pixels vizinhos) e seus pixels adjacentes por vrtices tm distncia 2. Como cada pixel possui 4 pixels vizinhos (por aresta), esta mtrica define a topologia 4-conectado. Para calcular a distncia entre dois pixels quaisquer basta ir andando nas direes permitidas (horizontal e vertical) e contar a quantidade de pixels percorridos entre a origem e o destino. Na figura 5a a distncia entre p e q 5. A figura 5b mostra a transformada de distncia usando a mtrica city block, aplicada imagem da figura 4a.
q

Pixels adjacentes a p Caminho entre p e q

a) Pixels vizinhos: topologia 4-conectado

b) Campo distncia gerado pela transformada

Figura 5: Transformada de distncia usando a mtrica city block.

No caso de um dado volumtrico, cada voxel pode conter at 26 voxels adjacentes (6 por faces, 12 por arestas e 8 por vrtices). Partindo de um voxel p s possvel seguir nas

direes dos seus voxels adjacentes por face. Assim, se um voxel q compartilha uma face com p, ento dist(p,q)=1 (q vizinho de p). Se q compartilha uma aresta com p, ento dist(p,q)=2 e se q compartilha vrtice com p, ento dist(p,q)=3. Como dois voxels s so vizinhos se compartilharem uma face, ento diz-se que esta mtrica define a topologia 6conectado. A figura 6 mostra um voxel com seus seis vizinhos. No caso 3D esta mtrica tambm conhecida como mtrica 1-2-3, no sentido de que voxels que compartilham uma face tm distncia 1 (voxels vizinhos), voxels que compartilham uma aresta tm distncia 2 e voxels que compartilham um vrtice tm distncia 3.

Figura 6: Mtrica city block definindo topologia 6-conectado. 2.3-Mtrica Chessboard Na mtrica chessboard a funo dist definida como dist ( p, q) = max(| p1 q1 |, | p 2 q 2 |,..., | p n q n |). Assim a norma de um vetor definida como sendo a sua maior componente. Assim como a mtrica city block, a maior motivao para o uso da mtrica chessboard est voltada s aplicaes discretas, uma vez que ambas procuram substituir a mtrica euclidiana. A interpretao desta mtrica, quando aplicada a objetos do espao discreto, que, para ir de um ponto p a um ponto q, permitido se deslocar em todas as direes. Conforme descrito abaixo, no caso de imagens esta mtrica define a topologia 8-conectado e no caso de volumes, define a topologia 26-conectado. A principal motivao para o nome dessa mtrica vem das aplicaes discretas 2D, onde, saindo de um pixel p possvel fazer os movimentos que um rei faz em um tabuleiro de xadrez. Portanto permitido andar tanto nas direes dos eixos principais (horizontal e vertical) quanto nas direes diagonais (figura 7a). Devido a isto, um pixel p possui 8 pixels vizinhos: os 4 vizinhos por aresta (direes horizontal e vertical) e os 4 vizinhos por vrtices (direes diagonal). Diz, ento que esta mtrica define a topologia 8conectado. No caso 2D a mtrica chessblock tambm chamada de mtrica 1-1, no sentido de que, dado um ponto p, tanto os pixels que compartilham arestas quanto os que compartilham vrtices com p possuem distncia 1. A figura 7b mostra a transformada de distncia usando a mtrica chessboard, aplicada imagem da figura 4a. No caso 3D discreto, partindo de um voxel p permitido seguir em qualquer direo, ou seja, nas direes dos 6 voxel que compartilham uma face, na direo dos 12 voxels que

compartilham uma arestas e na direo dos 8 voxels que compartilham um vrtice, totalizando 26 direes possveis. Portanto, qualquer vizinho (por face, aresta ou vrtice) vizinho a p (ou seja possui distncia 1). Diz-se ento que, a mtrica chessblock define a topologia 26-conectado. No caso 3D esta mtrica tambm chamada de mtrica 1-1-1, pois os vizinhos de um voxels p possuem distncia 1 em relao aos vizinhos por faces, por arestas e por vrtices.

Pixels adjacentes a p

a) Pixels vizinhos: topologia 8-conectado

b) Campo distncia gerado pela transformada.

Figura 7: Transformada de distncia usando a mtrica city block. 2.4-Mtrica nf - na - nv A mtrica 1-2-3 (city block 3D discreta) e a mtrica 1,1,1 (chessblock 3D discreta) podem ser vistas como casos particulares da mtrica discreta nf-na-nv, onde, dado um voxel p, nf representa a distncia entre p e seus voxels adjacentes por face, na representa a distncia entre p e seus voxels adjacentes por aresta e nv a distncia entre p e seus voxels adjacentes por vrtices. claro que no caso 2D a mtrica nf-na-nv referenciada simplesmente como mtrica na-nv. Dois exemplos de mtricas nf-na-nv bastante utilizadas so a mtrica 2-3-4 [5] e a mtrica 3-4-5 [2 ]. 2.5-Codificao de Voxels Nas aplicaes a imagens binrias, a transformada de distncia resulta em uma nova imagem onde o valor de cada pixel indica sua distncia a um determinado conjunto de pixels iniciais da imagem. Nas figuras 4b, 5b e 7b o conjunto de pixels iniciais a borda da circunferncia definida na figura 4a. Da mesma forma, quando a transformada aplicada a um volume binrio, o resultado tambm um volume, onde o valor de cada voxel contm informao do campo distncia gerado. A aplicao da transformada aos voxels do volume feita atravs de um processo chamado codificao de voxels (no caso de uma imagem, chama-se codificao de pixels, porm o processo o mesmo e ser generalizado como codificao de voxels).

Codificao dos voxels de um objeto volumtrico O uma operao, definida a partir de uma mtrica, que se propaga recursivamente voxel a voxel do volume. Esta operao comea a ser aplicada em um conjunto inicial de voxels V0 (V0O) e se espalha pelos demais voxels de O, at que uma condio de parada seja atingida. Aps a codificao dos voxels do volume ser gerada, tem-se ento o campo distncia definido. No caso de uma imagem, a codificao se d por um processo de propagao, semelhante evoluo de uma frente em chamas, que avana sobre uma regio coberta de gramas. O conjunto V0 pode ser comparado borda da regio, onde algum ps fogo (frente inicial) e a partir da a chama vai avanando (frente evoluindo). Uma vez que um pixel visitado, um valor (cdigo do pixel) associado a ele, indicando sua distncia ao conjunto inicial V0 (frente inicial). Assim, a codificao de voxels pode ser interpretada como a evoluo de uma interface (por exemplo, o fogo) sobre um meio (por exemplo, a grama). Esta comparao, estudada mais adiante, ser til na tentativa de encontrar novas solues para os problemas que envolvem transformada de distncia. A operao de propagao de voxels usando a mtrica nf-na-nv pode ser descrita como se segue: primeiro, todos os voxels do objeto O so codificados com o valor infinito, em seguida todos os voxels do conjunto V0 so codificados com o valor zero (incio da propagao) (figuras 8a e 9a). A todos os vizinhos dos voxels de V0 por faces associado o valor nf, a todos os vizinhos por arestas associado o valor na e a todos os vizinhos por vrtices associado o valor nv (figuras 8b e 9b). Durante a propagao, todos os voxels com um determinado cdigo n so processados ao mesmo tempo. Assim, se voxels com valor n so processados, aos seus vizinhos por face, por aresta e por vrtice so associados os valores n+nf, n+na e n+nv, respectivamente, caso estes valores sejam menores do que os valores correntes dos voxels vizinhos. Este processo de codificao continua at que sejam atingidas as condies de parada. A escolha do conjunto de voxels iniciais V0 depende das caractersticas que se deseja extrair da codificao. A seguir so escolhidos dois conjuntos distintos para V0, que resultam em campos escalares com caractersticas diferentes: Boundary Field e Single Field [19].

Boundary Field. O conjunto V0 composto pelos voxels que formam a borda do objeto. A codificao gerada nos voxels forma um campo escalar distncia tradicional, chamado Bounday Field (este campo foi gerado nas figuras 4b, 5b e 7b, com as mtricas euclidiana, city block e chessboard, respectivamente). O cdigo gerado para cada voxel interno indica sua distncia borda do objeto e ser chamado boundary-code. Os voxels centralizados, em relao ao objeto, possuem cdigo mximo. Estas informaes so fundamentais para a extrao de esqueletos de objetos volumtricos [13]. A figura 8c mostra um exemplo de boundary field, com a mtrica 3-4. importante observar que a mtrica selecionada, ou seja a escolha dos valores de nf, na e nv, influencia no campo distncia gerado. Alguns trabalhos que utilizam o boundary field,

para extrao de esqueletos de dados volumtricos, podem ser encontrados em mostrados em [18] e [19].

Single Field. O conjunto V0 formado por um nico voxel inicial v0. A codificao gerada nos voxels forma um campo escalar distncia, chamado Single Field. O cdigo gerado para cada voxel interno indica sua distncia ao voxel inicial v0 e ser chamado single-code. A figura 9c mostra um exemplo de single field, com a mtrica 1-2. Se o objeto formado por partes desconexas, necessria a escolha de um ponto inicial v0 para cada parte desconexa.
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 3 3 3 4 4 4 3 3 4 30 0 30 30 30 30 4 300 4 3 3 3 3 3 3 0 0 0 0 0 0 0 3 3 0 4 3 3 34 0 0 3 0 0 0 0 0 3 3 34 4 33 30 0 0 0 0 0 0 0 0 0 0 3 33 3 30 0 34 66 64 3 3 4 4 3 3 3 34 34 30 0 0 0 3 330 0 3 30 0 3 30 0 330 0 0 3 3 4 30 0 3 3 4 3 4 4 3 34 33 0 33 3 3 30 0 0 0 0 00

0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0

0 0 3 3 3 3 3 3 3 3 0

0 30 4 3 3 4 3 3 4 3 3 0 0

0 3 3 3 3 3 0

0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 30 0 4 30 0 34 3 0 3 6 30 3 6 30 4 6 3 0 3 3 3 0 0 0 0

a) Pontos do objeto (s) e conjunto inicial V0 (0s)

b) Resultado do processamento dos pixels de cdigo 0.

c) Campo distncia final

Figura 8: Campo escalar Boundary Field, usando a mtrica 3,4.

O campo single field pode ser utilizado, por exemplo, para extrao do menor caminho entre dois voxels (ou pixels) v1 e v2, como mostrado em [18]. Este problema envolve duas etapas: a primeira etapa a gerao do single field, utilizando v2 como ponto inicial (ou seja v2 = v0). A segunda etapa extrai o caminho mais curto: v1 escolhido como o primeiro voxel do caminho e o prximo voxel escolhido o vizinho de v1 que contm o menor cdigo. Recursivamente, o prximo voxel escolhido de maneira semelhante, como sendo o vizinho, com menor cdigo, do voxel escolhido anteriormente. O ltimo voxel escolhido ser exatamente o v2, que possui o menor single-code, ou seja, 0.
13 14 15 16 17 18

6 5 4 3 2 1 0

7 6 5 4 3 2 1 2

7 6 5 4 3 2 3 4

7 6 5 4 5 34 45 56

6 7 56 6 7 7

10 1112 13 14 15 16 17 9 10 1112 13 14 15 16 17 7 8 9 10 1112 13 14 15 16 17 19 6 7 8 9 101112 13 14 15 16 17 18 56 7 8 13 14 15 16 17 12 13 14 15 16 4 56 7 34 5 6 1112 13 14 15 8 9 10 1112 13 14 2 34 5 1 2 3 4 5 6 7 8 9 101112 13 0 1 2 3 4 5 6 7 8 9 10 11 2 345 6 7 8 9 4 5 6 7 8

a) Pontos do objeto (s) e conjunto inicial V0 (0)

b) Resultado aps o processamento dos pixels de cdigo 5.

c) Campo distncia final

Figura 9: Campo escalar Single Field, usando a mtrica 1,2.

3-Propagao de Interfaces
Como visto no captulo anterior, a codificao de voxels, durante o clculo da transformada de distncia sobre um objeto matricial, pode ser comparada a uma frente em chamas se propagando sobre uma regio coberta de gramas. Esta comparao pode ser bastante til, no sentido de que o clculo da transformada de distncia pode recorrer Teoria de Evoluo de Interfaces (a frente em chamas se propagando uma interface), numa tentativa de encontrar novas solues para suas aplicaes. Este captulo relaciona propagao de interfaces a transformadas de distncia, mostrando quais as vantagens de se usar esta abordagem para o clculo de campos escalares distncia. 3.1- Propagao de Interfaces e Campos Distncia Baseado na Teoria das Leis da Conservao Hiperblica (Apndice), Sethian [15][16] desenvolveu alguns mtodos numricos eficientes para a anlise e clculo de propagao de interfaces: o Mtodo Level Set e o Mtodo Fast Marching, que sero estudados adiante. O mtodo Level Set pode ser aplicado a propagao de interfaces de forma mais genrica, enquanto o mtodo Fast Marching aplicado a casos mais especficos de propagao, dentre eles no caso em que a interface em evoluo uma funo distncia. Uma das grandes vantagens da utilizao destes mtodos que eles so baseados em formulaes contnuas e, portanto, o mtodo Fast Marching pode ser utilizado para propagar campos escalares distncia em objetos contnuos. Os campos distncia Boundary Field e Single Field (seo 2.5) so decorrentes da mtrica nf-na-nv, ou seja, so aplicados a objetos j discretizados. Isto dificulta a utilizao destes mtodos, principalmente nos problemas que envolvem reconstruo dos objetos, uma vez que o ponto de partida j foi um objeto discreto. Como o mtodo Fast Marching definido a partir de formulaes contnuas, ele muito til para o clculo de campos distncia onde necessria a reconstruo do objeto. A seguir sero vistas as formulaes de propagao de interfaces que originam o Mtodo Fast Marching. 3.2- Formulaes da Propagao de Interfaces Uma interface pode ser geometricamente considerada uma curva ou uma superfcie que separa dois meios que esto interagindo entre si. Ou seja, a interface diz respeito borda ou fronteira que separa os dois meios. Suponha que a interface esteja se movendo em direo a sua normal, com uma dada velocidade F. A figura 10 mostra uma interface separando dois meios. A curva circular pode ser considerada, por exemplo, um cido corroendo um material (regio entre o retngulo e o crculo), onde o interior do crculo representa ausncia de material. A velocidade da corroso depende da resistncia que o

10

cido encontra, ou seja, nas partes mais resistentes a velocidade da corroso menor do que em outros locais. Interface

Figura 10: Interface separando dois meios. Outro exemplo que o crculo pode ser considerado uma interface que separa duas regies: a regio 1 (interior do crculo), formada pelos pontos cuja distncia ao centro do crculo menor ou igual ao seu raio e regio 2 (entre o circulo e o retngulo), formada pelos pontos cuja distncia ao centro do crculo maior que seu raio. O aumento do raio do crculo significa que a regio 1 est se propagando sobre a regio 2. De um modo geral, a velocidade de propagao F pode depender de vrios fatores: Propriedades Locais so aquelas que dependem da geometria local curva, como curvatura, vetor normal, etc. Propriedades Globais so aquelas que dependem da forma, posio e caractersticas especficas de uma determinada interface. Propriedades Independentes so aquelas que dependem do posicionamento da interface, como por exemplo, um fluido no qual a interface est sendo conduzida.

Como este trabalho usa propagao de interfaces como uma forma de propagar distncias, sero considerados apenas os casos em que a velocidade da propagao depende apenas de propriedades locais, como curvatura e normal (mais especificamente, os caso onde a velocidade constante, conforme ser visto posteriormente). Existem duas maneiras bsicas de formular o problema de evoluo de interfaces: formulao do valor de borda e formulao do valor inicial, usadas para definir, respectivamente, o Mtodo Fast Marching e o Mtodo Level Set.

3.2.1 Formulao do Valor de Borda No caso de a interface da figura 10 ser considerada um cido corrosivo, medida que o tempo passa, a tendncia que o tamanho do crculo aumente, uma vez que a corroso feita apenas no sentido crculo-retngulo. No caso de o exemplo representar a propagao do campo distncia, quanto mais o crculo avana sobre o retngulo, mais o campo distncia se propaga. Nestes exemplos, o sentido de propagao da interface sempre o mesmo, ou seja, a velocidade no muda de sinal, sempre positiva. Com isto, a cada instante a interface ocupa uma nova posio, uma vez que est sempre avanando. Assim pode-se formular uma funo T que associa a cada posio do espao uma nova curva.
11

A formulao do valor de borda pode ser colocada da seguinte forma: Assim, partindo de uma curva ou interface inicial (instante inicial zero), a cada instante T a interface vai evoluindo, ocupando uma nova posio no espao (figura 11a), ou seja, h um tempo T associado a cada nova interface resultante da evoluo. Com isto cada curva pode ser vista como uma curva de nvel de uma funo tempo T (figura 11b). A motivao do nome formulao do valor de borda surge do fato de que, a cada instante T que se deseja saber onde a interface se encontra, basta tomar a borda da superfcie T(x,y) na altura T, conforme mostra a figura 11b.

Curva Inicial

T =2 T =1 T =0 Curva Inicial y

T =0 T =1 T =2 x

a) Evoluo da curva em cada instante

b) Evoluo vista como uma superfcie T(x,y)

Figura 11: Propagao de interface vista com a formulao do valor de borda. No caso unidimensional a funo T facilmente deduzida. Como em uma dimenso distncia = velocidade * tempo, ento 1= F dT/dx. Esta notao pode ser estendida para mltiplas-dimenses como |T| F = 1. Esta equao chamada de equao Eikonal. Esta formulao define o mtodo Fast Marching (seo 3.3), usado para resolver numericamente a propagao de interfaces, no caso de a velocidade ser positiva. No caso de a velocidade ser constante, este mtodo pode ser aplicado para calcular a propagao do campo distncia.

3.2.2 Formulao do Valor Inicial A formulao do valor inicial aplicada quando a velocidade de propagao da interface pode alterar o sinal. Por exemplo, na figura 10, seja o interior do crculo considerado um bloco de gelo dentro de um recipiente com gua (entre o crculo e o retngulo). A borda do gelo (interface de interao) pode diminuir se a temperatura da gua aumentar e pode aumentar caso a temperatura diminua, ou seja, a velocidade de propagao da interface depende da diferena de temperatura entre o gelo e gua. Neste caso a interface pode

12

avanar ou recuar, ou seja, a velocidade de propagao pode ser positiva ou negativa. Portanto esta formulao mais genrica do que a do valor de borda. Como a interface pode avanar ou recuar, possvel que ela passe pela mesma posio em instantes diferentes. Portanto no possvel definir uma funo temporal T que associa a pontos do espao uma interface. Na formulao do valor inicial a interface original considerada o conjunto de nvel zero de uma funo . A evoluo da interface ento associada a variaes aplicadas funo . Assim, como tambm varia com o tempo, ela definida em funo dos parmetros da interface e em funo do tempo. Por exemplo, se a interface uma curva evoluindo no plano, a funo definida como (x,y,t), onde t representa o eixo do tempo. Para aplicar uma propagao curva no instante t basta calcular , neste instante t, e tomar sua curva de nvel zero, que sempre ir corresponder curva evoluda (figura 12).
(x,y,2) y x x y x (x,y,0) =0

y =0

(x,y,1)

y x =0

Figura 12: Propagao de interface vista com a formulao do valor inicial. primeira vista, pode parecer incoerncia transformar um problema de propagao de curva em um problema de propagao de superfcie (). A questo que a funo ser sempre bem comportada, mesmo nos casos onde a interface, ao evoluir, altera completamente sua topologia, como se dividir em duas novas curvas ou se houver fuso de duas curvas em uma, como mostra a figura 13. Para acessar a curva evoluda em qualquer instante T, basta tomar a curva de nvel zero de (x,y,T). Matematicamente a formulao do valor inicial pode ser definida a partir da equao (x(t), t)=0 (onde x(t) representa o espao de propagao da interface em qualquer dimenso), j que a interface evoluda corresponde aos valores onde se anula. Derivando esta equao, pela regra da cadeia, ento t + (x(t),t).x(t) = 0. Como F=x(t).n e n=/||, ento t + F|| = 0,

13

Esta formulao utilizada para definir o Mtodo Level Set. Como este mtodo no aplicado a propagao de campos distncias, este trabalho no far uma abordagem sobre o mesmo. O leitor interessado pode consultar a referncia [16].

(x,y,t1)

(x,y,t2)

y y x x

a) Instante t1: interface contm duas partes

b) Instante t2: a interface se propagou e contm uma parte

Figura 13: Mudana topolgica de uma interface durante sua propagao.

3.3- Evoluo de Curvas Nesta seo sero discutidos alguns aspectos da velocidade de propagao de interfaces e como esta velocidade deve ser formulada, de modo que a propagao possa ser utilizada para o clculo de distncias. Seja uma curva paramtrica (s) = (x(s), y(s)), simples e suave. Considere-se que a curva esteja movendo em direo a sua normal, com uma velocidade F. O objetivo descrever o movimento da curva durante a sua evoluo. A curva (s) pode ser considerada como uma interface que separa dois meios. A evoluo da curva pode ser definida a partir da parametrizao dada por (s,t), onde s o parmetro da curva (0<s<S) e t o parmetro da evoluo (figura 14a). Sem perda de generalidade, a teoria de evoluo de curvas pode ser estendida para evoluo de superfcies.
(x(s,t), y(s,t)) + (xt , y t )

(x(s,t), y(s,t))

(x , t y ) t

Fn = (xt , y t )

s
a) Parametrizao da evoluo da curva b) Clculo da evoluo

Figura 14: Evoluo da curva.

14

Durante a evoluo, para cada valor de t, h uma nova curva (s,t) gerada pela parametrizao da evoluo. No instante t da evoluo, cada ponto (s,t) = (x(s,t), y(s,t)) sofrer um deslocamento atravs do vetor (xt(s,t) , yt(s,t)) = F(k(s,t)) n(s,t), ou seja: onde k = (yssxs - xssys) / (xs2 + ys2)3/2 a expresso paramtrica da curvatura, dentro da funo velocidade F(k) e o vetor normal dado por n =(ys , -xs) / (xs2+ys2)3/2. Assim, a nova posio do ponto (x(s,t), y(s,t)) ser (x(s,t), y(s,t)) + (xt,yt) (figura 14b). Esta formulao uma representao Lagrangeana do movimento da curva, pois os valores de (x(s,t), y(s,t)) descrevem tal movimento.

y x x y x y t = F ss 2 s 2 ss3 2s 2 s 2 1 2 , (x + y ) s ( x s + y s ) s y x x y y x t = F ss 2 s 2 ss3 2s 2 s 2 1 2 ( x s + y s ) ( x s + y s ) ,

Quando a velocidade de propagao F constante, todos os pontos da curva se deslocam de uma mesma distncia. Assim, todos os pontos da nova curva evoluda situam-se a uma mesma distncia da curva anterior. justamente essa situao que interessa para o clculo de propagao de distncias. Portanto, nos mtodos para propagao de interfaces, a velocidade F ser constante. Exemplo1. Durante a evoluo, uma curva pode, em tempo finito, perder sua suavidade. Por exemplo [16], seja a curva definida por (s,0) = (1-s, (1+cos 2s)/2) se propagando com velocidade constante F=1. Em cada instante t, a soluo pode ser obtida avanandose cada ponto da curva a uma distncia t, na direo da sua normal, ou seja:
x ( s, t ) = y s ( s, t = 0) t + x ( s, t = 0), ( x ( s, t = 0) + y s2 ( s, t = 0))1 2
2 s

y ( s, t ) =

x s ( s , t = 0) t + y ( s, t = 0). ( x ( s, t = 0) + y s2 ( s, t = 0)) 1 2
2 s

Como mostrado na figura 15a, ao evoluir, a frente apresenta pontos no diferenciveis (bicos), onde a normal no est definida e, portanto no est claro como a evoluo deve prosseguir. Nestes pontos a frente desenvolve uma cauda em tempo finito. Dependendo da aplicao de evoluo de curvas, o resultado da figura 15a pode ser considerado correto, porm, como o objetivo usar propagao de interfaces para clculo de distncias, em um determinado instante t, a frente deve ser formada apenas pelo conjunto de pontos localizados a uma distncia t da curva inicial e, portanto a soluo correta seria considerar a evoluo da figura 15b. Portanto, de um modo geral, a soluo correta depende da natureza da interface em discusso. Como o objetivo deste trabalho usar evoluo como propagao de distncia, situaes ambguas como da figura 15a devem ser evitadas.

15

Como encontrar ento uma soluo sem ambigidade, como a da figura 15b, uma vez que as frmulas de evoluo, descritas acima, levam naturalmente soluo ambgua (da figura 15a)? Sethian [14] definiu e estabeleceu uma condio de entropia para resolver tal problema. Entropia se refere organizao das informaes da interface, medida que ela evolui. Em termos gerais, uma condio de entropia utilizada para que nenhuma nova informao (como a cauda da figura 15a) possa ser criada, durante a evoluo. Direcionando o problema de evoluo de curvas para o clculo de distncias, a questo agora saber sob que condies (condies de entropia) uma curva, se propagando com velocidade constante, fornece a soluo correta para a propagao de distncia (j que os clculos acima levam soluo errada da figura 15a). A prxima seo e o apndice descrevem tais condies. Para aplicar a condio de entropia, Sethian recorreu s leis da conservao hiperblica [7][8], como mostra o apndice.

a) Evoluo com criao de novas informaes

b) Evoluo com condio de entropia

Figura 15: Propagao da curva com velocidade unitria. 3.3.1 Efeitos da Curvatura na evoluo Como dito antes, sero considerados apenas os casos de evoluo onde F constante. Porm, para tentar resolver o problema dos bicos, surgidos no Exemplo 1, importante analisar um caso mais geral, onde a velocidade depende da curvatura e dada por F(k)=1- k ( uma constante real e 0). Se =0, a velocidade constante (como no Exemplo 1, onde F(k)=1) e a curva no se mantm suave durante a evoluo, ou seja, em algum momento perde a diferenciabilidade, desenvolvendo bicos. Como nestes bicos o vetor normal no est definido, no est claro como a evoluo deve prosseguir e podem aparecer novas informaes (como a cauda), e seria necessria a condio de entropia para que a curva evolua corretamente. Seja agora >0, ou seja, F(k) = 1- k e no constante. A incluso do termo k altera profundamente a forma como a curva evolui e este termo que dir como esquemas numricos eficientes sero construdos, para auxiliar na correta condio de entropia.

16

Para uma melhor compreenso dos efeitos da curvatura, analisemos a equao diferencial (evoluo da curvatura) kt = k + k3 k2 [14], que descreve como a curvatura se comporta durante a evoluo da curva. A segunda derivada de k tomada em relao ao comprimento de arco . Segundo Sethian [14], o termo (k3 k2) responsvel pelas singularidades (bicos) geradas na curva, porm balanceado pelo termo (k), que responsvel por suavizar a curva. Exemplo 2. Seja a evoluo da funo cosseno, definida no Exemplo 1. Suponha agora que a funo velocidade seja F(k) = 1- k. Considerando =0, a curva vai evoluir de maneira anloga figura 15a, ou seja, vai desenvolver bicos, pois F(k)=1. Isto ocorre por que, como =0, a equao de evoluo da curvatura contm apenas o termo que cria singularidades (a equao de evoluo ser kt = k2). Considerando agora >0, a equao de evoluo da curvatura conter tambm o termo (k) que suaviza a curva durante a evoluo. A figura 16a mostra a evoluo da curva cosseno com a velocidade F(k) = 1 - 0.025k e a figura 16b mostra a mesma curva com velocidade F(k) = 1 - 0.25k.

a) F(k) = 1 0.025k

b) a) F(k) = 1 0.25k

Figura 16: Propagao onde a curva se mantm suave. Assim, pode-se concluir que quanto menor o valor de menor ser a contribuio do termo (k) e, portanto, a evoluo tende a ser menos suave (figura 16a). Quanto maior o valor de , maior ser a contribuio do termo (k) e mais suave ser a evoluo (figura 16b). Em [14] Sethian mostra que quando >0, a curva se mantm infinitamente diferencivel, ou seja, C. Nenhuma das duas condies (=0 e >0) pode ser utilizada para calcular distncias a partir de evoluo de curvas, pois se =0, a curva desenvolve bicos(figura 15a) e se >0, a velocidade no constante (figura 16). A correta soluo pode, ento, ser postulada pela condio abaixo: Soluo de Entropia: o limite de uma propagao com curvatura (onde F(k) = 1- k), quando 0, igual a uma propagao com velocidade constante (F(k) = 1). Assim, para se obter a evoluo da figura 15b, atravs da condio de entropia, deve-se usar a funo velocidade F(k) = 1 - k, fazendo tender a 0.

17

4-Mtodos Numricos: Fast Marching


Este captulo discute mtodos numricos para propagar interfaces. Dentre estes mtodos, destaca-se o Fast Marching que, alm de ser bastante eficiente, pode ser aplicado em propagao de distncias, quando a propagao feita com velocidade constante. Por fim mostrado um exemplo [3], que utiliza o Mtodo Fast Marching com este fim. 4.1-Alguns Mtodos Numricos Os mtodos numricos para evoluo surgem a partir de suas formulaes no universo contnuo. Assim, as formulaes mostradas nas sees 3.2.1, 3.2.2 e 3.3 so utilizadas para definir alguns destes mtodos. importante destacar que a presente seo procura discutir a importncia destes mtodos para o clculo de propagao de distncias. 4.1.1 Formulao Lagrangeana Na formulao Lagrangeana (seo 3.3), considerando a propagao com velocidade constante (F=1), a evoluo calculada atravs das equaes

xt =

ys , ( x + y s2 ) 1 2
2 s

yt =

xs , ( x + y s2 ) 1 2
2 s

Como a velocidade constante, esta evoluo produz um campo distncia. Para definir um mtodo numrico de evoluo basta discretizar estas equaes. O intervalo de parametrizao da curva [0,S] dividido em M intervalos de tamanho s, produzindo M+1 amostras si = i.s (i=0, , M). Tambm feita uma discretizao do tempo em intervalos de tamanho t. O valor da curva em movimento, em cada ponto i.s e no instante n.t, dado por in=(xin,yin). O objetivo numericamente calcular os novos valores (distncias) de in+1 = (xin+1, yin+1), produzidos pela evoluo. As derivadas parciais em relao a s podem ser numericamente resolvidas como (central difference): xs (xi+1n xi-1n)/2s, ys (yi+1n yi-1n)/2s,

As derivadas parciais em relao ao tempo podem ser aproximadas por (forward difference): xt (xin+1 xin)/t e yt (yin+1 yin)/t. Substituindo estas derivadas nas frmulas de evoluo (xt,yt) acima, e rearrumando os termos, obtm-se a expresso numrica para o clculo da evoluo: (x
n +1 i

,y

n +1 i

( y in+1 y in1 , x in1 + x in+1 ) ) = ( x , y ) + t , (( x in+1 x in1 ) 2 + ( y in+1 y in1 ) 2 ) 1 / 2


n i n i

18

A expresso numrica que calcula a evoluo pode agora ser aplicada para calcular a nova distncia (xin+1,yin+1) a partir de pontos (xin, yin). O problema maior na aplicao deste mtodo est na instabilidade dos resultados. Se a distncia s muito pequena as amostras da curva ficam muito prximas e o quociente do segundo membro da equao da evoluo pode ficar muito prximo a zero. Isto causa uma grande instabilidade numrica na propagao da distncia. A prxima etapa da propagao, ento, j seria calculada sobre estes erros, causando uma drtica propagao do erro. importante lembrar tambm que, como no est sendo aplicada nenhuma condio de entropia, este mtodo ainda pode gerar resultados semelhantes ao da figura 15a, o que tornaria errada a soluo da propagao de distncia. 4.1.2 Mtodo Level Set O mtodo Level Set aplicado aos casos onde podem ocorrer mudanas na sinal da velocidade. Por esta razo ele no aplicado ao clculo de propagao de distncias. Apesar disto, alguns trabalhos, como [3], utilizam o Level Set como uma etapa de prprocessamento para o clculo de distncia. Por isto sero feitos alguns comentrios sobre este mtodo. O mtodo numrico Level Set foi desenvolvido a partir da formulao do valor inicial, apresentada na seo 3.2.2, onde a interface em evoluo sempre o conjunto de nvel zero de uma funo , que tambm evolui em funo do tempo e a equao de evoluo dada por t + F||=0. Esta equao um caso particular da equao de Hamilton-Jacobi Ut +H(Ux,Uy,Uz) = 0, onde =1 e H()=F||. Conforme mostrado no apndice, a equao de HamiltonJacobi pode ser resolvida numericamente a partir de mtodos de leis de conservao hiperblica [16]. A partir da soluo da equao de Hamilton-Jacobi, que j inclui as condies de entropia, o Mtodo Level Set definido atravs da equao: ijkn+1=ijkn - t.[max(Fijk,0)+ + min(Fijk,0)-], onde
+ =[max(Dijk-x,0)2 +min(Dijk+x,0)2 +max(Dijk-y,0)2 +min(Dijk+y,0)2 +max(Dijk-z,0)2 +min(Dijk+z,0)2 ]1/2, - =[max(Dijk+x,0)2 +min(Dijk-x,0)2 +max(Dijk+y,0)2 +min(Dijk-y,0)2 +max(Dijk+z,0)2 +min(Dijk-z,0)2 ]1/2

e Dijk-x = (ijk i-1,j,k)/x e Dijk+x = (i+1,jk ijk)/x. Dijk-y, Dijk+y, Dijk-z e Dijk+z so definidos de maneira anloga. Neste mtodo definida uma grade, onde o valor associado a cada elemento da grade representa o valor da funo , em um determinado instante da evoluo. Em um instante posterior, para aplicar a evoluo, todos os valores da grade so atualizados. A interface, alvo da propagao propriamente dita, sempre representada pelos pontos da grade, onde =0. A figura 17 mostra a evoluo de uma curva ijn no plano. Os valores associados aos pontos (i,j) da grade representam curvas de nvel da funo ijn (da o

19

nome deste mtodo ser Level Set), de modo que a curva ijn sempre representada pela curva de nvel ijn=0.
n+1 superfcie ij

n+1 n+1 ij ( ij =0 )

plano =0

Instante(n+1) t j i

t
n superfcie ij

n n ij ( ij =0 )

Instante nt

j plano =0

Figura 17: Mtodo Level Set: a curva ijn evoluda tomada sempre como ijn=0. Como mostra a figura 17, a cada instante, os valores de todos os pontos da grade so atualizados, representando as curvas de nvel da funo , naquele instante. Desta forma, todas as curvas de nvel so atualizadas, no apenas a curva de nvel zero (na figura 17, so destacados os pontos da grade correspondentes curva de nvel zero). Em muitas situaes, esta atualizao de todas as curvas de nvel da grade necessria. Porm h outras situaes em que apenas uma curva de interesse (curva de nvel zero), sendo desnecessria a atualizao de todos os pontos da grade. Nestes casos apenas os ponto da grade vizinhos curva de interesse devem ser atualizados. Esta forma de atualizao origina um mtodo level set chamado de narrow band. No mtodo narrow band, apenas os pontos vizinhos curva de nvel zero so atualizados em cada instante. Uma vez que uma aplicao tenha interesse apenas na evoluo da curva de nvel zero, desnecessrio atualizar todas as curvas de nvel. A narrow band um conjunto de pontos da grade situados ao redor dos pontos correpondentes curva de nvel zero (figura 18). A largura da narrow band definida pelo usurio.

20

Figura 18: Os pontos da grade situados na regio cinza fazem parte da narrow band. 4.3-Mtodo Fast Marching O Mtodo Fast Marching propaga a interface baseando-se na formulao do valor de borda, (seo 3.2.1), onde uma funo tempo T associa cada ponto do espao ao instante em que a interface atinge este ponto (x,y). Esta formulao utilizada apenas no caso onde a velocidade sempre positiva (ou sempre negativa). Quando a interface se propaga com velocidade constante esta formulao pode ser utilizada para calcular campos distncia .
Pontos onde o valor de T conhecido Pontos onde o valor de T no conhecido T T T

j I

j I

j I

a) Curva inicial (T=0)

b) Atualizao de T na propagao

c) Atualizao de T

Figura 19: Construo da funo T no Mtodo Fast Marching. Ao contrrio do mtodo Level Set, o mtodo Fast Marching um problema estacionrio, no sentido de que a funco T fixa, no se altera com a propagao da interface (ao contrrio da funo ).
21

A idia do Mtodo Fast Marching que, partindo de uma interface inicial, discretizada sobre uma grade, a funo T vai sendo construda sobre os pontos da grade, medida que a interface se propaga. A figura 19a mostra uma curva sobre uma grade 2D, onde nos pontos (i,j) que correspondem interface inicial, Tij=0 (incio da propagao). Nos demais pontos, externos interface, o valor de T no conhecido. O objetivo do mtodo justamente calcular estes valores de T, de maneira eficiente, medida que a curva evolui (figura 19). Em cada iterao da propagao construda uma nova camada da superfcie T. O Mtodo Fast Marching formulado a partir da equao Eikonal |T| F = 1, que um caso particular da equao de Hamilton-Jacobi (apndice). A soluo numrica desta equao baseada nas Leis da Conservao Hiperblica. Baseada na soluo discreta da equao de Hamilton-Jacobi, a equao Eikonal pode ser resolvida atravs do esquema: onde Dijk-x = (Tijk Ti-1,j,k)/x e Dijk+x = (Ti+1,jk Tijk)/x. Dijk-y, Dijk+y, Dijk-z e Dijk+z so definidos de maneira anloga.
+ max( Dijkx ,0) 2 + min( Dijkx ,0) 2 2 2 y +y + max( Dijk ,0) + min( Dijk ,0) 2 2 z +z + max( Dijk ,0) + min( Dijk ,0) 1/ 2

1 , Fijk

A forma padro de se resolver estas equaes requer iteraes. A cada iterao iter os pontos da grade Tijkiter vo sendo calculados, a partir dos vizinhos de Tijk da iterao anterior, conforme o algoritmo:
Para iter=1,n Para i,j,k=1,dim iter+1 Resolver a equao para Tijk , a partir de iter iter iter iter iter iter Ti-1,j,k , Ti+1,j,k , Ti,j-1,k , Ti,j+1,k , Ti,j,k-1 , Ti,j,k+1 . FimPara FimPara

A figura 20 mostra a vizinhana do ponto Tijk. em uma grade 3D.


Ti,j,k+1 Ti,j-1,k

Ti-1,j,k

Ti,j,k T i+1,j,k

T i,j+1,k Ti,j,k-1

Figura 20: Vizinhana de um ponto.

Figura 21: Incio do mtodo Fast Marching.

Durante o clculo dos valores de T, a informao vai sempre se propagando a partir dos pontos com menores valores de T. A figura 22 explica como o processo de propagao de uma interface 2D se d a cada iterao. Os pontos pretos representam as posies onde a

22

funo T conhecida e os pontos brancos, posies onde T desconhecida. Partindo de uma interface inicial (figura 21), representada por um ponto preto, onde T=0 (figura 22a), so calculados os valores de seus quatro vizinhos (representados pelos pontos cinzas A, B, C e D, na figura 22b), atravs da equao Eikonal discreta. Dentre estes quatro pontos, a propagao deve seguir a partir daquele que tiver o menor valor de T. Ou seja o algoritmo para propagao requer que haja uma ordenao dos pontos cinzas. Supondo que o ponto A contm o menor T, a propagao deve prosseguir a partir dele (figura 22c), ou seja, o ponto A setado para preto, indicando que a propagao j conhecida em A, e seus vizinhos so calculados (representados pelos pontos cinzas E, F e G, na figura 22d). importante observar que o ponto preto inicial, apesar de ser vizinho de A, no entrou neste processo, pois a propagao tem sentido nico, no retroativa. A propagao deve continuar a partir do ponto cinza (B, C, D, E, F ou G) que tiver o menor valor de T. Mais uma vez ser necessria a rotina de ordenao para selecionar o ponto cinza de menor T. Supondo que o ponto D contm o menor valor, a propagao deve seguir a partir dele (figura 22e). O valor de T calculado nos vizinhos de D, que so setados para cinza. importante observar que um dos vizinhos de D (o ponto E) j era cinza, pois tambm vizinho de A, mas seu valor deve ser recalculado (apenas os vizinhos pretos so poupados). O processo se repete at que a funo T seja determinada.

C D

B A

C D

B A

a) Atualizao a partir da origem

b) Clculo dos possveis valores

c) Escolha do valor de menor T , dentre os pontos cinzas (ex. A)

C D E

B A F G

C D E

B A F G

C D E

B A F G

d) Fixa o valor do ponto A e atualiza seus vizinhos (tornam-se cinzas)

e) Escolha do ponto de menor T, dentre os pontos cinzas (ex. D)

f) Fixa o valor de D e atualiza seus vizinhos.

Figura 22:Procedimento de Atualizao do Mtodo Fast Marching. Utilizando a equao Eikonal, o clculo de T nos vizinhos nunca fornece valores menores do que os pontos j conhecidos (pontos pretos), e portanto, a marcha segue sempre em um nico sentido, se afastando da origem.

23

Para a propagao nos pornots da grade, h trs categorias de pontos: pontos com valores conhecidos (pretos), pontos candidatos a prosseguirem com a propagao (cinzas) e pontos desconhecidos (brancos), que seriam os pontos distantes da interface. Na busca da soluo, a marcha se d sempre transformando pontos brancos em pontos cinzas e cinzas em pretos, conforme mostra a figura 23.
Pontos candidatos (narrow band)

Valores conhecidos Pontos distantes

Figura 23: Progresso do Mtodo Fast Marching Uma das grandes vantagens deste mtodo, alm da eficincia, que ele pode ser aplicado para clculo de distncias de objetos contnuos. A discretizao do objeto pode ser feita em qualquer resoluo, o que permite que possa ser controlada a margem de erro, nos casos que requerem reconstruo do objeto. Em [3], Breen utiliza o mtodo fast marching para calcular campos distncias de objetos. Em seguida estes campos so utilizados para converter objetos representados por uma rvore CSG para representao volumtrica. Um grande desafio o desenvolvimento de Mtodos Fast Marching adaptativos. No mtodo descrito acima, os pontos onde os valores de T so calculados so amostrados regularmente. Isto apresenta algumas desvantagens, principalmente quando se deseja concentrar informaes sobre determinadas regies da interface em evoluo. Uma opo aumentar a resoluo da grade, o que implica em desperdcio de recursos, pois nem toda a interface precisaria desta alta resoluo. Com grades adaptativas seria possvel fazer propagao em multi resoluo, o que acarretaria em inmeras vantagens para as mais diversas aplicaes.

24

5-Concluses
Este trabalho apresentou uma conceituao geral sobre transformadas de distncia, mostrando alguns mtodos numricos para se calcular esta transformada O resultado de uma transformada de distncia aplicada a um objeto depende da mtrica utilizada. A mtrica est relacionada distncia espacial dos pontos do objetos. A mtrica natural de se aplicar a objetos do espao euclidiano a mtrica euclidiana. Apesar de apresentar excelentes resultados, esta mtrica apresenta vrios problemas de eficincia computacional, alm de no ser algoritmicamente trivial. Vrias mtricas regulares so utilizadas para substituir a mtrica euclidiana, numa tentaviva de aumentar a eficincia do clculo computacional, sem perder os timos resultados fornecidos. Dentre estas destacam-se as mtrica city block e a mtrica chessboard. Estas duas so casos particulares da mtrica nf-ne-nv, utilizada para gerar campos distcnias de objetos matriciais, como imagens e volumes. No caso de volumes, valor nf representa a distncia s faces dos voxels, ne representa a distncia s arestas e nv representa a distncia aos vrtices. O clculo do campo distncia nos pontos de um objeto feito atravs da propagao das distncias em relao a um dado conjunto de pontos iniciais. Assim, o clculo de distncia pode ser visto como uma frente ou interface se propagando a partir de uma frente inicial. Baseado neste paradigma, a Teoria de Propagao de Interfaces pode ser utilizada para auxiliar no desenvolvimento de mtodos numricos eficientes, como o Fast Marching que pode ser aplicado a objetos formulados no universo contnuo. Isto uma grande vantagem em relao aos mtodos que utilizam a mtrica nf-ne-nv, por exemplo, pois estes ltimos s podem ser aplicados a objetos discretos e no seriam muito teis nos casos onde necessria a reconstruo do objeto. A formulao de propagao de interfaces feita da seguinte forma: dada uma curva paramtrica inicial, sua evoluo feita atravs de uma parametrizao temporal. Sua propagao se d na direo normal, e a velocidade de propagao em funo da curvatura. Quando a velocidade de propagao constante, a propagao de interfaces pode ser utilizada para o clculo de campos distncia. Baseado na Teoria das Leis de Conservao Hiperblica Sethian [16] desenvolveu mtodos numricos eficientes, Mtodo Fast Marching e Mtodo Level Set, para propagar uma curva a partir de uma posio inicial. O primeiro mtodo, por ser aplicado nos casos onde a velocidade de propagao positiva, pode ser utilizado para calcular campos distncia de forma bastante eficiente, a partir da equao Eikonal discreta. Alm disso apresenta a vantagem de poder ser aplicado a objetos formulados em espaos contnuos.

25

Apndice - Leis de Conservao Hiperblica


Este apndice introduz as Leis de Conservao Hiperblica [7][8], mostrando qual sua relao com propagao de interfaces. Em [16] Sethian utilizou mtodos numricos de leis de conservao hiperblica, para desenvolver os mtodos Fast Marching e Level Set, que resolvem numericamente problemas de propagao de curvas. Dada u(x,t), onde t representa o parmetro temporal de u(x)=u(x,0), uma equao diferencial da forma ut + [G(u)]x = 0 conhecida como uma lei de conservao hiperblica. G(u) conhecida como a funo fluxo. Um exemplo simples a equao de Burger, onde G(u) = u2/2, e portanto ut + uux = 0. Esta equao de onda, que descreve o movimento de um fluido compressvel em uma dimenso, mostra a relao entre a variao espacial (ux) e a variao temporal (ut) do fluido representado pela funo u. A soluo para esta equao apresenta descontinuidades, ao longo do tempo, ou seja, u(x,t) pode ser descontnua, mesmo que o dado inicial u(x,0) seja suave. Para tornar as solues suaves, acrescenta-se o termo uxx (onde 0) direita da equao acima, ou seja, ut + uux = uxx. O termo uxx, chamado de viscosidade do fluido, age como um termo suavizador, impedindo a formao de descontinuidades de u, ao longo do tempo. Pode-se demonstrar que se >0 a soluo se mantm suave ao longo do tempo (se =0, ento ut + uux = 0, e a soluo no se manter suave). Uma vez visto (ainda que rapidamente) o que uma lei de conservao hiperblica, o que esta teoria tem a ver com evoluo de curvas? Relao entre Evoluo de Curvas e Leis de Conservao Hiperblica. Seja uma curva inicial (x,0), evoluindo com velocidade F(k)=1-k, cuja evoluo (x,t) se mantm um grfico ao longo do tempo. Em [16] e [17] Sethian demonstra que tal evoluo pode ser vista como uma lei de conservao hiperblica (com viscosidade), dada por

u ut + [(1 + u 2 )1/ 2 ] x = x 2 , 1 + u x onde u=d/dx. Nesta equao, a funo fluxo G(u) = -(1+u2)1/2.
interessante analisar esta relao sob os dois pontos de vista: de evoluo de curvas e de lei de conservao hiperblica. Se =0, ento F constante (F(k)=1) e, conforme visto nas sees 3.3, a evoluo de no suave; j a equao hiperblica no tem termo de
26

viscosidade e a variao de u, ao longo do tempo, tambm no suave. Se >0, ento F depende da curvatura (F(k)=1-k) e a evoluo de suave; no caso da equao hiperblica no h termo de viscosidade e a variao de u, ao longo do tempo, suave. Concluso: O papel da curvatura em evoluo de curvas anlogo ao papel da viscosidade em leis de conservao hiperblica. Em [16], captulo 5, Sethian descreve alguns mtodos numricos para resolver algumas equaes de leis de conservao hiperblica Equaes de Hamilton-Jacobi Na seo 3.1 foram vistas duas formulaes para o problema de propagao de curvas: formulao do valor de borda, definida a travs da equao |T| F = 1, e a formulao do valor inicial, definida atravs da equao t + F|| = 0. Estas duas equaes so casos particulares da equao genrica, chamada equao de Hamilton-Jacobi, definida como Ut + H(Ux,Uy,Uz) = 0, (considerando o problema em 3 dimenses). A funo H chamada de Hamiltoniana. Na formulao do valor inicial, =1, U= e a Hamiltoniana vale
2 2 H (U x , U y , U z ) = F U x + U y + U z2 .

Na formulao do valor de borda =0, U=T e a Hamiltoniana vale


2 2 H (U x , U y , U z ) = F U x + U y + U z2 1.

Seja a equao de Hamilton-Jacobi unidimensional Ut+H(Ux)=0. Fazendo Ux=u e diferenciando ambos os lados, obtida a equao de lei de conservao hiperblica ut+[H(u)]x=0 equivalente. Utilizando mtodos numricos de lei de conservao hiperblica, Sethian [16] deduziu a seguinte expresso para calcular numericamente esta equao 1D de Hamilton-Jacobi:

U n +1 U in i t

U n U in1 U in+1 U in = g i , x x

, (1)

onde Uin o valor da i-sima amostra da funo U no instante n, t o intervalo de tempo e x o intervalo entre as amostra ao longo do eixo x, conforme mostra a figura 16. A figura mostra uma grade cujos pontos representam uma discretizao do tempo e espao, onde a evoluo da funo U est sendo calculada. Assim a cada ponto (i,n) da grade h um valor Uin associado. Em cada instante n+1 as amostras Uin+1 so calculadas, representando assim a nova curva gerada pela evoluo a partir da amostras Uin. Para melhor compreender a expresso numrica (1), importante analis-la cuidadosamente. Na verdade, trata-se da verso discreta da equao de Hamilton-Jacobi unidimensional Ut+H(Ux)=0, reescrita como Ut = -H(Ux). A verso discreta da
27

derivada Ut dada por (Uin+1 - Uin)/t (forward difference) e a Hamiltoniana est sendo calculada como g[(Uin-Ui-1n)/x , (Ui+1n-Uin)/x]. A funo g(u1,u2), chamada de funo fluxo, calculada a partir dos mtodos numricos de leis de conservao hiperblica (em [16] Sethian mostra como calcul-la) e depende da funo velocidade F usada para evoluir a interface. Na expresso (1) a funo fluxo recebe como parmetros as derivadas (backward difference e forward difference, respectivamente) discretas em relao a x. A equao (1) pode ser reescrita como
U n U in1 U in+1 U in . U in +1 = U in t. g i , x x

Esta ltima equao mostra como a curva evolui no instante n+1, a partir das informaes da curva no instante n. O clculo de equaes de Hamilton-Jacobi em dimenses maiores, onde a Hamiltoniana simtrica, pode ser feito atravs da equao
n n U ijk+1 = U ijk t. g ,

onde g calculada com os seguintes parmetros:


n n n n n n U ijk U in1, j ,k U in+1, j ,k U ijk U ijk U in, j 1,k U in, j +1,k U ijk U ijk U in, j ,k 1 U in, j ,k +1 U ijk g , , , , , x x y y z z

Discretizao do tempo i-1, n

i, n+1 i,n i+1, n t

x Discretizao do espao

Figura 24: Clculo numrico da evoluo.

28

Bibliografia

[1] [2] [3]

Berger, M. & Colella, P. 1989. Local Adaptive Mesh Refinement for Shock Hydrodynamics. J. Comp. Phys, 1, 82, 62-84. Borgefors, G. 1986. Distance Transformations on Digital Images. Computer Vision and Image Processing, 34, 344-371. Breen, D. E.; Mauch, S. & Whitaker, R. T. 1998. 3D Scan Convertion of CSG Models into Distance Volumes. Proceedings of Symposium on Volume Visualization, ACM SIGGRAPH, 7-14. Cohen-Or, D.; Levin, D. & Solomivici, A. 1998. Three-Dimensional Distance Field Metamorphosis. ACM Transactions on Graphics. 17, 2, 116-141. Dorst, L. 1986. Pseudo-Euclidian Skeletons. The 8th International Conference on Pattern Recognition, Paris France, Washington, D.C. IEEE Computer Society Press, Los Angeles, CA. 286-289. Gomes, J. M.; Costa, B.; Darsa, L. & Velho, L. 1996. Graphical Objects. The Visual Computer, 12, 269-282. Lax, P. D. 1970. Hyperbolic Systems for Conservation Laws and the Mathematical Theory of Shock Waves. SIAM Reg. Conf. Series, Lectures in Applied Math, 11, 1-47. Le Veque, R. J. Basel. 1992. Numerical Methods for Conservation Laws. Birkhauser,

[4]

[5]

[6]

[7]

[8]

[9]

Milne, B. 1995. Adaptive Level Set Methods Interface. PhD. Thesis. Dept. of Mathematics, University of California, Berkeley, CA. Niblack, C. W.; Gibbons, P. B. & Capson, D. W. 1992. Generating Skeletons and Centerlines from the Distance Transform. Graphical Models and Image Processing. 54, 5, 420-437. Paglieroni, D. W. 1992. Distance Transforms: Properties and Machine Vision Applications. CVGIP: Graphical Models and Image Processing, 54, 1, 56-74. Peixoto, A. & Gattass, M. 2000. Reconstruo de Superfcies a partir de Sees Bidimensionais. Qualificao MCC28/00, Departamento de Informtica, Pontifcia Universidade Catlica do Rio de Janeiro.

[10]

[11]

[12]

29

[13]

Peixoto, A. & Carvalho, P. C. P. 2000. Esqueletos de Objetos Volumtricos. Qualificao MCC34/00, Departamento de Informtica, Pontifcia Universidade Catlica do Rio de Janeiro. Sethian, J. A. 1985. Curvature and the Evolution of Fronts. Comm. in Math. Phys, 101, 4, 487-499. Sethian, J. A. 1996. A Fast Marching Level Set Methods for Monotonically Advancing Fronts. Proceedings of the National Academy of Sciences, 93, 4, 1591-1595. Sethian, J. A. 1999. Level Set Methods and Fast Marching Methods. Cambridge University Press, Cambridge UK. Sethian, J. A. 1987. Numerical Methods for Propagating Fronts. Variational Methods for Free Surface Interfaces. Eds. P. Concus and R. Finn, SpringerVerlag, NY. Zhou, Y.; Kaufman, A. & Toga, A. W. 1998. Three-Dimensional Skeleton and Centerline Generation Based on an Approximate Minimum Distance Field. Visual Computer, 14, 303-314. Zhou, Y. & Toga, A. W. 1999. Efficient Skeletonization of Volumetric Objects. IEEE Transactions on Visualization and Computer Graphics , 5, 3, 196-209.

[14]

[15]

[16]

[17]

[18]

[19]

30