Proposta de um Método Computacional para

Propaganda
Proposta de um Método Computacional para
Automatização de Inserção de Transformações
Topológicas em Imagens Digitais
Julio César Ferreira da Silva, Bruno Julian Dias de Oliveira, Hildegard Barboza Paulino,
Leandro Carlos de Souza, Tatiana Aires Tavares
Abstract—This paper presents a set of algorithms to automate
topological transformations in the generation of morphing
between digital images. These use statistical, mathematical and
computer methods that will be discussed throughout this report.
Each is rated according to the results of visual and perceptual
images obtained after the implementation of morphing between
them.
I. INTRODUÇÃO
A área de processamento digital de imagens (PDI) é um
excelente exemplo de interdisciplinaridade. As diversas
técnicas originalmente desenvolvidas para tratamento de
sinais unidimensionais foram, em primeiro lugar, adaptadas
para tratamento de imagens obtidas de satélites e de naves
espaciais [1]. Posteriormente, com o rápido avanço das opções
de hardware e software, estas mesmas técnicas passaram a ser
aplicadas em inúmeros domínios tais como medicina, ciência
dos materiais, microscopia, artes etc.
Uma dessas técnicas é a metamorfose de imagens que é
simplesmente uma transformação que leva uma imagem em
outra, através de imagens intermediárias, alterando, de forma
gradual, tanto a sua forma quanto os valores de seus pixels;
Estes tipos de transformação possuem diversas aplicações na
realidade virtual, compressão de vídeo e especialmente na
indústria de entretenimento [1][4].
Usualmente, definem-se vetores orientados em ambas as
imagens que melhor qualifiquem a transformação proposta,
os
chamados vetores referência-alvo.
Esses são
correspondidos, gerando um conjunto de associações ou
agrupamentos que podem ser vistos como um conjunto de
transformações lineares que alteram o valor das coordenadas
das imagens. [4]. Com isso, a figura abaixo mostra a
marcação dos vetores em duas imagens
Fig 1. Desenho manual dos vetores referência-alvo.
O desenho de tais vetores é efetuado pela escolha, via
manipulação de interface gráfica, das melhores regiões que
caracterizam cada uma das imagens, bem como as melhores
correspondências entre eles [4]. Esse desenho pode requerer
um trabalho humano minucioso a fim de gerar vetores
significativos, principalmente em imagens de difícil
visualização ou que apresentem um alto grau de informação
embutida [1] [4].
Por isso, este trabalho sugere a utilização de algoritmos que
localizem vetores definidores de objetos em imagens. E, assim
agrupá-los, por simetria de imagens, e definindo a
transformação.
II. OBJETIVOS
O objetivo do projeto é preparar a melhor disposição dos
pontos das bordas das imagens envolvidas e, com isso,
agrupar um conjunto de vetores que melhor descrevam suas
superfícies. Tudo para que o Morphing possa se processar da
melhor maneira possível.
O escopo deste projeto abrange:
Conceitos de dependência e relação entre variáveis.
Criação de soluções algorítmicas para “filtragem” de
pontos da borda de uma imagem.
Criação de soluções algorítmicas para encaixe das
imagens.
Desenvolvimento de interface gráfica para ilustrar a
disposição final dos vetores agrupados.
III.
MATERIAIS E MÉTODOS
Foram utilizados a linguagem Java através do ambiente de
desenvolvimento integrado Netbeans 6.0 e o MatLab,
software interativo de alta performance voltado para o
cálculo numérico. Os passos seguidos para se automatizar a
escolha dos vetores que definem o morphing estão ligados à
retirada dos pontos da borda de cada objeto das imagens,
escolha dos melhores pontos que representem os objetos e
agrupamento entre os vetores escolhidos para cada imagem.
A Figura 2 apresenta os passos a serem seguidos para esta
automatização.
Fig 4. Descrição pseudo-algoritmica da extração da borda, em MatLab.
Fig 2. Fluxograma dos métodos utilizados.
gerado pelo compilador mcc através de uma chamada por
processo do sistema operacional. O mcc é um compilador
que integra o MatLab e tem como função gerar uma
biblioteca da função em C que chama a função escrita em
MatLab.
Com isso, a chamada por processo através do sistema
desenvolvido em Java é feita na execução da instrução
Runtime.getRuntime().exec(), que recebe como argumento o
comando que se quer executar. Nesse caso, ela receberá o
comando que chama a função que exporta a borda da imagem
desejada.
Através da função bwtraceboundary, que recebe como
argumento a imagem binarizada obtida pelas etapas
anteriores do método, tem-se a lista de pontos pertencentes à
borda do objeto. Assim, com a função dlmwrite pode-se
exportá-la para um arquivo tipo texto, que será acessado pelo
sistema.
B Cálculo de curvatura
Fig3. Demonstração detalhada das etapas listadas na figura 2,
aplicadas em duas imagens até a geração do morphing.
A partir dos pontos da borda, torna-se necessário encontrar
o conjunto de pontos mais adequados que melhor
caracterizassem os objetos contidos nas imagens
manipuladas. Para isso, utilizou-se o conceito de curvatura de
um ponto que é dependente dos seus pontos vizinhos [2]. A
curvatura pode ser calculada por:
A Geração das bordas
O objetivo final de todo o projeto era descrever um
determinado conjunto de pontos de uma imagem que seriam
levados no da outra. Entretanto, como saber que conjuntos de
pontos seriam esses? Uma solução encontrada foi através da
captura de suas bordas. Mas, como existem diversas técnicas
e algoritmos para esse fim, preferiu-se utilizar uma
combinação de funções já existentes no MatLab. Na figura 4 é
descrito o pseudo-algoritmo que realiza a captura da borda.
Como o sistema foi desenvolvido na linguagem de
programação Java, era necessário estabelecer algum vínculo
que garantisse o acesso, a partir do Java, à função que
exportasse a borda da imagem. Isso foi resolvido com a
chamada de um executável na linguagem de programação C,
Onde l1 e l2 representam os tamanhos dos segmentos
formados pelo ponto s e seus dois vizinhos mais próximos,
normalizados em relação à distância equivalente ao
deslocamento resultante, e θ o ângulo entre os segmentos
formados com seus vizinhos. A Figura 6 mostra um exemplo
de uma borda e os meios de se calcular a curvatura, onde t e u
são os vizinhos mais próximos de s.
D Ajuste de pontos
Fig 5. Cálculo da curvatura na borda de uma imagem
Com base na Figura 5, o cálculo dos parâmetros de curvatura
são dados por:
Como a gaussiana é aplicada a uma vizinhança e em
muitos casos o desvio padrão é nulo, muitos pontos ficam
praticamente colineares. Para resolver este problema verificase se a diferença entre um ponto e seu sucesso é menor que
um determinado número de pixels e, deste modo, aplicar-se
um método para ajustar estes pontos. Para isso, utiliza-se
geometria euclidiana, através da distância entre um ponto e
uma reta. A aplicação deste método supõe o cálculo da
distância de um ponto qualquer e o segmento de reta definido
por seus pontos vizinhos. A Figura 8 apresenta a disposição
de três pontos e de como este algoritmo é aplicado.
Fig7. Distância entre ponto e reta
Onde
é o fator de normalização das curvaturas.
A escolha dos pontos adequados para a representação dos
objetos irá depender dos valores das curvaturas que os
descrevem. Entretanto, pontos muito próximos podem
apresentar curvaturas altas, o que sugere um método de
filtragem para eliminá-los.
Agregado, encontra-se a
dificuldade de se contornar os erros de aproximação das
bordas que descrevem os objetos.
C Suavização
A borda capturada pode conter deformações e falhas que
podem alterar completamente os cálculos que serão efetuados.
Então, que essas regiões críticas sejam eliminadas, ou mesmo,
suavizadas, a filtragem é realizada através de conceitos
estatísticos por meio de uma curva normal ou gaussiana.
Objetiva-se, com isso, eliminar os pontos que tiverem valores
entre sua média e seu desvio padrão [3]. A figura 7 mostra
como esta filtragem é realizada.
Os parâmetros da reta PR, definida pela equação Y = a.X +
b, podem ser calculados do seguinte modo:
Onde y(r) é o valor y do ponto r, y(p) é o valor y do ponto p,
x(r) é o valor x do ponto r e x(p) é o valor x do ponto p.
A distância d de um ponto q a esta reta pode ser dada por:
E Busca do melhor encaixe e agrupamento
O agrupamento dos vetores da imagem será feito
utilizando-se métodos que buscam um grau considerável de
dependência entre um conjunto de pontos a serem agrupados.
Para isso, foram abordadas conhecimentos da área estatística,
tais como a covariância, correlação e somatório das distâncias
mínimas. Isso fará com que os pontos que estiverem abaixo
de um limiar estabelecido sejam eliminados. Garante-se,
assim, a seleção de pontos que descrevam realmente a
imagem, ou seja, pontos bastante significativos.
Fig6. Curva normal ou Gaussiana indicando o intervalo de
eliminação dos pontos da borda
IV.
REFERENCES
RESULTADOS
Para verificar a “qualidade” da borda exportada pala
função do Matlab exportou-a em uma “subplot”. Assim, foi
mais fácil saber se a função deveria ser confiável. Abaixo,
está ilustrada o desenho que é feito a partir da borda de um
quadrado.
[1]
[2]
[3]
[4]
[5]
[6]
[7]
Fig 8. Borda de um quadrado.
Após executadas todas as etapas, os vetores referência-alvo
escolhidos automaticamente e são desenhados nas imagens,
como é ilustrado na figura abaixo.
Fig 9. Desenho dos vetores referência-alvo.
Fig 10. Morphing Automático.
V. CONCLUSÃO
Os métodos utilizados mostraram-se eficientes quanto ao
ajuste de figuras de baixa complexidade. O algoritmo de
extração de bordas foi bastante eficiente, fazendo com que os
métodos apresentados fossem aplicados da melhor forma
possível.
A parte do algoritmo que mais influencia na combinação
dos pontos é a que ajusta o arranjo destes pontos em ambas as
imagens, visto que, um ponto inserido influencia muito na
forma de como o conjunto de cada imagem será agrupado.
Pelo que foi visto, testes devem ser realizados, bem como o
aprimoramento dos algoritmos utilizados para que o melhor
ajuste de pontos entre as imagens seja encontrado.
Smith, Steven W.; Digital Signal Processing: A Practical Guide for
Engineers and Scientists; Newnes, 2002.
Kaup, André; Heuer, Jörg; Polygonal Shape Descriptors - An Efficient
Solution for Image Retrieval and Object Localization. 2000
Mucha, Marcin; Sankowski, Piort; Maximum Matchings via Gaussian
Elimination.
GONZALEZ, Rafael C.; WOODS, Richard E.; Processamento de
Imagens Digitais; 1º ed. Edgard Blücher, 2000.
T. W. Anderson, An Introduction to Multivariate Statistical Analysis, 2nd
ed. New York: Wiley, 1984.
J. P. Hoffbeck and D. A. Landgrebe, “Covariance matrix estimation and
classification with limited training data,” IEEE Trans. Pattern Anal.
Machine Intell., vol. 18, pp. 763-767, July 1996.
C. E. Thomaz, D. F. Gillies, and R. Q. Feitosa, “Using mixture covariance
matrices to improve face and facial expression recognitions,” in Proc. 3rd
Int. Conf. Audio- and Video-Based Biometric Person Authentication
Halmstad, Sweden, vol. LNCS 2091, June 2001, pp. 71-77.
Download