Origami e pet para instrumentos eletrônicos

De Pontão Nós Digitais

Estamos continuamente montando e aprimorando um instrumento e instalacao artistica chamado AirHackTable. Origamis flutuantes de diferentes formas e cores controlam som atraves de uma ou mais webcams. Esta pagina se dedica ao processo de desenvolvimento da AirHackTable. Veja a pagina AirHackTable para informacoes menos experimentais.

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


Color Calibration target
Color calibration target providing a representative sample of the color space.
Reliable Color Detection Results
Reliable Color Detection results from classifying each pixel of the color calibration target. The beige/brown color represents pixels for which the algorithm claims no 100% reliable detection could be made. From this it is possible to see which colors are better for constructing our origamis.

Color Detection Pictures

Random pictures of people: http://www.facebook.com/media/set/?set=a.814733874631.2244454.1011765&type=1&l=86f5116607