Da Transformada de Distância à Dimensão Fractal: Uma Abordagem em Hardware. Maximiliam Luppe 12 / 2015

Relevanta dokument
Matemática A Extensivo V. 3

MATERIAL SUPLEMENTAR

Física D Semi-Extensivo V. 2

Valmor Burkhardt Junior. Orientador: Prof. Wilson Pedro Carli

Alinhamentos de sequências e Busca de Similaridade

Alinhamentos de sequências e Busca de Similaridade

Negócios Carta. Carta - Endereço

Inscrição Carta de Apresentação Motivacional

Objetivos. Princípios da Epidemiologia. Bibliografia básica: Bibliografia básica: Epidemiologia

PT User manual 3. PL Brugervejledning 77. CS Manuale utente 97. SV Mode d emploi 21. EL Användarhandbok 37. SK Gebruiksaanwijzing 115

Immigration Bank. Bank - Allmänt. Bank - Öppna ett bankkonto. Posso sacar dinheiro em [país] sem ter que pagar taxas?

Ligia Aparecida Inhan Matos. Renata Lèbre La Rovere. Resumo: Abstract: Keywords: Palavras-chave:

Viajar Circulando. Circulando - Localização. Sem saber onde você está. Perguntando por uma locação específica no mapa

High Efficiency System 6 Sistema de Alta Eficiência 6

300 Compact

Var kan jag hitta formuläret för? Onde posso encontrar o formulário para? Fråga var du kan få ett formulär

Var kan jag hitta formuläret för? Onde posso encontrar o formulário para? Fråga var du kan få ett formulär

Mr. Adam Smith Smith's Plastics 8 Crossfield Road Selly Oak Birmingham West Midlands B29 1WQ

PT-054. Manual de instruções

Grafisk teknik IMCDP IMCDP IMCDP. IMCDP(filter) Sasan Gooran (HT 2006) Assumptions:

DE Gebrauchsanweisung en Instructions for use fr Instructions d utilisation es Manual de instrucciones it Istruzioni per l uso dk Brugsvejledning nl

EFICIÊNCIA DOS GASTOS MUNICIPAIS EM EDUCAÇÃO NO NORDESTE BRASILEIRO. Efficiency of Municipal Expenditure in Education in the Brazilian Northeast

Um estudo nas empresas da BM & FBovespa

Mr. Adam Smith Smith's Plastics 8 Crossfield Road Selly Oak Birmingham West Midlands B29 1WQ

Immigration Studera. Studera - Universitet. Ange att du vill anmäla dig. Ange att du vill anmäla dig till en kurs. Kurs.

Instruções de operação Instrucciones de funcionamiento Bruksanvisning Betjeningsvejledning

Resa Att ta sig runt. Att ta sig runt - Platser. Du vet inte var du är. Be om att bli visad en viss plats på en karta. Fråga om en viss servicepunkt

ViewSonic. Pro8200 DLP Projector. - User Guide. - Guide de l utilisateur. - Bedienungsanleitung. - Guía del usuario. - Guida dell utente

Millennium Ecosystem Assessment

Grafisk teknik IMCDP. Sasan Gooran (HT 2006) Assumptions:

Resa Logi. Logi - Hitta boende. Logi - Boka. Fråga om vägen till olika former av boenden

Grafisk teknik. Sasan Gooran (HT 2006)

Micro Hi-Fi System. Register your product and get support at

Styrteknik: Binära tal, talsystem och koder D3:1

Consola de Controlo de Instrumentos Elétricos REF 5025/REF Instruções de Utilização

REF 5025/REF 5020 Console de controle de instrumento elétrico. Instruções de utilização

Micro Hi-Fi System. Register your product and get support at

Angående buffer. clk clear >=1 =9?

Resa Allmänt. Allmänt - Grundläggande. Allmänt - Konversation. Fråga om hjälp. Fråga om en person talar engelska

Resa Allmänt. Allmänt - Grundläggande. Allmänt - Konversation. Fråga om hjälp. Fråga om en person talar engelska

Isometries of the plane

Resa Logi. Logi - Hitta boende. Logi - Boka. Fråga om vägen till olika former av boenden

Personligt Lyckönskningar

Personligt Lyckönskningar

Kabelhantering. Kabelflänsplattorna kännetecknas av:

A QUEST FOR MISSING PULSARS

Resa Att ta sig runt. Att ta sig runt - Platser. Du vet inte var du är. Be om att bli visad en viss plats på en karta. Fråga om en viss servicepunkt

DESIGN AV SEKVENTIELL LOGIK

VHDL Basics. Component model Code model Entity Architecture Identifiers and objects Operations for relations. Bengt Oelmann -- copyright

Image quality Technical/physical aspects

Viajar Circulando. Circulando - Localização. Sem saber onde você está. Perguntando por uma locação específica no mapa

1. Compute the following matrix: (2 p) 2. Compute the determinant of the following matrix: (2 p)

Vad heter antagligen på spanska? Vad heter under (om tid) på spanska? Vad heter plötsligt på spanska? Vad heter mer på spanska?

Sammanfattning hydraulik

Beijer Electronics AB 2000, MA00336A,

Joana Reina Maia e Silva Porto, Outubro de 2011

Resa Äta ute. Äta ute - Vid entrén. Äta ute - Beställa mat

Resa Äta ute. Äta ute - Vid entrén. Äta ute - Beställa mat

BRUKSANVISNING BALLONGLAMPA VID BYGGARBETEN. ballong. stativ. Ballast

Pre-Test 1: M0030M - Linear Algebra.

Resa Allmänt. Allmänt - Grundläggande. Allmänt - Konversation. Fråga om hjälp. Fråga om en person talar engelska

Displaysystem. Hans Brandtberg Saab Avitronics SAAB AVITRONICS

12.6 Heat equation, Wave equation

Viajar Acomodações. Acomodações - Procurando. Acomodações - Reservando. Pedindo por orientações para uma acomodação

SVENSK STANDARD SS-ISO :2010/Amd 1:2010

1. Unpack content of zip-file to temporary folder and double click Setup

Caro Senhor, Caro(a) Senhor(a), Prezado(a) Senhor(a),

Scalable Dynamic Analysis of Binary Code

What Is Hyper-Threading and How Does It Improve Performance

GRUNDER I VHDL. Innehåll. Komponentmodell Kodmodell Entity Architecture Identifierare och objekt Operationer för jämförelse

MANUAL DE INSTALAÇÃO. Grupos produtores de água refrigerada arrefecidos por ar EWAP400MBYNN EWAP460MBYNN EWAP540MBYNN

