I’m back

Sheep @ Info and Tech in Signals Categorias: Ciência Geral, Scilab, digital image processing, digital signal processing, free software, neural network
I will travel today and my return is next Monday. I will start a tutorial about Scilab, I'm thinking in create a new blog over the English version of the Scilab tutorial.I'd like that the readers comment this post with suggestions about examples areas like digital signal and image processing, computational intelligence, automation and control, etc...I will use the suggestions on the Scilab's codes that I will develop.I created a new blog (all in English). I'd like to receive visits on my new blog.

Volta a ativa

Sheep @ Info and Tech in Signals Categorias: Ciência Geral, Scilab, engenharia, ica, processamento de sinais, processamento digital de imagens, software livre
Eu irei fazer uma viagem hoje e estarei retornando na segunda-feira, de modo que assim que voltar irei iniciar o tutorial do Scilab.Caso alguém tenha alguma sugestão de temas para os exemplos de código, fique a vontade para pedir (processamento de sinais e/ou imagens, inteligência computacional, automação e controle, etc....).Enfim, eu acho que com as sugestões dos leitores, que devem ser os mais interessados no blog, o tutorial ficará muito bom.

Manipulação de iluminação pelo histograma

Sheep @ Info and Tech in Signals Categorias: Ciência Geral, SIRENE, SIVP, Scilab, Simulação numérica, equalização de histograma, estatística, linux, processamento digital de imagens, software livre
Eu fiz um post sobre segmentação em que eu citei uma equalização de histograma, mas como atualmente estou fazendo alguns testes com realce de imagens e usando técnicas que envolvem o histograma das imagens, vou apresentar algo aqui.Para começar, tudo o que for apresentado aqui foi desenvolvido no Scilab com a biblioteca SIVP (informações podem ser encontradas facilmente nas tags do blog).Pois bem, para começar vamos manipular apenas um offset do histograma que consiste em acrescentar ou subtrair um valor constante em todos os pixels da imagem.Para ilustrar, vamos usar a imagem a seguir.Segue o histograma desta imagem.Obs.: Lembrando que o histograma é a incidência de pixels em cada nível (intensidade).Observando este histograma, percebe-se que ele está muito consentrado nos valores altos, o que se reflete em uma imagem muito clara.Vamos então reduzir 50 de cada pixel.Obtemos a imagem (original | nova).E o novo histograma.Neste caso, já percebe-se alguma diferença na imagem.Para fechar o post, faço 2 ...

Sistemas Fuzzy

Sheep @ Info and Tech in Signals Categorias: Ciência Geral, Scilab, computação, engenharia, estatística, ica, lógica fuzzy, software livre
Para quebrar um pouco o jejum de posts (principalmente posts sobre coisas que não sejam relacionadas a opinião pessoal) vou falar um pouco sobre sistemas Fuzzy.Sistemas Fuzzy são baseados em lógica fuzzy (lógico) e são constituidos de 3 partes:Fuzzyficador;Regras e inferência;Desfuzzyficador.Descrição dos elementos do sistema fuzzy.O Fuzzyficador consiste na interface entre as variáveis de entrada (valores numéricos) do fenômeno avaliado e o sistema fuzzy (conjuntos fuzzy).As regras e inferência implementam a lógica entre a entrada e a saída, gerando um conjunto fuzzy de saída.O Desfuzzyficador transforma o conjunto fuzzy de saída em um valor numérico.Para dar um exemplo, vamos supor que nós precisamos controlar o nível de água em um tanque, porém este tanque tem uma entrada de água e uma saída de água.Vamos criar os conjuntos fuzzy das variáveis de entrada do sistema (nível do tanque e volume de água que está saindo do tanque) e da variável de saída (volume de água que está entrando no tanque).Obs.: A variável de saída é também chamada variável de controle.Vamos criar algumas regras fuzzy para o sistema:Se o nível do tanque estiver baixo ...

Técnicas clássicas de segmentação de pele humana

Sheep @ Info and Tech in Signals Categorias: Ciência Geral, Mestrado, SIRENE, SIVP, Scilab, limiarização, linux, processamento digital de imagens, segmentação, software livre
Enfim algum tempo livre... Vou aproveitar e fazer um post sobre uma das etapas do meu mestrado a segmentação da pele.Vou apenas apresentar 3 formas de segmentação de pele e alguns resultados obtidos.A imagem de teste é apresentada a seguir.Espaço de cores RGB:Um pixel pertence a pele se satisfizer as condições abaixo:R > 95G > 40B > 20max {R, G, B} − min {R, G, B} > 15|R − G| > 15R>GR>BResultado da segmentação:Espaço de cores YCbCr:Um pixel pertence a pele se satisfizer as condições abaixo:77 ≤ Cb ≤ 127133 ≤ Cr ≤ 173Resultado da segmentação:Espaço de cores HSV:Um pixel pertence a pele se satisfizer as condições abaixo:0° ≤ H ≤ 50°0, 23 ≤ S ≤ 0, 68Resultado da segmentação:Antes que alguém saia por aí dizendo que um método é melhor que outro, eu digo ...

