snakes / contornos ativos processamento de imagens
TRANSCRIPT
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 )(
)](),([)(
ssysx
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 interna2
2
22 ||)(||)(int
dsvds
dsdvsE
: 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
vdsdsd
dsdvs
dsd
ext
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