EHL6740FAZ PT PLACA MANUAL DE INSTRUÇÕES 2 ES PLACA DE COCCIÓN MANUAL DE INSTRUCCIONES 22 SV INBYGGNADSHÄLL BRUKSANVISNING 42

Plan. Ch1 - La Fonction Mémoire. Ch2 - Les Bascules. Ch3 - Machines Asynchrones. Ch4 - Machines Synchrones. Ch4-1 - Logique Séquentielle

VHDL3. Angående buffer

Master Thesis. Study on a second-order bandpass Σ -modulator for flexible AD-conversion Hanna Svensson. LiTH - ISY - EX -- 08/ SE

Índice 1 Responsabilidades 8 Combate à Corrupção 2 Ambiente de Trabalho

Support Manual HoistLocatel Electronic Locks

FÖRELÄSNING 8 INTRODUKTION TILL DESIGN AV DIGITALA ELEKTRONIKSYSTEM

CLC CONECTOR MADERA-HORMIGÓN PARA REHABILITACIÓN ESTRUCTURAL KONSTRUKTIONSSKRUV TRÄ-BETONG FÖR NYBYGGNATIONER OCH RENOVERINGAR

Rev No. Magnetic gripper 3

INSTALLATION INSTRUCTIONS

Mönster. Ulf Cederling Växjö University Slide 1

MÅLSTYRNING OCH LÄRANDE: En problematisering av målstyrda graderade betyg

2.45GHz CF Card Reader User Manual. Version /09/15

Goals for third cycle studies according to the Higher Education Ordinance of Sweden (Sw. "Högskoleförordningen")

denna del en poäng. 1. (Dugga 1.1) och v = (a) Beräkna u (2u 2u v) om u = . (1p) och som är parallell


Tentamen i Matematik 2: M0030M.

Certidão de Regularidade Profissional 1 de 1 01/03/ :42 O CONSELHO REGIONAL DE CONT

Schenker Privpak AB Telefon VAT Nr. SE Schenker ABs ansvarsbestämmelser, identiska med Box 905 Faxnr Säte: Borås

The present situation on the application of ICT in precision agriculture in Sweden

Ligas internas. Completar todos los datos de los jugadores en letras mayúsculas. Imprescindible datos completos del delegado, incluido su .

Programvaruintensiva system

Questionnaire for visa applicants Appendix A

Resa Att ta sig runt. Att ta sig runt - Platser. Du vet inte var du är. Be om att bli visad en viss plats på en karta. Fråga om en viss servicepunkt

Programmerbara kretsar och VHDL 2. Föreläsning 10 Digitalteknik, TSEA22 Oscar Gustafsson Institutionen för systemteknik

Huvudansökan, kandidatprogrammet i språk: portugisiska

ASSEMBLY MONTAGE MONTAJE MONTAGE MONTAGGIO AFWERKING MONTAGEM MONTAŻ SZERELÉS СБОРКА MONTARE MONTÁŽ MONTÁŽ MONTERING МОНТИРАНЕ MONTAJ МОНТУВАННЯ

StockApp. Aplicación de captura y tratamiento de código de barras. Solución completa, fácil, económica y definitiva en los controles de inventario.

Kit de Extração de DNA ocheck

Transkript:

03-2015 12 / 2015 Da Transformada de Distância à Dimensão Fractal: Uma Abordagem em Hardware Maximiliam Luppe

Copyright 2015 pelos autores Todos os direitos reservados.

Da Transformada de Distância à Dimensão Fractal: Uma Abordagem em Hardware Maximiliam Luppe Abstract Distance Transform (DT) and Fractal Dimension (FD) are mathematical operations widely used and extremely important tools in digital image processing, especially in shape analysis. One of the reasons for such great interest is the power of the FD to properly express the intricacy and self-similarity of signals. Furthermore, the FD can also be understood as a spatial coverage indication of a specific shape. Several numerical approaches have been developed for FD estimation, like Box-Counting, but it is possible to obtain the FD of objects from the DT and one of the best methods is the Minkowski-Bouligand method. The Minkowski-Bouligand method involves a series of dilated versions of the original shape with respect to several radii, defining the spatial scale. The area of the dilated shapes is represented in terms of the radii in a log-log plot, and the fractal dimension is taken as being 2. (slop of the interpolated line). The shape dilation, normally obtained by morphological operations, can also be obtained by a DT. The area of the dilated shapes area is them obtained by thresholding the Distance Map at all the possible distances that can be represented in an orthogonal lattice. However, this method is computationally exhaustive due to the use of the Euclidean DT, which involves floating point number calculations. This work presents an architecture suitable to be implemented in reconfigurable devices and able to perform the calculation of DT and FD at video rate. Resumo A Transformada de Distância (TD) e a Dimensão Fractal (DF) são operações matemáticas largamente utilizadas e ferramentas extremamente importantes no processamento digital de imagens, especialmente na análise de formas. Uma das razões para esse grande interesse é o poder da DF em expressar adequadamente a complexidade e auto-similaridade de sinais. Além disso, a DF também pode ser entendida como uma indicação da cobertura espacial de uma forma específica. Várias abordagens numéricas foram desenvolvidas para a estimar a DF, como o Box-Counting, mas é possível obter a DF de objetos a partir da TD e um dos melhores métodos para isso é o método de Minkowski-Bouligand. O método de Minkowski-Bouligand envolve uma série de versões dilatadas da forma original com respeito a vários raios, definindo a escala espacial. A área das formas dilatadas é representada em termos dos raios em um gráfico log-log, e a DF é obtida como sendo 2 (inclinação da reta interpolada). A dilatação, normalmente obtida a partir de operações morfológicas, também pode ser obtida através de uma TD. A área das formas dilatadas é obtida pela limiarização do Mapa de Distância em todas as possíveis distâncias que podem ser representadas numa malha ortogonal. No entanto, este método é computacionalmente exaustivo devido ao uso da TD Euclidiana, que envolve o cálculo de números em ponto flutuante. Este trabalho apresenta uma arquitetura adequada para ser implementada em dispositivos reconfiguráveis e capaz de realizar o cálculo do TD e DF na taxa de vídeo O autor agradece à FAPESP pelo apoio financeiro (2007/04657-3) Departamento de Engenharia Elétrica e de Computação, Universidade de São Paulo, São Carlos. maxluppe@sc.usp.br 1

