Usando MLP para filtrar imagens Thiago Richter, Ediel Wiezel da Silva, e Adilson Gonzaga Departamento de Engenharia Elétrica, Universidade de São Paulo, Brasil thiago.richter@yahoo.com.br, edielws@gmail.com, adilson@sel.eesc.usp.br Resumo Este trabalho tem como objetivo estudar arquiteturas e topologias de redes neurais artificiais que possam ser usadas como filtros de imagens contendo ruídos. Serão realizados e apresentados testes usando diversas topologias, assim como a metodologia empregada será apresentada. 1. Introdução O objetivo deste trabalho visa estudar arquiteturas e topologias de redes neurais artificiais que possam ser usadas como filtros em imagens contendo ruídos, sendo a redução de ruídos necessária em casos como o de segmentação de imagens. Abaixo apresentam-se breves conceitos relacionados a imagens ruidosas, de filtros espaciais e redes neurais. 1.1. Ruídos em imagens Ruídos em imagens são padrões aleatórios de pontos que superpostos à imagem como resultado de qualquer interferência, tanto na transmissão como na captura da informação, degradando a imagem e dificultando processamentos digitais de imagens, incluindo-se principalmente segmentação de imagens. Ruídos sempre estarão presentes em qualquer equipamento eletrônico, em maior ou menor grau. A capacidade de simular o funcionamento e efeitos do ruído numa imagem torna-se importante para estudar restaurações de imagens, incluindo-se os filtros, visto que é possível comparar a imagem original com a imagem restaurada através do uso da imagem com ruído[1]. Dentre os diversos tipos de ruídos aplicados a imagens, destacamse os ruídos Gaussiano, Poisson, Salt-and-Pepper e Speckle. 1.2. Filtros espaciais Filtros espaciais são os filtros mais utilizados atualmente em processamento de imagens digitais e consistem basicamente em definir um ponto central (x, y); executar operações envolvendo uma região de pixels (vizinhos) definidos a partir deste ponto central com valores pré-definidos em um template (máscara), sendo esta vizinhança do mesmo tamanho que o template; um novo valor do ponto central é atribuído através do resultado desta operação; e este processo é repetido para todos os pontos da imagem [1]. Podem-se separar os filtros espaciais em dois grupos, filtros espaciais lineares, se as operações realizadas no processo forem lineares e filtros espaciais não-lineares se estas operações não forem lineares. Dentre os filtros espaciais lineares, destacam-se os filtros laplacianos e gaussianos e dentre os filtros não lineares pode-se destacar o filtro da mediana. Filtros derivativos como Sobel e Prewit são utilizados principalmente para detectar bordas, assim como os filtros de Canny e Laplaciano da Gaussiana (LoG). Dois exemplos de templates usados em filtros espaciais são apresentados na figura (Fig. 1) abaixo: (a) 0 0 4 0 0 (b) 1 0 0 0 1 0 Figura 1. Templates (a) Laplaciano, (b) Roberts. 1.3. Redes Neurais Artificiais Redes Neurais Artificiais (RNA) são modelos computacionais inspirados no cérebro humano e que possuem a capacidade de aquisição e manutenção da informação. As RNA podem também ser definidas como um conjunto de unidades de processamento (neurônios) que são interligados por um grande número de sinapses [2]. Na Fig. 2 é apresentado o modelo geral do neurônio artificial de McCulloch, onde x são as entradas da RNA, w são seus pesos, θ é o limiar de ativação, f é a função de ativação e y a saída da rede. Tem como características a capacidade de adaptar ou aprender, inclusive aprender através de exemplos, capacidade de generalizar, agrupar ou organizar dados, auto-organizar, tolerar falhas e de não necessitar da modelagem matemática do processo. Suas principais áreas de aplicação são [2], [3]: reconhecimento de padrões, aproximação de funções, previsão/estimação, otimização
de funções, categorização/clustering, memórias associativas e controle de sistemas. Diversas topologias serão estudadas, diversos tamanhos de template e treinamentos serão analisados. E serão utilizados 4 tipos de ruídos: Gaussiano, Poisson, Salt-&-Pepper e Speckle (SP). Como resultados serão indicados as melhores topologias, incluindo treinamentos realizados com todos os ruídos e segmentados. 3. Desenvolvimento Figura 2. Modelo geral de neurônio artificial. Diversas são as topologias usadas em RNA, dentre elas destaca-se a topologia Perceptron Multicamadas (MLP Multllayer Perceptron). A MLP possui arquitetura feedforward e são constituídas de uma camada de entrada (X n ), uma ou mais camadas neurais escondidas (CNE), uma camada neural de saída (CS) e a saída (Y), conforme apresentado na figura abaixo (Fig. 3) [3]. Diversas são as aplicações da MLP: aproximador universal de funções, classificadores e processamento de dados, incluindo filtros [4], [5], entre outras aplicações. Várias topologias têm sido utilizadas objetivando redução de ruídos, conforme pode ser visto em [6], [7], e [8]. Figura 3. Modelo de arquitetura de uma rede MLP. 2. Metodologia O presente trabalho utilizará a arquitetura Perceptron Multicamadas para realizar filtragens nas imagens com ruídos. Para o treinamento a rede terá como entrada valores contidos em um template utilizando a imagem com ruído e como saída desejada será utilizado o valor do ponto central do template referente à imagem original da Lena (Fig. 3). Os testes serão realizados utilizando um template com valores da imagem ruidosa e deverá apresentar como saída o ponto central do template. A seguir serão apresentados os diversos passos utilizados para o desenvolvimento do projeto, elaborado com o programa MATLAB versão 7 SP3. Constitui-se como primeira etapa definir o número de treinos realizados em cada treinamento, a precisão utilizada, a taxa de aprendizagem e o número de neurônios utilizados na camada neural escondida (CNE), sendo que as três últimas variáveis foram alteradas para se obter mais possibilidades de melhoria, abaixo são apresentados os valores utilizados nestas três variáveis. N treinos [5] N neur. CNE [3; 4; 5; 7; 10; 15; 20; 25; 30] Precisão [10^-5; 10^-6] Taxa Apr. [0,1; 0,01] Tabela 1. Valores das Variáveis. Extrair os dados das imagens e gerar o arquivo contendo as entradas e a saída desejada da rede deve ser a próxima etapa a ser realizada. A extração dos dados inspirou-se na metodologia de filtros espaciais, utilizandose templates. Inicialmente empregou-se templates de 3x3 pixels e posteriormente 5x5, da mesma forma utilizou-se inicialmente imagens de 75x75 pixels e posteriormente 100x100, sendo adotado como padrão o template de 5x5 e imagens com 100x100 pixels. Figura 5. Exemplos de templates. Duas foram as abordagens para extração dos dados, visando comparar os resultados entre as abordagens. A primeira abordagem consiste em utilizar toda a imagem para treinar e testar e a segunda abordagem consiste em segmentar a imagem em 16 partes iguais (conforme imagem ilustrativa Fig. 6), treiná-las e testá-las individualmente e ao término agrupar os segmentos em uma única imagem. Figura 4. Lena.
imagens com ruídos a fim de verificar a eficácia do treinamento de um tipo de ruído aplicado a outros tipos. 4. Resultados Figura 6. Segmentação da imagem. Após a extração dos dados de todas as imagens, faz-se necessário treinar a rede. Utilizou-se para o treinamento cinco imagens ruidosas, sendo duas imagens com o ruído Salt-&-Pepper, com densidade de ruído 0,1 e 0,01; uma imagem utilizando-se ruído Gaussiano com média zero e variância de 0,01; uma imagem com ruído Speckle, utilizando-se a equação J = I+n*I, onde J é a imagem resultante, I a imagem original e n é o ruído aleatório com média 0 e variância 0,04 distribuído uniformemente e na última imagem foi utilizado o ruído Poisson. Obtendo-se os dados e as variáveis, foi possível realizar 180 treinamentos para as imagens inteiras e 2880 treinamentos utilizando imagens segmentadas, não considerando neste número a quantidade de treinos que cada treinamento contém. Abaixo são apresentadas as cinco imagens com ruídos. Inicialmente foi utilizado template 3x3 e imagem de 75x75 pixels, posteriormente verificou-se que templates maiores permitiram menor generalização, possibilitando melhores filtragens. A seguir é apresentada imagem com ruído Gaussiano e o resultado apresentado pela rede neural utilizando 15 neurônios na CNE, precisão de 10^-5 e taxa de aprendizagem de 0,01. Figura 5. Imagens 75x75 pixels (a) Ruído Gaussiano; (b) Imagem filtrada. Utilizando-se imagens com 100x100 pixels obtiveramse os resultados a seguir. Utilizando imagem única para treinamento da rede, como se esperava os melhores resultados foram os correspondentes de cada treinamento, ou seja, os melhores filtros para imagens com ruídos Gaussianos foram os pesos ajustados a partir de imagens com o mesmo tipo de ruído. Figura 6. Imagens com Ruídos. (a) Gaussiano; (b) Poisson; (c) SP 0,01 (d) SP 0,1 (e) Speckle. Para todos os treinamentos realizados obteve-se a média dos erros de suas saídas (diferença entre o valor resultante da RNA e valor esperado para o pixel) e com este valor pode-se definir o melhor treino realizado no treinamento e consequentemente as melhores topologias para cada tipo de ruído. Também executou-se uma série de treinamentos e testes utilizando não apenas um tipo de ruído em cada treinamento, mas todos eles em um mesmo treinamento. A última etapa refere-se aos testes. Para cada um dos treinamentos realizados foram efetuados cinco testes, ou seja, para cada treinamento foram filtradas as cinco Figura 8. Resultado da filtragem de imagens com ruído Gaussiano utilizando imagens com ruídos diferentes no treinamento (Neurônios na CNE); (a) Trein. Gauss. 15 NCE; (b) Trein. Speckle 10 NCE. A seguir pode-se observar um exemplo de seleção de topologia, neste caso usando-se 20 neurônios na camada neural escondida obteve o melhor resultado, são valores representando treinamento e testes realizados com imagens com ruídos Gaussianos. Em geral as melhores topologias obtidas tinham entre 10 e 20 neurônios e percebeu-se que a taxa de aprendizagem seria suficiente com 0,1, tendo resultados parecidos, porém com maior desempenho.
N NCE Médias 3 0,1054 4 0,1031 5 0,1016 7 0,1035 10 0,1065 15 0,1068 20 0,1015 25 0,1056 30 0,1056 Tabela 2. Seleção de topologia. A Figura 8, a seguir, mostra alguns resultados obtidos através do treinamento e teste realizados com os segmentos da imagem. Pode-se verificar que com esta abordagem o filtro desempenhou melhor sua função. se comparados com os treinamentos individuais, mostrados anteriormente. Figura 10. Resultado da filtragem utilizando todos os ruídos no treinamento em imagens com diversos ruídos; (a) Gauss. 10 NCE; (b) Poisson 10 NCE; (c) SP 0,1 10 NCE. O mesmo ocorre com o treinamento segmentado, como pode ser visto na figura 11, a seguir. Figura 10. Resultado da filtragem segmentada utilizando todos os ruídos no treinamento em imagens com diversos ruídos; (a) Imagem Ruidosa Speckle; (b) Imagem Filtrada. 5. Conclusões Figura 8. Resultado da filtragem segmentada (imagem usada no treinamento/imagem usada no teste); (a) Gauss./Gauss. 15 NCE; (b) Gauss./Speckle 15 NCE (c) SP0,01/SP0,01 7 NCE; (d) SP0,01/Gauss. 7 NCE. Abaixo (Fig. 9) são apresentadas filtragens segmentadas, onde pode-se observar melhor os resultados individuais. Trein/Teste Gauss./Gauss. 15 Speckle/Poisson 10 NCE Segmento 7 10 11 7 10 11 Sem ruído Com ruído Resultado Filtro RNA Figura 9. Filtragem segmentada. Utilizando-se todos os ruídos no treinamento não segmentado, não se obtém melhores resultados (Fig. 10) Conclui-se a partir dos resultados acima apresentados, que redes neurais podem ser empregadas como filtros de imagens. Treinando-se as redes para vários segmentos individuais podem melhorar os resultados se comparado aos treinamentos realizados com toda a imagem, visto que a generalização é menor. A utilização de filtros específicos para cada tipo de ruído, usual nos filtros espaciais, aplica-se a este trabalho, os resultados mostram que usando vários ruídos no treinamento, o resultado final não é melhorado. Como sugestão para trabalhos futuros, tem-se a possibilidade de usar arquiteturas de redes neurais para definir a qual classe pertence um determinado ruído, usando-se, por exemplo, redes de mapas autoorganizáveis (SOM Self-organazing Maps), e após classificar este ruído, pode-se aplicar o filtro determinado para o ruído classificado. 6. Referências [1] R. C. Gonzalez, R. E. Woods, e S. L. Eddins, Digital Image Processing Using MATLAB, Prentice-Hall, 2003. [2] S. Haykin, Neural Networks, Prentice-Hall, 1999.
[3] Z. L. Kovács, Redes Neurais Artificiais: Fundamentos e Aplicações, Edição Acadêmica, 1996. [4] L. Yin, J. Astola, Y. Neuvo, A New Class of Nonlinear Filters Neural Filters, IEEE, Transactions on Signal Processing, 1993. [5] K. Suzuki, I. Horiba, N. Sugie, Efficient Approximation of Neural Filter for Removing Quantum Noise From Images, IEEE, Transactions on Signal Processing, 2002. [6] H. Jahn, A Neural Network for Image Smoothing and Segmentation, Springer, Lecture Notes in Computer Science, 1998. [7] S. W. Perry, L. Guan, Weight Assignment for Adaptive Image Restoration by Neural Networks, IEEE, Transactions on Neural Network, vol. 11, 2000. [8] M. Haritopoulos, H. Yin, e N. M. Allinson, Image denoising using self-organizing map-based nonlinear independent component analysis, Elsevier, Neural Networks, vol. 15, 2002.