Vowels in Sign Language

Sheep @ Info and Tech in Signals Categorias: Ciência Geral, SIVP, Scilab, computation, computational vision, digital image processing, engineering, free software, linux, neural network, simulation, threshold
I recorded some videos more to my mastering qualify (the alphabet in Libras - Brazilian Sign Language).I'm having problems with the Scilab (it doesn't read the videos), thus I used the mplayer to extract the frames. For extract frames from a video, I use the command:>> mplayer -vo jpeg name_of_the_file.aviNow, I'm doing tests about skin segmentation. I tried threshold and clustering algorithms, but nothing works with all pictures that I have.If anyone can helps me, I will be very grateful.These are some pictures that I have:Letter 'A':Letter 'E':Letter 'I':Letter 'O':Letter 'U':

Vogais em Libras

Sheep @ Info and Tech in Signals Categorias: Ciência Geral, Mestrado, SIVP, Scilab, biometria, computação, engenharia, linux, processamento digital de imagens, segmentação, software livre, threshold, visão computacional
Eu fiz mais uns vídeos para a minha qualificação de mestrado.Como eu estou com problemas com o Scilab (que decidiu não abrir mais arquivos de vídeo) eu extrai os frames de cada vídeo (com o mplayer), basta dar o comando:>> mplayer -vo jpeg nome_do_arquivo.aviAtualmente, estou avaliando algoritmos de segmentação da pele, testei alguns de limiarização e outros baseados em clustering. Nenhum deles funciona bem em todas as imagens que tenho, caso alguém se disponha a ajudar, ficarei muito grato.Seguem algumas imagens que gerei.Letra 'A'Letra 'E'Letra 'I'Letra 'O'Letra 'U'

Matlab

Sheep @ Info and Tech in Signals Categorias: Ciência Geral, Scilab, engenharia, estatística, linux, software livre
Segue uma descrição do Matlab™:O Matlab™ (dispensa apresentações) é um software proprietário, ou seja não é possível ter acesso a forma como as funções são implementadas, de modo que muitas vezes (se não todas) o sistema é usado como "caixa-preta". Convenhamos que para fins didáticos (de aprendizagem) esta não é a melhor metodologia, pois mesmo que o usuário deseje aprender ele não poderá estudar as funções do Matlab™ e terá que limitar-se a apenas usar estas funções.O Matlab™ é abusivamente caro (US$ 1.900,00) e a aquisição do software não garante que o usuário terá acesso as toolboxes disponíveis, assim quem for usar o Matlab™ com uma toolbox terá de comprar o Matlab™ e a toolbox desejada, diga-se também que muitas toolboxes são mais caras que o próprio Matlab™ (algumas, desenvolvidas pelo próprio fabricante do Matlab™, chegam a custar US$ 8.000,00 - fonte). Lembrando ainda que este é o custo por licença, ou seja, para cada computador no qual o Matlab™ será instalado.O Matlab™ não tem suporte nativo para GNU/Linux (e nenhuma outra plataforma freeware), ou seja, para usar o Matlab™ deve-se comprar também um sistema operacional compatível (M$) ou "adaptar" o Matlab™ para que este também funcione ...

Genetic Algorithms

Sheep @ Info and Tech in Signals Categorias: Ciência Geral, Scilab, digital signal processing, engineering, genetics algorithms, ica, math, statistics
I'll talk about Genetic Algorithms at this post.Genetics Algorithms (G. A.) are a type of evolutionary computation, wich the software "upgrade itself" for solve a problem.The principle of G. A. is the Theory of Evolution (Biology).In terms of system's engineering, we use G. A. with 4 steps:Identify the problem and make it solution as a vector of numbers (preferentially, binary numbers);Generate a lot of possible solutions (population), without think "what's the best solution for my problem?" (the software will find a good solution);Create a measure for the solutions (G(.)), this measure indicates the "solution's adaptability" (for each solution);Cross the solutions until a satisfiable solution is find.Observations:The more adaptable solutions have more probability of cross with others solution. The function G(.) is higher as better is the solution for solve the problem.The cross between 2 solutions occurs with a changing of some numbers of the vectors.The worst solutions are discarded and the new solutions just be better than the old solutions.A example: give a room with N lamps, which lamps should be lit for best lighting and less power consume?{Making N = 10}...