1 INTRODUÇÃO A Transformada de Distância (TD) é uma operação que, a partir de uma imagem binária contendo objetos e não-objetos (fundo), fornece outra imagem, em níveis de cinza, cujo valor de cada pixel representa a sua distância à fronteira objeto/fundo mais próxima. A distância pode ser calculada a partir de cada pixel pertencente ao objeto ao pixel mais próximo pertencente ao fundo, ou vice-versa. Dentre as aplicações da TD incluem: a segmentação de imagens, a obtenção de esqueletos (COSTA, 2000), a análise de clusters, o guiamento de robôs móveis (SUDHA; NANDI; SRIDHARAN, 2000) - (GARRIDO et al., 2006) e o cálculo da dimensão fractal (LUPPE; COLOMBINI; RODA, 2005). Neste último caso, a Dimensão Fractal (DF) está relacionada à principal característica do fractal, termo introduzido por Mandelbrot (MANDELBROT, 1983), que propôs um novo conceito de geometria, com o qual é possível determinar o grau de complexidade de uma linha ou a rugosidade de uma superfície. Neste artigo apresentamos um compêndio do trabalho desenvolvido no Departamento de Engenharia Elétrica e de Computação, da EESC/USP, para, a partir do cálculo da TD, realizar o cálculo da DF em tempo real utilizando dispositivos FPGA. Takala e Viitanen (1999) consideram que as arquiteturas SIMD (Single Instruction Multiple Data) são as mais adequadas para o processamento de imagem, principalmente aquelas que possuem granularidade fina, por serem mais baratas do que as arquiteturas MIMD e por possuírem um controle mais fácil. Como forma de diminuir ainda mais os custos de implementação, Takala e Viitanen propõem que o processamento seja feito bit a bit, o que aumentaria a eficiência em área dos processadores. Além do mais, as arquiteturas seriais (processamento bit a bit) tornam mais fácil a integração do sensor de imagem (tipicamente um CCD - Charge Coupled Device) com a arquitetura em uma única pastilha. Baglietto, Maresca e Migliardi (1995) apresentam um algoritmo para calcular a TDE baseado na arquitetura PPA (Polymorphic Processor Array), que é um arranjo de NxN elementos de processamento (PE), onde cada PE possui uma chave de comunicação com os demais PEs e uma memória (Figura 1). A direção de movimento de dados entre os PEs é realizada ao mesmo tempo e em uma única direção. Ou seja, em um determinado tempo, todos os PEs enviam dados na mesma direção (Norte, Leste, Sul ou Oeste). Cada PE pode definir se a sua conexão é Fechada (os dados passam direto), ou Aberta (o processador envia dados). 2 TRABALHOS RELACIONADOS A TD é um procedimento muito custoso sob o ponto de vista computacional. Normalmente ela é calculada a partir de cada pixel da imagem ao pixel 0 mais próximo, analisando todos o pixels ao seu redor. Novos algoritmos, tanto em paralelo quanto em seqüencial, da TD, tanto Euclidiana (TDE), quanto não-euclidianas (City Block, Chessboard, Chamfer, Quasi-Euclidian), têm sido propostos (HIRATA, 1996) -(TAKALA; VIITA- NEN, 1999) com o intuito de reduzir o tempo de processamento e a ordem de complexidade do mesmo, quando em comparação com o método tradicional (força bruta). Contudo, a maioria das implementações em paralelo se baseiam em modelos computacionais tipo EREW-RAM (Exclusive-Read-Exclusive-Write-RAM), não sendo efetivamente implementados. Poucas são as implementações em hardware da Transformada de Distância (TAKALA; VIITANEN, 1999) -(MIYAZAWA et al., 2006). Figure 1 Diagrama do elemento de processamento da arquitetura PPA (BAGLIETTO; MARESCA; MIGLIARDI, 1995). Pela sua estrutura, é possível associar cada PE a um pixel. O algoritmo para o cálculo da TDE é dividido em 2 passos, similarmente ao que é proposto por Chen e Chuang (1994) e Hirata (1996). No primeiro passo cada pixel (PE) procura qual é o pixel do objeto mais próximo dentro da coluna a qual ele pertence e armazena este valor temporariamente. No segundo passo ele realiza uma série de operações de buscae-comparação pelas linhas e determina a distância do pixel mais próximo num processo de triangulação com outros dois pixels pertencentes à mesma linha. Esta operação é repetida até que o valor do pixel mais próximo 2

não mude mais. Sudha, Nandi e Sridharan (2000) apresentam um algoritmo, para calcular a Distância Euclidiana, baseado na Transformada do Vizinho mais Próximo (NNT - Nearest Neighbors Transformation). Nessa transformada, a cada pixel p 0 pertencente ao objeto é atribuído um vetor de deslocamento (Δ x (p 0 ), Δ y (p 0 )) que aponta para o pixel mais próximo não pertencente ao objeto. A distância Euclidiana acaba sendo calculada por Δ x (p 0 ) 2 +Δ y (p 0 ) 2. Se o pixel p 0 está na posição (x, y), então o seu vizinho mais próximo está na posição (x +Δ x (p 0 ),y+δ y (p 0 )). O cálculo da distância é feito de forma interativa, a partir dos pixels da borda do objeto. Baseada neste algoritmo, é implementada uma arquitetura celular 8-conectada que realiza a propagação das coordenadas dos pixels aos pixels vizinhos, juntamente com uma um valor de distância aproximada da distância. Euclidiana (d f ), que está relacionada com o índice de interação do algoritmo, controlado por um contador externo. No pior caso, após a imagem ser carregada, o processamento consome N 2 pulsos de clock. Não são dados detalhes a respeito do tempo para se carregar, nem descarregar, a imagem da arquitetura. Miyazawa et al. (2006) desenvolveram um algoritmo sistólico para o cálculo da TDE baseado no trabalho desenvolvido por Hirata (1996). A arquitetura, derivada do algoritmo proposto, assim como de Baglietto, Maresca e Migliardi (1995), realiza a propagação das distâncias inicialmente na vertical e depois na horizontal, porém, em partes separadas. A primeira parte (algoritmo T1) realiza a propagação das distâncias na vertical, num esquema pipeline e concorrente, onde todas colunas são processadas ao mesmo tempo, consumindo 2N pulsos de clock. A segunda (algoritmo T2) parte realiza o cálculo efetivo da distância num esquema sistólico, onde cada célula envia seus dados para três células da linha inferior. O cálculo da distância é realizado por meio da minimização de uma função quadrática: f i k (j) = (j k) 2 + ρ 2 i,k, (1) onde i representa as linhas da coluna k, j representa todas as colunas da imagem, e g i,k representa a distância Euclidiana na vertical para o pixel (i,k). Este processamento leva 2N? 1 pulsos de clock. Devido à saída de dados de T1 e a entrada de dados de T2 serem processados linha por linha, o tempo total de processamento leva 3N pulsos de clock. Tanto a entrada, quanto a saída de dados, são em linha por linha. Um dos aprimoramentos feitos no algoritmo original, que possibilitou simplificar a arquitetura, é a substituições de multiplicações por somas e deslocamentos. Outra simplificação foi trabalhar com o quadrado da distância, ou seja, utilizar f ik(j) = (j k ) 2 + gi,k 2, ao invés da Equação (1). Para realizar comparações entre arquiteturas, Miyazawa et al. (2006) utilizam os dados do consumo de registradores e da quantidade de elementos combinacionais (somadores, multiplexadores, comparadores e multiplicadores), entre a arquitetura implementada e os algoritmos propostos por Chen e Chuang (1994). Conforme podemos observar, é bastante reduzida a quantidade de arquiteturas específicas para o cálculo da TD, especialmente da TDE, mais adequada para o cálculo da DF. Com relação a arquiteturas para o cálculo da DF, não foram encontrados trabalhos relevantes na área. A seguir são apresentados os conceitos teóricos da TD e da DF. 3 TRANSFORMADA DE DISTÂNCIA Dada uma imagem I com NxN elementos binários, consideramos o elemento I (i, j) = 0, da linha i e da coluna j,como sendo o pixel de interesse. Um Mapa de Distância (MD) é uma imagem onde o valor de cada elemento MD(i, j) representa a distância do pixel (i, j) da imagem ao pixel de interesse mais próximo. A Transformada de Distância é um procedimento matemático (ou algoritmo) que calcula este mapa de distância. Para o cálculo da TD é necessário especificar a métrica que será utilizada para calcular a distância entre os pixels. A métrica mais conhecida é a que define a distância Euclidiana: d (P 1,P 2 )= (i 2 i 1 ) 2 +(j 2 j 1 ) 2 (2) onde P 1 (i 1,j 1 ) ep 2 (i 2,j 2 ) representam dois pixels da imagem. Esta métrica define a Transformada de Distância Euclidiana (TDE). Porém, o custo computacional da TDE é muito alto, principalmente sob o ponto de vista de implementações em hardware, por envolver operações de multiplicação e de raiz quadrada e, conseqüentemente, números reais. Desta forma, tentativas de reduzir o tempo de processamento, quer pelo meio de novos algoritmos ou pelo uso de outras métricas da distância (HI- 3

RATA, 1996)-(TAKALA; VIITANEN, 1999), têm sido implementadas, conforme citado anteriormente. Outras métricas de distância podem ser obtidas a partir da Distância Com Peso d w (P 1,P 2 ), entre os pixels P 1 ((i 1,j 1 )e P 2 (i 2,j 2 ), definida pela seguinte expressão: dω(p 1,P 2 )= { ω o i 2 i 1 + ω 1 j 2 j 1, se i 2 i 1 j 2 j 1 (3) ω 1 i 2 i 1 + ω o j o j 1, caso contrário. onde ω 0 e ω 1 são constantes não negativas. A Distância Com Peso pode ser considerada como uma generalização de várias métricas. Por exemplo, é uma distância: City Block se, (ω 0,ω 1 )=(1, 1) Chessboard se, (ω 0,ω 1 )=(0, 1) Quasi-Euclidian se, (ω 0,ω 1 )= ( 1, 2 1 ) Chamfer se (ω 0,ω 1 ) = (1, 1/( 2 1 + 2 1)) Apesar destas distâncias serem bem mais simples de se implementar, quando comparadas à distância Euclidiana, existe um compromisso entre o tempo de execução, os erros decorrentes destas aproximações e as necessidades da aplicação. A Figura 2 apresenta o erro relativo à distância Euclidiana decorrente do uso das Distâncias Com Peso acima. A dificuldade de se utilizar a Distância Euclidiana não está somente relacionada ao seu cálculo, mas também ao tipo e à quantidade de dados gerados. O sistema que irá utilizar estes dados também poderá se tornar muito complexo. Outro problema relacionado ao cálculo da TD, principalmente com as métricas que utilizam valores reais, Figure 2 Erro relativo em relação à Distância Euclidiana devido ao uso da Distância com Peso. está ligado com a representação numérica em ponto flutuante da distância. Isto resulta num grande Table 1 Lista de Índice das Possíveis Distâncias Euclidianas Distintas custo de implementação em hardware, uma vez que as operações aritméticas em ponto flutuante necessitam de circuitos complexos. Para se evitar o uso de valores reais, uma primeira solução seria trabalhar com o quadrado da distância, conforme feito por Miyazawa et al. (2006), o que proporcionaria o uso de valores inteiros. Porém, esta não é a melhor solução uma vez que nem todos os valores inteiros seriam utilizados para representar as distâncias que podem ser calculadas entre pixels de uma imagem. Isto se deve ao fato de que a estrutura matricial de uma imagem limita a quantidade de distâncias que podem ser calculadas. Visto que existe um número limitado de distâncias que podem ser representadas numa imagem, outra opção seria ordenar todas estas possíveis distâncias num vetor e utilizar o índice deste vetor como medida de distância. Costa (2000) apresenta um método para o cálculo da TDE baseado numa estrutura de dados chamada SEDR (Sorted Exact Distances Representation). A estrutura SEDR armazena as distâncias Euclidianas e suas posições relativas dentro de uma matriz quadrada em ordem crescente. Nesta estrutura, baseada numa lista indexada, onde cada elemento armazena a distância Euclidiana d, o primeiro elemento (índice 0) armazena a distância 0, o segundo elemento (índice 1), a distância 1, o terceiro elemento (índice 2), a distância 2, e assim sucessivamente. A Tabela 1 exemplifica o caso das distâncias representáveis dentro do disco de raio 4. A utilização desta representação torna possível trabalhar com o índice (valor inteiro) ao invés da distância d (valor real), simplificando o processamento. Para a conversão do índice para a respectiva distânciad, basta utilizar uma Look Up Table (LUT). E esta mesma idéia pode ser aplicada a qualquer métrica, quer utilize números reais, quer utilize números inteiros. Outra grande vantagem de se trabalhar com o índice é que permite o máximo aproveitamento do barramento de dados, o que não ocorre com o uso do quadrado da distância. 4

4 CÁLCULO DA DIMENSÃO FRACTAL A principal característica do fractal está relacionada à sua dimensão, com o qual é possível determinar o grau de complexidade de uma linha ou a rugosidade de uma superfície, ou, de acordo com Russ (RUSS, 1995), a dimensão fractal é a taxa com a qual o perímetro (ou área de uma superfície) de um objeto aumenta quando a escala de medida é reduzida. De acordo com Allen (1995), as estratégias de análise para medir a dimensão fractal podem ser divididas em dois grupos: métodos baseados em vetores e métodos baseados em matrizes. Dentre os métodos baseados em vetores, temos o método Structured Walking, que será explicado a seguir. Imagine que queiramos medir o comprimento de uma linha costeira com um compasso de ponta seca que possui uma abertura inicial ε,, conforme a Figura 3. O número de passos realizados com o compasso multiplicado por ε nos fornece um comprimento aproximado de L(ε). Utilizando uma nova abertura ε ( menor que a anterior, obteremos um novo valor de L ε ).Àmedida que diminuímos o valor de ε,, imaginamos que valor de L(ε) irá convergir para o verdadeiro comprimento da linha costeira. Mas isto não ocorre e observamos que o valor de L(ε) tende a aumentar sem limites. Isto se deve ao fato de que quanto menor a escala (valor de ε), mais detalhes aparecem. Desta forma podemos estabelecer a relação L(ε) =Mɛ (1 D), onde M é uma constante, e D é definida como a DF. A partir de um gráfico entre o logaritmo do perímetro (valor de L(ε)) obtido em cada escala e o logaritmo da escala (valor de ε), podemos obter o valor da DF. Esta dimensão é mais conhecida por Dimensão de Richardson. Figure 3 Exemplo de Structured Walking. Dentre os métodos baseados em matrizes, temos o método de Mapa de Distância. Este método baseiase no uso de um processo conhecido por salsicha de Minkowski. Neste processo, cada ponto que pertence ao contorno do objeto é dilatado ou sobreposto por círculos de raio ε, formando, assim, faixas, ou bandas, chamadas de salsichas de Minkowski, que possuem área A(ε)ocε( 2 D )(BéBURé; JéBRAK, 1999). Limiarizando um MD (criado a partir dos pontos de contorno do objeto) em diferentes níveis de cinza, criamos faixas similares àquelas obtidas pelo processo de dilatação. Assim, como no caso do método Structured Walking, podemos obter a DF por meio de um gráfico do logaritmo do perímetro L(ε) pelo logaritmo do raio ε, sendo o perímetro L(ε) obtido por meio da divisão da área A(ε) pela largura média da salsicha, igual ao valor de limiar. Porém, é mais interessante utilizar um gráfico do logaritmo da área A(ε) pelo logaritmo do raio ε e, ao invés de limiarizar o MD em diferentes valores de níveis de cinza, utilizar o histograma da imagem para calcular a área da faixa para cada nível de cinza. A DF obtida por este método é mais conhecida por Dimensão Minkowski. Figure 4 Exemplo de Mapa de Distância. Além destes, outros métodos para o cálculo da DF foram criados (ASVESTAS, 1999) e avaliados (BéBURé; JéBRAK, 1999), sendo que de acordo com Béburé e Jébrak (1999) e Allen (1995), o método de Mapa de Distância é o melhor método, dentre os métodos baseados em matrizes, por ser mais exato e menos sensível a variações de tamanho e resolução (ver ilustração desse método na Figura 4). Assim, podemos obter a DF calculando o coeficiente angular da reta de um gráfico do logaritmo da área A(ε) pelo logaritmo do raio ε. Uma forma de obter o valor da área em função do raio é por meio do uso de um histograma acumulativo da imagem. Este histograma fornece, para cada nível de cinza, ou valor deε, a quantidade de pixels com valores menores ou iguais a este. Sendo assim, o módulo para o cálculo da DF necessitaria da implementação de uma estrutura para obtenção do histograma do MD, de uma estrutura para o cálculo de logaritmo e de outra para o cálculo de coeficiente angular. O gráfico de área por raio é obtido através do histograma acumulativo, onde para cada valor de raio ε) 5

são considerados todos os pontos do MD com raio menor ou igual a ε. 5 ARQUITETURA PARA TDE O algoritmo tradicional para o cálculo da transformada de distância, baseado numa função distância (P,Q) que realiza o cálculo da métrica, pode ser exemplificado abaixo, considerando que todos os pixels de interesse na imagem armazenam o valor 0 e os demais, um valor máximo: pelo seu índice correspondente da estrutura SEDR. A estrutura radial da arquitetura, apresentada na Figura 5, é mais adequada para o uso da TD para o cálculo da dimensão fractal. Contudo, todas as células de deslocamento podem ser substituídas por células de processamento, possibilitando que distâncias até sejam calculadas. Para o controle da arquitetura, a imagem binária percorre por toda a arquitetura, exigindo o uso extra de um registrador de 1 bit por célula. para todos P da imagem se [P] = 0 então para todos Q ao redor de P calcule d = distância(p,q) se d < [Q] então faça [Q] = d Observe que o cálculo da distância é feito relativo a um pixel de interesse. Sendo assim, o cálculo pode ser simplificado substituindo a função distância(p,q) por uma matriz que já contenha todas as distâncias previamente calculadas. A implementação da arquitetura, então, consiste na transposição direta do algoritmo básico de cálculo da TD, mais especificamente da matriz de distâncias, numa máscara de distâncias, composta por uma matriz de células de processamento, que irão realizar a comparação das distâncias, associadas a um conjunto de células de deslocamento e uma célula central de controle. A coluna extra de células serve para manter a largura da imagem par. Seu funcionamento é baseado na sobreposição desta máscara à imagem da qual quer se obter o Mapa de Distâncias. Uma imagem binária é enviada através da arquitetura, e na saída temos o Mapa de Distâncias da mesma. Toda vez que o elemento central desta máscara encontrar um pixel de interesse (pixel igual a 0), os pixels da imagem, sobrepostos pela máscara, serão atualizados com o menor valor entre o valor do pixel da imagem e o do pixel da máscara, num esquema similar ao algoritmo tradicional (força bruta) para o cálculo da TD, só que feito concorrentemente para todos os pixels. Como o uso das distâncias, representadas por valores reais, introduz uma maior complexidade na implementação da arquitetura, as mesmas podem ser substituídas Figure 5 Arquitetura para a transformada de distância. A célula de processamento é apresentada na Figura 6. Como podemos observar, ela é bastante simples, composta apenas de um comparador (elemento de processamento) e Figure 6 Célula de processamento. de um multiplexador (elemento de chaveamento). A célula de processamento recebe dois dados: um proveniente da imagem (Din), e outro de uma pequena célula de memória que armazena a sua posição (distância ou índice) relativa à célula central (Dlocal). Esta célula recebe o sinal modify da célula central, indicando que a célula deve, ou não, realizar a comparação entre os dados de entrada. Se o sinal modify estiver ativado, indicando que a célula de controle está sobre um pixel 0, na saída Dout teremos o menor valor entre 6

Din e Dlocal. Caso contrário, teremos o valor Din. O valor resultante do processamento é armazenado em um registrador (elemento de memória). Por simplicidade de implementação, a célula de memória que armazena (Dlocal) é agregada ao próprio comparador. Assim, a arquitetura consome N 2 N comparadores, N 2 N multiplexadores, N 2 registradores dependentes do valor de NeN 2 registradores fixos. Abaixo temos o código em VHDL do processo básico para a implementação da célula de processamento process (clk, clr, en) begin if(clr = 1 ) then dout <= (others => 1 ); elsif (clk event and clk = 1 ) then if ((Din> Dlocal) and (modify= 1 )) then Dout <= Dlocal; else Dout <= Din; end if; end if; end process Na Tabela 2 podemos ver a comparação entre a arquitetura apresentada neste trabalho e a proposta por Miyazawa et al. (2006), com relação ao consumo de registradores e circuitos lógicos. Podemos observar que a arquitetura proposta neste trabalho utiliza menos recursos e possui a grande vantagem de não utiliza nenhum elemento aritmético (somador ou multiplicador). Outra vantagem é que, por utilizar um índice para as distâncias e não o seu valor ao quadrado, conforme Miyazawa et al. (2006), o tamanho final dos registradores dependentes de N é menor. Table 2 Comparação de consumo de registradores e de componentes combinacionais 6 ARQUITETURA PARA DF Para o cálculo da DF é necessário obter o histograma do MD e, a partir deste, calcular o coeficiente angular da reta formada pelo logaritmo da área A(ε) versus o logaritmo do raio ε. A seguir são apresentados os conceitos envolvidos nestes dois passos. 6.1 Cálculo do Histograma O histograma de uma imagem é obtido pela contagem do número de pixels que possui um determinado valor de distância (ou raio), para cada valor de distância presente no mapa de distâncias. Duas são as possibilidades de se implementar esta estrutura: com contadores individuais (um para cada valor de distância), ou com memória. O uso de registradores, apesar de ser mais simples, implica em um grande consumo de células lógicas, enquanto que com a implementação com memória acarretaria no consumo dos blocos de memória já existentes na FPGA e de apenas algumas células lógicas. Sendo assim, optou-se pelo uso da memória. Para implementar uma contagem de pixels utilizando memória, é realizado um esquema read-modify-write. Neste esquema, uma determinada posição de memória é acessada utilizando o valor do nível de cinza do pixel. O valor armazenado nesta posição é lido, incrementado e armazenado na mesma posição. A melhor forma de implementar este esquema é utilizando memória síncrona com duas portas e uma técnica conhecida por Clock-2x. Nesta técnica, o sinal de clock utilizado para ter acesso à memória é dobrado, enquanto que o sinal de clock é utilizado para habilitar a escrita na memória. O dado disponível numa das portas é incrementado por meio de um somandor e o resultado da soma é fornecido à outra porta. Na Figura 7 temos o esquema da implementação da técnica. Durante o processo de geração do histograma, o valor do pixel é utilizado como endereço do dado a ser lido (INPUT VALUE), incrementado e armazenado (linha verde). Para a descarga do histograma, um contador externo é utilizado para a geração dos endereços para a leitura dos dados (READ ADDR) e consequente limpeza (armazenamento do valor 0) da memória (linha azul). Para esta operação são utilizados multiplexadores controlados pelo sinal SEL. Para se obter o his- 7

Figure 7 Módulo de histograma. tograma acumulativo, basta descarregar o conteúdo da memória num circuito acumulador. Este acumulador vai armazenando, e enviando adiante, o resultado da soma anterior com o novo dado. Cada dado do histograma acumulativo representa a área A(ε) coberta pelos pixels para cada valor de distância ε representável na imagem pelo mapa de distâncias. O valor de ε é obtido por meio de uma memória tipo ROM que armazena o valor de ε (ou de log ε, para facilitar o cálculo do coeficiente angular), atuando como a estrutura de dados SEDR. Como estamos interessados apenas no coeficiente angular b, visto que D = 2 - coeficiente angular do gráfico log A(ε) versus log ε não foi realizado o cálculo do coeficiente linear a. Visto que estamos trabalhando com um conjunto fixo de distâncias, visto que poucas são as distâncias representáveis e são limitadas pelo tamanho da imagem, podemos observar que alguns parâmetros da equação do coeficiente angular são constantes (dependem apenas da variável x i, além do próprio n: ( n ) c o = x i c 1 = n i=1 ( n i=1 x 2 i ) ( n ) 2 x i. i=1 (5a) (5b) Sendo assim, a equação para o coeficiente angular fica: b = n ( n i=1 y ix i ) C o ( n i=1 y i) (6) C 1 O que reduz o cálculo do coeficiente angular de quatro multiplicações, duas subtrações e uma divisão, para apenas duas multiplicações, uma subtração e uma divisão. Todas as operações são realizadas com números inteiros. Para o caso do cálculo da DF, o valor de y i corresponde a log A(ε), enquanto que o valor de x i representa log ε.?tanto a somatória de y i, quanto a somatória do produto de x i com y i, são obtidas de forma similar ao histograma acumulativo, por meio de um componente acumulativo: um acumulador para a somatória de y i eum multiplicador acumulador para a somatória do produto de x i com y i. 6.2 Cálculo do Coeficiente Angular Para o cálculo do coeficiente angular é utilizado o Método do Mínimo Quadrático (MMQ). Considerando um conjunto de pares ordenados (x i,y i ) que descrevem uma reta y = a + bx, podemos encontrar os coeficientes a e b por meio das seguintes operações: a = ( n i=1 y i) ( n ) n i=1 x2 i ( i=1 x i)( n i=1 y ix i ) n ( n i=1 x2 i ) ( n i=1 x i) 2 (4a) b = n ( n i=1 y ix i ) ( n i=1 x i)( n i=1 y i) n ( n i=1 x2 i ) ( n i=1 x i) 2 (4b) 7 IMPLEMENTAÇÃO A arquitetura foi codificada em linguagem VHDL, utilizando a ferramenta Quartus II 9.0sp2 Web Edition da Altera, tanto para síntese quanto para simulação. A síntese foi realizada em dispositivo EP2C70F672C6 da família Cyclone II. Considerando DistW como a largura do barramento de dados da arquitetura, o consumo de elementos reconfiguráveis (LE) por célula de processamento é de 2DistW + 1 LEs (para DistW maior que 6), e de cada célula de deslocamento, DistW + 1 LEs. Como a arquitetura trabalha com o índice da distância, para cada valor de DistW existe uma distância máxima (Dmáx) representável, conforme a Tabela 3. É importante ressaltar que, apesar do consumo de cada célula de processamento ser de 2DistW + 1 LEs, no processo de síntese global, o consumo médio por célula é menor, devido às simplificações lógicas realizadas pela ferramenta Quartus II. A Tabela 4 mostra alguns valores obtidos, tanto individualmente (fixo), quando na síntese global. A Tabela 5 apresenta a comparação entre a arquitetura apresentada neste trabalho e a proposta por 8

Table 3 Relação entre a largura do barramento de dados (DistW) e a máxima distância representável (Dmáx). Table 4 Comparação entre o consumo individual (fixo) e global (médio) de LEs por célula de processamento. Figure 8 Módulo de histograma Histo. Table 5 Comparação da largura do barramento de dados e do consumo de dispositivos reconfiguráveis. Sudha, Nandi e Sridharan (2000). Para cada tamanho de imagem (NxN), foi escolhido o menor valor de DistW que permitisse representar uma distância máxima de (N/2 1) 2. Por exemplo, no caso de N igual a 128, a distância máxima representável pela arquitetura seria de (N/2 1) 2=89, 095. Logo, o menor valor de DistW que pode ser utilizado é 12, conforme a Tabela 3. Como a interligação entre as células é local, o atraso entre elas é desconsiderado. Sendo assim, o tempo necessário para calcular a TD para uma imagem de (NxN)pixels pode ser estimado pelo tempo máximo de atraso dos dados em cada célula. Testes mostram os dados passam por, no máximo, duas LEs, e o atraso associado a cada uma é dependente do dispositivo escolhido. Para o EP2C70F672C6 este atraso é de 6ns, o que leva a uma freqüência máxima de operação de 83,3MHz. Para uma imagem de 256x256 pixels, o tempo total de processamento é de 0,786ms, 20 vezes menor que a taxa de vídeo (16ms). Uma vez obtido o MD, é necessário obter o histograma deste mapa para o cálculo da DF. Na Figura 8 temos a implementação da técnica Clock-2x para o cálculo do histograma, apresentada na Seção 6.1. Durante o processo de geração do histograma, o valor do pixel (Data i n) é utilizado como endereço do dado a ser lido, incrementado e armazenado. Para a descarga do histograma, um contador externo é utilizado para a geração dos endereços (Address) para a leitura dos dados e consequente limpeza da memória. Para esta operação são utilizados multiplexadores controlados pelo sinal sel. A saída (Data o ut) deste módulo do histograma é enviado para uma estrutura ACC que realiza a acumulação dos dados que são enviados para ela, gerando o histograma acumulativo. Uma vez calculado o histograma acumulativo, é necessário calcular o logaritmo dos dados deste para obter os dados necessários para gerar o gráfico log A(ε) vs log ε e, a partir deste, obter o coeficiente angular da reta que melhor se ajusta aos dados. Para se obter o logaritmo da área é necessário converter os dados, que estão no formato de inteiros, para o formato em ponto flutuante. Tal conversão é realizada pela megafunção ALTFP_CONV ERT da ferramenta Quartus II, que tanto pode ser utilizado para converter dados inteiros (32 ou 64 bits) para ponto-flutuante (precisão simples ou dupla), como vice-versa. Para tanto, foram criados os componentes i2048log_i2f e i2048log_f 2i para a conversão de inteiro para ponto-flutuante e de ponto-flutuante para inteiro, respectivamente. Após a conversão de inteiro para ponto-flutuante, é calculo do logaritmo (com o uso do componente i2048log_log, criado a partir da megafunção ALTFP_LOG) e o resultado é multiplicado por 2048 (com o uso do componente i2048log_mul, criado a partir da megafunção ALTFP_MULT) antes de ser novamente convertido para inteiro. A multiplicação por 2048 permite continuar com o uso de inteiros no lugar de ponto-flutuante, o que reduz o consumo de lógica. Na Figura 9 temos o esquema do circuito de conversãologaritmo-multiplicação. 9

Figure 9 Módulo de logaritmo i2048log. o atraso, em ciclos de clock, causado por cada módulo. O sinal Distances é gerado pela arquitetura para o cálculo da TD, e o sinal Address é gerado por um sistema de controle Também foi obtido o logaritmo dos valores de distância ε multiplicados por 2048 e armazenados numa memória ROM (com o uso do componente dimfrac_rom, criado a partir da mega função ROM: 1- PORT) para serem utilizados, juntamente com os valores de log A(ε) para o cálculo do coeficiente angular. Assim, após a geração do histograma, armazenado numa memória RAM, é possível calcular a dimensão fractal enviando os dados de área e distância para um módulo de cálculo do coeficiente angular. Tanto a memória RAM (com os dados do histograma), quanto a memória ROM (com os dados de distância) são acessados ao mesmo tempo por meio de um contador que realiza a descarga das duas memórias. Para a sincronização dos sinais Yi(logA(ε))eXi(logε), uma vez que o caminho percorrido pelos dados vindos do histograma é maior, devido ao processamento realizado nestes, foi necessário ainda realizar um atraso no sinal de Xi por meio do uso do componente dimf rac_shr, criado a partir da megafunção Shift register (RAM-based).Tanto a somatória de Yi, quanto a somatória do produto de Xi com Yi, são obtidas da mesma forma que o histograma acumulativo, por meio de um componente acumulativo: um acumulador (ACC) para a somatória de Yi e um multiplicador acumulador (MAC) para a somatória do produto de Xi com Yi. O resultado destes somatórios é enviado ao componente MMQ_cte, apresentado na Figura 10. Figure 11 Esquema geral do módulo de dimensão fractal. O sistema de controle é utilizado para sincronizar a geração do histograma e o cálculo da DF com o sinal de video. Numa primeira etapa, é gerado o histograma e, ao final da imagem, numa segunda etapa, o histograma é descarregado para o cálculo da DF. Em ambas as etapas, o sistema de controle é responsável pela geração do sinal Address, por meio de um contador. Na Figura 12 temos a implementação do esquema geral do módulo para o cálculo da DF descrito na Figura 11, já com o sistema de controle. Na Figura 13 temos dois exemplos de fractais, conhecidos por curvas de Koch, utilizados como teste. Em a) e c) temos a imagem original, em b) e d) temos o cálculo da TDE. O fractal da Figura 13a tem DF de 1,5000, e o da imagem Figura Figure 12 Módulo de dimensão fractal. Figure 10 Módulo de cálculo MMQ cte. Na Figura 11 é apresentado o esquema geral do módulo para o cálculo da DF em tempo real, com os módulos descritos anteriormente. Em azul está representada a largura dos barramentos de dados e, entre parênteses, Nas imagens seguintes temos a simulação da arquitetura para o cálculo da DF, no caso da imagem da Figura 13a. Na Figura 14 temos o início do cálculo da DF, após ter sido calculada a TD. Podemos observar a geração do endereço de acesso das memórias (sinal counter) para leitura dos dados RAM_Yie ROM_Xi. Na mesma imagem podemos ver a geração do histograma acumulativo, por meio do sinal ACC_Yi. Na Figura 15 temos o início da geração dos sinais para o cálculo do MMQ. Observamos os sinais Yi 10

