sexta-feira, 29 de fevereiro de 2008

Andamento do SIRENE

Esta semana eu estive lendo uns artigos sobre reconhecimento de faces humanas em imagens digitais e lá eram abordados alguns métodos de segmentação da pele, sendo uns simples como limiarização nos canais YCbCr ou HSV e outros mais pesados computacionalmente, envolvendo até mesmo redes neurais supervisionadas (MLP).
Na leitura, observei resultados interessantes, provavelmente a aplicação de técnicas de morfologia matemática (erosão e dilatação), possam aumentar a eficiência sem aumento significativo no tempo de execução.

Mudando um pouco de assunto:
Estou fazendo a disciplina de reconhecimento de padrões no mestrado, e já desenvolvi algo que será aproveitado nas simulações, em termos de classificadores de padrões.
No momento estamos estudando conceitos de reconhecimento de padrões como: espaço de atributos, classes de dados, limiares de decisão, etc...

quarta-feira, 27 de fevereiro de 2008

Aplicações com ICA e SDL

Uma das áreas do conhecimento que tenho maior afinidade é a Inteligência Computacional Aplicada (ICA) que consiste basicamente de 3 técnicas:
  • Algoritmos Genéticos;
  • Lógica Fuzzy (Nebulosa);
  • Redes Neurais.
Quando fiz esta disciplina na graduação, coincidiu com meu estudos da API gráfica SDL (Simple Direct Layer) em C.

Seguemos vídeos ilustrativos de aplicações que desenvolvi.










segunda-feira, 25 de fevereiro de 2008

Python

Aqui desejo apenas apresentar uma linguagem de programação muito poderosa e que dispõem de vários recursos para o desenvolvimento de aplicações científicas.


Python é uma linguagem de programação orientada a objetos com o maior nível de abstração que já conheci. Literalmente todos os elementos são objetos (incluindo números e strings, que não sejam variáveis).

As bibliotecas que já trabalhei em Python:
  • Scipy;
  • Numpy;
  • PIL - Python Imaging Library;
  • Tkinter.
Para detalhar um pouco cada biblioteca:
Scipy e Numpy são "irmãs", em que uma dá suporte a outra. Elas dispõem de classes e métodos para aplicações científicas, tais como álgebra vetorial e matricial, transformadas (FFT, IFFT), funções matemáticas (SIN, COS, TAN, COSH, SINH, TANH, EXP, etc...) e vários outros recursos.
PIL contém interfaces para entrada e exibição de imagens, além de funções básicas do processamento digital de imagens, como filtragens, borramento, realce, etc....
Tkinter é uma biblioteca para geração de GUI's, contendo elementos como: botões, caixas de texto, Labels, barras de rolagem, listbox, etc....

Finalizando, descrevo apenas uma aplicação que desenvolvi para a disciplina de Processamento Digital de Imagens (PDI). O meu projeto da disciplina er um aplicativo capaz de localizar placas em imagens de veículos, neste programa usei todas as bibliotecas citadas.

quinta-feira, 21 de fevereiro de 2008

Primeira etapa do SIRENE

A primeira etapa do SIRENE (Sistema de Reconhecimento Neuro-Visual da Libras por Computador) consiste na segmentação das mãos do usuário.
Os testes que comecei hoje não tiveram resultados interessantes, porém a causa dos problemas é o excesso de iluminação, conforme a figura abaixo.

A segmentação da mão é implementada pela extração dos pixels relativos a pele. A identificação dos pontos de pele pode ser feita por limiarização simples no espaço de cores YCbCr, visto que todas as peles têm a mesma cor, o que caracteriza o tom de pele é a intensidade de luz absorvida.

Webcam no Linux

Eu uso um notebook que tem uma câmera integrada, mas esta nunca funcionou corretamente no Linux (testei várias distribuições, mas não obtive sucesso).
Para resolver o problema, eu adquiri uma webcam usb tradicional, minha sugestão então é esta: testem a webcam antes de comprarem. Atualmente o kernel do Linux tem vários drivers incorporados que permitem o uso normal do dispositivo.
Para testar a webcam, existem diversos aplicativos que apenas inicializam a webcam e exibem as imagens capturadas, a minha recomendação é o camorama (disponível via apt-get, synapitc, adept, etc....).