Conjunto de vídeos sobre Libras

Sheep @ Info and Tech in Signals Categorias: Ciência Geral, SIVP, Scilab, Video, YouTube, libras, linux, processamento digital de imagens, rastreamento, segmentação, software livre, visão computacional, webcam
Hoje eu fiz os primeiros vídeos para testar os algoritmos que desenvolvi para o meu mestrado.Primeiro vou testar algoritmos de segmentação, depois de extração dos momentos centrados e por fim os algoritmos de classificação.Eu fiz um código do Scilab para fazer a captura do vídeo, como o que apresentei aqui.Eu fiz 2 conjuntos de vídeos com as 26 letras do alfabeto em Libras (um vídeo por letra).Pelo que vi nos vídeos, terei problemas em fazer a segmentação da mão, caso seja necessário, e/ou algoritmos de rastreamento.Eu fiz os vídeos na Feneis-CE com 2 pessoas que têm experiência com Libras (um deles é deficiente auditivo).Sobre os vídeos, eu os fiz com uma webcam VGA (640 x 480 pixels) com duração de 5 segundos a 20 fps.Eu pensei em fornecer os vídeos a possíveis colaboradores que tenham interesse em trabalhar com reconhecimento de gestos ou mesmo com o reconhecimento da Libras.Como são muitos vídeos (52 no total) eu não acho interessante colocá-los no YouTube, mas posso passar por e-mail aos interessados (cada conjunto de vídeos tem uns 13,5 MB).Os interessados podem deixar ...

Control the ball with your hands - Game

Sheep @ Info and Tech in Signals Categorias: Ciência Geral, GDJCE, SIVP, Scilab, biometria, computation, computational vision, engineering, free software, games, linux
Using the segmentation of hands, I developed the game Control the ball with your hands.This a video for show the game:This game was developed in the Scilab, using the SIVP toolbox, thus it's a simulation algorithm.I develop games like this because I like it.If anyone wants talk about this game, or others things, may send me e-mails.

Neural Segmentation of Hands

Sheep @ Info and Tech in Signals Categorias: Ciência Geral, SIRENE, SIVP, Scilab, biometria, computation, computational vision, digital image processing, engineering, neural network
I developed an algorithm for segmentation of objects in digital images.I maked this algorithm because I will need do segmentation of hand in my mastering project.This a video whose I do for show the result.The algorithm consists in build 2 clusters, the first for mapping the object and the second for mapping the ground.I used Self-Organizing Maps for build the clusters.I wrote the code in Scilab, using the SIVP toolbox.

GPIB - Interface de Uso Geral

Nelson Correia @ Info and Tech in Signals Categorias: Ciência Geral, Formação, Perfil profissional, Pesquisa, Scilab, computação, engenharia, linux, processamento de sinais, python, software livre
GPIB (General Purpose Interface Bus) é uma interface de comunicação entre dispositivos, como a USB, paralela, serial, PS2, etc....Esta interface é suportada (tem como suporte) pela National Instrument$ e a Agilent ($$$), este é o primeiro e se possível último post que faço de algo que usa software proprietário aqui no MultiSign, minha intenção é apenas mostrar que é possível resolver os problemas, por mais complexos que sejam, com o software livre.Pois bem, a GPIB foi desenvolvida por um pesquisador e como ele conseguia taxas de transmissão muito altas (da ordem de 5MB/s - é byte mesmo) em pouco tempo o IEEE adotou como um dos padrões de comunicação entre dispositivos.Atualmente esta interface é muito usada para dispositivos de análise de materiais, rádio-frequência, etc... que são usados por "engenharia de base".Algo que me deixou muito motivado a fazer este post foi a existência de uma toolbox de comunicação GPIB para o Scilab (aqui) e esta mostrou-se muito funcional, e ainda existe uma versão para GNU/Linux (se não existisse eu não estaria fazendo este post).Falando um pouco do padrão GPIB:este é capaz de suportar até 32 dispositivos ao mesmo tempo;existem 3 tipos de elementos em ...

Conversa sobre redes neurais

