Skip navigation

hoje aprofundámos algumas noções em torno da análise de vídeo a partir de câmaras. na segunda parte, introduzimos o sistema esférico de coordenadas ao criar linhas e uma esfera, cujos vértices oscilam de acordo com uma análise fft.

 

1. análise de video

na introdução à análise de vídeo analisámos os programas que vêem com os exemplos do processing, os sketches background subtraction e frame differencing

nestes sketches fomos observar alguns aspectos essenciais: 

– como é que armazenamos uma única frame de vídeo na memória do computador, através de uma array de ints unidimensional, e como passamos de uma localização xy de pixels para a localização unidimensional da array que armazena os pixeis ( a fórmula pixelloc = x + y*video.width); 

– como armazenamos a informação rgba do pixel numa int, através de técnicas de bit shifting e masking (num único int de 32bit, armazenamos 4*8bits, 8bits por canal de cor, daí o intervalo de valores 0 a 255, porque cada cor rgb do pixel tem 8 bits de precisão, logo, 2^8=256, 0 a 255 valores); 

– como comparamos os pixeis da frame actual com o background, e como através desta comparação retiramos um valor, que corresponde à soma do número de pixeis distintos do background. 

estes passos correspondem ao início da análise de formas que se destacam dos pixeis de background, um valor que se associa à presença na imagem, e que poderá ser um indicador da quantidade de presença frente a uma cena, um pouco como o nível de intensidade sonora. se houver movimento distinto do fundo, o número de pixeis brancos sobe, a a sua contagem devolve a actividade ou presença. passos seguintes incluiem efectuar uma binarização da imagem, torná-la apenas com pixeis 0 ou 255, a partir de um algoritmo que analisa a quantidade da diferença rgb de cada pixel, e se essa diferença for superior a um valor, então marca-se o pixel a branco, senão, marcamos o pixel a preto. a análise da caixa onde esses pixeis brancos se inserem, ie, dos pontos na imagem que correspondem ao mínimo e máximo de x e y onde os pixeis brancos estão, e já temos informação suficiente para calcular o seu centróide, que corresponde ao ponto médio das coordenadas adquiridas. isto é uma direcção na análise de vídeo, há várias outras direcções que  incluem face tracking, delimitação da silhueta com um polígono, hands tracking, optical flow, haar cascades, brightness tracking, …..

o primeiro sketch de background subtraction compara a imagem que chega contra uma frame estática, ou que dá a presença. o segundo sketch de frame differencing é igual ao método de background subtraction, com um acrescento, no fim de analisar as diferenças entre os pixeis, copia logo o pixel actual para background da imagem, e temos como resultado uma imagem que apenas devolve o que se move na imagem, num ficamos com uma quantidade de presença, e no outro sketch uma noção do movimento.

bg-002944

framedif-001337

framedif-0015781

 

nos sketches seguintes criamos um programa que desenha à base do centroide principal da imagem.

 uma única coordenada a desenhar ellipses que se acumulam.

centroidvideodraw-000547

centroidvideodraw-000703

a seguir, essa única coordenada é ponto central para outras formas que circulam em torno dela.

centroidcircsvideodraw-0002151

centroidcircsvideodraw-001035

a seguir, este centro serve como centro de um sistema de partículas, copiando as classes que introduzimos há algumas sessões para dentro deste sketch,  as coordenadas do centróide análise de video servem como centro do sistema de partículas que está apenas activos quando e onde há movimento.

sysvideodraw-000514

e depois cada partícula desenha uma cópia da imagem da câmara, em vez de desenhar uma linha, e foi-vos proposto como exercío colocar o tamanho da imagem variável consoante a energia, e a rodar a imagem.

videosyspartdraw-000307

videosyspartdraw-000561

 

2. sistema esférico

na segunda parte da sessão de hoje, abordámos o sistema esférico. é igual ao polar, que já vimos na segunda sessão, só que agora introduzimos a terceira dimensão z, e passamos as coordenadas cartesianas (x,y,z) para coordenadas esféricas (raio, theta, phi). em vez de definirmos pontos como xyz, podemos defini-los como raio, theta, phi, e assim já conseguimos desenhar esferas interactivas ao som. primeiro vimos linhas a sairem para posições aleatórias nos eixos cartesianos, e como isso gera um volume quase esférico.

linhas3dfft-000188

depois aplicamos as formulas de conversão coordenadas cartesianas->esféricas, 

    x = raio*cos(theta)*sin(phi) ;

    y = raio*sin(theta)*sin(phi) ;

    z = raio*cos(phi) ;

e inscrevemos cada vértice na superficie de uma esfera, onde o raio de cada vértice está associado a uma banda da análise fft, e isso gera imagens como estas onde cada frequência atribui um raio cada vertíce, gerando uma superficie esférica formada pelo som. são conceitos avançados 3d que vos poderão ajudar. cada vértice é distribuido num ponto da superficie esférica mapeando valores xy para valores de 0 a 2π que correspondem ao theta e ao phi. 

esfera3dfftsmooth-000517

esfera3dfftsmooth-000280

 

esfera3dfft-000170

Anúncios

One Trackback/Pingback

  1. By sessão 17 « O Som do Pensamento on 27 Maio 2009 at 11:55 am

    […] alguns exemplos mais elaborados de video, como slitscan, delays, texturas em 3d; início do tracking de vídeo: detecção de presença, movimento, background removal, detecção de posição de centróides de blobs, frame differencing, detecção de outras features como caras, mãos, … (sessão 7, 8) […]

Deixe uma Resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão / Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão / Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão / Alterar )

Google+ photo

Está a comentar usando a sua conta Google+ Terminar Sessão / Alterar )

Connecting to %s

%d bloggers like this: