PDF Full-Text
Transcrição
PDF Full-Text
Performance Analysis of Algorithms over FPGA for Removing Salt and Pepper Noise E. Ieno Junior, L. M. Garces, A. J. Cabrera and T. C. Pimenta Abstract— This paper shows the possibility to improve the accuracy of medical diagnosis on contaminated radiographic image with salt and pepper noise using FPGA-based filters. Investigation is carried out using filters described widely in the literature, such as Blur, Smooth and Gaussian linear filters and nonlinear median filter implemented on FPGA in an attempt to eliminate the noise. Implementations are checked on a development board with Spartan 6slx100fgg484-3 FPGA and a low-power optimized version Spartan 6slx100lfgg484-1l. The results are verified through the filtered images, resources consumption and the lowest response time. The implementation methodology uses model-based engineering involving MATLAB/Simulink and System Generator software using the XSGlmgLib library to perform co-simulation. The results show that the FPGA implementation of the median filter has a good tradeoff between resource consumption and noise removal efficiency. Keywords— Filters, Image Generator, MATLAB/Simulink. Processing, FPGA, System I. INTRODUÇÃO O PROCESSAMENTO de imagem é um assunto de interesse nas mais diferentes áreas do conhecimento, indo desde equipamentos de inspeção visual, aquisição e análise de imagens médicas, biometria, segurança, fotografia, cinema à vídeo games baseados em realidade aumentada [1], [2], [3], [4], [5], [6]. Na área médica um dos objetivos principais do processamento da imagem é melhorar a sua qualidade para aumentar a percepção e a interpretação, por exemplo, de resultados de exames médicos. Exames estes que podem definir a localização e extensão de lesões ósseas com maior precisão [7]. Os filtros são processos que tem por finalidade salientar determinados aspectos em imagens digitais ou reduzir ruídos. Estes ruídos podem ser introduzidos na imagem durante o processo de aquisição, devido a limitações de hardware; no processo de quantização e digitalização, pelo excesso de compressão da imagem; problemas na transmissão, entre outros [8]. Durante a transmissão de dados, por exemplo, os pixels podem ser alterados causando uma diferença brusca dos tons entre os seus vizinhos. Nesta situação, quando os pixels são modificados para zero ou o máximo, este ruído é denominado sal e pimenta (salt and pepper). Nome recebido devido a sua aparência com pontos brancos e pretos superpostos na imagem [8]. E. Ieno Junior, Centro Federal de Educação Tecnológica de Minas Gerais (CEFET MG), Varginha, Minas Gerais, Brasil, [email protected] L. M. Garces, Instituto Superior Politécnico “José Antonio Echeverría” (CUJAE), Havana, Cuba, [email protected] A. J. Cabrera, Instituto Superior Politécnico “José Antonio Echeverría” (CUJAE), Havana, Cuba, [email protected] T. C. Pimenta, Universidade Federal de Itajubá (UNIFEI), Itajubá, Minas Gerais, Brasil, [email protected] Os filtros de ordenamento, em particular o de mediana, permite diminuir o ruído impulsivo e de alta frequência conhecido como salt and pepper da imagem sem alterar muito as características de seu contorno [9]. Este processo tem aplicação em diversos setores, entre os quais, a medicina utiliza para eliminar ruídos de imagens radiográficas [8]. Assim, neste trabalho é verificada a melhora da percepção da imagem para filtros de mediana com janela 3x3 e 5x5 implementados em FPGA (Field Programmable Gate Array). No entanto, estes filtros quando comparados ao Blur, Smooth e Gaussiano apresenta como maior problema a complexidade do circuito de hardware para encontrar o valor mediano entre os pixels vizinhos [10]. Deste modo, ordenar todos os valores da vizinhança pode-se tornar relativamente lento, reduzindo o desempenho. Portanto, são verificados também neste trabalho a frequência máxima alcançada por cada filtro e os recursos utilizados no processamento da imagem. O desenvolvimento de aplicações para o processamento de imagem se torna um desafio visto que as linguagens mais empregadas para programar FPGAs (VHDL/Verilog) não possuem o nível de abstração adequado. O aumento constante da complexidade dos projetos e o tempo cada vez menor exigido para o desenvolvimento de um produto (time-tomarket), necessita que um fluxo rápido e simplificado de projeto seja empregado. Desta forma, as etapas para o desenvolvimento de um projeto que geralmente incluem a especificação de requisitos, prototipação, implementação, testes e verificações são realizadas simultaneamente ao utilizar-se a engenharia baseada em modelos [7], [11], [12]. Eventuais restrições exigidas pela escolha de um dispositivo, a simulação contínua durante o desenvolvimento do projeto e a geração de código automática para a arquitetura alvo, tendem a diminuir o tempo de desenvolvimento. Desta forma, neste trabalho será utilizado o software MATLAB®/Simulink®, já que é uma ferramenta de simulação e desenvolvimento baseada em modelos. Além disso, há um ambiente gráfico e uma série de blocos parametrizáveis com soluções parciais para certas aplicações, incluindo o processamento de imagens. Contudo, a ferramenta de síntese System Generator® da Xilinx através de blocos da biblioteca do Simulink® possibilita a geração automática do código, por exemplo, em VHDL [13]. Para verificar a possibilidade de melhorar o diagnóstico médico sobre imagens radiográficas contaminadas com ruído salt and pepper são analisadas as diferenças visuais e do Erro Médio Quadrático (MSE - Mean Square Error) entre os resultados dos filtros implementados em FPGA. Assim, uma imagem radiográfica de corpo inteiro disponibilizada por um banco de imagens liberado para estudo na Internet em [14] é utilizada. Esta imagem é caracterizada pelos tons de cinza mais claros determinando o contorno da estrutura óssea e os mais escuros, o contorno do corpo sobrepostos em fundo preto. Características estas que podem tornar ineficaz a utilização de filtros lineares que afetam o contorno da imagem [7], [8]. A redução do consumo de potência é crucial em determinadas aplicações, especialmente em dispositivos móveis, onde o tempo de funcionamento do circuito depende do tempo de duração da carga da bateria do dispositivo. Nesta situação podem ser desenvolvidas soluções em diferentes níveis de abstração: sistema, algoritmo, arquitetura, lógico, circuito e tecnologia; sendo que as maiores oportunidades para uma redução significativa encontram-se nos primeiros níveis [15]. No entanto, uma FPGA otimizada para obter um maior rendimento de carga da bateria pode ter o sistema implementado comprometido em termos de tempo de resposta. Do exposto, é realizada a síntese dos filtros na placa de desenvolvimento Spartan 6slx100fgg484-3 e numa versão que trabalha com FPGA otimizada para redução do consumo de energia (low-power), a 6slx100lfgg484-1l, afim de verificar o impacto na frequência de operação. Este trabalho está organizado da seguinte forma: na seção II são apresentados os conceitos envolvendo os filtros lineares e as máscaras que serão utilizadas na implementação. A operação realizada pelo filtro não linear de valor mediano é apresentada na seção III. A metodologia utilizada e a implementação realizada para o filtro de valor mediano são apresentadas na seção IV. Os resultados obtidos através da implementação considerando uma FPGA otimizada para um menor consumo de energia são apresentados na seção V. Por fim, as conclusões são apresentadas na seção VI. II. FILTROS LINEARES A manipulação de imagens utilizando a operação de convolução ou do valor central dos pixels ordenados pode ser considerada simples. No entanto, quando se trata de sistemas desenvolvidos em FPGA, cada etapa, incluindo o préprocessamento, deve ser pensada de forma a utilizar a menor quantidade de recursos disponíveis. Vislumbrando o sistema como um todo, com a otimização realizada em cada etapa, haverá a redução do tempo de resposta final. Assim, por exemplo, o processamento de imagens em tempo real pode tornar-se viável [16]. Uma imagem digital é definida como uma função bidimensional A(x,y), com valores finitos, onde x e y são as coordenadas espaciais. A função A pode ser representada como uma matriz (1) m x n onde cada elemento representa a intensidade de um pixel [8]. (1) a 0 ,1 a 0, n −1 a 0, 0 a a1,1 a1,n −1 1, 0 A= a m −1, 0 a m −1,1 a m −1,n −1 Os métodos de processamento desempenham várias tarefas visando melhorar as informações contidas nos pixels visando facilitar a interpretação humana ou de sistemas autônomos [8]. Estes métodos são baseados na transformação matemática sobre os pixels da imagem dependendo do tamanho da janela (2). x− (2) p p q q ≤i≤ x+ , y− ≤ j≤ y+ 2 2 2 2 Os valores de p e q são 0, 2, 4, 6, ... e definem o tamanho da janela. As técnicas de processamento são normalmente classificadas conforme a complexidade da operação, tamanho da janela e linearidade. A complexidade das operações é dividida em baixa: aquisição da imagem e pré-processamento; média: segmentação e extração de características; e alto nível: reconhecimento, classificação e interpretação dos dados. O tamanho da janela (p+1 x q+1) envolve operações pontual (p=q=0) e com os pixels vizinhos [7]. A operação linear depende da transformação da imagem, sendo classificada em operações lineares, a convolução e a correlação e não-linear, ordenamento dos pixels, limiarização e morfológicas. A operação matemática de convolução (3) é apresentada sobre as duas funções A(x,y) e C(x,y) descritas em: p q i= j= (3) 2 2 A( x, y ) ∗ C ( x, y ) = C (i, j )A( x − i, y − j ) i =− p q j =− 2 2 O símbolo ( ∗ ) indica a operação de convolução, onde C(i,j) é o núcleo de convolução do filtro (4), caracterizado pelos coeficientes Cij: (4) C C C p q − 2 ,− 2 C p q − +1, − C= 2 2 C p ,− q 2 2 C p q − , − +1 2 2 p q − +1, − +1 2 2 Cp 2 q , − +1 2 C p q − , 2 2 p q − +1, 2 2 Cp q , 2 2 . A seleção do núcleo de convolução define a transformação que será realizada sobre a imagem, a qual é utilizada para diferentes propostas. Do exposto, tem-se que a operação dos filtros lineares baseia-se na soma dos produtos entre os pixels de uma janela e uma máscara que contém uma quantidade de pixels vizinhos. A janela dos pixels de entrada é sempre do mesmo tamanho que a máscara ou núcleo de convolução. Assim, o pixel de saída representa a convolução das intensidades com seus pixels vizinhos [8], [15], [17]. A Figura 1. 1 a seguir exemplifica a operação de convolução utilizada pelo filtro linear. Assim, para um núcleo de convolução de tamanho 3x3, o valor normalizado do pixel central é de 56. Figura 1. Filtro de convolução. Os valores dos demais pixels são obtidos com o deslocamento do núcleo de convolução por toda a imagem. Desta forma, para um núcleo de convolução de tamanho 3x3 uma nova operação é realizada a cada entrada de 3 novos pixels paralelamente [1]. Estes filtros utilizam uma variedade de núcleos de convolução para calcular os resultados de acordo com a função desejada. Os núcleos de convolução utilizados para a implementação dos filtros Blur, Smooth e Gaussiano são apresentados na Figura 2. 2 a seguir. sua implementação são facilmente reconfiguráveis. Além disso, esta ferramenta permite a geração automática do código, por exemplo, em VHDL [22], [23]. Assim, utilizando o Simulink® é realizado o processo de síntese e a verificação da implementação na placa propriamente dita (HW in Loop). A Figura 4 apresenta o fluxo do projeto através do MATLAB®, Simulink®, System Generator®, ISE e ModelSim™ [21], [23], [24]. Figura 2. Núcleos de convolução para filtros de ruído ou suavização. III. FILTRO NÃO LINEAR O processamento de uma imagem através do ordenamento espacial é baseado na substituição dos pixels de uma área determinada pelo tamanho da janela por uma posição requerida entre os valores ordenados. Um caso específico é o filtro de mediana avaliado em [18], onde a posição requerida está no centro da janela [8], [10], [15], [17]. A Figura 3 a seguir exemplifica a operação de ordenamento e obtenção do valor mediano em uma janela 3x3. Figura 3. Filtro de mediana. Figura 4. Fluxo do desenvolvimento de projeto com System Generator® [1]. A realização da co-simulação em hardware é feita através do bloco do Simulink® XSG (Xilinx System Generator) ISE versão 14.7, que realiza a compilação do sistema de processamento. Na configuração são selecionados o modelo da placa e a FPGA, além do tipo de conexão com o dispositivo. Assim, concluída a compilação, o sistema cria um novo bloco denominado Model hwcosim que deverá ser substituído no sistema de processamento conforme apresenta a Figura 5. Ao executar a simulação do modelo em hardware, o bloco XSG se encarrega de realizar a síntese, roteamento e a configuração do sistema processado na placa conectada. Desta forma, ocorre o fluxo de entrada de dados do espaço de trabalho do MATLAB® (From Workspace) para a placa (Model hwcosim), onde é processado por hardware e retorna ao MATLAB® (To Workspace) apresentando os resultados [16], [21], [24], [25]. Observe que o valor do pixel central será de 60, diferente do calculado para o filtro de convolução que foi de 56. O filtro de mediana é muito popular porque possui uma excelente capacidade de redução de certos ruídos. Além disso, consegue borrar menos a imagem que os filtros lineares de suavização com janela de mesmo tamanho [8]. IV. PROCESSAMENTO DE IMAGEM PROPOSTO A metodologia de implementação baseada em modelos utilizando bibliotecas do Simulink® é utilizada neste trabalho agregando os resultados de simulação em hardware com a otimização de recursos em área e velocidade. A entrada da imagem é feita por software e implementada em MATLAB® 2013 [1], [19], [20]. Nesta metodologia, o processamento de imagens é realizado com o bloco System Generator® da Xilinx, permitindo a utilização de blocos otimizáveis e parametrizáveis de acordo com a necessidade do projetista [21]. Assim, é alcançada a aceleração no tempo de desenvolvimento do algoritmo otimizado, já que os blocos de Figura 5. Implementação da Co-Simulação em hardware [1]. A diferença entre a simulação e a co-simulação não é apresentada pelo resultado funcional, mas sim, pela diferença entre os tempos de resposta. Isto ocorre porque a síntese influi no posicionamento e roteamento dos blocos lógicos específicos de cada dispositivo físico. As implementações desenvolvidas em FPGA são baseadas nas arquiteturas apresentadas em [1]. Dentre os vários filtros implementados em hardware é apresentada na Figura 6 a arquitetura para o filtro de mediana utilizando blocos desenvolvidos com a biblioteca XSGlmgLib para Simulink®. Figura 6. Implementação do filtro de mediana em FPGA. Para iniciar o processamento, a imagem serializada através de um vetor coluna indexado na área de trabalho do MATLAB® é transmitida para a FPGA. Como são processados 9 pixels simultaneamente, a imagem inicialmente é paralelizada na FPGA utilizando os armazenadores (Line Buffer). Após as 3 primeiras colunas da imagem original se encontrarem armazenadas é iniciado o processo de filtragem com os dados válidos. Neste processo, a cada 3 novos pixels são verificados o valor menor, o mediano e o maior entre os 9 pixels da janela 3x3. Esta verificação é realizada através de três blocos de comparação (Relational) que indicam em sua saída o menor a cada 2 pixels. Assim, é formado o endereço através do bloco de concatenação (Concat) de três bits indicando na saída dos 3 multiplexadores (Mux) parciais o valor mínimo, o mediano e o máximo. Estes valores são utilizados na entrada do último multiplexador, o qual apresenta em sua saída o valor mediano entre os 9 pixels. Após a realização da filtragem, a imagem é enviada para área de trabalho do MATLAB®, onde é redimensionada, excluindo as informações computadas durante o tempo de armazenamento inicial. V. RESULTADOS OBTIDOS A inserção de ruído é realizada na área de trabalho do MATLAB® através da função imnoise (Imagem, ‘salt & pepper’, 0.005). Assim, a imagem radiográfica original é contaminada com o ruído salt and pepper inicialmente com a densidade de 0,005. Este parâmetro afeta aproximadamente 0,005 vezes a quantidade de pixels da imagem. Os resultados visuais são apresentados na Figura 7. Figura 7. Resultados visuais dos filtros implementados em FPGA para ruído de densidade 0,005. Analisando os resultados para os três filtros baseados na operação matemática de convolução: Blur, Smooth e Gaussiano, observa-se maior redução da influência do ruído para o filtro Blur. No entanto, o resultado para este filtro é uma imagem borrada. Para o filtro Smooth existe uma quantidade de ruído considerável embora mantenha os contornos da imagem. Assim, o melhor resultado visual é apresentado pelo filtro Gaussiano, que além de manter a definição dos contornos, consegue aproximar mais os tons de cinza do ruído da região escura predominante no fundo da imagem. Assim, a percepção visual é de que há a maior redução do ruído. Embora em algumas aplicações o resultado apresentado pelo filtro Gaussiano possa ser aceitável, ainda existe ruído para ser eliminado. Assim, para tentar melhorar a imagem com o ruído já filtrado pelo Gaussiano, esta é processada novamente pelo filtro de mediana 3x3. No entanto, a imagem ainda apresenta pontos de ruído a cargo de um aumento da utilização dos recursos da FPGA com a sintetização de dois estágios de filtragem. Do exposto, é aplicado diretamente na imagem original com ruído, o filtro de mediana 3x3, o qual resulta na imagem com menor percepção visual de ruído. Partindo do princípio que o melhor resultado é utilizando o filtro não linear de mediana, analisado anteriormente, a imagem original é contaminada com uma densidade de ruído de 0,5, ou seja, 100 vezes a inicial. A Figura 8. Etapas de filtragem de mediana com janela de 3x3 para ruído de densidade 0,5. Como a inserção de etapas de filtragem aumenta a utilização de recursos da FPGA, é realizada a implementação de um filtro de mediana com janela de tamanho 5x5. A Figura 9 a seguir apresenta o resultado com apenas uma etapa de filtragem sobre a imagem original contaminada com ruído salt and pepper de densidade 0,5. Figura 8 a seguir apresenta as etapas de filtragem. Estas etapas representam o número de vezes que a imagem ruidosa foi submetida à filtragem com janela 3x3. Gaussiano: Imagem Original-saída do filtro Gaussiano. 5x5. Mediana: Imagem Original-saída do filtro de mediana 5x5. TABELA I MSE PARA OS FILTROS IMPLEMENTADOS EM FPGA Filtro Original Etapa 1 Etapa 2 Etapa 3 Etapa 4 Figura 9. Uma etapa de filtragem de mediana com janela 5x5 para ruído de densidade 0,5. Na Figura 9 observa-se uma imagem com boa parte do ruído eliminada em apenas uma etapa de processamento. Assim, a implementação de uma arquitetura com janela 5x5 comparada a 3x3, pode ser mais eficiente em termos de recursos ocupados. Isto ocorre porque a utilização de várias etapas de filtragem com janela 3x3 necessárias para atingir resultado semelhante, pode ultrapassar os recursos consumidos a mais com a janela de tamanho 5x5. A análise dos resultados das imagens filtradas não pode ser confiada apenas à percepção humana, pois esta pode variar de pessoa para pessoa [26]. Desta forma, para estabelecer um parâmetro para analisar a qualidade da imagem filtrada será utilizado o MSE dado pela expressão matemática apresentada em (5), onde M e N são os números de linhas e colunas respectivamente. ∑ , , (5) , ∗ Para considerar duas imagens matematicamente iguais, o valor do MSE deve ser igual a zero. Desta forma, é realizada a subtração entre a imagem original (I1) e a de saída (I2) dos vários filtros implementados neste trabalho. Contudo, o erro médio quadrático representa as diferenças entre o sinal ideal (sem ruído) e o ruidoso após cada tentativa de filtragem. A TABELA I apresenta os valores do MSE com a imagem original contaminada com densidade 0,5 para: Original: Imagem Original-Imagem com ruído salt and pepper de densidade 0,5. Etapa 1: Imagem Original-saída do primeiro estágio do filtro de mediana 3x3. Etapa 2: Imagem Original-saída do segundo estágio do filtro de mediana 3x3. Etapa 3: Imagem Original-saída do terceiro estágio do filtro de mediana 3x3. Etapa 4: Imagem Original-saída do quarto estágio do filtro de mediana 3x3. Etapa 5: Imagem Original-saída do quinto estágio do filtro de mediana 3x3. Blur: Imagem Original-saída do filtro Blur 5x5. Smooth: Imagem Original-saída do filtro Smooth 5x5. MSE 2806,1 1208,6 992,83 1106,4 1337,6 Filtro Etapa 5 Blur Smooth Gaussiano Mediana MSE 1591,1 624,15 1238,3 794,88 233,96 Observa-se na TABELA I, que para o MSE calculado entre a imagem original e a ruidosa com densidade de 0,5 (2806,01), que todos os filtros conseguem aproximar a imagem original da ideal, ou seja, sem ruído. No entanto, o filtro de mediana com janela de tamanho 3x3 diminui o ruído com a eficiência começando a ser reduzida a partir da terceira etapa, onde o MSE começa a aumentar. Este fato reflete o aumento da ocorrência de alterações dos detalhes finos na imagem filtrada. Com relação aos filtros lineares, o melhor resultado matemático é para o Blur, já que o seu núcleo de convolução altera menos os pixels da imagem, no entanto, há uma perda de nitidez dos contornos da estrutura óssea, conforme apresentado na Figura 7. Do exposto, com MSE igual a 233,96, o filtro de mediana com janela de tamanho 5x5 consegue aproximar mais a imagem filtrada da ideal. Após as análises visual e estatística dos resultados das implementações dos filtros, são apresentados na TABELA II a quantidade de recursos disponíveis, ocupados e a frequência máxima alcançada em duas placas de desenvolvimento Spartan-6 baseadas em FPGA. Sendo que a placa Spartan 6slx100lfgg484-1l emprega uma FPGA otimizada para trabalhar com redução no consumo de energia. Através da análise dos dados desta tabela, observa-se que a utilização de recursos reflete a complexidade das arquiteturas dos filtros implementados. Assim, o filtro de mediana de janela 5x5 apresenta a maior utilização de recursos entre todos. No entanto, nenhum dos filtros implementados compromete em termos do consumo de recursos a utilização da FPGA para a implementação de outras etapas. Além disso, pode-se verificar, que a frequência máxima é reduzida 2,3 vezes para todos os filtros, exceto o de mediana de janela 5x5 que atinge a redução de 1,4 aproximadamente para FPGA otimizada para redução do consumo de energia na placa Spartan 6slx100lfgg484-1l. Desta forma, a escolha da FPGA não pode ser pensada apenas com relação ao consumo de energia, já que isto pode comprometer o tempo de resposta de um sistema de processamento implementado. TABELA II RESULTADOS DOS RECURSOS UTILIZADOS PELOS FILTROS IMPLEMENTADOS EM FPGA Filtros Recursos 6slx100lfgg484-1l Utilizado Freq. 6slx100fgg484-3 Utilizado Freq. Blur 5x5 Smooth 5x5 Gaussian 5x5 Mediana 3x3 Mediana 5x5 Flip-flop LUT Slice Flip-flop LUT Slice Flip-flop LUT Slice Flip-flop LUT Slice Flip-flop LUT Slice 160 227 0,42% 161 510 0,94% 160 374 0,72% 48 120 0,30% 510 1776 4,26% (MHz) 250,063 250,063 250,063 250,063 67,944 160 227 0,43% 161 410 1% 160 374 0,75% 48 120 0,26% 510 1772 4,02% (MHz) 578,035 578,035 578,035 578,035 95,066 O presente trabalho foi realizado com o apoio da CAPES (Programa MES/Cuba), CNPq e FAPEMIG. REFERÊNCIAS [1] [2] [3] [4] VI. CONCLUSÃO A melhora do diagnóstico médico através de imagens radiográficas contaminadas com ruído salt and pepper é conseguida empregando filtros descritos amplamente na literatura e implementados em hardware reconfigurável. Destes filtros, os de valor mediano com janela de tamanho 3x3 e 5x5 apresentam melhores resultados que os filtros lineares analisados. No entanto, o resultado final dependerá do nível de contaminação do sinal pelo ruído. Assim, dependendo dos detalhes visuais requeridos para a análise da imagem, a opção mais viável ficará a cargo dos recursos disponíveis na FPGA, a qual possui grande demanda de recursos por outras etapas sendo implementadas em sistemas complexos. O cálculo do MSE para filtros que afetam o contorno da imagem, como o Blur, apresenta um valor inferior. No entanto, não representa a melhor percepção visual. Desta forma, não há como escolher o melhor filtro apenas utilizando o MSE. Assim, mesmo a percepção visual sendo subjetiva, pode auxiliar na análise onde há um padrão de imagem estabelecido a ser recuperado. A preocupação no desenvolvimento de projetos para hardware reconfigurável envolvem a otimização em consumo de recursos e o tempo de resposta da arquitetura dos algoritmos. Assim, ao realizar a sintetização na FPGA, os recursos ocupados e a frequência máxima atingida passam a representar o sucesso da arquitetura otimizada. No entanto, deve-se observar que no desenvolvimento de equipamentos portáteis o consumo de energia poderá ser prioritário, podendo comprometer o tempo de resposta do sistema. A metodologia adotada para implementar e verificar a utilização dos recursos em hardware e o tempo de resposta favorece a aceleração do desenvolvimento de algoritmos através de modelos facilmente parametrizáveis. Além disso, a possibilidade de simulação com outras FPGAs em diferentes placas de desenvolvimento escolhidas através da ferramenta de síntese, traz o benefício de adequação de um modelo que atenda às necessidades da implementação mesmo antes da aquisição do dispositivo. AGRADECIMIENTOS [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] L. M. Garcés, S. Sánchez, and P. B. Jiménez, “Library for model-based design of image processing algorithms on FPGAs. Biblioteca para diseño basado en modelos de algoritmos de procesado de imágenes en FPGA,” Revista de la Facultad de Ingeniería Universidad Antioquia, Antioquia, pp. 36–47, Sep-2013. K. Pulli, A. Baksheev, K. Kornyakov, and V. Eruhimov, “Real-time computer vision with OpenCV,” Communications of the ACM, vol. 55, no. 6, p. 61, 2012. F. Hamdaoui, A. Khalifa, A. Sakly, and A. Mtibaa, “Real Time Implementation of Medical Images Segmentation Based on PSO,” in International Conference on Control, Decision and Information Technologies (CoDIT), 2013, pp. 36–42. C. V. Chicote, A. T. Moreo, and P. S. Palma, “Image Processing Application Development: From Rapid Prototyping to SW/HW Cosimulation and Automated Code Generation,” Pattern Recognition and Image Analysis Lecture Notes in Computer Science, Proceedings Second Iberian Conference (IbPRIA 2005) Estoril, Portugal, vol. 3522, pp. 659–666, 2005. P. D. Mahamuni, R. P. Patil, and H. S. Thakar, “Moving Object Detection Using Background Subtraction Algorithm Using Simulink,” International Journal of Research in Engineering and Technology (IJRET), vol. 3, no. 6, pp. 594–598, 2014. T. Singh, S. Sanju, and B. Vijay, “A New Algorithm Designing for Detection of Moving Objects in Video,” International Journal of Computer Applications, vol. 96, no. 2, pp. 4–11, 2014. D. G. Bailey, Design for Embedded Image Processing on FPGAs, 1st ed. Solaris South Tower, Singapore: John Wiley & Sons (Asia) Pte Ltd, 2011, pp. 1–496. R. C. Gonzalez and R. E. Woods, Digital Image Processing, 3rd ed. Tennessee: Prentice Hall, 2009. G. Kaur and P. R. Gupta, “Statistical Filter for Removing Noise in Digital Image,” International Journal of Engineering Research and Development, vol. 7, no. 7, pp. 45–48, 2013. C. Chakrabarti, “High Sample Rate Array Architectures for Median Filters,” IEEE Transactions on Signal Processing, vol. 42, no. 3, pp. 707–712, 1994. S. L. Anusha and C. H. Sowmya, “Review of An Efficient Object Detection Using System Generator,” International Journal of Research & Development Organization (IJRDO), vol. 2, no. 4, 2015. R. C. Gonzalez, R. E. Woods, and S. L. Eddins, Digital Image Processing Using Matlab, 2nd ed. Gatesmark, 2009. H. Nguyen.T.K., C. Belleudy, and T. V Pham, “Performance and Evaluation Sobel Edge Detection on Various Methodologies,” International Journal of Electronics and Electrical Engineering, vol. 2, no. 1, pp. 15–20, 2014. MedPix™. “Open Access Medical Images & Teaching File”. Disponível em: http://rad.usuhs.mil/medpix/parent.php3?mode=tf2& action=pre& acr_pre=0&been_here=-1#top. Acessado em 25 de maio de 2015. D. G. Bailey, Design for Embedded Image Processing on FPGAs, 1st ed. Singapore: John Wiley & Sons (Asia) Pte Ltd, 2011, pp. 72– 74,231–261,264–271. F. Hamdaoui, A. Khalifa, A. Sakly, and A. Mtibaa, “Real time implementation of medical images segmentation based on PSO,” in 2013 International Conference on Control, Decision and Information Technologies (CoDIT), 2013, pp. 36–42. L. M. Garcés, A. J. Cabrera, S. Sánchez, and P. B. Jiménez, “Diseño de bloques de convolución para procesado de imágenes con FPGA,” Revista de Ingeniería Electrónica, Automática y Comunicaciones (RIELAC), vol. XXXII, no. 3/2011, La Habana, pp. 56–69, 2011. G. Chinnasamy and M. Gowtham, “Performance comparison of various filters for removing salt & pepper noise,” International Journal of Multidisciplinary Research and Development, vol. 2, no. 1, pp. 152– 155, 2015. S. K. Areefabegam and T. Narendrakumar, “FPGA Based Design and Implementation of Image Edge Detection Using Xilinx System Generator,” International Journal of New Trends in Electronics and Comunication, vol. 2, pp. 18–21, 2014. [20] M. I. Alali, K. M. Mhaidat, and I. A. Aljarrah, “Implementing Image Processing Algorithms in FPGA Hardware,” in IEEE Jordan Conference on Applied Electrical Engineering and Computing Technologies (AEE CT), 2013, pp. 1–5. [21] K. Benkrid and S. Belkacemi, “Design and implementation of a 2D convolution core for video applications on FPGAs,” in Third International Workshop on Digital and Computational Video, 2002. DCV 2002. Proceedings., 2002, no. November, pp. 85–92. [22] C. A. Ramos, J. C. Moya, J. M. Ramos, J. C. Pedraza, S. L. Canchola, and J. E. Vargas, “Metodología de una Etapa Básica de un Sistema de Procesamiento de Imágenes Basado en FPGA,” in 9o Congreso Nacional de Mecatrónica, Puebla, México, 2010, pp. 235–240. [23] J. Albaladejo, D. de Andrés, L. Lemus, and J. Salvi, “Codesign methodology for computer vision applications,” Microprocessors and Microsystems, vol. 28, no. 5–6, pp. 303–316, 2004. [24] T. Saidani, D. Dia, W. Elhamzi, M. Atri, and R. Tourki, “Hardware Cosimulation For Video Processing Using Xilinx System Generator,” Proceedings of the Word Congress on Engineering, vol. I, London, pp. 3–7, 2009. [25] N. P. Raut and A. V Gokhale, “FPGA Implementation for Image Processing Algorithms Using Xilinx System Generator,” IOSR Journal of VLSI and Signal Processing (IOSR-JVSP), vol. 2, no. 4, pp. 26–36, 2013. [26] T. Jeyaseelan and G. Priyanga, “FPGA Implementation of Medical Image Fusion Based on NSCT,” International Journal of Advanced Research Trends in Engineering and Technology, vol. II, no. I, pp. 185–192, 2015. Egídio Ieno Junior é graduado em Engenharia Elétrica pelo Instituto Nacional de Telecomunicações (INATEL), Santa Rita do Sapucaí, Minas Gerais, Brasil, em 2001. Onde também obteve o título de Mestre em Telecomunicações, em 2003. Atualmente é professor do Centro Federal de Educação Tecnológica de Minas Gerais (CEFET MG) e participante do projeto de pesquisa entre Brasil e Cuba, onde suas pesquisas se concentram na área de otimização de algoritmos baseados em FPGA para o processamento de imagens. Luis Manuel Garces é graduado em Engenharia de Automação pelo Instituto Superior Politécnico “José Antonio Echeverría” (CUJAE), Marianao, La Habana, Cuba, em 2006. Onde também obteve o título de Mestre em Sistemas Digitais em 2011. Atualmente é professor assistente do Departamento de Automação e Computação (ISPJAE) e desenvolve o tema de seu doutorado em aceleração de algoritmos mediante hardware reconfigurável para o processamento de vídeo. Alejandro Jose Cabrera é graduado em Engenharia Elétrica, Doutor em Ciências Técnicas pelo Instituto Superior Politécnico “José Antonio Echeverría” (CUJAE), Marianao, La Habana, Cuba. Atualmente é professor responsável pelo Departamento de Automação e Computação (ISPJAE) e desenvolve pesquisas sobre otimização em hardware/software. Tales Cleber Pimenta é graduado e mestre em Engenharia Elétrica pela Universidade Federal de Itajubá (UNIFEI), Itajubá, Minas Gerais, Brasil. Doutor em Engenharia Elétrica pela Universidade de Ohio. É professor na Universidade Federal de Itajubá desde 1985 nas áreas de circuitos digitais e projeto de circuitos integrados. Atualmente desenvolve pesquisas na área de microeletrônica voltada para aplicações médicas.