Dissertao/Relatrio de Projecto realizada(o) no mbito do Mestrado Integrado em Engenharia Electrotcnica e de Computadores Major Telecomunicaes
Orientador: Prof. Dr. Jaime S. Cardoso Co-orientador: Prof. Dr. Carlos Guedes Fevereiro de 2009
ii
Andr Baltazar, 2009
iii
Resumo
O movimento corporal um meio importante de percepo, expresso e interaco no mundo. Se o capturarmos numa sequncia de vdeo e extrairmos as suas caractersticas, podemos encontrar o ritmo desse movimento. Ao usar esse ritmo para gerar sons desencadeia-se um tipo de interactividade entre o Homem e a Mquina e novas formas de arte so criadas. O estado da arte actual continua longe de promover uma soluo satisfatria para a interpretao corporal aplicada ao contexto musical. Para ajudar a preencher esta lacuna, foi criado o RitMoVdeo. Este projecto tem como principais objectivos investigar e desenvolver uma aplicao, a funcionar em tempo real, capaz de estimar e executar ritmo musical pela anlise de movimentos humanos captados em vdeo. Foram tambm analisados e desenvolvidos algoritmos de segmentao e seguimento de objectos, assim como metodologias capazes de estimar ritmo atravs do seguimento efectuado. Os principais procedimentos foram comparados, os resultados obtidos e as concluses retiradas. Por fim os algoritmos mais adequados foram integrados sob uma plataforma comum e foi criada a aplicao, cumprindo assim os objectivos definidos. Este relatrio expe todos os passos tomados no decorrer deste projecto, as qualidades e limitaes actuais do sistema, assim como o trabalho futuro que se considera relevante.
iv
v
Abstract
Bodily movement is an important mean to perceive, express and interact with the world. By capturing it in a video sequence and extracting its characteristics, one can find the rhythm of that movement. By using that rhythm to generate sounds one triggers one type of interactivity between Men and Machine and new art forms are created. The current state of the art is still far from promoting a satisfying solution for the corporal interpretation applied to the musical context. To help filling this gap, application RitMoVdeo was created. The main objectives of this project is to investigate and develop an application that works in real time and is able to estimate and execute musical rhythm by the analysis of human movements captured in video. Tracking and developed segmentation algorithms were investigated, as well as methodologies that are able to estimate the rhythm through the performed tracking. The main procedures were compared, the results obtained and the conclusions drawn. In the end, the best algorithms were integrated under a common platform and the application was created fulfilling all the defined objectives. This report describes all the steps taken in de course of this project, the qualities and limitations of the system, as well as any future work considered relevant.
vi
vii
Agradecimentos
Gostaria de agradecer principalmente aos meus orientadores Prof. Doutor Carlos Guedes e Prof. Doutor Jaime S. Cardoso, pela pacincia e disponibilidade demonstrada no decorrer do desenvolvimento deste projecto. Agradeo tambm aos restantes investigadores do INESC Porto, com quem a convivncia e discusso de vrias ideias ao longo destes trs meses permitiu a realizao de um projecto mais consistente. A nvel mais pessoal, aqui deixo o meu agradecimento aos meus amigos de sempre, e Ana que me faz sorrir todos os dias. Por fim, mas no menos importante, quero aproveitar para agradecer minha famlia pelo amor e apoio demonstrado em todos os momentos da minha vida.
viii
ix
ndice de Contedos
RESUMO............................................................................................ III ABSTRACT......................................................................................... V AGRADECIMENTOS.............................................................................. VII NDICE DE CONTEDOS .........................................................................IX LISTA DE FIGURAS ............................................................................. XIII LISTA DE TABELAS.............................................................................. XV ABREVIATURAS................................................................................ XVII CAPTULO 1........................................................................................1 INTRODUO ......................................................................................1 1.1 APRESENTAO DO INSTITUTO DE ENGENHARIA DE SISTEMAS E COMPUTADORES DO PORTO (INESC PORTO) ............................................................................... 1 A Unidade de Telecomunicaes e Multimdia.........................................2 1.2 MOTIVAO ............................................................................... 3 1.4 OBJECTIVOS .............................................................................. 5 1.5 ORGANIZAO E TEMAS ABORDADOS NO PRESENTE RELATRIO........................... 5 1.6 CONTRIBUIES RELEVANTES ............................................................. 6 CAPTULO 2........................................................................................9 CARACTERIZAO DO PROBLEMA .............................................................9 2.1 ESTADO DA ARTE.........................................................................10 2.1.1 Inside-In ............................................................................. 10 Exemplo: Inside-In........................................................................................... 11 2.1.2 Inside-Out ........................................................................... 11 Exemplos: Inside-Out ....................................................................................... 11 2.1.3 Outside In .......................................................................... 14 Exemplos: Outside-In ....................................................................................... 14 1) Sistema desenvolvido para armazenamento de dados digitais ................................ 15 2) Sistema desenvolvido para fins teraputicos..................................................... 16 3) Sistemas desenvolvidos com fins artsticos ....................................................... 17 2.2 PLATAFORMAS DE PROGRAMAO........................................................21 2.2.1 Max/MSP/Jitter .................................................................... 21
x 2.2.2 Pure Data............................................................................ 22 2.2.3 Eyesweb ............................................................................. 22 2.2.4 Isadora ............................................................................... 23 2.2.5 PROCESSING ...........................................................................23 2.3 RESUMO E ANLISE CRTICA..............................................................24 CAPTULO 3...................................................................................... 25 COMPARAO EXPERIMENTAL DE ALGORITMOS DE SEGMENTAO E TRACKING.. 25 3.1 SEGMENTAO DE IMAGENS ..............................................................25 3.1.1 Running average (RAvg) ........................................................... 26 3.1.2 Mixture of Gaussians (MoG) ...................................................... 27 3.1.3 Kernel Density Estimation (KDE)................................................. 28 3.1.4 Principal Features (PF)............................................................ 28 3.2 TESTE COMPARATIVO DOS ALGORITMOS DE SEGMENTAO ..............................28 3.2.1 Resultados........................................................................... 29 3.3 TRACKING DE OBJECTOS .................................................................31 3.3.1 Representao dos objectos...................................................... 32 Representaes baseadas na forma: ..................................................................... 32 Representaes baseadas na aparncia:................................................................. 33 3.3.2 Seleco de caractersticas para o tracking ................................... 35 3.4 ALGORITMO DE TRACKING................................................................36 3.4.1 Resultados........................................................................... 39 3.5 RESUMO E ANLISE CRTICA..............................................................41 CAPTULO 4...................................................................................... 43 ESTIMAO DE RITMO.......................................................................... 43 4.1 RITMO E O CORPO HUMANO..............................................................43 4.2 CARACTERSTICAS QUE PERMITEM ESTIMAR O RITMO.....................................44 4.2.1 Resultados........................................................................ 47 4.2.2 Uma abordagem alternativa ao clculo do ritmo............................. 48 4.3 ALGORITMOS DE ESTIMAO DE RITMO..................................................50 4.3.1 Algoritmo FFT ...................................................................... 51 4.3.2 Algoritmo de Goertzel ............................................................ 52 4.3.3 Implementao e teste dos algoritmos de estimao de ritmo ............ 53 4.3.4 Resultados........................................................................... 54 4.4 RESUMO E ANLISE CRTICA..............................................................55 CAPTULO 5...................................................................................... 57 INTEGRAO..................................................................................... 57 5.1 PLATAFORMA DE DESENVOLVIMENTO ....................................................57 5.2 ARQUITECTURA DO SISTEMA .............................................................57 5.2.1 Segmentao background/foreground.......................................... 58 5.2.2 Tracking ............................................................................. 59 5.2.3 Extraco e anlise de caractersticas......................................... 59
xi 1) Clculo da rea de cada componente................................................................. 59 2) Clculo centro de massa de cada componente ...................................................... 59 3) Anlise das caractersticas.............................................................................. 61 5.2.4 Estimao de ritmo ................................................................ 61 5.2.5 Execuo Musical................................................................... 61 5.3 DIFICULDADES E LIMITAES.............................................................62 CAPTULO 6...................................................................................... 63 CONCLUSES E PERSPECTIVAS DE TRABALHO FUTURO................................. 63 6.1 TRABALHO FUTURO......................................................................63 REFERNCIAS .................................................................................... 65
xii
xiii
Lista de Figuras
Figura 1 - A imagem original esquerda seguida da cadeia (quatro blocos) de anlise. .................................................................................................4 Figura 2 - Luva Measurand (de [2]). .......................................................... 11 Figura 3 - Prottipo dos transmissores RF com acelermetros embutidos (de [3]). .. 12 Figura 4 O hardware de DanSense e a sua aplicao no corpo humano (de [4]). ... 13 Figura 5 Viso geral da arquitectura do sistema MCM (de [5]). ........................ 14 Figura 6 Fluxograma de funcionamento do sistema de Nakazawa (de [7])........... 15 Figura 7 A mo captada pela cmara (esquerda), a imagem segmentada (centro) e a orientao e centro do objecto calculado (direita) (de [8]). .................. 16 Figura 8 - Viso conceptual do Music Maker (de [8]). ..................................... 17 Figura 9 - Extraco das sub-regies da silhueta e do centro de massa a partir das coordenadas 2D (de [10]). ............................................................... 18 Figura 10 - O m.bandit retorna a frequncia fundamental do sinal analisado (de [11]). ............................................................................................... 19 Figura 11 As vrias componentes do bailarino e o movimento efectuado ao longo de vrias divises mtricas do tempo musical (de [13]). ............................... 21 Figura 12 - Grafo de interseco para duas segmentaes (de [19]). Os pesos correspondem ao nmero de pixels na interseco.................................. 29 Figura 13 Na fila de cima as sequncias originais CO (Corredor), EX (exterior) e AE (Auto-estrada). Em baixo a respectiva segmentao efectuada pelo algoritmo MoG (de [19]). ............................................................................. 30 Figura 14 - Representaes do objecto. (a) Centroide, (b) Pontos mltiplos, (c) rectngulo, (d) elipse, (e) mltiplas partes, (f) esqueleto, (g) contorno, (h) pontos de controlo no contorno, (i) silhueta (de [25]). ............................. 33 Figura 15 Fluxograma de funcionamento do algoritmo de separao de componentes............................................................................... 38 Figura 16 a) Imagem de entrada para o algoritmo de tracking; b) Resultado da aplicao do FD e da separao de componentes; c) Colorao dos diferentes componentes............................................................................... 39
xiv Figura 17 Resultados do algoritmo (a azul) e do ground-truth (a rosa).............. 40 Figura 18 Sequncia de teste esquerda e extraco das coordenadas do centro de massa e da rea do objecto direita. ................................................. 45 Figura 19 Grfico da variao das coordenadas em x e em y, respectivamente. Frequncia de 1Hz. ....................................................................... 45 Figura 20 Grfico da equao da mdia (a) e da equao das normas (b). .......... 46 Figura 21 Grfico da variao da frequncia calculada com recurso equao da mdia, frequncia fundamental igual a 0,9804 1Hz. ............................ 47 Figura 22 Grfico da variao da frequncia calculada com recurso equao das normas, frequncia fundamental = 0,9804Hz 1Hz. ................................. 48 Figura 23 Exemplo da evoluo temporal do valor dum determinado pixel numa dada posio (x,y)......................................................................... 49 Figura 24 Grfico da evoluo temporal das coordenadas do objecto em anlise. . 50 Figura 25 Arquitectura do sistema RitMoVdeo. .......................................... 58 Figura 26 Sistema de coordenadas que permite calcular a mudana de base. ..... 60 Figura 27 Rectngulo que limita o componente. ........................................ 61 Figura 28 Sequncia de 4 imagens em que o tracking falha na colorao e delimitao do objecto................................................................... 62
xv
Lista de Tabelas
Tabela 1 - mdia e frames por segundo para cada mtodo, nas diferentes sequncias (de [19]). ..................................................................... 30 Tabela 2 Transies entre frames consecutivas e respectivo valor do FD............ 37 Tabela 3 Sequncias de vdeo de teste e respectiva dificuldade. ..................... 39 Tabela 4 Resultados de desempenho do algoritmo de tracking em percentagem. . 40 Tabela 5 Resultados dos algoritmos FFT e Goertzel na anlise da frequncia fundamental da sequncia de vdeo vertical. ........................................ 54 Tabela 6 -Resultados dos algoritmos FFT e Goertzel na anlise da frequncia fundamental da sequncia de vdeo diagonal. ....................................... 54
xvi
xvii
Abreviaturas
Lista ue abieviatuias (poi oiuem alfabtica): AE Sequncia na auto-estrada CO Sequncia no corredor DC Direct Current DFT Transformada Discreta de Fourier EX Sequncia exterior FEUP Faculdade de Engenharia da Universidade do Porto FFT Fast Fourier Transform FT Sequncia na fonte HSV Hue and Saturation Value I&D Investigao e Desenvolvimento INESC Porto Instituto de Engenharia de Sistemas e Computadores do Porto KDE Kernel Density Estimation LAB Luminance A-B (A e B so componentes cromticos) LUV Luminance, U (red vs green), e V(blue vs yellow) MEMS Micro-Electro-Mechanical Systems MIDI Musical Instrument Digital Interface MIEEC Mestrado Integrado em Engenharia Electrotcnica e de Computadores MoG Mistura de Gaussianos MSP MAX Signal Processing OpenCV Open Source Computer Vision Library PD Pure Data PF Principal Features Ravg Running Average RE Sequncia no restaurante RF Rdio frequncia RGB Red Green blue UTM Unidade de Telecomunicaes e Multimdia
xviii
1
Captulo 1 Introduo
Esta dissertao insere-se no projecto de Mestrado Integrado em Engenharia Electrotcnica e de Computadores (MIEEC) da Faculdade de Engenharia da Universidade do Porto (FEUP). O projecto intitula-se Extraco de Informaes Rtmicas de Movimento em Dana Atravs de um Sinal de Vdeo (RitMoVideo). O trabalho decorreu nas instalaes do Instituto de Engenharia de Sistemas e Computadores do Porto (INESC Porto), na Unidade de Telecomunicaes e Multimdia (UTM). Este captulo inicia-se com uma breve descrio do INESC Porto e da UTM. Em seguida apresenta-se a motivao, o projecto e os objectivos do mesmo. 1.1 Apresentao do Instituto de Engenharia de Sistemas e Computadores do Porto (INESC Porto)
O INESC Porto Instituto de Engenharia de Sistemas e Computadores do Porto uma associao privada sem fins lucrativos reconhecida como instituio de utilidade pblica, tendo adquirido em 2002 o estatuto de Laboratrio Associado. Desenvolve actividades de investigao e desenvolvimento, consultoria, formao avanada e transferncia de tecnologia nas reas de Telecomunicaes e Multimdia, Sistemas de Energia, Sistemas de Produo e Optoelectrnica. O INESC Porto uma instituio criada para constituir uma interface entre o mundo acadmico e o mundo empresarial da indstria e dos servios, bem como a administrao Intiouuo
2 pblica, no mbito das Tecnologias de Informao, Telecomunicaes e Electrnica, dedicando-se a actividades de investigao cientfica e desenvolvimento tecnolgico, transferncia de tecnologia, consultoria e formao avanada. Procura pautar a sua aco por critrios de inovao, de internacionalizao e de impacto no tecido econmico e social, sobretudo pelo estabelecimento de um conjunto de parcerias estratgicas que garantam a sua estabilidade institucional e sustentabilidade econmica.
A Unidade de Telecomunicaes e Multimdia
A Unidade de Telecomunicaes e Multimdia actua em reas chave no mbito das modernas redes e servios de comunicao, em especial arquitecturas de redes, servios de telecomunicaes, processamento de sinal e imagem, microelectrnica, TV digital e multimdia. Atravs da organizao de grupos de Investigao e Desenvolvimento, realiza investigao e promove a formao avanada de recursos humanos, explorando nomeadamente financiamentos de programas de I&D europeus e nacionais. Participa em projectos europeus que permitem a cooperao cientfica e tcnica com empresas e centros de I&D de vanguarda, a actualizao tecnolgica permanente e o acompanhamento da actividade de organismos de normalizao. As actividades da UTM tm sido realizadas nomeadamente em parceria com operadores de redes e fornecedores de servios de Telecomunicaes, operadores de Televiso e fabricantes de sistemas de comunicao e de equipamento de teste.
S 1.2 Motivao
A motivao para integrar tecnologia na nossa maneira de viver j existe h muito, primeiro por questes de eficincia, depois para tarefas funcionais. Mais recentemente, tambm o mundo artstico comea a fazer uso desta mais-valia para melhorar o seu processo criativo. O movimento corporal um meio importante de percepo, expresso e interaco no mundo. Podemos mesmo encar-lo como uma forma de comunicao, um reflexo do nosso estado de esprito. Muitas vezes basta olhar para algum e constatamos na forma como se move e gesticula que uma pessoa alegre, triste, tmida, sexy, etc. atravs desse movimento que os bailarinos criam e comunicam a sua arte. Tradicionalmente, o coregrafo cria a coreografia para uma msica j existente, ou trabalha com um msico para compor uma msica original para uma dana. Os bailarinos sincronizam os seus movimentos com a msica e a coreografia ensaiada repetidamente at estar consolidada com os sons e imagens visuais que a acompanham. Num ambiente digital interactivo baseado no movimento, o coregrafo e os bailarinos, atravs da execuo dos seus movimentos, podem manipular a msica e o estilo visual presente, alterando assim a aparncia e sentimento da coreografia, de exibio em exibio. Facultar aos bailarinos a interaco com computadores, atravs de um vasto vocabulrio de movimentos expressivos, permite-lhes executar a sua coreografia e exibio, das mais diversas formas e controlar vrios aspectos da mesma. Actualmente existem alguns sistemas que permitem a interaco Homem-Mquina atravs de movimentos capturados em vdeo. No entanto, o estado da arte actual continua longe de promover uma soluo satisfatria para a interpretao corporal aplicada ao contexto musical. neste sentido que surge o projecto RitMoVdeo. Motivao Intiouuo
4 1.3 Apresentao do Projecto
O RitMoVdeo um projecto interactivo que funciona em tempo real. Neste pretende- se desenvolver uma aplicao, em que o computador analisa um sinal vdeo de entrada e estima o ritmo dos movimentos dos objectos presentes na cena. Para tal, o desenvolvimento deste projecto passar, numa primeira fase, pela correcta segmentao background 1 /foreground 2 . Concluda esta fase com sucesso, a aplicao dever separar as diversas componentes do objecto presente em foreground e para cada uma fazer a anlise das suas caractersticas de movimento, de forma a estimar o ritmo a que se movimentam. Obtido o ritmo, este usado para estabelecer o tempo musical de uma sequncia em reproduo. No exemplo da Figura 1, o objecto em anlise ser uma bailarina. Na sua representao em vdeo, o seu corpo ser dividido em cabea, tronco e membros e sero estas componentes que permitiro estimar o ritmo. 0 piojecto foi ento aboiuauo como uma caueia composta poi quatio blocos (Figuia 1): ! Segmentao background/foreground ! Diviso dos componentes presentes (tracking 3 ) ! Extraco e anlise de caractersticas ! Bloco de estimao de ritmo
Figura 1 - A imagem original esquerda seguida da cadeia (quatro blocos) de anlise.
1 Regio exterior aos objectos de interesse na imagem. 2 Regio ou objecto de interesse na imagem, neste caso a bailarina. 3 Estimar a trajectria de um objecto presente num plano de imagem conforme este se move pelo cenrio.
S O mtodo de desenvolvimento baseou-se no seguinte: ! Estudo das diferentes tcnicas que permitem executar as tarefas propostas em cada bloco; ! Anlise comparativa, dessas mesmas tcnicas; ! Desenvolvimento de cada bloco, de acordo com a anlise efectuada ! Melhoria de cada bloco da cadeia progressivamente; ! Integrao dos mdulos num sistema completo, em tempo real; 1.4 Objectivos
Os objectivos propostos para esta dissertao focaram essencialmente a problemtica da automatizao da extraco de caractersticas de movimento dos corpos presentes em foreground e a sua correcta anlise ao nvel rtmico. Neste sentido, o trabalho desenvolvido visou o cumprimento dos seguintes objectivos: ! Estudo comparativo e crtico de diferentes metodologias para segmentao foreground/background de uma sequncia de vdeo em tempo real; ! Desenvolvimento de algoritmos automticos de decomposio da silhueta de um corpo nos seus principais constituintes; ! Estudo de diferentes metodologias para a anlise de caractersticas de movimento em tempo real; ! Desenvolvimento de algoritmos automticos de anlise das caractersticas de movimento; ! Desenvolvimento de algoritmos automticos de gerao e manipulao de ritmo e tempo musical, respectivamente;
1.5 Organizao e temas abordados no presente relatrio
Este relatrio composto por seis captulos. O primeiro captulo dedicado ao enquadramento do projecto, contexto global do problema e objectivos a alcanar. Termina com uma pequena descrio das contribuies alcanadas. Apresentao do Projecto Intiouuo
6 No segundo captulo Estado da Arte so descritos projectos e ferramentas existentes que permitem perceber as melhores estratgias de abordagem ao problema tendo em conta as virtudes e limitaes de cada soluo. Aps realizar a avaliao cientfica e tecnolgica do estado da arte, no captulo trs Comparao experimental de algoritmos de segmentao e tracking so apresentados detalhadamente e comparados os principais algoritmos de segmentao e seguimento de objectos. A anlise crtica evidencia os resultados e justifica qual o algoritmo a implementar. O captulo quatro Estimao de Ritmo revela a anlise desenvolvida relativamente extraco de caractersticas fundamentais do movimento captado. Detalha e compara as equaes mais relevantes, assim como os principais algoritmos que permitem estimar o ritmo em tempo real. Tal como na seco anterior termina com uma anlise crtica sobre os resultados e determina os algoritmos a utilizar. O captulo Integrao inicia com a viso global da arquitectura do sistema. Depois, os algoritmos implementados para cada bloco so descritos por ordem cronolgica de funcionamento. So descritas as principais limitaes e dificuldades do sistema. Por fim, o sexto e ltimo captulo resume as principais concluses obtidas. tambm sugerido o trabalho futuro. 1.6 Contribuies relevantes
O desenvolvimento do projecto RitMoVdeo gerou vrias questes interessantes. De certa forma, as solues encontradas para os problemas que surgiram apresentam-se como contribuies relevantes para as mais diversas reas de investigao e desenvolvimento. Na rea da segmentao de imagens, de destacar o estudo comparativo de qualidade versus tempo de execuo dos principais algoritmos de segmentao e a respectiva implementao do que foi considerado mais adequado. Ao nvel do tracking, foi realizada uma anlise que demonstra a melhor forma de representar os movimentos humanos. Foi desenvolvido um algoritmo que permite o tracking e diviso do corpo humano nos seus diversos componentes.
7 Os estudos e algoritmos desenvolvidos ao nvel de extraco de caractersticas e estimao de ritmo apresentam uma contribuio significativa para aplicaes, no s do mesmo contexto, como para outras, por exemplo, didcticas ou mdicas. Por fim, ao nvel de aplicaes vocacionadas para o mesmo propsito esta apresenta-se como uma boa alternativa relativamente s criadas previamente, pois permite a escolha da componente do corpo humano sobre a qual se pretende calcular o ritmo. Devido sua interactividade o RitMoVdeo foi escolhido para representar o INESC Porto, no Dia da Universidade do Porto a decorrer em Maro de 2009. Contribuies Relevantes Intiouuo
8
9
Captulo 2 Caracterizao do Problema
Tendo em conta os objectivos delineados para o trabalho, neste captulo descreve-se a investigao sobre projectos existentes cujos resultados possam ser aplicados no sistema proposto. A abordagem adoptada para a anlise do estado da arte no se cingiu anlise de projectos de segmentao background/foreground. Na verdade, o contexto foi alargado s principais tcnicas de tracking de objectos em vdeo e a projectos com contributos relevantes na anlise de ritmo. O esclarecimento dos conceitos bsicos subjacentes a estas tcnicas permite compreender a sua aplicao em situaes concretas, as quais sero introduzidas posteriormente. Sero expostas tambm as principais plataformas de programao de projectos deste gnero.
Caracterizao do Problema
1u 2.1 Estado da Arte
Nas ltimas duas dcadas, vrias tcnicas tm sido desenvolvidas e aperfeioadas para suportar os requisitos de software de sistemas combinados de msica e animao criadas e executadas em tempo real por um computador. As tcnicas incluem novos ambientes de programao que suportam a integrao de vrias funes e processos que se podem executar em tempo real. Existem vrios mtodos para traduzir os movimentos fsicos em dados digitais que possibilitam controlar parmetros musicais. Axel Mulder [1], na dcada de 90, distinguiu trs tcnicas que ainda hoje so uma referncia para o tracking dos movimentos humanos: Inside-In (de dentro para dentro), Inside-Out (de dentro para fora) e Outside-In (de fora para dentro). Nas subseces seguintes estas trs tcnicas sero detalhadas e exemplificadas.
2.1.1 Inside-In
As tcnicas Inside-in recorrem a sensores de forma a mapear os movimentos dos membros do corpo humano, por exemplo braos ou dedos. Estes sensores podem ser luvas, sensores flexveis piezo-elctricos (medem os ngulos das articulaes), acelermetros, giroscpios 4 e inclinmetros 5 . Em geral, no permitem medir a rotao e no so dependentes de um ponto de referncia. Uma vez que os sensores so posicionados no corpo, esta tcnica considerada intrusiva e invasiva. A necessidade de cabos de alimentao e comunicao nestes sensores pode interferir com a liberdade de movimentos.
4 Dispositivo que consiste de um rotor suspenso por um suporte formado por dois tringulos articulados. O seu funcionamento baseia-se no princpio da inrcia. Serve como referncia de direco, mas no de posio, ou seja, permite medir com preciso qualquer mudana na sua orientao, excepto rotaes que ocorram no plano de giro dos discos do giroscpio.
5 Dispositivo referente inclinao do objecto relativamente ao eixo horizontal
11 Exemplo: Inside-In
A empresa Measurand [2] utiliza fibras pticas flexveis e sensores geotcnicos, recorrendo tecnologia MEMS (Micro-Electro-Mechanical Systems), que consiste na integrao de elementos mecnicos, sensores, actuadores e electrnica num substrato de silicone com micro-tecnologia para mapear os movimentos. As fibras podem ser aplicadas a coletes, luvas (Figura 2) e outras peas de vesturio.
Figura 2 - Luva Measurand (de [2]).
2.1.2 Inside-Out
As tcnicas inside-out empregam sensores no corpo que permitem efectuar o tracking a partir de fontes externas. Podem ser usados para medir o movimento dos grandes membros do corpo humano (braos e pernas), assim como fornecer informaes acerca da posio da pessoa relativamente ao cenrio. Estes sensores podem ser acelermetros, giroscpios, ou leds infravermelhos colocados no corpo, o que retorna ao mesmo problema de obstruo e invaso relatado anteriormente.
Exemplos: Inside-Out
Existem vrios tipos de sensores que permitem mapear os movimentos executados por uma pessoa. Estado da Arte Caracterizao do Problema
12 1) Em 2002, Mark Feldmeier [3], desenvolveu transmissores de frequncias rdio (RF) (Figura 3) que usam acelermetros e transmitem dados para um computador que executa a Fast Fourier Transform 6 (FFT) e outros algoritmos de processamento de sinal. Assim, extrai o ritmo musical e, consoante as mudanas de tempo dos bailarinos, o sistema adapta a msica. O funcionamento do sistema bastante bsico, os sensores acelermetros esto configurados para uma determinada acelerao, quando esta ultrapassada um sinal RF enviado para uma base que actualizada de 2ms em 2ms. Esta informao enviada por uma porta MIDI (Musical Instrument Digital Interface) para um computador onde processada no ambiente de programao Max 7 . O programa executa a FFT do sinal (de 10 em 10 segundos, por exemplo) e retorna a frequncia fundamental. Atravs desta frequncia obtm-se o tempo musical. O Max usado diversas vezes para programar este tipo de sistemas e os sensores pesam apenas 5gr, tm uma durao de bateria elevada e o preo de apenas 8 dlares por cada 10 unidades.
Figura 3 - Prottipo dos transmissores RF com acelermetros embutidos (de [3]).
2) Em 2006, Urs Enke [4], apresentou o DanSense. Este projecto consiste em analisar o ritmo de movimentos humanos em tempo real, com recurso a sensores acelermetros aplicados no corpo. Os dados extrados com os acelermetros permitem distinguir as magnitudes dos movimentos e a sua distribuio no tempo. Assim, utilizando uma
6 Transformada rpida de Fourier - um algoritmo eficiente para se calcular a Transformada Discreta de Fourier (DFT) e a sua inversa. 7 Max programa desenvolvido por Miller S. Puckette em meados da dcada de 80, altamente modular e a maior parte das rotinas existem sobre a forma de bibliotecas partilhadas (open source). Explicado na pag. 19.
1S combinao de anlise espacial e espectral (Transfomada de Fourier) desses dados, Enke consegue extrair os padres de ritmo. O seu projecto foi testado com movimentos simples e complexos, atingindo resultados satisfatrios. No entanto, conforme se exemplifica na Figura 4, esta metodologia pode ser um pouco intrusiva do ponto de vista da sua utilizao em dana.
Figura 4 O hardware de DanSense e a sua aplicao no corpo humano (de [4]).
3) O sistema MCM: Motion Capture Music [5] foi desenvolvido capturar movimentos a partir do sistema Vicon8 [6] e usar essa captura para controlar dados, por exemplo MIDI. O sistema Vicon8 captura informao tridimensional acerca da localizao exacta de pontos num corpo, que rodeado por oito cmaras apoiadas por luzes estroboscpicas (vulgarmente conhecidas por flash). No corpo so colocados marcadores especiais que reflectem a luz e as imagens obtidas pelas oito cmaras so usadas para calcular as coordenadas cartesianas X, Y, Z de cada marcador. Uma configurao tpica utiliza trinta ou mais marcadores que so detectados a uma taxa de trinta, sessenta, ou cento e vinte frames 8 por segundo. Os dados podem ser armazenados num ficheiro para uso futuro, ou com o sistema Vicon RT (funciona em tempo real) podem ser enviados directamente para software de edio grfica para controlar uma animao. A Figura 5 ilustra a arquitectura geral do sistema.
8 Uma imagem de uma sequncia de vdeo. Estado da Arte Caracterizao do Problema
14
Figura 5 Viso geral da arquitectura do sistema MCM (de [5]).
2.1.3 Outside In
As tcnicas OutsideIn recorrem a sistemas electro-pticos que conseguem efectuar o tracking de marcadores reflectores, ou fontes naturais no corpo. Um exemplo simples desses sistemas uma cmara de vdeo externa que permite fazer o tracking do corpo. As tcnicas OutsideIn so as menos intrusivas das trs e so indicadas para mapear grandes partes do corpo, mas apresentam vrios problemas em fazer o mapeamento de partes mais pequenas, como dedos. A iluminao do cenrio tambm pode influenciar o correcto funcionamento do sistema. Estas tcnicas requerem, em geral, uma elevada capacidade de processamento computacional e esto limitadas pela ocluso. Apesar de todas estas contrapartidas, a metodologia Outside-In apresenta-se como a melhor alternativa para o projecto em questo. Assim, foi efectuada uma investigao mais detalhada a nvel de exemplos, que se expem de seguida.
Exemplos: Outside-In
A aquisio sem sensores efectuada recorrendo apenas s cmaras de vdeo e software de anlise de imagem. Existem j aplicaes desenvolvidas com propsitos
1S semelhantes ao proposto neste trabalho e outras, que foram desenvolvidas para outros fins, como teraputicos ou armazenamento de dados digitais, mas que podem contribuir com mtodos de anlise e processamento de imagem para este trabalho.
1) Sistema desenvolvido para armazenamento de dados digitais
O projecto de Atsushi Nakazawa [7], refere tcnicas para gerar um arquivo digital das tradies e heranas culturais do povo japons. O objectivo principal arquivar passos de dana, detectar passos primitivos (bsicos). Estes passos tm se estar sincronizados com o ritmo da msica. Por isso, foi desenvolvido um mtodo que segmenta o movimento de acordo com o ritmo musical para extrair os passos bsicos. Divide a captao do sujeito em centro de massa, ps e mos, e atravs da conjugao com o tempo da msica consegue extrapolar se foi feita uma sequncia de movimentos ou no (considera que uma sequncia de movimentos correcta se existe uma pausa que corresponde ao tempo musical). O mtodo de extraco do ritmo, assim como o processo implementado na conjugao de ritmo e imagem, pode ser consultado na Figura 6.
Figura 6 Fluxograma de funcionamento do sistema de Nakazawa (de [7]).
Estado da Arte Caracterizao do Problema
16 2) Sistema desenvolvido para fins teraputicos
O Music Maker, desenvolvido por Mikhail Gorman [8], permite s pessoas com debilitaes fsicas que as impedem de tocar um instrumento convencional, fazerem msica enquanto executam os seus exerccios teraputicos. Usa tcnicas de viso computacional para converter os movimentos dos membros das pessoas (dedos, mos ou ps) em sons ou ambientes visuais. Pode ser ajustado s particularidades teraputicas de cada paciente e fornece ferramentas quantitativas para controlar o processo de recuperao e estabelecer novos objectivos teraputicos. utilizado o software Eyesweb [9] e a deteco e orientao geomtrica do objecto so feitas por anlise de cor de pele humana, pelas suas componentes de cor caractersticas: vermelha, verde e azul (Figura 7).
Figura 7 A mo captada pela cmara (esquerda), a imagem segmentada (centro) e a orientao e centro do objecto calculado (direita) (de [8]).
Para obter melhores desempenhos, no incio de cada terapia permite a programao das cores, visto existirem diversos tons de pele de pessoa para pessoa. A Figura 8 demonstra de uma forma geral como funciona o programa.
17
Figura 8 - Viso conceptual do Music Maker (de [8]).
3) Sistemas desenvolvidos com fins artsticos
a) Em 2004, Antnio Camurri e colegas [10], desenvolveram um estudo que pretende analisar se os observadores de uma dana conseguem antecipar o prximo passo do bailarino. Usa mtodos para detectar o centro de massa dos bailarinos, apenas por anlise de imagem e cria a linha temporal do centro de massa do incio ao fim da performance. Na experincia discutida neste estudo, o Eyesweb foi responsvel por extrair automaticamente as coordenadas 2D do centro de massa de uma pessoa presente num vdeo, apresentar o vdeo aos observadores e gravar as respectivas respostas. A posio do centro de massa da silhueta do bailarino, presente no vdeo, obtida utilizando dois algoritmos includos nas bibliotecas do Eyesweb. O primeiro aproxima a posio do centro de massa atravs da primeira ordem dos momentos da silhueta em 2D. Apesar desta medida ser precisa para muitas aplicaes diferentes, muitas vezes sofre erros devidos ao rudo ou a uma segmentao errada dos membros do corpo humano. Uma medida mais robusta foi alcanada com uma tcnica que emprega a projeco de padres espcio-temporais. Embora no seja em tempo real, esta tcnica permite a extraco de sub-regies da silhueta. A sub-regio maior usualmente associada ao tronco e as outras aos membros. As sub-regies ajudam, assim, a reduzir a rea em que o clculo do centro de massa tem de ser efectuado, reduzindo tambm o rudo ou eventuais erros introduzidos Estado da Arte Caracterizao do Problema
18 pela deteco dos membros. A Figura 9 demonstra um exemplo da extraco das sub- regies de um bailarino. Podemos verificar que o rectngulo azul a fronteira da silhueta total. A sub-regio dentro do rectngulo central verde inclui o tronco, cabea e pernas, enquanto as duas sub-regies a vermelho delimitam os braos. O ponto no centro do corpo demonstra o centro de massa calculado a partir do rectngulo verde e o ponto inferior, junto aos ps do bailarino, representa o centro de massa projectado no cho.
Figura 9 - Extraco das sub-regies da silhueta e do centro de massa a partir das coordenadas 2D (de [10]).
b) Em 2005, Carlos Guedes [11] constata que se registar o nmero de pixels que mudaram a sua claridade em aces de movimento peridico ao longo do tempo, torna-se possvel detectar periodicidades no sinal de anlise de vdeo, que tm correspondncia directa com as aces executadas. Removendo a componente DC (contnua) desses sinais, pode-se verificar uma elevada similaridade com sinais acsticos peridicos. Isto significa que se aplicar um algoritmo capaz de detectar as periodicidades deste sinal, como a Transformada Rpida de Fourier (Fast-Fourier Transform - FFT), por exemplo, pode-se detectar o ritmo presente nesse sinal, calcular a sua frequncia fundamental e assim obter o tempo que pode ser usado para fazer algo relevante musicalmente, tal como a gerao de ritmos a partir do movimento de dana ou possibilitar ao bailarino o controlo, em tempo real, do tempo musical. De forma a executar as tarefas descritas anteriormente, Guedes expe a implementao de cinco objectos externos (m.bandit, m.peak, m.weights, m.clock e m.sample) para o programa Max/MSP/Jitter. Os objectos extraem informao do
19 movimento a partir de uma anlise prvia do vdeo por frame-differencing 9 e permitem, ao bailarino, a gerao de ritmos ou o controlo do tempo de uma sequncia musical gerada em tempo real. Estes objectos podem ser divididos em objectos de anlise (m.bandit, m.peak, m.weights) e objectos de processamento (m.clock e m.lp). De seguida apresenta- se um pequeno resumo acerca de cada objecto para compreender o seu funcionamento: Objectos de anlise: m.bandit um dos objectos fulcrais desta biblioteca. Consiste num banco de 150 filtros IIR de 2 ordem onde, em cada, aplicado o algoritmo de Goertzel [12]. Este objecto tem como entrada a representao temporal do sinal extrado por frame- differencing e capaz, entre outras, de estimar e extrair a frequncia fundamental do sinal (Figura 10).
Figura 10 - O m.bandit retorna a frequncia fundamental do sinal analisado (de [11]).
m.peak tem, como entrada, a representao das variaes de tempo resultantes do frame-differencing do sinal e, como sada, uma mensagem de execuo, quando atingido um pico significativo no sinal. Este objecto especialmente til para executar eventos (sons ou mensagens para outros objectos) quando ocorrem movimentos bastante acentuados. m.weights tem como entrada, o valor da frequncia fundamental, calculado pelo m.bandit atravs do frame-differencing do sinal. Tem como sada, o valor que foi mais vezes transmitido pelo m.bandit nos ltimos 60 frames. Uma das funes do m.weights
9 Diferenciao de frames, tcnica de segmentao que consiste em subtrair os frames actuais a um anterior, pr-marcado como fundo. Estado da Arte Caracterizao do Problema
2u fornecer uma memria curta ao m.clock, que pode ser utilizada para estabelecer o tempo de uma sequncia de movimentos sem uma estimativa prvia.
Objectos de processamento: m.clock outro dos objectos fulcrais desta biblioteca. um relgio adaptativo que permite ao bailarino controlar o tempo de uma sequncia musical. Este objecto considera a frequncia fundamental transmitida pelo m.bandit (convertida em milisegundos) como um candidato ao tempo musical e permite fazer a adaptao temporal da sequncia se esse candidato est dentro de limites estabelecidos, a partir da estimao de tempo anterior. m.sample actua como um amostrador da diferena de luminosidade calculada pelo algoritmo que executa o frame-differencing. Este objecto foi elaborado para estabilizar a taxa de imagens captadas pelas cmaras USB. As taxas de captao de imagens das cmaras podem oscilar entre 23 e 34 fps (frames por segundo). Uma vez que o processamento efectuado pelo m.bandit depende da taxa de amostragem, crucial que essa amostragem seja estvel. Este objecto , assim, responsvel por garantir o fornecimento dos valores de diferena de luminosidade com um fluxo estvel ao m.bandit. c) Em 2006, Luiz Naveda [13] prope a representao digital dos movimentos de dana do Samba. Este gnero musical entendido pelos msicos, bailarinos e ouvintes como um fenmeno no qual a msica e a dana esto intrinsecamente relacionadas, no entanto no existe um conhecimento aprofundado acerca da estrutura de ambos os domnios. Assim, Naveda desenvolveu ferramentas que permitem relacionar, ao nvel mtrico, a msica e dana. Para tal, escolheu trs excertos musicais de Samba para os quais gravou sequncias de vdeo de bailarinos a danarem. Apesar de recorrer segmentao manual dos vdeos, Naveda descreve algoritmos e mtodos heursticos relevantes para a conjugao da msica com a dana. Como exemplo dos resultados obtidos pode-se visualizar na Figura 11 os movimentos peridicos detectados em vrias mtricas musicais.
21
Figura 11 As vrias componentes do bailarino e o movimento efectuado ao longo de vrias divises mtricas do tempo musical (de [13]).
2.2 Plataformas de programao
Existem inmeras plataformas de programao para os mais diversos propsitos. No contexto deste projecto so descritas, em seguida, as mais proeminentes. 2.2.1 Max/MSP/Jitter
O ambiente de programao Max [14] foi desenvolvido por Miller S. Puckette em meados da dcada de 80, altamente modular e a maior parte das rotinas existem sobre a forma de bibliotecas partilhadas (open source). O componente MSP (Max Signal Processing) do Max/MSP/Jitter surgiu, em 1997, como uma biblioteca poderosa que permite a manipulao de sinais udio-digitais em tempo real, possibilitando aos utilizadores criar o seu prprio sintetizador e processador de efeitos. Em 2003 surgiu o Jitter, a componente que veio permitir o processamento em tempo real de vdeo, matrizes e imagens em trs dimenses. Estado da Arte Caracterizao do Problema
22 Actualmente, o Max/MSP/Jitter possui mais de cento e cinquenta objectos que cobrem os elementos bsicos de sntese, amostragem e processamento de sinal. Permite que o software seja criado atravs da juno desses diversos objectos existentes na sua biblioteca, ou atravs de objectos externos projectados pelo programador em linguagem C ou C++. Alm disso, possibilita controlar facilmente, com o computador, diverso hardware e vice-versa. Devido sua capacidade extensvel e interface grfica, vastamente reconhecido como a lngua franca para desenvolver software de msica e performance interactivas. Este ambiente de programao grfico desenvolvido e comercializado pela empresa Cycling '74. usado por compositores, performers, programadores, investigadores e artistas interessados em criar software interactivo.
2.2.2 Pure Data
Em 1996, Miller S. Puckette, disponibilizou um programa, de uso livre, denominado Pure Data (PD) [15]. O PD muito similar ao Max, tem uma base modular de objectos externos que so usados como blocos de construo para os programas. Isto torna o programa altamente extensvel atravs de uma interface de programao e encoraja os programadores a adicionarem as suas prprias rotinas, seja em linguagem C, Python, Ruby ou outras linguagens. Com a adio do ambiente grfico para multimdia, possvel criar e manipular: imagens, vdeo e at grficos OpenGL 10 em tempo real e conjug-los com uma infinidade de possibilidades de interactividade, nomeadamente, com udio digital ou sensores externos, por exemplo.
2.2.3 Eyesweb
A plataforma aberta Eyesweb foi originalmente concebida para o desenvolvimento de aplicaes em tempo real de dana, msica e multimdia. baseada na biblioteca OpenCv da Intel (Open Source Computer Vision Library). A biblioteca OpenCv da Intel uma coleco de cdigos (funes em C, C++, classes de programao e algoritmos populares) desenvolvidos e disponibilizados por investigadores de todo o Mundo. O Eyesweb permite
10 Open Graphics Library, uma linguagem grfica 3D desenvolvida pela Silicon Graphics.
2S ao utilizador experimentar modelos computacionais e mapear gestos de diferentes modalidades (desporto, dana, etc.) que depois podem ser transfigurados para eventos multimdia (sons, msica e efeitos visuais). Permite um desenvolvimento clere de performances interactivas, atravs da incluso de um ambiente de programao visual, que permite a transfigurao dos gestos a vrios nveis, desde movimentos em sons, at movimentos em msica integrada, ambientes visuais ou alterao de cenrios. 2.2.4 Isadora
O Isadora [16], criado por Mark Coniglio, um ambiente de programao grfico para Macintosh (existe uma verso beta para Windows). comercializado pela TroikaTronix e fornece controlo interactivo sobre dados digitais, com especial nfase pela manipulao de vdeo em tempo real. Uma vez que qualquer exibio ou instalao nica, o Isadora foi desenvolvido, no para ser um programa plug and play, mas para fornecer blocos de construo que podem ser ligados entre si de forma flexvel, permitindo aos utilizadores seguirem os seus impulsos artsticos. De entre as suas caractersticas, so de destacar, entre outras, os mdulos de processamento de vdeo em tempo real e a acelerao de hardware permitida. 2.2.5 Processing
O Processing [17] surgiu em 2001 e uma plataforma de programao centrada nas artes visuais. Inicialmente foi criado para servir como uma ferramenta de aprendizagem de programao bsica, mas rapidamente se transformou numa ferramenta para projectos mais elaborados. Visto que uma plataforma livre, os programadores que o utilizam partilham, normalmente, os seus programas e cdigos. Com as contribuies da comunidade de utilizadores foi possvel estabelecer vrias bibliotecas, das quais se destacam, no contexto deste projecto, as de viso computacional e msica. Plataformas de Programao Caracterizao do Problema
24
2.3 Resumo e Anlise Crtica
Este captulo apresentou a reviso do estado da arte. Adquirir conhecimento nestes campos foi um passo necessrio de forma a fornecer as bases para o desenvolvimento de uma aplicao que consiga analisar em tempo real as periodicidades presentes em movimentos de dana. Pela anlise dos sistemas e mtodos descritos anteriormente, pode-se concluir que existem vrios sistemas de deteco e mapeamento de movimentos capazes de gerar as mais diversas sadas. No entanto, existe ainda espao para a continuao do desenvolvimento destas tecnologias de forma a implementar novos algoritmos de processamento que permitam uma optimizao dos resultados e aumentar as funcionalidades de suporte criatividade dos artistas. As tcnicas Inside-In e Inside-Out, pelas suas caractersticas intrusivas, foram preteridas em relao Outside-In. No captulo seguinte apresenta-se um estudo acerca das diferentes tcnicas de segmentao e tracking.
2S
Captulo 3 Comparao Experimental de Algoritmos de Segmentao e Tracking
Neste captulo ser efectuada uma anlise comparativa dos algoritmos de segmentao mais proeminentes assim como das principais tcnicas de tracking. So apresentados resultados para cada subseco.
3.1 Segmentao de imagens
A segmentao de uma imagem consiste na sua decomposio nos seus elementos constituintes. Um exemplo simples deste processo seria a segmentao de uma imagem panormica de uma praia decompondo-a em zonas correspondentes s classes mar, cu e areia. Tendo em conta que a segmentao automtica de imagens um problema comum em aplicaes que envolvem processamento de imagem e/ou vdeo, foram desenvolvidos vrios procedimentos que se encontram descritos na literatura da especialidade [18]. Existem diversas estratgias que podem ser seguidas na resoluo de problemas de segmentao, sendo que a eficincia de cada algoritmo est intrinsecamente relacionada com as caractersticas das imagens processadas. Provavelmente devido sua simplicidade, o mtodo mais comum de distinguir um objecto que se move relativamente a um fundo, ser a subtraco de fundos (background subtraction). O mtodo consiste em subtrair imagem actual, uma imagem de referncia, obtida previamente. Os segmentos de imagem que no se alteraram so considerados background, enquanto os restantes segmentos (que sofreram alteraes) so considerados Segmentao e Tracking
26 como objectos (foreground). No entanto, se o modelo de referncia do background no for actualizado adequadamente, esta tcnica fica gravemente susceptvel s condies de ambiente em que se insere, como mudanas de luz, por exemplo. Para alcanar uma modelao de background robusta, so necessrias tcnicas que melhor se adaptem a comportamentos dinmicos. Idealmente, o desempenho no deve depender da posio da cmara, nem deve ser sensvel ao que acontece no seu campo de viso ou aos efeitos de luz usados. A modelao deve ser capaz de lidar com a ocluso momentnea de objectos, sombras, mudanas de luz, objectos que se movem lentamente e mudanas de cenrio. tambm importante ter em conta que, para a aplicao em causa, a anlise ter de ser efectuada em tempo real. Uma modelao complexa poder apresentar resultados mais exactos, mas o tempo de anlise ser demasiado para o que se pretende. Deveremos assim encontrar um compromisso entre qualidade do algoritmo e a sua complexidade computacional. neste sentido que foi realizada uma anlise comparativa experimental de diversos mtodos existentes na actualidade. Com fundamento em [19], foi efectuada uma comparao das tcnicas mais proeminentes de segmentao, partindo da mais bsica at mais complexa. Em seguida apresenta-se um pequeno resumo de cada, assim como os resultados comparativos obtidos.
3.1.1 Running average (RAvg)
O background pode ser modelado como uma mdia das imagens anteriores mas, de forma a evitar requisitos elevados de memria, esta mdia aproximada por um filtro adaptativo com uma taxa de aprendizagem !. Cada pixel do fundo, na posio (i,j) no instante t dado por: (1)
O foreground assim estimado usando uma subtraco limiar da imagem actual com a estimada como background. Esta tcnica provavelmente a mais simples e de implementao mais rpida. Os resultados ficam longe dos ideais, em particular em fundos
27 complexos. Uma vez que apenas se considera uma representao esttica do fundo para fazer a subtraco, quando ocorre algum tipo de mudana dinmica no fundo, este incorrectamente classificado como foreground. O mtodo Running Average representa o algoritmo bsico.
3.1.2 Mixture of Gaussians (MoG)
Em vez de estimar directamente a representao do background, um mtodo mais eficaz construir um modelo que consegue prever o comportamento de cada pixel, usando o seu histrico. Tal pode ser obtido calculando a funo densidade probabilidade (f.d.p.) de cada pixel. Assumindo que cada mudana estrutural que afecta o valor do pixel causada por vrios processos, cada modelado por uma distribuio Gaussiana podemos definir a probabilidade de observar o seu valor como: (2)
Onde o K-simo Gaussiano de K distribuies, a funo densidade normal, , e so, respectivamente, uma estimativa do peso, o valor mdio e a varincia de . Alm disso, pode ser facilmente provado ([20]) que, dado o vector de cor de um pixel, a probabilidade de este pertencer ao background : (3)
Se (onde um threshold 11 estabelecido) ento o pixel considerado background.
11 Limiar de deciso, condio fronteira. Segmentao de Imagens Segmentao e Tracking
28 3.1.3 Kernel Density Estimation (KDE)
possvel aproximar a f.d.p. do background de cada pixel pelo histograma dos valores mais recentes classificados como background. Este mtodo tem, no entanto, alguns problemas, nomeadamente, o facto de o histograma ser uma funo discreta, muitas vezes, conduz a uma f.d.p. errada. Um modelo no-paramtrico baseado no KDE proposto em [21]. O KDE garante uma representao contnua do histograma. A f.d.p. do background dada pela soma dos kernels Gaussianos centrados nos N mais recentes valores de background: (4)
O pixel classificado como background se . Um problema importante deste algoritmo o clculo do - a largura de banda kernel. Em [20] proposta uma matriz diagonal para o clculo da largura de banda.
3.1.4 Principal Features (PF)
Em [22] o background representado em cada pixel pelas suas caractersticas mais frequentes, ou caractersticas principais. A classificao efectuada usando um critrio Bayesiano e demonstra que um pixel representado por classificado como background se .
Caso contrrio foreground. No entanto necessrio calcular priori os valores de , e . Como mencionado anteriormente, uma forma de calcular estes valores ser construir o histograma temporal de cada pixel.
3.2 Teste comparativo dos algoritmos de segmentao
Um modelo geral para a comparao de segmentao de imagens foi proposto recentemente na literatura [23 e 24]. Esse modelo foi usado, com uma ligeira alterao na mtrica.
29 O critrio baseia-se no grafo de interseco entre duas segmentaes. Dois ns so conectados por uma aresta pesada se e s se essas duas regies se intersectam (Figura 12).
Figura 12 - Grafo de interseco para duas segmentaes (de [19]). Os pesos correspondem ao nmero de pixels na interseco. O grafo de interseco associado a dois tipos de segmentao diferentes pode ser assim usado como um factor de similaridade entre ambos. Tendo em conta que os diferentes erros entre segmentaes contribuem de formas diferentes para a percepo visual humana, os erros so considerados mais graves quanto mais longe os respectivos pixis esto da fronteira a que deviam pertencer. Calculando a soma pesada desses erros obtemos assim uma distncia pesada, , entre ambas as segmentaes. Quanto maior a distncia, pior foi o desempenho do respectivo algoritmo. 3.2.1 Resultados
Os quatro algoritmos foram usados em diferentes sequncias de vdeo: AE Auto- estrada, CO Corredor, EX Exterior, Re Restaurante e FT Fonte. Estas foram previamente segmentadas manualmente gerando assim o ground-truth 12 . Quando comparados, usando a mtrica anterior, obteve-se a Tabela 1 que sumariza os resultados obtidos para cada algoritmo, em cada sequncia. Para cada combinao algoritmo-
12 Imagens de referncia geradas manualmente para posterior comparao com outras obtidas por mtodos automticos. Teste dos algoritmos de segmentao Segmentao e Tracking
Su sequncia apresentada a distncia mdia pesada ao ground-truth e nmero de frames por segundo (fps) que o algoritmo consegue executar. Tabela 1 - mdia e frames por segundo para cada mtodo, nas diferentes sequncias (de [19]). AE CO EX RE FT RAvg
A Tabela 1 demonstra que o RAvg o algoritmo capaz de processar mais frames por segundo. Por outro lado, o KDE apresenta resultados mais precisos todos os outros. Uma vez que se pretende um compromisso entre qualidade e velocidade de processamento, o mtodo MoG (Figura 13) apresenta-se como a melhor alternativa para o projecto em curso.
Figura 13 Na fila de cima as sequncias originais CO (Corredor), EX (exterior) e AE (Auto-estrada). Em baixo a respectiva segmentao efectuada pelo algoritmo MoG (de [19]).
Aps a correcta segmentao dos objectos relativamente ao fundo, importa encontrar algoritmos e formas de mapear esses objectos espacialmente. Desta forma, apresenta-se em seguida, a anlise aos diversos mtodos de tracking conhecidos actualmente.
S1
3.3 Tracking de objectos
O tracking de objectos uma tarefa importante no campo da viso computacional [25]. A proliferao de computadores com elevada capacidade de processamento, a disponibilidade de cmaras de vdeo de elevada qualidade e a crescente necessidade de automatizar a anlise de vdeo gerou um grande interesse em torno dos algoritmos de tracking de objectos. O uso desta tcnica pertinente para: ! Reconhecimento de movimentos, isto , identificao baseada em caractersticas visuais, deteco automtica de objectos; ! Vigilncia automtica, tal como monitorizar um cenrio para detectar actividades suspeitas ou eventos pouco usuais; ! Indexar vdeo, por exemplo, gerar anotaes automticas e reconhecimento de vdeos em bases de dados multimdia; ! Interaco homem-computador, consistindo no reconhecimento de gestos e/ou movimentos para controlar aplicaes; ! Navegao de veculos, ou seja, planeamento de caminho baseado em vdeo e capacidade de evitar obstculos; Na sua forma mais simples, o tracking pode ser definido como o problema de estimar a trajectria de um objecto presente num plano de imagem conforme este se move pelo cenrio. O algoritmo deve, em cada frame ao longo de uma sequncia de vdeo, detectar a posio do objecto em questo. Dependendo do objectivo, podemos adicionalmente extrair informaes do objecto, tais como, a sua orientao, rea ou forma. No entanto, o tracking pode-se tornar complexo devido a rudo nas imagens, movimentos ou objectos complexos, ocluso parcial ou total dos objectos, mudanas de luz e por fim, devido a requisitos de processamento em tempo-real.
Tracking de objectos Segmentao e Tracking
S2 3.3.1 Representao dos objectos
Num cenrio de tracking, um objecto pode ser definido como algo que interessante para analisar. Por exemplo, um barco no mar, peixes num aqurio, veculos numa estrada, pessoas a danar, so objectos que podem ser importantes em determinado domnio. Os objectos podem ser representados principalmente pela sua forma, mas tambm pela sua aparncia. Sero descritas as principais representaes baseadas na forma e em seguida as baseadas em aparncia. Representaes baseadas na forma:
! Pontos o objecto representado por um ponto, o centride (Figura 14 (a)) [26], ou por um conjunto de pontos (Figura 14 (b)) [27]. Em geral a representao baseada em pontos adequada para o tracking de objectos que ocupam pequenas regies numa imagem. ! Formas geomtricas primitivas o objecto representado por um rectngulo, elipse ou outra forma geomtrica simples (Figura 14 (c) (d)), [28]. Esta representao normalmente utilizada para representar objectos rgidos, embora possa ser tambm usada para representar objectos mais flexveis. ! Silhueta ou contorno A representao por silhueta define o contorno do objecto (Figura 14 (g) (h)). adequada para representar formas complexas [29]. ! Modelo de formas articuladas os objectos articulados so compostos por vrias partes, unidas por juntas. Por exemplo, o corpo humano um objecto articulado com tronco, braos, pernas, mos, cabea e ps. As partes so ligadas atravs de juntas, neste caso, ligamentos. Para representar um objecto articulado, as suas partes constituintes so modeladas por cilindros ou elipses como se exemplifica na Figura 14 (e). ! Modelos de esqueleto estes podem ser extrados pela aplicao da projeco da silhueta do objecto no eixo mdio do mesmo. O uso deste modelo muito comum como representao de formas para reconhecimento de objectos [30]. Pode ser usado para modelar objectos articulados ou rgidos (Figura 14 (f)).
SS
Figura 14 - Representaes do objecto. (a) Centroide, (b) Pontos mltiplos, (c) rectngulo, (d) elipse, (e) mltiplas partes, (f) esqueleto, (g) contorno, (h) pontos de controlo no contorno, (i) silhueta (de [25]).
Representaes baseadas na aparncia:
Existem inmeros modelos de representao atravs da aparncia. de salientar que no tracking, as representaes baseadas na forma podem ser combinadas com as representaes de aparncia [31]. ! Densidade de probabilidade da aparncia do objecto (DPAO)- A DPAO pode ser paramtrica (Gaussiana [32], ou mistura de Gaussianos [33]), ou no- paramtrica (janelas de Parzen [34] e histogramas [31]). A DPAO pode ser calculada a partir das regies previamente definidas pelos modelos de formas (por exemplo, o interior de uma elipse ou contorno). ! Templates so formados usando formas geomtricas simples ou silhuetas [35]. A vantagem do template permitir guardar ambas informaes, espacial e aparncia. No entanto, uma vez que apenas consegue codificar a aparncia a partir de uma vista nica, apropriado para o tracking de objectos que no variam muito a sua posio. Tracking de objectos Segmentao e Tracking
S4 ! Modelos activos de aparncia So gerados pela representao simultnea da forma e aparncia do objecto [36]. Em geral, a forma do objecto definida por uma srie de marcadores. similar representao por contornos, os marcadores podem estar no limite do objecto ou alternativamente, podem estar dentro da regio do objecto. Para cada marcador, armazenado um vector que contm a cor, textura ou magnitude do gradiente. Estes modelos requerem uma fase de treino onde as formas e aparncias so ensinadas usando um conjunto de amostras que contm, por exemplo, a principal componente de anlise. ! Modelos de aparncia multi-vista (MAM) estes modelos codificam diferentes vistas do objecto. Um mtodo para representar as diferentes vistas do objecto ser gerar o sub-espao das mesmas. Os mtodos de sub-espaos, por exemplo, a anlise de componentes principais (PCA) e a anlise em componentes independentes (ICA), tm sido usados para a representao de formas e aparncias [37] e [38]. Outro mtodo para obter as diferentes vistas ser treinando um conjunto de classificadores, por exemplo Support Vector Machines (SVM) [39] ou uma rede Bayesiana [40]. Uma limitao dos MAM que as diferentes vistas do objecto so necessrias em avano para a codificao. Geralmente existe uma grande relao entre a representao do objecto e o algoritmo de tracking. As representaes so escolhidas de acordo com o domnio que se pretende para a aplicao. Para o tracking de objectos que surgem como muito pequenos na imagem, a representao por pontos normalmente a mais apropriada. por exemplo em [41] usam a representao por pontos para o tracking de pssaros distantes. Para os objectos cujas formas podem ser aproximadas por elipses ou rectngulos, a representao de formas geomtricas primitivas so as mais indicadas. Em [27] usada uma representao elptica e a partir da mesma o histograma de cor do objecto calculado para modelar a sua aparncia. Para o tracking de objectos com formas complexas, por exemplo, humanos, a representao de contornos, silhuetas ou formas articuladas a indicada. Em [42] o tracking executado recorrendo s silhuetas numa aplicao de vigilncia.
SS 3.3.2 Seleco de caractersticas para o tracking
Seleccionar as caractersticas certas para o tracking essencial. De modo geral, o mais importante na escolha de uma caracterstica a sua unicidade, para que os objectos principais possam ser facilmente distinguidos dos restantes. A escolha de caractersticas est relacionada com a representao do objecto. Por exemplo, a cor usada como uma caracterstica nas representaes atravs de histogramas, enquanto para representaes baseadas em contornos so usadas as arestas dos objectos. Normalmente os algoritmos de tracking utilizam uma combinao de caractersticas, sendo as mais comuns as seguintes: ! Cor a cor aparente de um objecto influenciada principalmente por dois factores fsicos: a distribuio espectral da luminncia e a capacidade de reflexo do objecto. Em processamento de imagem utiliza-se geralmente o espao de cor RGB (red, green, blue) para representar cores. No entanto, o espao RGB no perceptvel uniformemente, ou seja, as diferenas entre as cores no espao RGB no correspondem s diferenas de cores percebidas pelos humanos [43]. Por outro lado os espaos de cor LUV (Luminance, U e V) LAB (Luminance A-B) e HSV (Hue, Saturation, Value) so uniformes ou aproximadamente uniformes mas so sensveis a rudo [44]. Em suma, no existe um consenso acerca de qual o espao de cor mais eficaz. Como tal encontra-se exemplos de aplicao de todos. ! Edges (arestas) as fronteiras dos objectos geram fortes transies de intensidade luminosa na imagem. Assim, a deteco de arestas usada para identificar estas mudanas. Uma propriedade importante das arestas que so muito menos sensveis a mudanas de luz que a cor. Os algoritmos que fazem o tracking baseado nas fronteiras dos objectos, normalmente usam as arestas como caracterstica representativa. Devido sua simplicidade e preciso, o mtodo mais popular de deteco por arestas o Canny Edge Detector [45]. Uma comparao de algoritmos de deteco de arestas pode ser encontrada em Bowyer [46]. ! Optical Flow (fluxo ptico) O fluxo ptico baseia-se em vectores de deslocamento que definem a translao de cada pixel numa regio. So calculados usando o brilho de cada pixel, assumindo que esse brilho deve ser aproximadamente constante em frames consecutivos [47]. O fluxo ptico usado normalmente como caracterstica em segmentao e tracking baseados Tracking de objectos Segmentao e Tracking
S6 em movimentos. As tcnicas mais populares de clculo de fluxo ptico so as de Horn e Schunck [47], Lucas e Kanade [48], Black e Anandan [49], e Szeliski e Couglan [50]. Foi feita uma avaliao dos vrios mtodos por Barron [51]. ! Textura a medida de variao de intensidade de uma superfcie que quantifica propriedades tais como suavidade e regularidade. Comparada cor, a textura requer mais processamento, pois tem de gerar os descritores. Existem vrios descritores de textura: Gray-Level Co-occurrence Matrices (GLCMs) [52] (um histograma em 2D que demonstra a co-ocorrncia de intensidades numa direco e distncia especfica), medio de texturas de Law [53], ou wavelets [54] (um banco de filtros ortogonais). Assim como as arestas, a textura tambm menos sensvel s mudanas de luz que a cor. Tendo em conta as representaes de tracking enunciadas e o objectivo da aplicao consideramos que a melhor forma de representar o corpo ser pelo modelo de formas articuladas. Este permite a separao das diversas componentes do corpo como pretendido. Como caracterstica, a mais relevante ser a cor para permitir ao bloco de extraco de caractersticas distinguir entre os vrios componentes. Assim, foi necessrio desenvolver um algoritmo de tracking capaz de tal representao.
3.4 Algoritmo de tracking
Este algoritmo recebe como entrada o resultado do algoritmo de segmentao foreground/background, que consiste numa sequncia de imagens binrias, onde o branco representa o foreground e o preto o background. A sua execuo consiste em trs subrotinas, explicadas de seguida:
1) Frame-Differencing (FD) Basicamente queremos identificar quais os pixels que passam de preto (P) para branco (B) em frames consecutivos. No entanto, isto no suficiente para separar os componentes (braos), porque se o movimento for demasiado lento existem pixels que se vo manter brancos dum frame para o outro, o que tambm importante detectar.
S7 Existem quatro combinaes de variao do pixel. Os pixels brancos apresentam o valor de 255, enquanto os pretos tm valor 0. Aplicando o FD obtm-se os seguintes valores (Tabela 2): Tabela 2 Transies entre frames consecutivas e respectivo valor do FD. Branco Branco (BB) Dif = 0 Preto - Preto (PP) Dif=0 Branco Preto (BP) Dif= 255 Preto Branco (PB) Dif= -255
A mudana PB fcil de detectar, a dificuldade est em diferenciar a transio BB da PP, pois estas tm o mesmo valor (zero). Para resolver este problema foi introduzido um parmetro de calibrao (WB), definido pelo utilizador. Basicamente este parmetro mede a quantidade de pixels brancos na imagem. Foi ento imposta a seguinte condio: Se ento est na transio BB. Se, por outro lado, significa que est na transio PP. Na situao BB considerado que existem suficientes pixels brancos para representar movimentos lentos. Neste caso o novo resultado obtido pelo FD ignorado e considera-se o resultado anterior vlido. A transio PP representa a situao em que nenhum objecto est presente. 2) Separao de componentes - Tem como funo agrupar pixels que pertenam a um mesmo componente entre eles. Para isso usado um algoritmo de seguimento. Comea-se por fazer uma pesquisa horizontal na imagem, caso seja encontrado algum pixel dum componente, iniciado o algoritmo de seguimento. O algoritmo pesquisa para cada pixel do componente todos os seus vizinhos, tentando ver se existe algum que tambm pertena ao componente. Caso encontre algum pixel vizinho que lhe pertena, o ponto anterior guardado numa stack 13 , passando agora a fazer-se pesquisa no novo pixel encontrado. Caso
13 Pilha de elementos neste caso a pilha LIFO (last in first out), ou seja o ultimo elemento colocado na pilha o primeiro a ser retirado. Algoritmo de tracking Segmentao e Tracking
S8 no se encontre nenhum pixel vizinho do mesmo componente, vai-se ao ponto anterior presente na stack e faz-se novamente a pesquisa pelos seus vizinhos, este algoritmo efectuado at que a stack esteja vazia. Obviamente que se um pixel considerado vizinho, j no pode ser pesquisado no ciclo seguinte. A Figura 15 permite visualizar o fluxograma de funcionamento do algoritmo.
Figura 15 Fluxograma de funcionamento do algoritmo de separao de componentes.
3) Colorao Por fim, necessrio colorir cada objecto de uma cor. Para isso basta atribuir valores diferentes aos pixels (entre 0 e 255), consoante o objecto a que pertencem.
S9 Na Figura 16 possvel visualizar a imagem de sada do algoritmo de segmentao que ser a entrada do algoritmo de tracking e o resultado aps a aplicao das subrotinas do mesmo.
a) b) c) Figura 16 a) Imagem de entrada para o algoritmo de tracking; b) Resultado da aplicao do FD e da separao de componentes; c) Colorao dos diferentes componentes
Desenvolvido o algoritmo, necessrio avaliar as suas capacidades. No ponto seguinte explicado o mtodo de avaliao e os respectivos resultados. 3.4.1 Resultados
O desempenho do algoritmo foi testado com quatro vdeos de diferentes dificuldades de tracking (Tabela 3). Tabela 3 Sequncias de vdeo de teste e respectiva dificuldade. Nome do vdeo Dificuldade de tracking Vdeo 1 Fcil Vdeo 2 Dficil Vdeo 3 Mdia Vdeo 4 Mdia
Nas sequncias de vdeo, o movimento executado principalmente no eixo do Y, no entanto o algoritmo est preparado para detectar movimento em qualquer direco. Os vdeos 2, 3 e 4 exibem mais rudo que o vdeo 1. O primeiro vdeo consiste numa bailarina a mover ambos os braos ao mesmo ritmo, mantendo o resto do corpo imvel. O segundo Algoritmo de tracking Segmentao e Tracking
4u o mais difcil pois consiste no movimento de ambos os braos a ritmos diferentes e com movimento do corpo. Nos vdeos 3 e 4 apenas se move um brao, mas com alteraes bruscas na velocidade do movimento. Para medir o desempenho do algoritmo foi criado manualmente o ground-truth. Na Figura 17 apresentada a comparao entre os resultados obtidos pelo algoritmo e o que foi gerado pelo ground-truth para os quatro vdeos. Na Tabela 4 apresentam-se tambm os resultados em termos de percentagem.
Figura 17 Resultados do algoritmo (a azul) e do ground-truth (a rosa).
Tabela 4 Resultados de desempenho do algoritmo de tracking em percentagem. Nome uo viueo Besempenho ue !"#$%&'( viueo 1 98,9% viueo 2 Su,8% viueo S 71,7% viueo 4 9u,7%
41
3.5 Resumo e Anlise Crtica
Neste captulo foram estudados e comparados os principais algoritmos de segmentao e tracking. Tendo em conta o estudo efectuado e o compromisso entre velocidade e qualidade de segmentao, concluiu-se que o melhor mtodo de segmentao para a aplicao em questo ser a Mistura de Gaussianos. Este foi implementado em C++, baseado em [55] e com recurso biblioteca do OpenCV. Para o tracking do corpo, tal como mencionado anteriormente, a representao adoptada foi o modelo de formas articuladas. A cor de cada componente permitir a extraco de valores relevantes para o passo seguinte, a estimao de ritmo. importante salientar que a qualidade do tracking varia bastante com complexidade dos movimentos executados. Como se pde verificar pela Tabela 4, o vdeo de complexidade difcil, fez com que o tracking tenha um desempenho de apenas 50,8%. Resumo e Anlise Crtica Segmentao e Tracking
42
4S
Captulo 4 Estimao de ritmo
Neste captulo desenvolvido um estudo das vrias caractersticas a extrair de um corpo em movimento, de forma a estimar o ritmo a que se move. So comparados os principais algoritmos que permitem essa estimao atravs da frequncia fundamental de um sinal peridico, em tempo real. apresentada tambm uma abordagem alternativa ao clculo do ritmo.
4.1 Ritmo e o Corpo Humano
Existem muitas definies para ritmo, mas simplesmente pode interpretar-se como a alternncia de sons no tempo. Em [11] podemos verificar que, segundo Paul Fraisse (1982), a palavra ritmo vem do grego rhythmos (ritmo) e rheo (fluir). Rhythmos surge como uma palavra-chave na filosofia Ioniana com o significado de forma, mas uma forma improvisada, momentnea e modificvel; literalmente significa um modo particular de fluir. Plato (347 A.C.) aplicou este termo a movimentos corporais, os quais, tais como os sons musicais, podem ser descritos numericamente. No seu livro, As Leis, definiu ritmo como a ordem no movimento e Fraisse, partindo dessa definio definiu ritmo como a percepo de uma ordem. Fraisse entende tambm que o ritmo tem um factor de previsibilidade que o distingue de arritmia, ou seja, na presena de uma sequncia rtmica, possvel prever ou antecipar a sua evoluo. Estimao de Ritmo
44 Pode-se assim afirmar que a associao entre o ritmo musical e o movimento humano data desde o incio da civilizao Grega. Faz sentido pois, parafraseando Guedes [11], impossvel dissociar o papel do corpo e movimento na percepo e execuo do ritmo musical. Usamos movimentos corporais para produzir ritmos musicais (como tocar um instrumento) e normalmente respondemos (consciente ou inconscientemente) ao ritmo musical com movimentos, desde o mais simples, como balancear ligeiramente a cabea, at ao danar ao som da msica. Guedes constata, do mesmo modo, que possvel asseverar que a dana pode produzir ritmo. Quando se observa algum a danar, fcil perceber na dana padres de movimento organizados no tempo e espao. Certas vezes, o grau de sincronizao entre os movimentos corporais e a msica tal que d a impresso que os movimentos esto a fazer um mapa espacial do ritmo musical. Estes aspectos sugerem que existem realizaes rtmicas em ambas as formas de arte e motivam a investigao das similaridades entre o ritmo musical e o ritmo na dana. Os movimentos peridicos duma dana podem ser detectados, capturando-os de uma forma no-invasiva com uma cmara de vdeo conectada a um computador. O computador analisa o sinal de vdeo e cria a comunicao necessria para uma interaco, em tempo real, entre msicos e bailarinos. Nas prximas trs seces sero explicadas as condies e algoritmos que permitem calcular o ritmo desses movimentos. 4.2 Caractersticas que permitem estimar o ritmo
Aps o tracking do corpo humano e da diviso das suas componentes principais (braos, pernas, tronco, cabea) essencial encontrar medidas que permitem mapear no tempo os movimentos das mesmas. Caractersticas como as coordenadas do ponto central (x,y) do blob em cada frame so fundamentais, mas alm dessas existem outras como o tamanho ou inclinao do blob que podem fornecer informaes importantes acerca do seu movimento. Tendo em conta os aspectos supracitados e visto que neste campo no existem muitas experincias documentadas, foi desenvolvido um estudo baseado numa anlise das componentes x e y. Para esta investigao foram criadas sequncias de teste com movimentos em arco: verticais, horizontais e diagonais. O movimento realizado foi
4S peridico e com frequncias de 0,5 Hz, 1Hz e 2Hz ou seja, cerca de 30, 60 ou 120 batidas por minuto (bpm) respectivamente. Atravs da aplicao criada no mbito deste projecto, explicada no captulo seguinte, a rea e as coordenadas do centro de massa do objecto foram extradas e registadas (Figura 18).
Figura 18 Sequncia de teste esquerda e extraco das coordenadas do centro de massa e da rea do objecto direita. Ao observar, por exemplo, a sequncia de teste em arco vertical, verificamos que as coordenadas em x (horizontais) apresentam uma variao de amplitude demasiado baixa e inconstante para providenciar clculos exactos. Pelo contrrio, as coordenadas em y (verticais) tm uma amplitude suficiente para uma anlise rigorosa (Figura 19).
Figura 19 Grfico da variao das coordenadas em x e em y, respectivamente. Frequncia de 1Hz.
Caractersticas que permitem estimar o ritmo Caractersticas que permitem estimar o ritmo Estimao de Ritmo
46 Uma vez que os movimentos podem ocorrer em qualquer direco, torna-se essencial correlacionar as coordenadas de tal modo que, qualquer que seja o movimento capturado, os dados providenciem clculos pertinentes. Assim, foram testadas solues que permitem essa relao, das quais se destacam a equao da mdia, (Figura 20 (a)) e a equao da norma de um vector (Figura 20 (b)).
(a) (b) Figura 20 Grfico da equao da mdia (a) e da equao das normas (b).
Por consulta dos grficos podemos constatar que a equao da norma apresenta um offset ligeiramente mais considervel. A ambas foram aplicados os algoritmos que nos permitem extrair a frequncia fundamental do movimento (FFT e Algoritmo de Goertzel, descritos na seco 4.3). Verifica-se que originam resultados precisos.
47 4.2.1 Resultados
Novamente, devemos salientar que o vdeo de teste tem uma frequncia de aproximadamente 1Hz e ser este valor que devemos obter aps o tratamento dos dados. A equao da mdia providencia uma frequncia fundamental de 0,9804Hz com amplitude de 14,43 (Figura 21).
Figura 21 Grfico da variao da frequncia calculada com recurso equao da mdia, frequncia fundamental igual a 0,9804 1Hz.
Relativamente equao da norma, verificou-se que esta permitia determinar 0,9804Hz de frequncia fundamental com amplitude de 14,77 (Figura 22).
Caractersticas que permitem estimar o ritmo Estimao de Ritmo
48
Figura 22 Grfico da variao da frequncia calculada com recurso equao das normas, frequncia fundamental = 0,9804Hz 1Hz.
4.2.2 Uma abordagem alternativa ao clculo do ritmo
Todas as caractersticas de estimao do ritmo apresentadas at ao momento baseiam- se no seguimento espacial do objecto de interesse ao longo do tempo. O conhecimento da trajectria do objecto p(x,y,t), sob qualquer uma das formas apresentadas no Captulo 3 (pontos, silhueta, etc.), permite calcular sinais temporais (a posio x do centro de massa, a posio y do centro de massa, a distncia do centro de massa do objecto origem, etc) que tentam capturar o ritmo do objecto. Um problema com estas abordagens que qualquer uma delas no detecta determinado tipo de movimentos. Exemplifiquemos com a distncia do centro de massa do objecto origem: se o objecto se mover sobre uma circunferncia de centro na origem, este sinal ser uma constante no tempo. Da que no seja possvel estimar o ritmo a partir deste sinal. Uma abordagem alternativa no tentar seguir a evoluo espacial do objecto mas sim fixarmo-nos numa posio (x,y) e estudarmos a evoluo do valor observado nessa posio. Se nenhum objecto passar por essa posio, o sinal observado ser o sinal nulo. Contudo,
49 se um dado objecto passar periodicamente por essa posio, o sinal observado nessa posio fixa ser um sinal peridico com o perodo do movimento. Mesmo que dois ou mais objectos passem periodicamente por essa posio fixa, possvel estimar o perodo do movimento dos objectos. Para tal, basta criar um sinal para cada objecto presente; o sinal captura a evoluo da etiqueta (cor) de um dado objecto. Por exemplo, se numa dada posio (x,y), entre t=0 e t=2, estivesse presente o objecto A, entre t=2 e t=4 no estivesse presente nenhum objecto, entre t=4 e t=5 estivesse presente o objecto B, entre t=5 e t=7 estivesse o objecto A, entre t=7 e t=10 o objecto C, repetindo-se a partir daqui, obteramos os sinais representados na Figura 23.
Figura 23 Exemplo da evoluo temporal do valor dum determinado pixel numa dada posio (x,y).
A inexistncia de informao para preferir uma posio (x,y) em relao a outra para fazer esta estimativa e de forma a obter-se uma estimativa robusta leva a que se execute esta anlise para cada posio (x,y) da imagem. Finalmente, seria necessrio fundir as diversas estimativas obtidas em cada posio. Esta tcnica acaba por se revelar Caractersticas que permitem estimar o ritmo Estimao de Ritmo
Su computacionalmente pesada, dificultando um desempenho em tempo real. Como tal, o seu estudo no foi aprofundado nesta tese.
4.3 Algoritmos de estimao de ritmo
Extrapolados os dados acerca do objecto, e analisando o grfico da evoluo temporal das suas coordenadas (Figura 24), torna-se evidente que estamos perante um sinal peridico. Assim, tal como foi referido no estado da arte, Guedes [11] constata que se aplicar um algoritmo capaz de detectar as periodicidades deste sinal, como a Transformada Rpida de Fourier (Fast-Fourier Transform - FFT), por exemplo, pode-se detectar o ritmo presente nesse sinal, calcular a sua frequncia fundamental e assim obter o tempo que pode ser usado para fazer algo relevante musicalmente, tal como a gerao de ritmos a partir do movimento de dana ou possibilitar ao bailarino o controlo, em tempo real, do tempo musical (pag. 16).
Figura 24 Grfico da evoluo temporal das coordenadas do objecto em anlise.
S1 Mas, uma vez que o clculo de uma FFT implica um processamento demasiado elevado, pois no permite escolher a banda de frequncias em que se pretende executar, foi investigada tambm uma alternativa mais eficaz, o algoritmo de Goertzel. Este algoritmo capaz de calcular a DFT (Transformada de Fourier Discreta) de uma banda limitada de frequncia mais rapidamente que a FFT. Neste projecto foram testados e comparados ambos os algoritmos. 4.3.1 Algoritmo FFT
A Transformada Rpida de Fourier um algoritmo computacional optimizado para implementar a Transformada Discreta de Fourier num vector de amostras. Permite determinar a frequncia dum sinal discreto, representar a sua evoluo no domnio das frequncias e calcular a frequncia fundamental do mesmo. Este algoritmo baseado na derivao do algoritmo de FFT desenvolvido por Danielson e Lanczos [56]. Eles demonstraram que uma transformada discreta de Fourier de tamanho N pode ser reescrita como a soma de duas transformadas discretas de tamanho , uma delas formada pelos ndices pares do vector original e a outra pelos ndices mpares. A demonstrao simples [57]: (5)
(6)
(7)
(8)
Na ltima linha , o k-gsimo valor da transformada de Fourier de tamanho formada pelos componentes pares (even) da original. Do mesmo modo a a correspondente transformada formada pelos componentes mpares (odd) e . O trunfo do Teorema de Danielson-Lanczos que pode ser usado recursivamente. Podemos dividir cada um dos componentes e novamente nos seus ndices pares e mpares, Algoritmos de estimao do ritmo Estimao de Ritmo
S2 obtendo assim vectores de tamanho . Ou seja, podemos definir e como a transformada discreta dos pontos que so respectivamente par-par (even-even) e par- mpar (even-odd) nas sucessivas divises do vector original. Assim se garantirmos um vector original de tamanho podemos aplicar consecutivamente o Teorema de Danielson-Lanczos at que a transformada seja apenas de tamanho 1. Assim, a transformada ser simplesmente calculada sobre o valor elementar de entrada para o respectivo ndice do vector de sada . Uma vez obtido o vector de sada, para descobrir a frequncia fundamental do sinal, basta calcular o mximo absoluto do vector e a frequncia fundamental ser dada pelo ndice do vector sobre dois.
4.3.2 Algoritmo de Goertzel
O algoritmo de Goertzel permite calcular a DFT de uma banda de frequncias eficazmente [58]. Essa banda pode ser especificada recorrendo a uma cadeia de filtros passa-banda deixando assim de fora as frequncias que no interessam para o clculo. Neste caso, a banda vai da frequncia de 0,66Hz a 3,33Hz 14 que equivale a respectivamente 40bpm e 200bpm. O espectro de magnitude e fase do movimento calculado em duas fases. A primeira consiste em passar as coordenadas de variao de movimento pela cadeia de filtros passa- banda. Segundo [59] a equao s diferenas que define o filtro passa-banda de segunda ordem : (9)
onde , , a frequncia central, a largura de banda, a taxa de amostragem e = 2,718 (nmero de Euler).
14 De acordo com Parncutt ([11] Cap. II) a sensao de ritmo surge da complexa interaco de todas as periodicidades envolvidas numa dada sequncia de ritmo. Esta sensao est tambm dependente da nossa memria de curto prazo, sendo que deixa de existir para valores aproximadamente acima dos 1800ms e abaixo dos 200ms (Fraisse, 1982; Parncutt, 1987).
SS A segunda fase consiste em extrair a parte real e imaginria do sinal filtrado por aplicao do algoritmo de Goertzel [11]. As partes real e imaginria do filtro so calculadas da seguinte forma: (10) (11) A magnitude e fase so dadas por: (12) (13)
Uma vez obtido o espectro das frequncias do movimento, este comparado com o espectro de um impulso de 1Hz previamente estabelecido e por correlao cruzada a frequncia fundamental calculada.
4.3.3 Implementao e teste dos algoritmos de estimao de ritmo
Para implementao dos algoritmos foram criados dois objectos externos para o Max. A FFT foi programada de raiz baseada na proposta de [57] e o algoritmo de Goertzel foi implementado a partir do objecto criado previamente por Guedes em 2005 (o m.bandit). Para testar a execuo e preciso de ambos os algoritmos recorreu-se s sequncias de teste previamente mencionadas (arco vertical e arco diagonal, s frequncias de 0,5Hz, 1Hz e 2Hz).
Algoritmos de estimao do ritmo Estimao de Ritmo
S4 4.3.4 Resultados
Os resultados encontram-se nas tabelas seguintes (Tabela 5 e 6). Estas contm, para cada sequncia, o valor da frequncia fundamental e respectiva amplitude obtida pela FFT e a frequncia fundamental obtida, por correlao cruzada, pelo algoritmo de Goertzel. Tabela 5 Resultados dos algoritmos FFT e Goertzel na anlise da frequncia fundamental da sequncia de vdeo vertical. Sequncia Vertical 0,5Hz 1Hz 2Hz FFT FFT FFT Algoritmos F(Hz) Amp. Goertzel F(Hz) F(Hz) Amp. Goertzel F(Hz) F(Hz) Amp. Goertzel F(Hz) Y 0,471 40,81 Idle 0,980 32,26 1,006 2,078 28,10 2,1 X 0,039 5,33 idle 0,039 6,48 idle 0.039 6,53 idle
SS Na anlise das Tabelas 5 e 6 ter de se ter em ateno que o algoritmo de Goertzel est especificado para procurar valores entre 0,66Hz e 3,33Hz, por isso que na sequncia a 0,5Hz surge a palavra idle (parado). Tambm se pode constatar que os valores de frequncia fundamental da FFT praticamente no variam nas diferentes coordenadas/equaes utilizadas. No entanto, o pico de amplitude de cada valor varia ligeiramente, sendo que o da equao da norma sempre superior ao da mdia. Daqui podemos concluir que a equao da norma prevalece sobre a da mdia. Por outro lado, na sequncia diagonal as coordenadas isoladas fornecem valores de frequncia fundamental com maior amplitude que a equao da norma. No entanto, na sequncia vertical a coordenada em x fornece resultados insatisfatrios. Assim de forma a garantir que movimentos em qualquer direco fornecem resultados precisos de frequncia, optou-se pela equao da norma. Relativamente aos algoritmos FFT e Goertzel, de salientar que ambos promovem bons resultados, sendo que a FFT ligeiramente mais precisa. No entanto, para providenciar os resultados enunciados nas tabelas 5 e 6 a FFT utiliza uma janela de 512 amostras. O algoritmo de Goertzel, sendo baseado em filtros passa-banda recursivos, constri o espectro utilizando as 2 amostras mais recentes do sinal, s precisando dum perodo completo de movimento para fornecer resultados precisos (no caso de movimento com perodo de 1Hz e taxa de amostragem de 20fps necessita de apenas 20 amostras). Esta caracterstica torna-o bastante mais rpido que a FFT. Tendo em conta a limitao de tempo real que se pretende para este projecto, o algoritmo de Goertzel apresenta-se como a metodologia a adoptar.
4.4 Resumo e Anlise Crtica
Nesta seco foram enunciadas e comparadas as principais equaes que permitem correlacionar um sistema de coordenadas. Foi tambm exposta uma metodologia alternativa baseada apenas no cruzamento de objectos sobre determinados pixels da imagem. Do mesmo modo foram descritos detalhadamente os algoritmos desenvolvidos e testados para a estimao da frequncia fundamental de um sinal em tempo real. Algoritmos de estimao do ritmo Estimao de Ritmo
S6 Foi escolhida a equao das normas para relacionar as coordenadas e o algoritmo de Goertzel para o clculo da frequncia fundamental.
S7
Captulo 5 Integrao
Aps a anlise cuidada, acerca de qual o algoritmo ou mtodo ideal para desempenhar as funes de cada bloco proposto no primeiro captulo (Figura 1) neste captulo descrito como foi desenvolvido e integrado o sistema.
5.1 Plataforma de Desenvolvimento
A plataforma escolhida para o desenvolvimento e integrao da aplicao foi o MAX/MSP/Jitter 15 da Cycling74. A escolha foi baseada na capacidade do MAX executar, em tempo real, as vrias funes requeridas, assim como o facto de ser uma das plataformas mais utilizadas por compositores e coregrafos entusiastas da dana interactiva. Alm disso, uma vez que modular, permite facilmente que os blocos criados sejam integrados entre si ou, futuramente, com outras plataformas como o Eyesweb ou o Isadora.
5.2 Arquitectura do Sistema
De seguida apresentada uma breve descrio dos blocos que compem a arquitectura do sistema, como representado na Figura 25. A pormenorizao de cada um dos blocos/algoritmos realizada nas restantes seces deste captulo.
15 Daqui em diante o MAX/MSP/Jitter ser apenas referenciado como Max. Integrao
S8
Figura 25 Arquitectura do sistema RitMoVdeo.
5.2.1 Segmentao background/foreground
De acordo com o estudo descrito no captulo trs, a segmentao de imagens foi efectuada com base no algoritmo de Mistura de Gaussianos. Com recurso biblioteca do OpenCv o software foi desenvolvido 16 em C++ e separa o background do foreground usando a metodologia explicada no ponto 3.1.2 desta tese (pag. 25).
16 Agradeo a colaborao do Engenheiro Hlder Oliveira nesta tarefa.
S9 5.2.2 Tracking
A nvel de tracking a implementao foi efectuada tambm em C++ e recorrendo biblioteca do OpenCv. O algoritmo foi implementado conforme descrito na seco 3.4 (pag. 34). 5.2.3 Extraco e anlise de caractersticas
De entre as vrias caractersticas possveis de extrair, reconhecemos que as de maior interesse neste caso seriam as coordenadas do centro de massa de cada componente, assim como a sua rea. Nesse sentido foram utilizados ou desenvolvidos objectos no Max responsveis por: 1) Clculo da rea de cada componente
A rea de cada componente pode ser encontrada simplesmente contando o nmero de pixels que cada componente contm. Felizmente a biblioteca de imagem CV.Jit para o MAX, disponibilizada por Jean Marc Pelletier [60], j contm um objecto capaz de fazer esta contagem.
2) Clculo centro de massa de cada componente
Para encontrar o centro de massa de cada componente recorreu-se equao dos momentos centrados definida da seguinte forma: (14) Onde o I(x,y) indica se o pixel pertence ao objecto ou no. Se pertencer I=1 seno I=0. O centro de massa em x obtido por resoluo da equao para o momento e o centro de massa em y para o momento . Se quisermos validar o clculo da rea para cada componente basta fazer o momento . A partir dos momentos podemos tambm obter qual a orientao de cada objecto. Para isso basta calcular o ngulo que o objecto faz com o eixo dos xx. Arquitectura do Sistema Integrao
6u O ngulo pode ser calculado pela seguinte equao: (15)
A partir do ngulo podemos fazer uma mudana de base de coordenadas, que ser necessrio para destacar a inclinao dos objectos, segundo um rectngulo. Definido esse rectngulo possvel saber, para cada, qual o seu comprimento e altura. A mudana de coordenas feita atravs da frmula: (16)
O sistema de coordenadas est evidenciado na Figura 26:
Figura 26 Sistema de coordenadas que permite calcular a mudana de base.
61 Atravs da definio dos pontos na nova base podemos desenhar o rectngulo que cobre toda a rea do componente como exemplificado na Figura 27. Rectngulo:
Figura 27 Rectngulo que limita o componente.
3) Anlise das caractersticas
A anlise das caractersticas foi efectuada tendo em conta a equao da norma de um vector. Para isso foi desenvolvido um objecto no Max. Este tem como entrada as coordenadas x e y do centro de massa do objecto e como sada o resultado da equao da norma das coordenadas. 5.2.4 Estimao de ritmo
As caractersticas processadas no ponto anterior so enviadas para o objecto responsvel pela extraco da frequncia fundamental do movimento. Este objecto implementa o algoritmo de Goertzel tal como definido na seco 4.3.2 (pag. 52). Este tem como sada a frequncia fundamental e os primeiros quatro harmnicos. 5.2.5 Execuo Musical
Para uma percepo auditiva e visual do ritmo foi criado um objecto que calcula as batidas por minuto correspondentes frequncia e executa um trecho musical a esse tempo. Arquitectura do Sistema Integrao
62 5.3 Dificuldades e Limitaes
Uma limitao deste projecto est no cenrio de utilizao, conveniente que este seja controlado. O ideal ser um cenrio esttico de uma s cor e o uso de uma cor distinta do mesmo para o figurino do bailarino. O tracking revela um desempenho mdio para sequncias complexas. Conforme se exemplifica na Figura 28, se ocorre um movimento demasiado brusco o algoritmo no consegue efectuar o tracking correcto (deveria manter a cor azul e o rectngulo em todas as imagens).
Figura 28 Sequncia de 4 imagens em que o tracking falha na colorao e delimitao do objecto.
A nvel da extraco das caractersticas a equao da norma apresenta uma lacuna. Caso o movimento seja puramente circular as coordenadas em x e y compensam-se no clculo e a equao providencia sempre o mesmo resultado ao longo do tempo. Obviamente que a execuo de um movimento circular perfeito repetidamente algo improvvel num humano, mas no deixa de ser uma limitao. O aperfeioamento da tcnica de extraco de caractersticas baseada em pixels poder permitir ultrapassar estas limitaes. Por fim, a principal dificuldade deste projecto que tudo tem de ser executado em tempo real. A segmentao, extraco de caractersticas, determinao da frequncia fundamental e controlo do ritmo, tudo isto tem de ser realizado com o mnimo atraso temporal relativamente realidade captada. Esta caracterstica foi o maior desafio no desenvolvimento deste projecto. Alm destas, existem outras limitaes que ainda no foram totalmente superadas, como uma segmentao e uma separao das diversas componentes mais robusta.
6S
Captulo 6 Concluses e Perspectivas de Trabalho Futuro
Para o tempo disponibilizado para este projecto (20 semanas), creio que os objectivos foram alcanados e foi desenvolvido trabalho importante em diversas reas. O intuito do projecto RitMoVdeo era construir uma cadeia de blocos que permitisse a anlise de movimentos presentes numa sequncia de vdeo e o clculo do ritmo desses movimentos, em tempo real. Para cada bloco foram estudados e comparados os principais algoritmos. Uma vez determinadas as metodologias a utilizar, estas foram integradas na cadeia de blocos e o RitMoVdeo ficou operacional. O projecto funciona bem, mas tem as suas limitaes. No entanto, estas podem ser ultrapassadas com um pouco mais de tempo de investigao e desenvolvimento.
6.1 Trabalho Futuro
Como trabalho futuro, uma das prioridades dever ser tornar a separao das componentes mais robusta. O tracking apresenta um desempenho mdio para sequncias complexas. A nvel da equao que relaciona as coordenadas, seria interessante eliminar a lacuna previamente referida, talvez atravs do desenvolvimento de uma equao de regresso linear ou atribuindo pesos a cada coordenada tendo em conta a quantidade de movimento Concluses e Perspectivas de Trabalho Futuro
64 efectuada. O mtodo de extraco de ritmo atravs do posicionamento de pixels enunciado anteriormente tambm se pode revelar como uma boa alternativa. Seria interessante tambm aumentar o nvel de complexidade do ritmo gerado automaticamente, talvez atravs da composio de melodias que, de certa forma, enriquecessem o sentimento da exibio.
6S
Referncias
[1] - Mulder Axel, Human movement tracking technology, Report 94-1 of the Hand Centered Studies of Human Movement Project, Burnaby, Columbia Britnica, Canad: Universidade Simon Fraser, Julho 1994. [2] - http://music.arts.uci.edu/dobrian/motioncapture/, acesso em 25/01/2009. [3] Mark Feldmeier, Mateusz Malinowski, Joseph A. Paradiso, Large Group Musical Interaction using Disposable Wireless motion sensors, (2002) [4] - U. Enke. DanSense: Rhythmic analysis of dance movements using acceleration-onset times. Master's thesis, RWTH Aachen University, Aachen, Alemanha, Setembro 2006. [5] - http://music.arts.uci.edu/dobrian/motioncapture/mcm.htm, acesso em 25/01/2009. [6] www.vicon.com, acesso em 25/01/2009. [7] Atsushi Nakazawa, Katsushi Ikeuchi, Takaaki Shiratori, Detecting Dance Motion Structure Using Motion Capture and Musical Information, Instituto de Cincia Industrial, Universidade de Tokyo 4-6-1, Komaba, Meguro-ku, Tokyo 153-8505, Cybermedia Center, Universidade de Osaka 1-32, Machikaneyama, Toyonaka, Osaka 560-0043, Japo. [8] Mikhail Gorman, Margrit Betke, Elliot Saltzman, e Amir Lahav, Music Maker A Camera-based Music Making Tool for Physical Rehabilitation, Computer Science Technical Report No. 2005-032, Universidade de Boston. [9] - http://www.infomus.dist.unige.it/EywMain.html, acesso em 25/01/2009. [10] Antonio Camurri, Carol L. Krumhansl, Barbara Mazzarino, Gualtiero Volpe, An Exploratory Study of Anticipating Human Movement in Dance, 2nd International Referncias
66 Symposium on Measurement, Analysis and Modeling of Human Functions, 1st Mediterranean Conference on Measurement, Genova, Itlia, Junho de 2004. [11] Guedes, C. Mapping Movement to Musical Rhythm: A Study in Interactive Dance. Ph.D. Thesis, Universidade de Nova-Iorque, Nova-Iorque, 2005. [12] - Oppenheim, A. V. & Schafer, R. V. Digital Signal Processing, Prentice-Hall International, Londres, 1975. [13] - Naveda, L. and M. Leman (2008). Representation of Samba dance gestures, using a multi-modal analysis approach. 5th International Conference on Enactive Interfaces. Pisa, European Enactive Network of Excellence ENACTIVE. [14] - http://www.cycling74.com/products/max5, acesso em 25/01/2009. [15] http://puredata.info/ , acesso em 25/01/2009. [16] http://www.troikatronix.com/isadora.html, acesso em 25/01/2009. [17] http://www.processing.org/, acesso em 25/01/2009 [18] - R. F. Gonzalez, R. E. Woods, Digital Image Processing, Addison-Wesley Publishing Company, 1993. [19] Lus F. Teixeira, Jaime S. Cardoso, Lus Corte-Real, Object Segmentation Using Background Modelling and Cascaded Change Detection, Journal of Multimedia, vol. 2, no. 5, Setembro 2007 [20] - D.-S. Lee, Effective Gaussian mixture learning for video background subtraction, IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 27, no. 5, pp. 827832, Maio 2005. [21] - A. Elgammal, D. Hardwood, e L. Davis, Non-parametric model for background subtraction, Proceedings of European Conference on Computer Vision, vol. 2, 2000, pp. 751767. [22] - L. Li, W. Huang, I. Y.-H. Gu, e Q. Tian, Statistical modeling of complex backgrounds for foreground object detection, IEEE Transactions on Image Processing, vol. 13, no. 11, pp. 14591472, Novembro 2004.
67 [23] - J. S. Cardoso and L. Corte-Real, Toward a generic evaluation of image segmentation, IEEE Transactions on Image Processing, vol. 14, pp. 17731782, Novembro 2005. [24] - , A measure for mutual renements of image segmentations, IEEE Transactions on Image Processing, vol. 15, pp. 23582363, Agosto 2006. [25] Yilmaz, A., Javed, O., and Shah, M. 2006. Object tracking: A survey. ACM Comput. Surv. 38, 4, Article 13, Dezembro 2006 [26] - VEENMAN, C., REINDERS, M., AND BACKER, E. 2001. Resolving motion correspondence for densely moving points. IEEE Trans. Patt. Analy. Mach. Intell. 23, 1, 5472. [27] - SERBY, D., KOLLER-MEIER, S., AND GOOL, L. V. 2004. Probabilistic object tracking using multiple features. In IEEE International Conference of Pattern Recognition (ICPR). 184187. [28] - COMANICIU, D., RAMESH, V., AND MEER, P. 2003. Kernel-based object tracking. IEEE Trans. Patt. Analy. Mach. Intell. 25, 564575. [29] YILMAZ, A., LI, X., AND SHAH, M. 2004. Contour based object tracking with occlusion handling in video acquired using mobile cameras. IEEE Trans. Patt. Analy. Mach. Intell. 26, 11, 15311536. [30] - ALI, A. AND AGGARWAL, J. 2001. Segmentation and recognition of continuous human activity. In IEEE Workshop on Detection and Recognition of Events in Video. 2835. [31] - COOTES, T., EDWARDS, G., AND TAYLOR, C. 2001. Robust real-time periodic motion detection, analysis, and applications. IEEE Trans. Patt. Analy. Mach. Intell. 23, 6, 681685. [32] - ZHU, S. AND YUILLE, A. 1996. Region competition: unifying snakes, region growing, and bayes/mdl for multiband image segmentation. IEEE Trans. Patt. Analy. Mach. Intell. 18, 9, 884900. [33] - PARAGIOS, N. AND DERICHE, R. 2002. Geodesic active regions and level set methods for supervised texture segmentation. Int. J. Comput. Vision 46, 3, 223247. [34] - ELGAMMAL, A., DURAISWAMI, R., HARWOOD, D., AND DAVIS, L. 2002. Background and foreground modeling using nonparametric kernel density estimation for visual surveillance. Proceedings of IEEE 90, 7, 11511163. Referncias Referncias
68 [35] - FIEGUTH, P. AND TERZOPOULOS, D. 1997. Color-based tracking of heads and other mobile objects at video frame rates. In IEEE Conference on Computer Vision and Pattern Recognition (CVPR). 2127. [36] - EDWARDS, G., TAYLOR, C., AND COOTES, T. 1998. Interpreting face images using active appearance models. In International Conference on Face and Gesture Recognition. 300305. [37] - MUGHADAM, B. AND PENTLAND, A. 1997. Probabilistic visual learning for object representation. IEEE Trans. Patt. Analy. Mach. Intell. 19, 7, 696710. [38] - BLACK, M. AND JEPSON, A. 1998. Eigentracking: Robust matching and tracking of articulated objects using a view-based representation. Int. J. Comput. Vision 26, 1, 6384. [39] - AVIDAN, S. 2001. Support vector tracking. In IEEE Conference on Computer Vision and Pattern Recognition (CVPR). 184191. [40] - PARK, S. AND AGGARWAL, J. K. 2004. A hierarchical bayesian network for event recognition of human actions and interactions. Multimed. Syst. 10, 2, 164179. [41] - SHAFIQUE, K. AND SHAH, M. 2003. A non-iterative greedy algorithm for multi-frame point correspondence. In IEEE International Conference on Computer Vision (ICCV). 110 115. [42] - HARITAOGLU, I., HARWOOD, D., AND DAVIS, L. 2000. W4: real-time surveillance of people and their activities. IEEE Trans. Patt. Analy. Mach. Intell. 22, 8, 809830. [43] - PASCHOS, G. 2001. Perceptually uniform color spaces for color texture analysis: an empirical evaluation. IEEE Trans. Image Process. 10, 932937. [44] - SONG, K. Y., KITTLER, J., AND PETROU, M. 1996. Defect detection in random color textures. Israel Verj. Cap. J. 14, 9, 667683. [45] - CANNY, J. 1986. A computational approach to edge detection. IEEE Trans. Patt. Analy. Mach. Intell. 8, 6, 679698. [46] - BOWYER, K., KRANENBURG, C., AND DOUGHERTY, S. 2001. Edge detector evaluation using empirical roc curve. Comput. Vision Image Understand. 10, 77103. [47] - HORN, B. AND SCHUNK, B. 1981. Determining optical ow. Artic. Intell. 17, 185 203.
69 [48] - LUCAS, B. D. AND KANADE., T. 1981. An iterative image registration technique with an application to stereo vision. In International Joint Conference on Articial Intelligence. [49] - BLACK, M. AND ANANDAN, P. 1996. The robust estimation of multiple motions: Parametric and piecewise- smooth ow elds. Comput. Vision Image Understand. 63, 1, 75104. [50] SZELISKI, R. AND COUGHLAN, J. 1997. Spline-based image registration. Int. J. Comput. Vision 16, 1-3, 185203. [51] - BARRON, J., FLEET, D., AND BEAUCHEMIN, S. 1994. Performance of optical ow techniques. Int. J. Comput. Vision 12, 4377. [52] - HARALICK, R., SHANMUGAM, B., AND DINSTEIN, I. 1973. Textural features for image classication. IEEE Trans. Syst. Man Cybern. 33, 3, 610622. [53] - LAWS, K. 1980. Textured image segmentation. PhD thesis, Electrical Engineering, Universidade da Califrnia do Sul. [54] - MALLAT, S. 1989. A theory for multiresolution signal decomposition: The wavelet representation. IEEE Trans. Patt. Analy. Mach. Intell. 11, 7, 674693. [55] P. KadewTraKuPong and R. Bowden,An improved adaptive background mixture model for real-time tracking with shadow detection, in Proc. 2nd European Workshp on Advanced Video-Based Surveillance Systems, 2001 [56] - J. W. Cooley and J. W. Tukey. An algorithm for the machine calculation of complex Fourier series. Mathematics of Computation, 19:297301, 1965 [57] - William H. Press, Saul A. Teukolsky, William T. Vetterling and Brian P. Flannery, Numerical Recipes: The Art of Scientific Computing, Third Edition, Cambridge University Press [58] - Blahut, R. (1985). Fast algorithms for digital signal processing. Reading, MA: Addison-Wesley Publishing Company [59] - Tempelaars, S., Signal processing, speech and music, Swets & Zeitlinger, Lisse, The Netherlands, 1996 [60] - http://www.iamas.ac.jp/~jovan02/cv/, acesso em 27/01/2009