sexta-feira, 30 de maio de 2008

Firefox no Guinness

O Firefox está com uma campanha para entrar no Guinness Book (Livro dos Recordes).

Para ajudar, basta fazer o download do Firefox Versão 3 no dia do seu lançamento. E ainda tem a ajuda, caso você não confie na sua memória (assim como eu), deste site, que é só se cadastrar que você receberá e-mail avisando o dia do download.

O Firefox é um dos softwares livres de maior sucesso da atualidade, vamos colaborar com o seu sucesso!
Software Livre é software público, de todos, então todos podemos ajudar e ser ajudados.

segunda-feira, 26 de maio de 2008

Teorema Fundamental

O Teorema Fundamental do Cálculo diz que existe uma relação intrínseca entre a derivada e a integral (primitiva) de uma função em um dado intervalo [a, b], as operações são uma o inverso da outra.
Com isso mostra-se que a relação é válida.

quinta-feira, 22 de maio de 2008

Sistemas de classificação

Este semestre estou fazendo a disciplina de Reconhecimento de Padrões. Nesta disciplina estudamos basicamente formas de classificação de dados.

Um sistema de reconhecimento de padrões segue a seguinte ordem:


Informações sobre as etapas:
  1. Aquisição da informação:
    Esta etapa consiste em reconhecer o problema e capturar informações sobre este, por exemplo, em um sistema de reconhecimento de padrões em áudio, o problema é reconhecer algo no som, então a informação aquisitada será o áudio por meio de um microfone.

  2. Extração de atributos:
    O sinal puro, como um sinal de áudio, é difícil de ser tratado pois existe muita informação nele, e muita desta informação é desnecessária e redundante, então o sinal deve ser tratado de forma a fornecer informações úteis.

  3. Pré-processamento (optativo):
    Como a extração dos atributos pode fornecer informações ruidosas ou redundantes (principalmente em sistemas onde a extração de atributos é automática), é interessante aplicar técnicas de eliminação de redundância e filtragem sobre as informações relativas aos atributos do sinal capturado.

  4. Classificação:
    A classificação consiste em determinar qual a classe que gerou o sinal capturado, em um sistema de reconhecimento de áudio (voz humana), este reconhecimento pode definir a pessoa que está falando, o que a pessoa está falando ou, até mesmo, o estado emocional da pessoa que está falando.
As classes devem ser conhecidas a priori e o classificador é projetado em cima destas classes e de como são os dados que elas geram.

quinta-feira, 15 de maio de 2008

LaTeX

Neste post, gostaria de apresentar o LaTeX, que é um ambiente de desenvolvimento de textos muito interessante.

Dentre suas facilidades estão a portabilidade entre plataformas (GNU/Linux, Ruindow$ e MacO$), a praticidade na elaboração de equações, ajuste de figuras, tabelas, etc... e a possibilidade de adequar seu texto a qualquer situação apenas mudando um arquivo de layout.

Segue a tela inicial do TexMaker, um dos ambientes de desenvolvimento LaTeX do GNU/Linux.

Tela inicial do TexMaker.

O LaTeX pode ser "recheado" com pacotes externos, que no GNU/Linux podem ser baixados via apt-get (e os gerenciadores de pacotes que tanto cito), de modo a suportar diversos idiomas.

Aos interessados em começar a usar o LaTeX, baixem o Kile (ambiente KDE) ou o TexMaker (ambiente GNOME) e tomem este site (inglês) como primeira referência, ou este (português).

terça-feira, 13 de maio de 2008

Projeto de Biometria Open-Source

Hoje vi um artigo sobre um projeto de reconhecimento facial open-source, o Malic.

Como este artigo está sendo bem divulgado, vou apenas fazer uma análise sintética do sistema.

O aplicativo foi desenvolvido usando OpenCV e outra biblioteca que não conheço (Malib).

O Malic tem as seguintes etapas:
  1. O usuário pôe-se frente a câmera e marca os pontos característicos em seu rosto (cantos da boca, olhos, nariz, etc...);
  2. Estes pontos são salvos em um arquivo;
  3. A fase de reconhecimento consiste em aplicar um filtro de gabor para reconhecer a face.

Para finalizar, gostaria de parabenizar a iniciativa, pois projetos desta natureza são raros em software livre.

Morfologia matemática no OpenCV

Eu já fiz um post sobre morfologia matemática, em que abordava aspectos teóricos desta técnica.
Neste post, gostaria de apresentar as funções do OpenCV que implementam a questão do elemento estruturante e as operações morfológicas de erosão e dilatação.

Primeiramente a função que cria o elemento estruturante:
IplConvKernel* cvCreateStructuringElementEx( int cols,
int rows,
int anchor_x,
int anchor_y,
int shape,
int* values=NULL );

cols: Número de colunas no elemento estruturante

rows: Número de linhas no elemento estruturante

anchor_x: Offset horizontal relativo do ponto de âncora, normalmente igual a 0 (zero)

anchor_y: Offset vertical relativo do ponto de âncora, normalmente igual a 0 (zero)

shape: Tipo de elemento estruturante, possíveis valores:
  • CV_SHAPE_RECT, elemento retangular;
  • CV_SHAPE_CROSS, elemento em disco;
  • CV_SHAPE_ELLIPSE, elemento eliptico;
  • CV_SHAPE_CUSTOM, elemento definido pelo usuário. Neste caso, o parâmetro values especifica a máscara, delimitando a vizinhança do pixel considerado.
