![]() |
![]() |
|||
Visão Computacional 1. Representação de Prof. Aldo von Wangenheim |
Detecção de Bordas em Imagens Utilizando Redes Neurais Artificiai <Saulo Popov Zambiasi
- saulopz@inf.ufsc.br>
A navegação de robôs necessita de dispositivos e sensores capazes de fornecer informações do ambiente para que o mesmo possa se locomover sem colisões e executar as demais funções da qual ele objetiva. Como exemplo, um robôs que navega em um ambiente fechado e tem a função de em empilhar caixas, dispersas no ambiente, em locais adequados. A visão, fornecida através de um dispositivo de CCD, pode prover informações suficientes para que o agente (robô) possa se localizar no ambiente em que se encontra. Em contrapartida, são muitas as informações recebidas e essas também precisam ser tratadas de forma adequada para que as mesmas sejam utilizadas para estruturar uma representação interna do ambiente externo. Diversas técnicas são utilizadas, em conjunto, para a análise das imagens recebidas do ambiente, possibilitando a modelagem do mesmo. Uma destas técnicas é a detecção de bordas na imagem. Estas bordas, geralmente na visão estéreo em que dois CCDs capturam imagens do mesmo ponto de diferentes ângulos, possibilitam a análise de distâncias, dimensões e formas de objetos, assim como localização de paredes e caminhos por onde o agente deve seguir. Este trabalho fornece um
método que se utiliza de redes neurais artificiais para a detecção
das bordas de uma imagens ou uma seqüência de imagens.
2. Rede Neural A rede neural é composta de 9 neurônios na camada de entrada, uma camada intermediária com 10 neurônios e um neurônio na camada de saída. Os neurônios de entrada representam uma matriz de 3x3, sendo esta um pixel e todos seus pixels vizinhos, e o neurônio de saída representa o pixel resultante. Para o treinamento da rede, utiliza-se o algoritmo de Backpropagation. É feito também um pré-processamento nos pixels de forma que os pixels de valor menor que 128 se transformam em 0 (preto) e os maiores ou igual a 128 em 255 (branco). Na rede é feita uma normalização, em que 255 corresponde a 1 e 0 continua 0. Depois da execução do algoritmo, é feita a normalização inversa.
3. Algoritmo Inicialmente treina-se a
rede, pegando-se uma imagem, neste caso com até 256 tons de cinza,
e uma imagem equivalente em branco e preto com apenas suas linhas que delimitam
as bordas. Para a gerar a imagem resultante, foi usado um filtro do Adobe
Photoshop de "Traçado de Contorno" a partir da imagem original em
tons de cinza no formato GIF. Aqui é apresentado o algoritmo de
treino da rede neural:
A imagem de 320x320 pixels, na figura 2, foi redimensionada para 64x64 pixels e foi aplicado o filtro de "Traçado de Contorno" para gerar uma imagem resultante. Destas foram retiradas algumas amostras para serem usadas para o treinamento da rede.
Figura 2: Imagem original, imagem original redimensionada e após o filtro A imagem de 320x320 pixels da figura 3 é o resultado do algoritmo aplicado na imagem original, gerando uma nova imagem de 320x320 pixels com apenas contornos.
5. Conclusão O trabalho apresentado ofereceu
uma técnica alternativa para detecção de contornos
usando redes neurais artificiais, como parte de técnicas para navegação
de robôs. O algoritmo apresentado mostrou-se eficiente, com
um ótimo resultado na imagem resultante e atingindo o resultado
esperado.
6. Trabalhos Futuros Como melhoria no trabalho,
pode-se aumentar a quantidade de pixels na matriz de entrada e na matriz
de saída, diminuindo o rastreamento da imagem, porém, aumentando-se
a quantidade de neurônios de entrada e saída. Também
pode-se acrescentar ao algoritmo o suporte a imagens coloridas.
|
|||
![]() |
![]() |
![]() |