(a) (b) Figure 15 Início do processamento: geração dos somatórios. (c) (d) Figure 13 Exemplos de processamento da TD. Figure 16 Fim do processamento: geração do coeficiente angular. Table 6 Resultados obtidos Figure 14 Início do processamento: leitura do histograma. 8 CONCLUSÃO (após o cálculo do logaritmo) e Xi (após passar pela linha de atraso), além dos somatórios Sx e Sxy. Na Figura 16 temos o final do processamento, onde é apresentado o resultado final do MMQ, com os sinais Quocient e Remain. Como o resultado esperado para a DF para linhas é entre 1,0000 e 2,0000, e o cálculo da DF por meio da TD retorna 2 D, o resultado final da divisão realizada no módulo MMQ_cte será com o quociente igual a zero e com o resto igual a 2 D. Abaixo temos a Tabela 6 com os valores médios obtidos com o processamento de alguns fractais e os valores teóricos para os mesmos. Neste trabalho foi apresentada uma arquitetura capaz de realizar a TD em taxa de vídeo, utilizando FPGA, e, a partir desta, calcular a DF. A implementação consistiu na transposição direta do algoritmo básico de cálculo da TD, utilizando uma máscara de distâncias composta por uma matriz de células de processamento. Apesar de calcular distâncias menores, para o mesmo valor de N (a distância máxima calculada pelas demais arquiteturas apresentadas é de N 2 ), o consumo de elementos reconfiguráveis chega a ser menor que 10% do que a arquitetura proposta em Miyazawa et al. (2006), e não requer a utilização de circuitos complexos para operações aritméticas, trabalhando apenas com números inteiros. Finalmente, os módulos para o cálculo da DF e 11

