Escolar Documentos
Profissional Documentos
Cultura Documentos
Belo Horizonte – MG
2010 / 1o semestre
Universidade Federal de Minas Gerais
Instituto de Ciências Exatas
Departamento de Ciências da Computação
por
Belo Horizonte – MG
2010 / 1o semestre
Aos meus familiares,
aos meus amigos,
aos colegas de curso,
aos professores,
ao Solid Snake,
ao Cloud Striffe,
e ao meu cão Mitternacht,
dedico este trabalho.
i
Agradecimentos
ii
“What is the difference between a man and a parasite?
A man builds. A parasite asks ’Where is my share?’
A man creates. A parasite says, ’What will the neighbors think?’
A man invents. A parasite says, ’Watch out, or you might tread on the toes of God... ”’
Andrews Ryan
iii
Sumário
Lista de Tabelas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix
Lista de Siglas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x
Resumo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi
Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xii
1 INTRODUÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2 REFERENCIAL TEÓRICO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.1 Android . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3 METODOLOGIA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
iv
3.3.1 Desafios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4 RESULTADOS E DISCUSSÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.1.1 Desktop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.1.2 Android . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
5.1 Conclusões . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Referências Bibliográficas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
A.1 GLOH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
A.2 SURF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
v
Apêndice C -- Scale-Space . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
vi
Lista de Figuras
Figura 4.4 Gráfico de tempo de execução (em segundos) por tamanho de imagem (mega-
pixels) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
vii
Figura 4.5 Gráfico de uso máximo de memória (em megabytes por tamanho de imagem
(megapixels) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Figura 4.6 Gráfico de tempo de execução (em segundos) por tamanho de imagem (mega-
pixels) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
to
Figura 4.7 Gráfico da economia de memória: por pixels. . . . . . . . . . . . . . . . . . . . . . . . . . 38
ta
viii
Lista de Tabelas
ix
Lista de Siglas
x
Resumo
Nas últimas décadas, a área de telefonia móvel tem apresentado grandes avanços tecnó-
logicos. Dotados de processadores mais rápidos e memórias maiores, os celulares e smartpho-
nes incorporaram diversas funcionalidades antes restritas a computadores pessoais. O presente
trabalho tem como objetivo apresentar a implementação do algoritmo SIFT no ambiente de te-
lefonia móvel Android. O SIFT realiza a detecção de pontos de interesse em imagens e é um
algoritmo computacionalmente custoso. Os pontos de interesse são utilizados em uma ampla
gama de aplicações de visão computacional e processamento digital de imagens, notadamente
detecção e reconhecimento de objetos. Com a implementação do SIFT no ambiente Android,
espera-se reduzir a carga de trabalho na rede por substituir a transmissão de imagens pelos
dados relativos aos pontos de interesse dessas imagens.
xi
Abstract
In the past few decades, mobile phones underwent huge technological changes. Ha-
ving faster processors and increased memory allowed cellphones and smartphones to incorpo-
rate many applications once restricted to desktop computers. This paper aims to present the
implementation of the SIFT algorithm on the Android mobile environment. SIFT is a com-
putationally heavy algorithm responsible for detecting and describing local features in images.
These features are used in a broad range of computer vision and digital imaging processing
applications, most notably object detection and recognition. As object recognition and other
SIFT-related applications may require an high bandwidth network connection for picture trans-
mission, we intend to eliminate this undesirable bottleneck by transmitting merely the features
detected by the SIFT algorithm.
xii
13
1 INTRODUÇÃO
Nas duas últimas décadas a telefonia móvel passou por grandes avanços tecnológicos.
Além de se sujeitarem a uma diminuição de preço que, por si só, propiciou uma gigantesca
penetração de mercado, os telefones celulares e smartphones agora abrigam uma série de di-
ferentes funcionalidades que vão muito além da comunicação via voz entre duas pessoas. O
crescente poder de processamento e capacidade de memória permitiu que os dispositivos mó-
veis abrigassem aplicações de grande porte antes restritas a computadores pessoais. Muitos
dos dispositivos móveis atuais são dotados de sistemas operacionais completos, entre os quais
destacam-se o SymbianOS e o Android, da Google.
É importante ressaltar que, diferentemente da Fritz et. Al, a presente abordagem realiza
a deteccção dos pontos de interesse no dispositivo móvel. Com isso, além da redução do gargalo
15
2 REFERENCIAL TEÓRICO
2.1 Android
O Android é um dos sistemas operacionais para dispositivos móveis como maior su-
porte para desenvolvedores: a Google disponibiliza um SDK completo para o sistema. São
disponibilizadas bibliotecas, depuradores e emuladores que podem ser facilmente integrados a
diversas IDEs, tais como o Eclipse.
O SIFT, técnica utilizada nesse trabalho, foi proposto por Lowe em (1) e aprimorado
pelo mesmo em (2). Diferentemente das técnicas anteriores, a técnica de Lowe garante que
os elementos encontrados apresentem invariância sobre escala. Além disso, foi proposto um
novo descritor local que garante maior distintição e menor sensibilidade a transformações afins.
Em (2), Lowe introduz novas técnicas incluindo aprimoramentos para aumentar a invariância e
robustez dos pontos. A invariância sobre escala que faz uso da teoria de Scale-Space é discutida
por Lindenberg em (4). Por fim, há ainda uma discussão sobre o funcionamento do sistema
visual de primatas e sua semelhança com algumas das técnicas do SIFT em (7).
trabalho inovador pois não há ainda, na literatura, um estudo sobre os benefícios de se usar um
sistema de detecção de objetos que incorpore a extração de pontos de interesse no ambiente
móvel.
19
3 METODOLOGIA
de objetos em que se faz necessário casar pontos de imagens cujos objetos estão sujeitos a
vários tipos de transformação como mudanças de escala, rotações, variações de iluminação e
transformações afins (Apêndice C). A técnica desenvolvida por Lowe garante invariância total
a alterações de escala e rotação e parcial a alterações de iluminação e transformações afins.
A abordagem desenvolvida por Lowe e aplicada a esse trabalho utiliza uma metodolo-
gia em cascata que garante eficiência por manter as operações mais custosas nas últimas etapas.
Isso é, há uma filtragem de elementos, que só serão processados pelas últimas etapas se forem
escolhidos e mantidos como candidatos nas primeiras etapas. A figura 3.1 mostra um diagrama
com as principais etapas do SIFT:
1. Deteccção de Extremos: A primeira etapa realiza uma busca por alterações significati-
vas entre todas as escalas e pontos de uma imagem que vão se constituir em extremos
locais. As escalas são implementadas através da função scale-space. Os extremos locais
encontrados serão candidatos a pontos de interesses filtrados nas próximas etapas.
4. Definição de Descritores: A quarta e última etapa cria um descritor com invariância par-
cial a transformações afins e mudanças de iluminação. O descritor é o principal elemento
utilizado para as etapas subsequentes de visão computacional.
21
Como explicado anteriormente, a primeira etapa é responsável pela procura por can-
didatos a Pontos de Interesse, os quais não prosseguiração para processamento subsequente até
que sejam selecionados na segunda etapa. A deteccção de extremos é responsável por encontrar
alterações significativas no valor de um pixel nos pontos em todas as escalas e posições da ima-
gem. Alterações significativas entre duas escalas constituem-se em regiões de interesse, pois
caracterizam grande perda de informação à medida que imagem altera sua escala.
As alterações ao longo das escalas separadas por um fator k podem ser obtidas utilizando-
se a função de diferença de gaussianas (DoG:
duas vezes menor. Além disso, há grandes benefícios em termos de desempenho. A figura 3.2
demonstra esse procedimento.
δD → 1→ δ 2D →
D(→
−
x ) = D+ →
−
−
x + −
x + →
− 2
−
x (3.1)
δx 2 δx
−1
δ 2D δD
xb = − → (3.2)
δ−x2 δ→
−
x
1 δD
x) = D +
D(b xb (3.3)
2 δ xb
(a) Pontos encontrados pela de- (b) Pontos eliminados utilizando (c) Eliminação de candidatos
teccção de extremos. o limiar mínimo de contraste. mal-posicionados ao longo de
bordas.
A função DoG, por sua natureza laplaciana, resulta em muitos candidatos em regiões
de bordas. Uma boa parte deles estão mal-posicionados, isso é, são sensíveis a pequenas quan-
tidades de ruído. Tais pontos podem ser detectados e eliminados avaliando-se as curvaturas
principais da região do ponto de interesse. Pontos mal-posicionados terão uma grande curva-
tura principal (Apêndice B) ao longo de uma borda mas uma pequena na direção perpendicular.
De acordo com a técnica de Harris and Stephens (1988), os auto-valores da matriz hessiana
(Apêndice B) da região do ponto possuem valores proporcionais às curvaturas principais. Dessa
forma, pode-se calcular os auto-valores com o traço e determinante da matriz hessiana:
!
Dxx Dxy
H= (3.4)
Dxy Dyy
A equação 3.7 não depende de auto-valores individuais, somente da razão entre eles.
Pode-se utilizá-la para definir um limiar para o valor da razão utilizando a seguinte equação:
25
Tr(H)2 (r + 1)2
< (3.8)
Det(H) r
q
m (x, y) = (I (x + 1, y) − I (x − 1, y))2 + (I (x, y + 1) − I (x, y − 1))2 (3.9)
−1 I (x, y + 1) − I (x, y − 1)
o (x, y) = tan (3.10)
I (x + 1, y) − I (x − 1, y)
(a) Imagem original da re- (b) Intensidade dos gradien- (c) Orientação dos gradien-
gião ao redor do ponto de in- tes. tes.
teresse.
Para o presente trabalho, o tamanho do descritor foi definido como 128: serão 16
regiões ao redor do ponto de interesse com histogramas de orientação com 8 valores cada. O
tamanho da região e a rotação da janela da região são definidos com base, respectivamente, da
escala e orientação do ponto, calculados nas etapas anteriores. Além disso, deve-se garantir
a redução do efeito de variações abruptas de perspectiva, em que um valor de gradiente passa
de uma orientação para outra ou de um histograma para outro. Para tanto, pode ser utilizado
algum método de suavização para distribuir o valor de uma entrada de um histograma para as
orientações e histogramas vizinhos.
minação mas não é capaz de detectar variações de outras naturezas. Entretanto, tais variações
são incomuns e pouco alteram os gradientes da imagem.
3.3.1 Desafios
O ambiente de telefonia móvel apresenta, por si só, grandes desafios para aplicações
que lidam com elevada demanda de processamento e memória. Um sistema de detecção de
pontos de interesse utilizando o algoritmo SIFT encaixa-se nessa categoria. A grande utilização
de memória nas etapas de Scale-Space, em que se fazem necessárias várias cópias da imagem
original na memória, e o processamento necessário para obtê-las são os principais gargalos do
algoritmo. Essa limitações, aliadas à baixa quantidade de memória e limitado poder de proces-
samento, reduzem consideravelmente o desempenho e a precisão de sistemas dessa natureza em
smartphones.
As versões atuais do Android incluem ainda uma limitação sobre a utilização de me-
mória que a restringe a um valor máximo de 16Mb por aplicativo. Como o sistema faz uso de
diversas imagens simultâneamente na memória (oriundas da pirâmide gaussiana e diferença de
gaussianas), esse limite é facilmente ultrapassado mesmo com imagens de tamanhos relativa-
mente pequenos. Aliado a isso, tem-se o desempenho limitado dos processadores embutidos
dos dispositivos móveis, que restringem a velocidade de diversas etapas do algoritmo. Várias
dessas etapas beneficiam-se, no ambiente Desktop, de processadores vetoriais de placas de ví-
deo dedicadas, algo que não é comumente encontrado em smartphones.
Adaptação de Bibliotecas
A primeira modificação realizada foi a adaptação das bibliotecas que fazem parte do
sistema para o ambiente Android. O SIFT faz uso de bibliotecas de imagens, matrizes e sis-
temas lineares. Essas modificações foram meramente adaptativas e não tiveram impacto no
desempenho do sistema.
A principal adaptação nas etapas de pré-processamento foi evitar que se dobre a ima-
gem antes de se aplicar o SIFT sobre ela. O SIFT original proposto por Lowe dobrava a imagem
tanto em largura quanto em comprimento utilizando um algoritmo de interpolação bilinear. Essa
modificação trazia ganhos na quantidade de pontos de interesse e na repetibilidade do casamento
de objetos (2). A implementação proposta eliminou essa modificação, o que garantiu uma nova
redução de quatro vezes no gasto de memória mas originou uma nova perda na qualidade da
solução.
Finalmente, foi implementada uma interface com tela de toque que permite que o usuá-
rio do sistema possa selecionar uma imagem e seccionar uma região para realizar a detecção de
pontos de interesse. Essa pré-seleção permite uma redução ainda maior de memória e proces-
samento, já que o usuário qual o posicionamento, na imagem, dos objetos que deseja detectar.
30
4 RESULTADOS E DISCUSSÃO
O presente capítulo tem como objetivo apresentar e discutir acerca dos resultados dos
sistemas desenvolvidos. Serão descritas as interfaces dos sistemas, bem como analisados o
desempenho dos mesmos em relação a diferentes métricas, tais como utilização de memória
e tempo de processamento. Este capítulo fica dividido então, da seguinda maneira: na seção
4.1 serão descritos os aplicativos desenvolvidos, na seção 4.2 serão discutidas análises sobre
o SIFT no ambiente Desktop (SIFT-Desktop) e, finalmente, nas seções 4.3 e 4.4, tratarão das
modificações e análise de desempenho sobre o SIFT no Android (SIFT-Android).
Na primeira etapa deste trabalho, foram desenvolvidos aplicativos para ambiente Desk-
top, enquanto que na segunda parte, foi desenvolvido um aplicativo para o ambiente Android.
Em ambos os casos, os aplicativos desenvolvidos recebem como entrada uma imagem e retor-
nam os pontos de interesse encontrados no formato padrão definido por Lowe.
4.1.1 Desktop
1. A primeira aplicação realiza a leitura de uma imagem e imprime na tela a imagem com
os pontos de interesse assinalados. Os pontos de interesse também são impressos em
um arquivo de saída e dados relativos ao algoritmo são impressos na tela, bem como as
imagens obtidas pelas funções scale-space e Dog. A tela do aplicativo 1 encontra-se na
figura 4.1(a).
4.1.2 Android
(a) Tela do Aplicativo (1). (b) Tela do Aplicativo (2). (c) Tela do Aplicativo (3).
Foram realizados testes sobre diferentes imagens visando medir a correção e robustez
do algoritmo. As telas contendo quatro destes resultados podem ser visualizadas na figura 4.3.
(c) Teste 3: Museu da Inconfidência (d) Teste 4: Igreja Nossa Senhora do Carmo
em Ouro Preto
Os testes 1,3 e 4 procuraram simular a utilização de uma aplicação real voltada para o
turismo. O teste 2 foi utilizado para avaliar a robustez em variações expressivas de perspectiva:
• Teste 1: Comparou duas imagem da pintura de Mona Lisa. Uma das imagens é uma di-
gitalização da Mona Lisa real, do museu do Louvre, já a segunda representa uma réplica.
A segunda imagem apresenta-se ligeiramente desfocada e com uma pequena variação de
perspectiva. Apesar disso, todos os casamentos entre as duas imagens ocorreram correta-
mente.
• Teste 2: Fez a comparação da digitalização da nota de um Real brasileira e uma foto con-
tendo duas notas de um Real. A segunda foto apresenta uma nota com grande oclusão e
34
ambas com uma variação expressiva de perspectiva. Vários casamentos foram realizados
corretamente, como, por exemplo, o algarismo 1 e a efígie da república. Apesar disso,
alguns casamentos errôneos notáveis são o algarismo 1 pequeno da imagem digitalizada
com o algarismo 1 grande da foto. Isso ocorreu devido a variações significativas de pers-
pectiva, que fez com que os pontos de interesse do algarismo pequeno perdessem grande
quantidades de informações.
• Teste 4: Comparou duas fotografias da Igreja Nossa Senhora do Carmo em Ouro Preto.
As imagens apresentam variação expressiva de iluminação, perspectiva e escala. Apesar
disso, praticamente todos os casamentos foram realizados corretamente. Os casamentos
realizados de forma errada foram aqueles que compararam torres alternadas da igreja.
permanecem bem próximos à curva, a soma dos quadrados residuais também possui um valor
baixo. A complexidade linear se deve ao fato de que o fator determinante para o tempo de
execução do algoritmo é a etapa de Scale-Space e DoG e, como ambas são etapas de aplicação
de filtros, a complexidade depende apenas do número de pixels da imagem. Já a variância que
pode ser vista em algumas imagens pode ser explicada pelo fato de que parte do tempo de
execução depende do número de pontos de interesse, isso é, depende de processamento sobre
cada ponto. O número de pontos está relacionado ao domínio da imagem, ou seja, depende do
conteúdo da imagem. Por exemplo, se ela apresentar muitas regiões homogêneas, então tenderá
a ter menos pontos de interesse do que se apresentar muitos detalhes.
Figura 4.4: Gráfico de tempo de execução (em segundos) por tamanho de imagem (megapixels)
Para se testar o uso máximo de memória, utilizou-se uma função que calcula o número
de megabytes utilizado baseado no número de imagens necessário nas etapas de Scale-Space e
36
Figura 4.5: Gráfico de uso máximo de memória (em megabytes por tamanho de imagem (me-
gapixels)
A partir de uma análise do gráfico, percebe-se que houve uma redução significativa
da utilização máxima de memória: o SIFT-Desktop gasta 16 vezes mais memória que o SIFT-
Android e essa diferença deve-se às duas modificações realizadas. A primeira modificação foi
a redução da granularidade dos pixels e ela foi responsável por reduzir o gasto de memória em
quatro vezes, já que passou-se os tipos de Double (8 bytes) para Short (2 bytes). A segunda
modificação foi não dobrar a imagem na etapa de pré-processamento e foi responsável por uma
nova redução de quatro vezes no gasto de memória. Assim, houve uma redução efetiva de
dezesseis vezes no gasto de memória.
A partir das modificações realizadas, pôde-se transpor o sistema para o ambiente An-
droid. De forma a se testar o desempenho da versão final do aplicativo, realizou-se dois testes:
o tempo de execução estimado para o cálculo dos pontos de interesse e a economia de memória
obtida. Ambos serão comentadas nas próximas seções.
37
Figura 4.6: Gráfico de tempo de execução (em segundos) por tamanho de imagem (megapixels)
Como foi discutido na introdução, uma das principais motivações para a implementa-
ção do SIFT no ambiente móvel era diminuir a carga de transferência na rede. O objetivo desse
teste era calcular a razão entre o tamanho dos pontos de interesse codificados (ta ) e o tamanho
da imagem em formato PNG (to ) para diferentes tamanhos de imagem. O formato de imagem
escolhido foi o PNG por ser um formato de compressão sem perdas e que, consequentemente,
não cria distorções na imagem original. Dessa forma, obteria-se o ganho real de redução na
carga de rede. Os resultados desse teste encontram-se na figura 4.7.
to
Figura 4.7: Gráfico da economia de memória: por pixels.
ta
Os resultados mostram que há uma grande diferença no tamanho dos pontos de inte-
resse e no tamanho da imagem em formato PNG. Os ganhos variaram entre 3 a 16 vezes e essa
variação deve-se aos diferentes domínios de imagem. Cada imagem produz uma quantidade de
pontos de interesse que depende muito do quão detalhada ela é. Já o formato da curva de regres-
são, que possui natureza logarítimica, deve-se ao fato de que os ganhos de memória evoluem de
forma decrescente quando a imagem aumenta de tamanho. Isso se deve ao fato de que o número
de pontos de interesse não aumenta de forma linear quando o tamanho da imagem cresce, esse
aumento apresenta uma complexidade ainda maior. Uma hipótese para esse fenômeno é que
imagens maiores apresentam mais detalhes em regiões homogêneas e, em imagens pequenas,
pontos de interesse não seriam detectados nessas regiões.
39
5.1 Conclusões
No presente trabalho fez-se uma revisão da Literatura relacionada ao SIFT e sua aplica-
ção em um programa voltado para o turismo. Na primeira parte do projeto foram desenvolvidas
duas aplicações Desktop: a primera realiza a deteccção de pontos de interesse e os exporta para
um arquivo e a segunda casa os pontos encontrados em duas imagens. Com o prosseguimento
do projeto, realizou-se uma série de análises para testar as modificações necessárias para a trans-
posição do sistema implementado para o ambiente de telefonia móvel do Android. Terminada a
análise, foi implementado um aplicativo Android que permite que o usuário leia uma imagem,
selecione uma região utilizando a tela de toque do aparelho e, finalmente, efetue a deteccção
dos pontos de interesse na região selecionada.
A principal dificuldade desse projeto foi lidar com os limites impostos pelo ambi-
ente Android. O limite de 16Mb de memória por aplicativo reduz enormemente a robustez do
sistema, que se vê incapaz de lidar com imagens maiores que 1 Megapixel. O poder de pro-
cessamento foi outro fator que limitou a eficiência do algoritmo. O tempo de execução para
40
Referências Bibliográficas
A.1 GLOH
GLOH ou Gradient Location and Orientation Histogram é uma variação do SIFT que
utiliza uma região maior para a geração de histogramas. Outra alteração é a redução do descritor
para 64 posições, menor que o de 128 posições do SIFT padrão.
A.2 SURF
Uma matriz hessiana é uma matriz quadrada de derivadas parciais de segunda ordem
de uma função:
∂2 f ∂2 f ∂2 f
∂ x12 ∂ x1 ∂ x2 ··· ∂ x1 ∂ xn
2
∂2 f 2
∂ f ··· ∂ f
∂ x2 ∂ x1
∂ x22 ∂ x2 ∂ xn
H( f ) =
. .. ... ..
.. . .
2
∂ f ∂2 f ∂ f2
∂ xn ∂ x1 ∂ xn ∂ x2 ··· ∂ xn2
Para o presente trabalho, utilizou uma matriz hessiana de terceira ordem, obtida através
da derivada de segunda ordem da função DoG:
Dxx Dxy Dxe
δ 2D
= Dxy Dyy Dye
δ→
−x2
Dxe Dye Dee
Uma transformação afim entre dois espaços vetorias consiste em uma transformação
linear de rotação (Ax) seguida de uma translação (+b).
x 7→ Ax + b
44
A figura B.1 mostra uma transformação afim sobre um plano em um ambiente tridi-
mensional.
Uma série de Taylor é uma aproximação de uma função através de somas infinitas:
Se a série for centrada em zero, então tem-se uma série de MacLaurin, um caso espe-
cífico da série de Taylor:
A série de Taylor centrada em zero (MacLaurin) para a função DoG, é dada a seguir:
δD → 1→ δ 2D →
D(→
−
x ) = D+ → −
x + −
x + −
x
δ−
x 2 δ→
−x2
Dxx Dxy Dxe
δ 2D
→
− 2
= Dxy Dyy Dye
δx
Dxe Dye Dee
Dx
δD
→
− = D y
δx
De
APÊNDICE C -- Scale-Space
A função Scale-Space pode ser, de fato, implementada com outros filtros como, por
exemplo, com o filtro da média ou mediana. Contudo, a função gaussiana é a que melhor
representa a noção de escala, já que possui, entre outras propriedades: manutenção de extremos
locais, invariância rotacional e estrutura de semi-grupos. De modo equivalente, a família de
funções Scale-Space pode ser obtida através da solução da equação diferencial de difusão:
1
δ2 R = O2 L
2
47
A função gaussiana é uma solução dessa equação para uma condição inicial de R(x, y, 0) =
I(x, y). Pode-se pensar intuitivamente na noção de variação de escala a partir da difusão da in-
tensidade dos pixels de uma imagem assim como ocorre com a distribuição de temperatura em
uma superfície. Com o passar do tempo a temperatura se distribui ao longo da superfície de
acordo com a equação diferencial de difusão do calor. De modo semelhante, o parâmetro re-
lativo à temperatura é o σ da função gaussiana, a intensidade dos pixels é distribuída por seus
vizinhos e a intensidade se estabiliza, constintuindo-se uma variação de escala.