Origami e pet para instrumentos eletrônicos: mudanças entre as edições

De Pontão Nós Digitais
Ir para navegaçãoIr para pesquisar
Linha 64: Linha 64:
Em todos esses casos, porem, o algoritmo acusa que o resultado nao e' confiavel,
Em todos esses casos, porem, o algoritmo acusa que o resultado nao e' confiavel,
permitindo que o sistema tenha um "plano B" (tipo usar a cor do frame anterior).
permitindo que o sistema tenha um "plano B" (tipo usar a cor do frame anterior).
[[Imagem:Test-img-combined.png]]
[[Imagem:Test-img.png]]





Edição das 03h03min de 22 de outubro de 2011

Estamos montando um instrumento e instalacao artistica chamado AirHackTable. Origamis flutuantes de diferentes formas e cores controlam som atraves de uma ou mais webcams.

No Lab Macambira este projeto esta sendo desenvolvido pelos seguintes GT's: GT-Video e GT-Audio.


Parceria com Francisco Simões e Fábio Simões.

Ideias Iniciais

http://pontaopad.me/origami-sensores

Iteracoes da Mesa em Si

A propria mesa e' um origami!

Interface Arhacktable

Tarefas

Ver tambem milestone airhacktable no trac:

https://sourceforge.net/apps/trac/labmacambira/report/6

Hacking

Codigo de um dos nossos prototipos de processamento para a airhacktable no Pd:

git clone git@github.com:wakku/Hacktable.git

obs: voce deve primeiro colocar sua shave publica ssh no Account Settings do github

Ou read only:

git://github.com/wakku/Hacktable.git

Color Detection

Dataset

Fizemos um dataset de cores baseada em papel origami e outros objetos coloridos, usando-se webcams baratas. Veja: http://ubuntuone.com/12ppyvTLs8WIyggYkhdh3L

Algorithms

Para o atual algoritmo de deteccao de cores a ser usado na hacktable, veja no subdiretorio

scilab/

da hacktable e os scripts

color_classify*.sci

do SIP.

Dada uma cor em RGB, o algoritmo reporta as cores vermelho, verde, azul, amarelo, branco e preto em dois niveis principais de confiabilidade: confiavel e nao-confiavel. Em todos os nossos testes o restultado confiavel e' correto pelo menos 99,99% das vezes. O nivel nao-confiavel e' subdividido em 'good guess' e 'uncertain' e nesse caso o algoritmo geralmente fornece um "chute" e um segundo chute. Na maioria das vezes ele acerta, retornando "red" + "black" para "vermelho escuro" e afins.

O desafio de um algoritmo de deteccao esta' no fato de cores que nao se encaixam perfeitamente em uma das 6 classes acima, tais como: beiges, cinzas, marrons escuros, cores suaves tipo de bebe, etc. Outra dificuldade, ainda mais crucial, e' o fato da webcam realizar um forte ajuste de white balance/color balance dependendo do conteudo da imagem, o que causa extrema mudanca na cor capturada em relacao aos objetos do mundo real. O desafio e', justamente, este - de capturar a cor verdadeira de um objeto a partir de R, G, B, e ser capaz de dizer quando esta estimativa e' confiavel, quando nao e', ao mesmo tempo nao sendo muito seletivo com a cor para poder permitir objetos diferentes sob diferentes tipos de iluminacao.

Performance

Nos temos varios benchmarks para avaliar a performance do algoritmo de forma automatica, permitindo evoluir o algoritmo sem adicionar novos bugs. A cada alteracao no algoritmo, rodam-se os testes:

  1. o script
    test_color_classify.sce
    do SIP para testar as cores principais e alguns outros casos dificeis
  2. o script
    classify_run.sce
    do repositorio da hacktable para testar na base de dados acima, produzindo uma taxa de acerto para estimativas que ele acusa seren 100% confiaveis, bem como para estimativas menos confiaveis.
  3. nos rodamos o algoritmo em cada pixel de uma imagem de calibracao de cores. essas imagens amostram um amplo espectro de cores, permitindo avaliar a performance qualitativa do algoritmo de uma unica vez. nos usamos este metodo com frequencia para fazer ajuste fino ao algoritmo de classificacao. Veja o final do script test_color_classify.sce para um exemplo de como fazer isto.
  4. finalmente, implementamos o algoritmo em C e executamos em diferentes imagens e video no Pd e no Scilab.

Qualquer mudanca a este algoritmo de deteccao de cores devera' passar por esta base, reportando a qualidade da deteccao obtida.

O atual algoritmo acerta 100%, com cobertura 100% confiavel de mais de 60% dos casos. Ha um conjunto de imagens da base para o qual o algoritmo da resultados razoaveis de acordo com os valores RGB, porem incopativeis com a percepcao humana. Em todos esses casos, porem, o algoritmo acusa que o resultado nao e' confiavel, permitindo que o sistema tenha um "plano B" (tipo usar a cor do frame anterior).

Test-img-combined.png Test-img.png