terça-feira, 25 de novembro de 2008

Dinheiro ao Lixo no RN

Edital de prestação de contas do Cefet-RN aqui.

Um breve resumo do edital aqui.

Só para constar:
  • 800 licenças - Microsoft Office;
  • 1.000 liceças - Antivírus para Windows.
Se cada licença do M$ OFFice for R$ 125,00 temos 800 * R$ 125,00 = R$ 100.000,00.

Se cada licença de antivírus for R$ 100,00 temos 1000 * R$ 100,00 = R$ 100.000,00.

Os valores que coloquei são apenas para imaginarmos quanto dinheiro público, que deveria ser revertido em benefícios para a população, é mandado para fora do país de uma forma tão estúpida.

Se fossem compradas CPUs com este dinheiro, supondo computadores de R$ 2.000,00 (muito razoáveis por sinal) era possível comprar 100 computadores.

Só com este dinheiro, seria possível construir um bloco para qualquer fim, como didático, laboratórios, administrativo, etc... (tantas vezes vi na UFC que não construiram e/ou equiparam blocos, laboratórios, escritórios, gabinetes, etc... porque acabaram os recursos financeiros).

Mas no nosso país é assim mesmo, mais vale usar o que vem de fora do que usar algo nacional, mesmo sendo de qualidade superior e custo inferior.

quinta-feira, 20 de novembro de 2008

Empresas na Europa, Ásia e América do Norte

Vi aqui que a crise mundial está favorecendo o software livre, como muitos já sabem, pois todas as empresas estão buscando cortar gastos desnecessários (e o que seria mais inútil que pagar pelas coisas da M$??).

Enfim, o que eu gostaria de levantar é a questão: e depois da crise? Pois com a crise atual, todos estão buscando cortar gastos (aparece com o Brasil na época do apagão em 2001 ou 2002) e depois da crise, quem vai aceitar gastar mais, apesar do dinheiro voltar a entrar normalmente? (Assim como aconteceu na época do apagão, pois muitos passaram a criar novos hábitos.)

Eu acho que os efeitos da crise no sentido de colaborar com o software livre só vão aumentar, mesmo quando a crise passar.

Eu já vi em alguns lugares, tipo a Paraíba, iniciativas do tipo: migrar todos os M$ OFFice para Open Office (ou similares) nas instituições públicas (acho que eram só as federais, mas depois as outras aprendem também).

Provavelmente, a crise ainda vai durar mais um tempinho e as suas consequências vão ficar na sociedade mundial por muito tempo e além disso, muito será feito para evitar novas crises.

Quem sabe novas crises não virão por causa da pirataria de software?

sábado, 15 de novembro de 2008

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

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 > 95
G > 40
B > 20
max {R, G, B} − min {R, G, B} > 15
|R − G| > 15
R>G
R>B

Resultado da segmentação:



Espaço de cores YCbCr:

Um pixel pertence a pele se satisfizer as condições abaixo:

77 ≤ Cb ≤ 127
133 ≤ Cr ≤ 173

Resultado 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, 68

Resultado da segmentação:


Antes que alguém saia por aí dizendo que um método é melhor que outro, eu digo que depende da imagem a ser segmentada.

Os algoritmos apresentados são muito dependentes da iluminação do ambiente.

Para fechar, seguem os códigos do Scilab para segmentar imagens conforme apresentado.

/////////////////////////////////////////////////////////////////////////////////////////
// Algoritmos de segmentacao de pele em imagens baseados em limiarizacao
// Universidade Federal do Ceara
// Eng. Alex
//*//*//*//*//*//*//*//*//*//*//*//*//*//*//*//*//*//*//*//*//*//*//

//// parametros das imagens

Y = 2;
Cb = 1;
Cr = 3;

H = 1;
S = 2;
V = 3;

nL = 480; // numero de linhas da imagem
nC = 640; // numero de colunas da imagem


img = im2double(imread("imagem.jpg"));

////////////////////////////////////////
//parametros em RGB //
//////////////////////////////////////

img_s = zeros(nL, nC);

for l = 1:nL,
for c = 1:nC,
p = img(l,c,:);

ps = (p(1)>95/255).*(p(2)>40/255).*(p(3)>20/255).*(max(p) - min(p)>15/255).*(abs(p(1) - p(2))>15/255).*(p(1)==max(p));
img_s(l,c) = ps;
end;
end;

imwrite(img_s, "rgb-imagem.jpg");

///////////////////////////////////
//limiares em CbCr //
/////////////////////////////////

imgYCbCr = rgb2ycbcr(img);

img_s = double(((imgYCbCr(:,:,Cb)>76/255) .* (imgYCbCr(:,:,Cb)<128/255)).*((imgycbcr(:,:,cr)>132/255) .* (imgYCbCr(:,:,Cr)<174/255)));

imwrite(img_s, "cbcr-imagem.jpg");

///////////////////////////////
//limiares em HS //
/////////////////////////////

imgHSV = rgb2hsv(img);

img_s = double((imgHSV(:,:,H)<50/360).*((imghsv(:,:,s)>0.23) .* (imgHSV(:,:,S)<0.68)));

imwrite(img_s, "hs-imagem.jpg");

terça-feira, 11 de novembro de 2008

Chegando na reta final da qualificação

Aos leitores do MultiSign que percebem minha ausência nos posts, informo que a previsão é que na próxima semana eu volte a atualizar o blog com mais frequência.

Se bem que poucas pessoas interagem com comentários e a enquete.

