snakes / contornos ativos
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 PresentationTRANSCRIPT
![Page 1: Snakes / Contornos Ativos](https://reader035.vdocuments.net/reader035/viewer/2022062310/56814e24550346895dbb8830/html5/thumbnails/1.jpg)
Snakes / Contornos Ativos
Processamento de Imagens
![Page 2: Snakes / Contornos Ativos](https://reader035.vdocuments.net/reader035/viewer/2022062310/56814e24550346895dbb8830/html5/thumbnails/2.jpg)
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.
![Page 3: Snakes / Contornos Ativos](https://reader035.vdocuments.net/reader035/viewer/2022062310/56814e24550346895dbb8830/html5/thumbnails/3.jpg)
Snakes - Aplicações
• Splines deformáveis
• Detecção de bordas
• Modelagem de formas (shape modeling)
• Segmentação
• Ratreamento de movimento (motion tracking)
![Page 4: Snakes / Contornos Ativos](https://reader035.vdocuments.net/reader035/viewer/2022062310/56814e24550346895dbb8830/html5/thumbnails/4.jpg)
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.
![Page 5: Snakes / Contornos Ativos](https://reader035.vdocuments.net/reader035/viewer/2022062310/56814e24550346895dbb8830/html5/thumbnails/5.jpg)
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).
![Page 6: Snakes / Contornos Ativos](https://reader035.vdocuments.net/reader035/viewer/2022062310/56814e24550346895dbb8830/html5/thumbnails/6.jpg)
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)
![Page 7: Snakes / Contornos Ativos](https://reader035.vdocuments.net/reader035/viewer/2022062310/56814e24550346895dbb8830/html5/thumbnails/7.jpg)
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.
![Page 8: Snakes / Contornos Ativos](https://reader035.vdocuments.net/reader035/viewer/2022062310/56814e24550346895dbb8830/html5/thumbnails/8.jpg)
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
![Page 9: Snakes / Contornos Ativos](https://reader035.vdocuments.net/reader035/viewer/2022062310/56814e24550346895dbb8830/html5/thumbnails/9.jpg)
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)
![Page 10: Snakes / Contornos Ativos](https://reader035.vdocuments.net/reader035/viewer/2022062310/56814e24550346895dbb8830/html5/thumbnails/10.jpg)
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
![Page 11: Snakes / Contornos Ativos](https://reader035.vdocuments.net/reader035/viewer/2022062310/56814e24550346895dbb8830/html5/thumbnails/11.jpg)
Eline
• Eline = I(x,y)
• O sinal Wline define se a snake será atraída por linhas claras ou escuras
![Page 12: Snakes / Contornos Ativos](https://reader035.vdocuments.net/reader035/viewer/2022062310/56814e24550346895dbb8830/html5/thumbnails/12.jpg)
Funcional de borda (Eedge)
• Eedge = -|grad f(x,y)|2
• A snake será atraída p/ contornos com altos gradientes.
![Page 13: Snakes / Contornos Ativos](https://reader035.vdocuments.net/reader035/viewer/2022062310/56814e24550346895dbb8830/html5/thumbnails/13.jpg)
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 θ )
![Page 14: Snakes / Contornos Ativos](https://reader035.vdocuments.net/reader035/viewer/2022062310/56814e24550346895dbb8830/html5/thumbnails/14.jpg)
Restrições (Econ)
![Page 15: Snakes / Contornos Ativos](https://reader035.vdocuments.net/reader035/viewer/2022062310/56814e24550346895dbb8830/html5/thumbnails/15.jpg)
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
![Page 16: Snakes / Contornos Ativos](https://reader035.vdocuments.net/reader035/viewer/2022062310/56814e24550346895dbb8830/html5/thumbnails/16.jpg)
![Page 17: Snakes / Contornos Ativos](https://reader035.vdocuments.net/reader035/viewer/2022062310/56814e24550346895dbb8830/html5/thumbnails/17.jpg)
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
![Page 18: Snakes / Contornos Ativos](https://reader035.vdocuments.net/reader035/viewer/2022062310/56814e24550346895dbb8830/html5/thumbnails/18.jpg)
![Page 19: Snakes / Contornos Ativos](https://reader035.vdocuments.net/reader035/viewer/2022062310/56814e24550346895dbb8830/html5/thumbnails/19.jpg)
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
![Page 20: Snakes / Contornos Ativos](https://reader035.vdocuments.net/reader035/viewer/2022062310/56814e24550346895dbb8830/html5/thumbnails/20.jpg)
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 ||||)(
![Page 21: Snakes / Contornos Ativos](https://reader035.vdocuments.net/reader035/viewer/2022062310/56814e24550346895dbb8830/html5/thumbnails/21.jpg)
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