Vous êtes sur la page 1sur 10

SISTEMA DE VISO ESTREO EM TEMPO REAL Juliano Tusi Amaral Lagan Pinto; Vanderlei Cunha Parro Aluno de Iniciao

o Cientfica da Escola de Engenharia Mau (EEM/CEUN-IMT); Professor da Escola de Engenharia Mau (EEM/CEUN-IMT). Resumo. Este trabalho apresenta o desenvolvimento de um sistema de viso computacional com reconhecimento de imagem em tempo real. Deseja-se reconhecer uma bola laranja de tnis de mesa no espao prevendo sua trajetria futura. Todo sistema descrito foi prototipado no software MATLAB e realizado em uma mquina executando algoritmos escritos na linguagem de programao C++. Introduo A viso computacional a cincia e tecnologia das mquinas que enxergam. Atualmente a viso computacional aplicada em projetos como processamento de imagens no diagnstico de doenas na Medicina, controle de qualidade de produtos na Indstria, deteco de alvos inimigos na rea Militar e viso de veculos autnomos na Indstria Automobilstica. Neste trabalho demonstrado passo a passo o desenvolvimento de um sistema de viso capaz de reconhecer uma bola de tnis de mesa laranja no espao de uma mesa de jogo. Material e Mtodos Modelagem matemtica do fenmeno Para o modelo que ser descrito a seguir adotou-se um sistema de coordenadas fixo na borda da mesa que as cmeras estaro, com o eixo 'z' orientado na direo contrria da viso das cmeras, como mostrado na figura 1.

Figura 1 - Representao do sistema de coordenadas fixo na mesa Considerando a bola de tnis de mesa como um corpo rgido e desprezando o efeito do atrito com o ar, segue que a nica fora exercida sobre a bolinha o seu peso (na direo contrria do versor y). Usando essa simplificao aplica-se a segunda lei de Newton, o que resulta em: (I) Integrando a equao I duas vezes em relao ao tempo e estipulando condies , , , , e obtm-se a seguinte equao: (II)

iniciais

que define a posio da bola durante todos os instantes em que a nica fora aplicada nela seu peso. Durante o impacto da bola com a mesa a equao acima no descreve corretamente o seu comportamento. Durante tal impacto, existe outra fora sendo aplicada ao objeto (a fora de contato com a mesa) e por esse motivo necessrio modelar esse caso separadamente. Essa coliso foi modelada como uma coliso parcialmente elstica entre corpos rgidos (adicionando a simplificao de que a mesa tambm um corpo rgido), portanto segue a seguinte equao (WITKOWSKI, Francisco Mauro. Fsica I. So Paulo, SP: EP, 1995. pt. 3.): (III) onde o vetor normal ao impacto, o coeficiente de restituio entre os dois corpos (nesse caso entre a bola de tnis de mesa e a mesa), e so respectivamente a velocidade da bola e da mesa antes do impacto e e so as velocidades dos mesmos corpos aps o impacto. No caso estudado em especial podemos adicionar a suposio de que a mesa est em repouso, alm disso, por causa do modo como foi definido o sistema de coordenadas (figura 1) e supondo que a bola uma esfera perfeita, todas as colises com a mesa tero como vetor o prprio versor . Substituindo essas particularidades na equao acima obtm-se:

(IV)

o que resulta em: (V)

As equaes (II) e (V) so suficientes para definir o comportamento da bola durante a situao de interesse. Hardware Para esse projeto foi desenvolvido inicialmente uma prototipagem completa em ambiente MATLAB, onde criaram-se cmeras virtuais com posicionamento conhecido em relao a uma mesa de tnis de mesa. Tambm nesse ambiente modelou-se o fenmeno de lanamento de uma bola e foi possvel realizar as anlises necessrias de posicionamento e velocidade atravs das cmeras criadas. Com o ambiente virtual desenvolvido foi possvel definir trajetrias conhecidas para a bola e confronta-las com as estimativas fornecidas pelo sistema de viso computacional implementado nas cmeras virtuais, dessa forma levantou-se uma distribuio do erro de estimativa do sistema ao longo do volume de trabalho de interesse definido para o projeto. Aps os testes no ambiente virtual foi iniciado a implementao do sistema de viso computacional utilizado no projeto seguindo as seguintes etapas: 1Definio das cmeras: Nessa etapa selecionou-se qual cmera atenderia aos requisitos propostos pelo projeto. Com base em uma anlise de mercado escolheu-se as cmeras Play Station Eye devido ao seu baixo custo, fcil disponibilidade para compra e alta taxa de aquisio de imagens (180 quadros por segundo). 2Adequao das cmeras ao sistema desenvolvido: A cmera definida para ser utilizada nessa aplicao no possui interface com o computador e para corrigir esse imprevisto optou-se pela utilizao de um drive que realizasse essa