Octavio Mateus @ Info and Tech in Signals Categorias: Ciência Geral, Mestrado, Scilab, biometria, computação, engenharia, ica, reconhecimento de padrões, redes neurais
Tenho um professor aqui na UFC que lenciona a disciplina de ICA (Inteligência Computacional Aplicada), dentre outras.Este professor é especialista em redes neurais e sempre procura transmitir o possível de sua experiência aos alunos.Aqui, neste post, pretendo fazer o mesmo: compartilhar um pouco das minhas experiências com redes neurais, em especial a MLP (Multi-Layer Perceptron).Começando, digo que redes neurais são aproximadores de funções de um espaço n-dimensional em um espaço m-dimensional.O espaço n-dimensional (domínio da função) é o espaço de entrada da rede e o m-dimensional (contra-domínio da função) é a saída da rede.Por exemplo, para a identificação de um sistema elétrico, vamos supor que a entrada da rede seja tensão, corrente e impedância e a saída é uma de 3 classes de sistemas (predominantemente resistivo, capacitivo ou indutivo). Neste caso para cada elemento (V, I, Z) de entrada temos uma saída (S1, S2, S3) associada. A saída pode ser discreta ou contínua, no exemplo apresentado a saída pode ser a que classe pertence o sistema ou o grau de presença de cada tipo de elemento.Uma aplicação interessante é a previsão de séries temporais, em que a ...

Computational Vision in Scilab

