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...
Este blog tem por finalidade apresentar meus trabalhos e alguns aspectos de minha vida pessoal. Eu (editor do blog) sou engenheiro e mestre em engenharia de teleinformática, sou usuário e entusiasta de software livre, sou católico praticante e espero que o meu blog possa te ajudar.
sexta-feira, 29 de fevereiro de 2008
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:
Seguemos vídeos ilustrativos de aplicações que desenvolvi.
- Algoritmos Genéticos;
- Lógica Fuzzy (Nebulosa);
- Redes Neurais.
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 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.
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.
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.
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....).
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:
Alguns dos recuros do Scicos ainda não estão muito claros, porém esta caminha iniciou-se a pouco tempo.
- 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:
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.
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:
- Redes neurais;
- Algoritmos genéticos;
- Análise de séries temporais (séries econômicas);
- Processamento digital de sinais e imagens;
- Visão computacional;
- Eletromagnetismo (basicamente para visualização de campos elétricos em diversas conformações de cargas).
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.
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:
Minhas principais áreas de atuação e estudo:
- Processamento digital de sinais e imagens;
- Visão computacional;
- Inteligência computacional;
- Reconhecimento de padrões;
- Software livre;
- Programação C/C++ e Python.
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.
Sempre mantendo o foco na fundamentação que sustenta o conhecimento.
Assinar:
Postagens (Atom)