comunicao entre computador e cmeras. No entanto, o nico drive encontrado e selecionado para tal funo no atendeu ao requisito de comunicar duas cmeras simultaneamente o que fez com que fosse acrescido ao escopo desse projeto o desenvolvimento dessa soluo. Utilizou-se como base o software disponvel capaz de realizar a comunicao com apenas uma cmera. 3Implementao do sistema de viso computacional: Partindo do ambiente virtual optou-se pela transcrio e implementao dos algoritmos utilizados pela viso computacional para a linguagem C, com o auxlio da biblioteca OpenCV. A mudana se fez necessria visto que as cmeras embora se comunicassem com o computador, no eram reconhecidas pelo MATLAB. Para que o sistema de viso computacional funcione de maneira correta de essencial importncia ter um ambiente com iluminao controlada. Para que o ambiente apresentasse a luminosidade desejada em todo o volume de trabalho proposto (mesa oficial de tnis de mesa), foram utilizados seis pontos de luz, sendo: - Dois refletores centrais fixados em cima da mesa de tnis de mesa com lmpadas fluorescentes brancas de 85 Watts de potncia, tenso 220 V e soquete E42. - Quatro lmpadas fluorescentes brancas, fixadas lateralmente a mesa, de 60 Watts de potncia, tenso 110V e soquetes E27. Desenvolvimento do ambiente de simulao Foi desenvolvido um ambiente de simulao grfico na plataforma Matlab com a utilizao do produto Simulink 3D Animation. O Simulink 3D Animation possibilita que o usurio crie um modelo tridimensional da cena a ser simulada (no nosso caso a mesa de pingpong e a bolinha) e, de acordo com alguma lgica pr-estipulada, atue em propriedades dos objetos no modelo tais como posio, orientao e tamanho. Utilizando as equaes (I) e (2) podemos alterar a posio do modelo tridimensional da bolinha de modo que ela se comporte como em um jogo de tnis de mesa. Esse mesmo produto ainda possibilita o posicionamento de cmeras virtuais na cena, com resoluo, distncia focal, posio e orientao definidas pelo usurio e a visualizao da imagem que uma cmera nessas condies criaria. A figura (2) mostra o modelo tridimensional criado quando visto por cada uma das cmeras.

Figura 2 - Ambiente virtual desenvolvido no Simulink 3D Animation Reconhecimento de Imagem O algoritmo desenvolvido no leva em conta todas as caractersticas que distinguem uma bolinha do resto da imagem, mas apenas a sua cor. Desse modo, diminui-se a preciso e a sua robustez, mas aumenta-se consideravelmente sua velocidade de execuo j que o nmero de testes necessrios para eleger uma regio como bolinha diminuido. Essa falta de

robustez no um fator limitante nesse projeto, j que possvel condicionar o volume de interesse visto pelas cmeras de modo que nada tenha a mesma cor que a bola. Filtro por cor A primeira etapa do reconhecimento fazer um filtro por cor (algoritmo que separa o que da cor desejada do resto da imagem). Isso ocorre do seguinte modo: o software varre cada um dos pixels da imagem, um por vez, e verifica se a cor daquele pixel assemelha-se com a cor da bolinha (mais detalhes sobre essa etapa adiante). Ao mesmo tempo que ele faz isso ele vai criando uma nova imagem (com as mesmas dimenses da antiga) que nas posies onde ele encontrou pixels com cores parecidas com a da bola so gravados o valor '1' e em todos os outros '0'; essa abordagem conhecida na literatura como segmentao por cor e o seu resultado quando aplicada ao nosso caso est exemplificado na figura .

Figura 3 - Filtro por cor aplicado para reconhecer uma bola laranja na imagem. Note que os pixels de valor 1 so brancos e os pixels de valor zero so pretos A explicao dada acima do filtro por cor est completa, mas necessrio adicionar uma observao: ele aplicado em uma imagem no espao de cores HSV, para que a informao de matiz esteja desacoplada das outras caractersticas da cor Para maiores informaes sobre os espaos de cores RGB, HSV e outros, consultar (GONZALEZ, R.; WOODS, R. Digital Image Processing. 3. Ed. [S.l.]: Prentice Hall, 2007.). Para que a primeira etapa descrita seja seguida (o sistema saiba quais as cores dos pixels que ele deve considerar como bolinha) necessria uma prvia calibrao do sistema. A abordagem utilizada foi a seguinte: a bola colocada em diversas posies na mesa de ping-pong, sujeitas condies de iluminao ligeiramente diferentes, enquanto as cmeras tiram fotos. Em cada uma dessa fotos o usurio utiliza uma interface grfica para informar ao software a posico do topo e da base da bolinha. O programa ento junta todos os pixels em um vetor e calcula a mdia e o desvio padro para cada uma das componentes de cor desses pixels (matiz, saturao e brilho). Com base nessas mdias e desvios padres so estabelecidos limites inferiores e limites superiores que se as componentes de cor de um pixel em questo respeitarem ele ser considerado como bolinha. Estes limites so definidos pelo seguinte conjunto de equaes: (VI) (VII) (VIII) onde , e so os valores do pixel em questo; , , , , e respectivamente a mdia e o desvio padro das componentes H,S e V do pixels; e nmero positivo que representa a tolerncia escolhida para o algoritmo. so um

Clculo do centro geomtrico Aps a binarizao da imagem (criao da segunda imagem cujos pixels s podem ter valor '0' ou '1') a prxima etapa o clculo do centro geomtrico da imagem binria. O clculo das coordenadas e do centro geomtrico de um conjunto de pixels com valor 1, nas posies , , ... dado pelas seguintes expresses: (IX) (X) Aps o centro da bola ser encontrado nas imagens vistas por cada uma das cmeras essas informaes so enviada para o subsistema de estereoscopia, que, com base nelas, triangula a posio tridimensional que a bolinha estava no momento que as fotos foram tiradas. Estereoscopia Para cada uma das duas cmeras utilizadas no projeto existe uma matriz, chamada matriz de projeo, que relaciona as coordenadas de um ponto no espao (definido em relao um sistema de coordenadas fixado na cmera 1) com as coordenadas de sua projeo no plano da imagem da cmera, de acordo com a seguinte relao: (XI)

(XII)

onde , , e , , so, respectivamente, as coordenadas homogneas da projeo do ponto nos planos de imagem da cmera 1 e da cmera 2 em pixels ( a coordenada em , a coordenada em ); e e so as coordenadas tridimensionais da bola no sistema

de coordenadas tridimensionais fixado na cmera 1. As convenes para os sistemas de coordenadas citados acima (sistema de coordenadas do plano da imagem e sistema de coordenadas tridimensionais fixado na cmera 1) esto ilustradas na figura (4). Para mais informaes sobre matrizes de projeo, consulte (BRADSKI, G.; KAEHLER, A. Learning OpenCV: Computer Vision with the OpenCV Library. 1. Ed. [S.l.]: OReilly Media, Incorporated, 2008).

Figura 4 - A figura mostra a cmera e a imagem vista por ela. O sistema de coordenadas em verde o global, aonde as coordenadas , e so especificadas; j o sistema de

coordenadas em vermelho o do plano de projeo da imagem, no qual os valores especificados. As matrizes e

so

transformam pontos no sistema de coordenadas verde para o vermelho.

Soluo do sistema Procuramos realizar a reconstruo tridimensional da bola com base nas coordenadas de suas projees no plano de imagem de cada cmera (estereoscopia). Nesse caso so conhecidos os valores , e , (as coordenadas da bola encontradas nas imagens da cmera 1 e da cmera 2) e as matrizes e (encontradas no processo de calibrao explicado adiante) e queremos encontrar as coordenadas tridimensionais da bolinha. Para resolver o sistema formado pelas equaes M e N para , e , procede-se da seguinte forma, de acordo com (HILLMAN, PETER; White Paper: Camera Calibration and Stereo Vision. Square Eyes Software, Edinburgo, 27 de julho de 2005): Calcula-se as matrizes A e B (XIII)

(XIV)

Com base nas matrizes XIII e XIV calcula-se o vetor coordenadas , e .

, composto pelas trs

(XV)

Calibrao das cmeras Para encontrar os valores citados anteriormente necessria uma etapa de calibrao. A abordagem mais comum mostrar um objeto para as cmeras parecido com um tabuleiro de xadrez. Essa geometria favorvel pois simples reconhecer os vrtices dos quadrados com um software de reconhecimento de imagem e ao mesmo tempo tambm simples especificar as coordenadas de cada uma das arestas em relao um sistema de coordenadas fixo no tabuleiro. A figura (5) ilustra os dois sistemas de coordenadas. Levando em conta a complexidade aparente do problema, a robustez necessria que uma possvel soluo deveria apresentar e o tempo disponvel de projeto, o grupo decidiu implementar uma soluo pronta, ao invs de desenvolver uma soluo original.