para o processamento em tempo real foram plenamente implementados e permitem tanto a visualização da TD, quanto do valor da DF do fractal. Algumas melhorias ainda necessitam ser realizadas como a implementação de um módulo de binarização para melhor geração dos dados para o cálculo da TD (o que possibilitaria o uso da arquitetura para o cálculo de texturas), além de um módulo de detecção de bordas, que permitiria o uso da arquitetura para determinar a rugosidade do contorno de objetos. Para os resultados finais, foi possível realizar a TD com raio igual a 35, o que representou 397 distâncias distintas. Todo o sistema consumiu 56279 elementos lógicos de uma FPGA Cyclone II 2C70 da Altera. Referências ALLEN, M. Measurement of boundary fractal dimensions: review of current techniques. Powder Technology, v. 84, n. 1, p. 1 14, 1995. Citado 2 vezes nas páginas 4 and 5. ASVESTAS, P. e. a. Pattern recognition letters. Electric Power Systems Research, v. 20, n. 2, p. 347 354, 1999. Citado na página 5. BAGLIETTO, P.; MARESCA, M.; MIGLIARDI, M. Euclidean distance transform on polymorphic processor array. In: International Conference on Computer Architectures for Machine Perception. Como, Itália: [s.n.], 1995. p. 18 20. Citado 2 vezes nas páginas 2 and 3. BéBURé, D.; JéBRAK, M. High precision boundary fractal analysis for shape caracterization. Computer Geociences, v. 25, p. 1059 1071, 1999. Citado na página 5. CHEN, L.; CHUANG, H. Y. H. A fast algorithm for euclidean distance maps of a 2-d binary image. Information Processing Letters, v. 51, p. 25 29, 1994. Citado 2 vezes nas páginas 2 and 3. COSTA, L. da F. Robust skeletonization through exact euclidean distance transform and its application to neuromorphometry. Real-Time Imaging, v. 6, n. 6, p. 415 431, 2000. ISSN 1077-2014. Citado 2 vezes nas páginas 2 and 4. GARRIDO, S. et al. Log of the inverse of the distance transform and fast marching applied to path planning. In: 2006 IEEE/RSJ International Conference on Intelligent Robots and Systems. Beijing, China: [s.n.], 2006. p. 2882 2887. Citado na página 2. HIRATA, T. A unified linear-time algorithm for computing distance maps. Information Processing Letters, v. 58, n. 3, p. 129 133, 1996. Citado 2 vezes nas páginas 2 and 3. LUPPE, M.; COLOMBINI, A. C.; RODA, V. O. Arquitetura para transformada de distância e sua aplicação para o cálculo da dimensão fractal. In: Terceira Jornadas de Engenharia de Electrónica e Telecomunicações e de Computadores, JETC05. Lisboa, Portugal: [s.n.], 2005. Citado na página 2. MANDELBROT, B. B. The Fractal Geometry of Nature. New York: W. H. Freeman, 1983. Citado na página 2. MIYAZAWA, M. et al. A systolic algorithm for euclidean distance transform. In: IEEE Transactions on PAMI. [S.l.: s.n.], 2006. p. 1127 1133. Citado 5 vezes nas páginas 2, 3, 4, 6, and 10. RUSS, J. C. The Image Processing Handbook 2nd ed. New York: CRC Press, 1995. Citado na página 4. SUDHA, N.; NANDI, S.; SRIDHARAN, K. Cellular architecture for euclidean distance transformation. In: IEE Proceedings - Computers and Digital Techniques. [S.l.: s.n.], 2000. p. 335 342. Citado 2 vezes nas páginas 2 and 8. TAKALA, J. H.; VIITANEN, J. O. Distance transform algorithm for bit-serial SIMD architectures. Electric Power Systems Research, v. 74, n. 2, p. 150 161, 1999. Citado 2 vezes nas páginas 2 and 3. 12