220 likes | 332 Views
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
E N D
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.
Posição inicial da snake (pontilhado) • Passo intermediário na processo iterativo de minimização • 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 • 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 : elasticidade da curva (esticamento ou contração de seu comprimento) α(s) : rigidez (stiffness) da curva (curvatura) β(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.
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 θ )
Minimização • Uma snake que minimiza E deve satisfazer a equação de Euler:
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:
GVF - Cálculo • O GVF pode ser calculado usando as equações de Euler: É o operador laplaciano