Figura 5 - Sistemas de coordenadas em um tabuleiro de xadrez: sistema verde o fixado no objeto e o vermelho o plano de projeo da imagem Na implementao em Matlab (durante a prototipagem dos algoritmos) foi utilizada a toolbox open-source de calibrao de cmeras desenvolvida no Instituto de Tecnologia da California, "Camera Calibration Toolbox for Matlab". Essa toolbox consiste em um conjunto de cdigos escritos para a plataforma Matlab com a finalidade de calibrar cmeras; para utiliz-la basta seguir o guia apresentado pelos criadores em seu website. Aps a prototipagem do sistema em Matlab os algoritmos foram traduzidos para a linguagem C++. Nessa etapa, ao invs de traduzir todos os cdigos da toolbox mencionada acima, o grupo optou por utilizar um srie de funes da biblioteca OpenCV para encontrar os vrtices de um padro de calibrao mostrado para as cmeras e para, com base nisso, estimar os valores . Filtro de Kalman Para melhorar as medidas obtidas de posio da bola de tnis de mesa e para estimar seu vetor velocidade foi utilizado um filtro de Kalman. O filtro de Kalman um filtro recursivo que estima todos os estados (incluindo os no-observveis) de um sistema dinmico linear com base em uma srie de medidas com rudo gaussiano (BRADSKI, G. KAEHLER, A.). O funcionamento do filtro pode ser resumido s seguintes equaes, divididas em duas etapas: a etapa de predio: (XVI) (XVII) e a etapa de atualizao: (XVIII) (XIX) (XX) (XXI) (XXII)

onde: : estimativa dos estados ; : matriz de transio dos estados; : modelo dinmico linear das entradas de controle ; : entradas de controle ; : matriz de covariancia dos estados (uma medida da preciso da estimativa dos estados); : matriz de covarincia do rudo do processo; : resduo das medies (diferena entre o estimado pelo modelo matemtico e o que foi medido); : vetor das medidas; : modelo dinmico linear de observao, que mapeia o espao de estados real no espao de estados observado; : matriz da covarincia do rudo de observao; : resduo da covarincia; : ganho de Kalman (ganho que maximiza a reduo da matriz de covarincia dos estados ao longo do tempo) No caso do movimento da bola de tnis de mesa, o modelo dinmico linear adotado foi:

(XXIII)

Portanto: (XXIV) E os estados medidos so as coordenadas tridimensionais da bola, disso segue que:

(XXV)

As matrizes

foram estimadas em:

(XXVI)

(XXVII)

onde e foram constantes determinadas experimentalmente. Os valores que obtiveram resultados satisfatrios com o sistema de viso estreo foram e . A figura (6) ilustra o comportamento do filtro enquanto descreve-se uma elipse com a bola na frente das cmeras (incio na parte inferior da elipse ilustrada, sentido de rotao anti-horrio).

Figura 6 - Pontos assinalados com cruzes so as medidas do sistema estreo, pontos unidos pela linha contnua so as estimativas do filtro de Kalman. direita: estimativas de velocidade em cada uma das direes conforme a bola foi descrevendo a elipse na frente das cmeras. Resultados e Discusso A fim de concretizar os resultados deste trabalho, foram realizados testes com a viso computacional desenvolvida. Primeiramente, mapeou-se o plano da mesa com uma malha divida em quadrados de lado 10 centmetros criando pontos de referncia para os testes. A seguir, calibraram-se as cmeras com o tabuleiro de xadrez conforme os procedimentos citados anteriormente. Com o objetivo de homogeneizar ao mximo as condies de iluminao, foram colocadas seis lmpadas brancas sobre a mesa de tnis de mesa. Ligou-se a iluminao e calibrou-se a viso do filtro por treshold. Colocou-se a bola laranja em cada ponto traado na malha sobre o plano da mesa com o objetivo de verificar no espao onde a viso computacional reconhece o objeto laranja. Os testes foram realizados em trs alturas em Y diferentes: 5, 20 e 40 centmetros. A seguir foram traados grficos com a nuvem de pontos de calibrao entre as distncias em X, Y e Z e a posio das cmeras. A figura (7) ilustra as nuvens de calibrao.

Figura 7 - Erros de posicionamento da viso computacional em respectivamente (a) eixo X (b) eixo Y (c) eixo (Z) Conforme explicitado na figura (7), o maior erro de medida deu-se no eixo Z com valor de 14 centmetros.

Concluses Aps o desenvolvimento e testes conclui-se que os objetivos iniciais foram alcanados. A viso computacional desenvolvida neste projeto pode reconhecer uma bola de tnis de mesa em um espao considervel sobre o plano da mesa. Quanto ao erro de medida do sistema, os resultados foram satisfatrios. Verificou-se que quanto mais distante o objeto est das cmeras maior o erro, conforme esperado. Referncias Bibliogrficas BOUGET, J.; Camera Calibration Toolbox for Matlab, 10 de Outubro de 2013, http://www.vision.caltech.edu/bouguetj/calib_doc/, acessado em Agosto de 2012. BRADSKI, G.; KAEHLER, A. Learning OpenCV: Computer Vision with the OpenCV Library. 1. Ed. [S.l.]: OReilly Media, Incorporated, 2008 GONZALEZ, R.; WOODS, R. Digital Image Processing. 3. Ed. [S.l.]: Prentice Hall, 2007. WITKOWSKI, Francisco Mauro. Fsica I. So Paulo, SP: EP, 1995. pt. 3.