Vejo no mapa um monte de pontos enormes sobre o Brasil (o que indica centenas de leitores), mas poucos são os que comentam (não tenho nenhum post nem com 5 comentários) e eu vejo blogs por aí que todos os posts têm dezenas de comentários.

Mas enfim, não deixarei de fazer os posts porque meus leitores não comentam, porém se comentassem, ajudaria bastante.

E só para adiantar, os resultados que estou tendo nos testes preliminares são motivadores.

Esperem e verão.

sábado, 8 de novembro de 2008

Fuzzy Logic

The fuzzy logic is a generalization of classic sets theory.

In the classic sets theory, a element is in a set or not.

For example, the fruit's universe, the orange is in set of citric fruits, and the apple is not in that set.

But, if we analyze the people's universe and make 2 sets: rich people and poor people. If anyone has more than US$ 500,000.00, that's rich, if anyone has less than US$ 500,000.00, that's poor.

Thus, someone has US$10,000.00; US$30,000.00; US$50,000.00; US$70,000.00; US$100,000.00; US$120,000.00; US$180,000.00; US$210,000.00; US$220,000.00; US$300,000.00; US$450,000.00; US$480,000.00; US$492,000.00; US$497,000.00; US$499,800.00; US$499,930.00; US$499,981.00; US$499,996.00; US$499,999.20; US$499,999.98; that's a poor people. And other someone has US$1,000,000.00; US$980,000.00; US$840,000.00; US$770,000.00; US$680,000.00; US$610,000.00; US$590,000.00; US$540,000.00; US$510,000.00; US$508,000.00; US$502,000.00; US$501,000.00; US$500,100.00; US$500,010.00; US$500,001.00; US$500,000.10; that's a rich people.

But, let's think: if anyone has US$499,999.97 and other one has US$500,000.01 they have the same money, because US$0.04 is almost no money, but they aren't in same set.

The fuzzy logic add the pertinence concept for each element. So, all elements are in all sets, but each element has a specific pertinence in each set.

We can use fuzzy logic in any situation, solving it as a linguistic problem. If you need classify the cars in big or small, is possible do 2 fuzzy sets, if you need classify the cars in big, small and median, is possible do 3 fuzzy sets, and successively.

I did the following video of a application that I developed for A.I. class.



Any question, you can comment the post.

quinta-feira, 6 de novembro de 2008

Lógica Fuzzy

Lógica Fuzzy é uma generalização da teoria dos conjuntos clássica.

Na teoria dos conjuntos clássica, se eu tiver um determinado elemento, este elemento pode pertencer ou não a um determinado conjunto.

Por exemplo, tomando o universo das frutas, a tangerina pertence ao conjunto das frutas cítricas. A maçã não pertence ao conjunto das frutas cítricas.

Mas se tomarmos o universo das pessoas, vamos classificar as pessoas em ricas e pobres. Como critério vamos tomar o patrimônio de cada pessoa e determinar que pessoas com patrimônio acima de R$500.000,00 sejam ricas e abaixo sejam pobres, então pessoas com patrimônios de R$10.000,00; R$30.000,00; R$50.000,00; R$70.000,00; R$100.000,00; R$120.000,00; R$180.000,00; R$210.000,00; R$220.000,00; R$300.000,00; R$450.000,00; R$480.000,00; R$492.000,00; R$497.000,00; R$499.800,00; R$499.930,00; R$499.981,00; R$499.996,00; R$499.999,20; R$499.999,98 seriam pobres e pessoas com patrimônios de R$1.000.000,00; R$980.000,00; R$840.000,00; R$770.000,00; R$680.000,00; R$610.000,00; R$590.000,00; R$540.000,00; R$510.000,00; R$508.000,00; R$502.000,00; R$501.000,00; R$500.100,00; R$500.010,00; R$500.001,00; R$500.000,10 seriam ricas. Mas qual a diferença de padrimônio entre R$500.000,02 e R$499.999,97? Isto não vale nem um pirulito que vendem nas paradas de ônibus, algumas vezes nem dão o troco menor que R$0,10.

Então, para resolver o problema, a lógica fuzzy incorpora o conceito de pertinência. De modo que todos os elementos pertencem a todos os conjuntos, porém pertencem mais ou menos a um determinado conjunto.

Uma aplicação interessante da lógica fuzzy e que é presente em nosso cotidiano são os aparelhos de ar-condicionado, que têm algoritmos de lógica fuzzy embarcados para o controle da temperatura, assim evitando que a chave fique disparando toda hora, e considerando que o disparo da chave é o que gasta mais energia no aparelho de ar-condicionado, isto implica em uma economia muito considerável, por isto também que estes são os aparelhos com selo de economia de energia.

Segue um vídeo que mostra uma aplicação que fiz usando lógica fuzzy para controlar um foguete.

segunda-feira, 3 de novembro de 2008

Crianças com futuro

Olhem aqui e pensem.

Espero que tenham olhado e, principalmente, pensado.

Se crianças de 8 anos de idade têm consiência que usar Linux é melhor sem, provavelmente, nem saber a respeito de filosofia open-source e tudo o que implica o software livre.

As crianças apenas experimentaram ambos e disseram: "prefiro este!", lógico que eles pensaram em qual dos sistemas tinha mais aplicativos interessantes (tipo jogos), qual era mais fácil de usar (interface mais amigável), e demais coisas do tipo.

Eu espero que nossos adultos aprendam com estas crianças e que as crianças tornem-se adultos coerentes.

domingo, 2 de novembro de 2008

Vowels in Sign Language

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.avi

Now, 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

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.avi

Atualmente, 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'