quarta-feira, 20 de fevereiro de 2008

Scicos

Comecei a estudar o Scicos mais a fundo estes dias e descobri uns recursos interessantes, tais como:
  • Elementos elétricos e eletrônicos (resistores, capacitores, diodos, transistors, etc..);
  • Equações diferenciais (diferencioadores e integradores);
  • Elementos de álgebra linear;
  • Interfaces de IO (arquivos, áudio, gráficos, etc..);
  • Geradores de sinais (senoidais, temporais, aleatórios).
Percebi que existem 2 tipos de conectores (preto e vermelho), em que os sinais dos conectores vermelhos representam controle e os sinais dos conectores pretos representam informação (dados) conforme a figura abaixo.Sistema integrador alimentado por uma onda quadrada.

Alguns dos recuros do Scicos ainda não estão muito claros, porém esta caminha iniciou-se a pouco tempo.

segunda-feira, 18 de fevereiro de 2008

Ambiente de simulação - Scilab

Começando as informações sobre informática da forma que eu uso, inicio pelo Scilab (http://www.scilag.org/).

O Scilab é um ambiente de simulação que implementa computação numérica, ou seja, o Scilab fornece recursos para o desenvolvimento de soluções a problemas que seriam complicados de serem solucionados "à mão".

Dentre as aplicações que já desenvolvi no Scilab, estão:
  1. Redes neurais;
  2. Algoritmos genéticos;
  3. Análise de séries temporais (séries econômicas);
  4. Processamento digital de sinais e imagens;
  5. Visão computacional;
  6. Eletromagnetismo (basicamente para visualização de campos elétricos em diversas conformações de cargas).
O maior trabalho que desenvolvi usando o Scilab foi a proposta de um novo método para identificação e localização de pontos críticos em imagens digitais, em que eu fazia uma abordagem por detalhes enquanto que os métodos tradicionais fazem análises pela curvatura.

O Scilab tem várias toolboxes, dentre elas: SIVP - Scilab Image and Video Processing toolbox, SWT - Scilab Wavelets Toolbox (usadas principalmente em processamento digital de sinais e imagens). Existe também o Scicos que consiste em um ambiente de simulação incorporado ao Scilab em que é possível desenvolver a aplicação "puxando bloquinhos", esta prática permite desenvolver aplicações de forma muito rápida e simples.

Para finalizar, digo que o Scilab é um software livre que não me deixa desamparado em comparação aos softwares proprietários tradicionais.

quinta-feira, 14 de fevereiro de 2008

Apresentação do SIRENE

O SIRENE (Sistema de Reconhecimento Neuro-Visual da Libras) é o resultado que pretendo alcançar ao final do meu mestrado.

O projeto consiste de um software que fará as vezes de um tradutor da Libras (Língua de Sinais Brasileira) que é a única forma de comunicação de alguns deficientes auditivos. O maior benefício do SIRENE será a nova interface de comunicação com o computador, em que uma câmera irá capturar as imagens e o SIRENE converterá as imagens para texto.

Como o próprio nome sugere, as técnicas abordadas envolverão visão computacional e reconhecimento de padrões (por redes neurais).

O SIRENE será disponibilizado como software livre, possibilitando assim ser incorporado a aplicações existentes (editores de texto, instant's messengers, etc), estudado, adaptado e redistribuído.

Atualmente, o projeto está em fase de levantamento bibliográfico e configuração dos ambientes de simulação e desenvolvimento.

segunda-feira, 11 de fevereiro de 2008

Apresentação pessoal

Sou engenheiro tendo como principal interesse sistemas de telecomunicações.
Minhas principais áreas de atuação e estudo:
  1. Processamento digital de sinais e imagens;
  2. Visão computacional;
  3. Inteligência computacional;
  4. Reconhecimento de padrões;
  5. Software livre;
  6. Programação C/C++ e Python.
Atualmente estou cursando mestrado, no qual meu projeto consiste em um sistema de visão computacional, este será descrito em postagens futuras.

domingo, 10 de fevereiro de 2008

Postagem inaugural

Este blog propõe-se a divulgar tecnologia e infomação em processamento digital de sinais em sua forma mais geral.
Sempre mantendo o foco na fundamentação que sustenta o conhecimento.