Octavio Mateus @ Info and Tech in Signals Categorias: Ciência Geral, SIVP, Scilab, computational vision, free software, linux, opencv, simulation
In this post I will share knowledge about Scilab and SIVP (Scilab Image and Video Processing toolbox).To Ubuntu (and similars) users the Scilab can be downloaded and installed by package manager (synapic, apt-get, adept, ......), you just to download all files. The SIVP can be downloaded from here.To install the SIVP is very simple, only do this steps as root:Unpack the file;In shell: cd {SIVP's directory}In shell: ./configureIn shell: makeIn shell: make installAfter this proceeding, the Scilab is all set to use computational vision resources: webcam's access, files (images and videos) readers, image display, ......The SIVP uses the OpenCV API, and it can be downloaded and installed by package manager.Before of start the Scilab, test your webcam with the Camorama (it can be downloaded and installed by package manager too).This is the initial Scilab's screen:The toolboxes button is detached.To load the SIVP is only select it in toolboxes button.This code is a example to use the webcam and display the images.// Display images from webcamCam = camopen(); // open the webcam...

Scilab simulation enviroment

Octavio Mateus @ Info and Tech in Signals Categorias: Ciência Geral, Scilab, free software, linux, programming, simulation
This is my first post in english. I like the Scilab, so it's the subject of this post.The Scilab is a simulation enviroment to numeric computation, i. e., the Scilab have many resources to solve complicated problems.Examples of aplications that I work in Scilab:Neural networks;Genetics Algorithms;Analysis os temporal series (in economy);Digital images and signals processing;Computational vision;Electromagnetism.The most important work that I developed was a new algorithm to detect and localize critical points in digital images, I have used details enhacement in this work and the classical technics uses boundary analysis.The Scilab has many toolboxes, for example: SIVP - Scilab Image and Video Processing toolbox and SWT - Scilab Wavelets Toolbox (this have functions for signals and images). The Scicos is a graphical simulation enviroment, this is on the Scilab (called by "scicos" in prompt), with the Scicos is possible to develop "getting blocks", this is a easy and fast mode to work.To finish, the Scilab is a free software and doesn't have less resources than proprietary softwares.

Scilab + WiiMote

Milton Lopes Filho @ Info and Tech in Signals Categorias: Ciência Geral, Scilab, YouTube, computação, engenharia, processamento de sinais, programação gráfica, progressões, rastreamento, software livre, usb
Hoje vi este vídeo e achei bem interessante.Neste caso, o wiimote lê e envia o sinal do carro para o Scilab (no notebook), acredito que o uso do wiimote foi um exagero por parte do idealizador, mas ficou bem interessante.

Rotação de quadrado no scilab

Milton Lopes Filho @ Info and Tech in Signals Categorias: Ciência Geral, Formação, Matemática, Scilab, computação, programação gráfica, progressões, software livre
Um(a) leitor(a) do blog está com uma dúvida: como plotar quadrados em ângulos diferentes ao mesmo tempo no scilab, sendo cada quadrado de uma cor.Primeiro passo: montar o quadrado original.O quadrado será montado pelos seus vértices e o primeiro vértice deve estar na 1a e última posição para "fechar o quadrado".x = [0 1 1 0 0];y = [0 0 1 1 0];Segundo passo: determinar quantos quadrados irão aparecer.Lembrando que cada quadrado deve ser de uma cor, então deve-se conhecer tantas cores quanto seja a quantidade de quadrados.N = 7;cores = ["r" "g" "b" "c" "m" "y" "k"]; // cores r-vermelho, g-verde, b-azul, c-ciano, m-magenta, y-amarelo, k-pretow = 2*%pi/N; // intervalo angular entre os quadrados 360º/7Terceiro passo: definir a rotação do quadrado.Quem estudou tranformações lineares, deve lembrar que a rotação de um ponto em torno da origem é obtida pela seguinte equação:Quarto passo: gerar os gráficos.Fazendo o código final (completo)x = [0 1 1 0 0];y = [0 0 1 1 0];N = 7;cores = ["r" "g" "b" "c" "m" "y" "k"];w ...

Migração do SIRENE

Milton Lopes Filho @ Info and Tech in Signals Categorias: Ciência Geral, SIRENE, Scilab, Simulação numérica, libras, linux, python, software livre, visão computacional
Essa semana eu comecei a traduzir o SIRENE para python.Por enquanto, estou com a segmentação da pele pronta, mas ainda não validei.As bibliotecas não nativas que estou usando: numpy, scipy e OpenCV.A questão agora é como exibir os resultados, se usarei alguma biblioteca tipo Qt ou Tkinter, ou se usarei apenas as interfaces do OpenCV, que são interessantes também.O ambiente de desenvolvimento que estou usando é o KDevelop.

Informações sobre o jogo “controle a bolinha com as mãos”

Milton Lopes Filho @ Info and Tech in Signals Categorias: Ciência Geral, FISL, SIRENE, Scilab, Simulação numérica, jogos, processamento digital de imagens, visão computacional
Este jogo foi um "sub-projeto" que apareceu com o andamento do SIRENE.O objetivo do jogo é apenas não permitir que a bolinha chegue nas bordas da tela.Como os leitores devem imaginar, fiz este protótipo no Scilab (detalhe: acho que não demorei 6 horas de implementação, pois já tinha as idéias em mente, e comecei tudo do zero), então pude ter um alto desempenho no desenvolvimento do programa, porém a execussão do mesmo fica comprometida.O Scilab é um ambiente de simulação, muito indicado para o desenvolvimento de algoritmos de forma rápida, porém a execussão do programa é muito lenta.No FISL irei fazer uma apresentação informal deste programa, porém não pretendo disponibilizá-lo antes de ver como fazer para colocá-lo sob as condições da GNU-GPL.

Jogo: controle a bolinha com as mãos

Milton Lopes Filho @ Info and Tech in Signals Categorias: Ciência Geral, FISL, Scilab, jogos, redes neurais, visão computacional
Hoje fechei o joguinho para o FISL.Não deu para fazer o par-ou-ímpar nem o pedra-papel-tesoura, mas esse da bolinha ficou legal...Segue um vídeo demonstrativo:

Plot 3D de pontos isolados

Milton Lopes Filho @ Info and Tech in Signals Categorias: Ciência Geral, Scilab, Simulação numérica, computação, engenharia, plot3d, programação gráfica
Eu estava com um problema relativo à geração de gráficos tridimensionais no scilab. Especificamente, eu precisava plotar pontos isolados, mas nenhuma das funções que conhecia (plot3d(), plot3d1(), plot3d2() e plot3d3()) era capaz de gerar os pontos.Até mandei e-mail e postei comentários em blogs relacionados, mas fiquei satisfeito em encontrar a solução por mim mesmo.A função param3d1() é capaz de gerar os pontos de acordo com os parâmetros passados. Os gráficos gerados estão apresentados abaixo.param3d1(x, y, list(z, -4));param3d1([x1 x2], [y1 y2], list([z1 z2], [-1 -2]));Com isto, minha busca chega ao fim.

Segmentação neural com 3 neurônios

Milton Lopes Filho @ Info and Tech in Signals Categorias: Ciência Geral, SIRENE, SIVP, Scilab, Simulação numérica, processamento digital de imagens, segmentação
Nos últimos dias eu estive avaliando a segmentação usando a rede de Kohonen. Fiz algumas experiências com relação aos atributos, codificações de cor, quantidade de neurônios e outras coisas.Nas figuras a seguir apresento resultados obtidos com 3 neurônios, em que cada cor representa os pontos pertencentes a um dado neurônio após o treinamento da rede.Imagem 1.Imagem 2.Imagem 3.Imagem 4.Imagem 5.Nas imagens 2 e 5 a rede não conseguiu segmentar a mão, porém em todas as outras observa-se que a mão ficou bem evidenciada na imagem segmentada.Nestes casos, a codificação de cor usada foi RGB.
Design by j david macor.com.Original WP Theme & Icons by N.Design Studio
Entries RSS Comments RSS Login