values: Ponteiro para um elemento estruturante definido pelo usuário, este parâmetro é usado apenas quando shape =CV_SHAPE_CUSTOM.

Função de erosão
void cvErode( const CvArr* src, CvArr* dst,
IplConvKernel* element=NULL, int iterations=1 );
Função de dilatação
void cvDilate( const CvArr* src, CvArr* dst,
IplConvKernel* element=NULL, int iterations=1 );
src: Imagem original;
dst: Imagem de destino;
element: Elemento estruturante usado. Se for NULL, é definido um retângulo de 3x3;
iterations: Número vezes que a operação é aplicada.
As interfaces para desenvolvimento em Python é a mesma, com a vantagem que todas as funções são implementadas em C, o que torna a execussão da função extremamente rápida.

Fonte das informações: http://www.comp.leeds.ac.uk/vision/opencv/opencvref_cv.html

segunda-feira, 12 de maio de 2008

Software Livre em alta

Nos últimos meses tenho tomado conhecimento de inúmeros casos de sucesso no que diz respeito a adoção de software livre nas empresas.

Hoje tive mais uma notícia e achei por bem compartilhar no blog. O InfoBrasil, que é um evento que acontece periodicamente em Fortaleza-Ce, terá o software livre como pauta.

Adiantando dados que li na notícia, esta atenção ao software livre se deu, em parte, por uma pesquisa do ISF (Instituto Sem Fronteiras) em que foi constatado que mais de 73% das maiores empresas do país usam soluções livres.

Adiantando agora a minha opinião, percebo que as coisas estão começando a tomar o rumo correto, em que o modelo de negócios torna-se ao mesmo tempo competitivo e colaborativo, mas o que ainda vejo são as grandes empresas tendo o software livre como um produto, o que ao meu ver não está de todo correto, pois eu acredito que todo aplicativo de computador consiste em uma prestação de serviço.

Para finalizar o post, segue o link para a notícia que recebi aqui.

Não irei me ater muito à minha concepção de que programas de computador são um serviço prestado, diferente da crença geral em que o software é um produto, pois sei que ninguém lê posts muito longos, mas pretendo passar esta idéia aos poucos.

sábado, 10 de maio de 2008

Grupo de Desenvolvimento de Jogos - GDJ

No FLISOL, aconteceu o Encontro de Desenvolvedores de Jogos do CE, o qual eu participei, e foi montado um grupo de discussão.

A idéia é aproximar os desenvolvedores de jogos do estado e permitir trocas de experiências.

O coordenador do grupo é o David Ferreira, que tem uma certa vivência em desenvolvimento de jogos.

Durante o encontro, a conversa teve caráter informativo e para apresentação dos membros, como citado aqui.

sexta-feira, 9 de maio de 2008

Qt Designer

Ontem comecei a estudar a criação de GUI's usando Qt e descobri uma ferramenta muito interessante: Qt Designer.Tela do Qt Designer com uma simples interface em desenvolvimento.

Além de elaborar o layout, o Qt Designer também é capaz de associar eventos a ações, por exemplo clicar em um botão e fechar a aplicação ou atualizar uma imagem (ou qualquer outro componente da tela).

Após fazer toda a interface, é gerado um arquivo nome_do_arquivo.ui e este pode ser convertido para um arquivo em python com o seguinte comando: pyuic nome_do_arquivo.ui > nome_do_arquivo.py e assim obter uma classe com todos os elementos e conexões entre os componentes para a aplicação.

Obs.: o Qt Designer pode ser baixado via apt-get ou qualquer sistema de gerenciamento de pacotes (synaptic, adept, yast, yum, etc.......)

Meu próximo passo é fazer a imagem da webcam aparecer em uma QImage ou QFrame ao clicar de um botão, ontem mesmo descobri que Qt tem algumas interfaces com elementos da biblioteca PIL (Python Imaging Library).

sexta-feira, 2 de maio de 2008

Mostre-me o software que usas...

Hoje vi um site que achei interessante, o ShowMeDo.

Neste site encontrei vídeos demonstrativos (tutoriais) de várias coisas, dentre elas: programação, blender, ferramentas de office e linux.

Vi apenas vídeos do blender, mas estes pareceram interessantes.

Acho que este site é uma boa forma de apresentar softwares livres àqueles que ainda não tiveram este prazer.

Migração do SIRENE

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.

Resultado do FLISOL-CE 2008

Gostei de participar do FLISOL, apesar da sala sem ar-condicionado e eu ter que ligar os cabos do data-show no notebook.
Pelo que percebi, minha palestra foi uma das que teve maior público, acredito que apareceram mais de 10 pessoas.

Os slides da palestra serão disponibilizados em breve, eles estão em formado pdf e odp.

Depois da minha palestra, fui assistir ao encontro dos desenvolvedores de jogos do Ceará e lá tive a oportunidade de lembrar de jogos antigos e fazer contatos com profissionais da área.
Momento nostalgia:
Alex Kidd (na memória do Master System);
Sonic (mega drive);
Jogos do atari;
Pac-man;
Pause no console, lembra que você tinha que se levantar para ir ao aparelho apertar o pause?

Para os que jogaram Alex Kidd, segue uma relíquia que achei no ano passado: