Snakes / Contornos Ativos

Post on 19-Jan-2016

42 views 0 download

description

Snakes / Contornos Ativos. Processamento de Imagens. Contornos Ativos. Curvas no domínio de imagens Movem-se sob influência: Forças internas da própria curva Forças externas provenientes da imagem - PowerPoint PPT Presentation

Transcript of Snakes / Contornos Ativos

Snakes / Contornos Ativos

Processamento de Imagens

Contornos Ativos

• Curvas no domínio de imagens

• Movem-se sob influência:– Forças internas da própria curva– Forças externas provenientes da imagem

• Tais forças, combinadas, levam a curva a se moldar à borda da imagem ou outra característica selecionada.

Snakes - Aplicações

• Splines deformáveis

• Detecção de bordas

• Modelagem de formas (shape modeling)

• Segmentação

• Ratreamento de movimento (motion tracking)

Snakes

• Por que ativos ?– As snakes estão sempre tentando minimizar seu

funcional de energia, exibindo, portanto, comportamento dinâmico.

• Snakes são curvas cuja energia depende de sua forma e localização na imagem.

• Um mínimo local desta curva corresponde às propriedades desejadas da imagem.

a) Posição inicial da snake (pontilhado)

b) Passo intermediário na processo iterativo de minimização

c) Estágio final de minimização (snake “empurrada” de encontro ao contorno real).

Snakes

• Se tais propriedades desejadas são bordas, por exemplo, uma minimização desejável é aquela que mais aproxima a curva snake das bordas presentes na imagem.

• O processo é interativo (usuário define uma curva inicial), iterativo (processo no “tempo” em busca do ponto de mínimo)

Snakes

• O funcional de energia que deverá ser minimizado é uma combinação ponderada das forças internas e externas: função custo!

• Forças internas: – Emanam da forma da snake

• Forças externas:– Vem da imagem ou de algum outro processo de

alto nível (image understading) da imagem.

Snake – representação paramétrica

dssvEconsvEimagesvE

dssvE

ntE

E

))(())(())(( snake

))(( snake

1

0i

1

0snake

]1,0[

contorno do scoordenada )( e )(

)](),([)(

s

sysx

sysxsv •Eint: energia interna devida ao curvamento•Eimage: Guia a snake junto a caract. importantes da imagem•Econ: forças restrição externas impostas pelo usuário

Snake – energia interna

22

22 ||)(||)(int

ds

vds

ds

dvsE

: elasticidade da curva (esticamento ou contração de seu comprimento)

: rigidez (stiffness) da curva (curvatura)β(s)

α(s)

•A energia interna mantém o modelo relativamente próximo à forma original do objeto. Depende do peso de α e β. Mais ou menos rígido.

•α e β podem ser globais ou locais (para certos segmentos)

Snake – Energia da Imagem

• Line: níveis de cinza da imagem f(x,y)• Edge: gradiente de f(x,y)• Term (terminações de linhas): alguma

medida de curvatura.

termtermedgeedgelinelineimage EEEE

Eline

• Eline = I(x,y)

• O sinal Wline define se a snake será atraída por linhas claras ou escuras

Funcional de borda (Eedge)

• Eedge = -|grad f(x,y)|2

• A snake será atraída p/ contornos com altos gradientes.

Funcional de terminação (Eterm)• Seja C(x,y) = Gσ(x,y) * I(x,y)

• θ = tan-1 (Cy/Cx) : ângulo gradiente

• n = (cos θ , sem θ) e n┴ = -sen θ, cos θ )

Restrições (Econ)

Minimização

• Uma snake que minimiza E deve satisfazer a equação de Euler:

0)]([])([])([2

2

2

2

svEds

vds

ds

d

ds

dvs

ds

dext

Snakes - deficiências

• Contorno inicial: deve ser dado próximo a curva, senão há o risco de se convergir para o local errado

• Dificuldade em convergir para áreas côncavas.

• Uma variante do modelo “resolve” esse problema: GVF snake

GVF Snake• GVF: Gradient Vector Flow.

– O campo de fluxo de vetores gradiente são computados a partir da imagem original. É bastante denso e, por isso, mesmo que a curva inicial seja dada “longe” das bordas, essa irá convergir para o local desejado, quer seja expandindo-se, quer seja contraindo-se

GVF - Cálculo

• Definir um mapa de arestas (edge map) f– Qq cálculo que dê valores altos nos bordos e

baixos no restante (qq operador passa alta serve)

• O campo GVF é v(x,y) = (u(x,y),v(x,y)) que minimiza o funcional de energia:

dxdyfvfvvuuu yxyx222222 ||||)(

GVF - Cálculo

• O GVF pode ser calculado usando as equações de Euler:

0))((

0))((222

222

yxy

yxx

fffvv

fffuu

2 É o operador laplaciano