Juiz Virtual – Um Sistema para Análise de Lances de Futebol Flávio Szenberg1, Paulo Cezar Pinto Carvalho2, Marcelo Gattass1 1 TeCGraf – Departamento de Informática, PUC-Rio Rua Marquês de São Vicente, 255, 22453-900, Rio de Janeiro, RJ, Brasil {szenberg,gattass}@tecgraf.puc-rio.br 2 Impa – Instituto de Matemática Pura e Aplicada Estrada Dona Castorina, 110, 22460-320, Rio de Janeiro, RJ, Brasil [email protected] Abstract. Broadcasts of sports events resort to features that seek to enhance the scenes of matches or games with additional information, such as the distance from the ball to the defending barrier in football (soccer) matches. Most of such features are based on special equipment, with sensors that detect the position of objects or register camera movements. Juiz Virtual is a system that provides relative information to scenes of football matches. Differently from most systems used by television broadcasters, Juiz Virtual is totally based on the contents of images, not requiring any special equipment. Its resources include measures and the construction of three-dimensional scenes based on automatic camera calibration. Resumo. Transmissões de eventos esportivos recorrem a recursos que visam enriquecer as cenas dos jogos com informações suplementares, como a distância da bola à barreira em jogos de futebol. A maior parte destes recursos é baseada em equipamentos especiais, com sensores que detectam a posição de objetos ou registram movimentos de câmera. Juiz Virtual é um sistema para fornecer informações relativas a cenas de jogos de futebol. Ao contrário da maior parte dos sistemas utilizados em emissoras, é inteiramente baseado no conteúdo das imagens, não exigindo qualquer equipamento especial. Os recursos proporcionados por Juiz Virtual incluem medições e construção de cenas tridimensionais, baseados em uma calibração automática da câmera. 1. Introdução Transmissões de eventos esportivos recorrem, com freqüência cada vez maior, a recursos que visam enriquecer as cenas dos jogos com informações suplementares. Por exemplo, em jogos de tênis, é comum fornecer-se a velocidade da bola no saque, obtida por meio de sensores. Em jogos de hóquei no gelo, sensores colocados na pastilha (“puck”), de difícil visualização devido a seu tamanho e velocidade, permitem enfatizála nas transmissões. No futebol americano, diversas vistas de uma jogada são obtidas, através da interpolação de imagens simultaneamente adquiridas por várias câmeras. Na transmissão de jogos de futebol, recursos tecnológicos similares também são amplamente utilizados, com o intuito de fornecer informações métricas ou de posicionamento no gramado para análise de jogadas ou inserir mensagens publicitárias na transmissão. Para ambas as aplicações é fundamental que se conheça a posição da câmera que capturou cada imagem. Nos sistemas usados nas transmissões comerciais, a posição da câmera é obtida através de sensores que registram seus movimentos de câmera, permitindo assim obter sua situação em relação a uma posição inicial em que a câmera foi previamente calibrada. Alguns exemplos desses sistemas comerciais são: • VirtuaLive [VirtuaLive]: permite criar animações em formato VRML a partir de uma seqüência de vídeo curta de uma partida de futebol. • 1st&Ten [Firstandten]: projetado para inserir uma linha virtual no gramado, em transmissões ao vivo de partidas de futebol americano. • Digital Replay [DigitalReplay]: realiza o acompanhamento de atletas em uma seqüência de imagens, podendo, entre outras coisas, calcular medidas em um campo de futebol, determinar a velocidade dos jogadores e da bola e mostrar a linha de impedimento em transmissões de partidas de futebol. • VirtualReplay [VirtualReplay]: produz uma reconstrução 3D de uma imagem de um jogo de futebol. Uma interação manual é necessária para criar os jogadores. • Outros sistemas usados comercialmente são PicthTrax [PicthTrax], TennisProVision [TennisProVision] e GolfProView [GolfProView], que calculam a trajetória, em coordenadas do mundo da cena, das bolas de beisebol, tênis e golfe, respectivamente. Juiz Virtual é um sistema que fornece funcionalidades análogas. No entanto, ao contrário dos sistemas utilizados em emissoras comerciais, é inteiramente baseado na análise das imagens das jogadas, não requerendo qualquer equipamento especial para acompanhar a câmera. As imagens utilizadas podem ser, por exemplo, capturadas diretamente de uma transmissão de televisão ou digitalizadas a partir de fotografias em um jornal. O posicionamento da câmera é obtido através da identificação das linhas do campo na imagem, como descrito em mais detalhes na seção 2. Uma vez obtidas as informações de câmera, é possível associar pontos da imagem com sua posição no gramado, permitindo assim executar medições, criar uma cena tridimensional correspondente a imagem ou superpor elementos sintéticos à imagem. A Figura 1 ilustra a relação entre uma imagem sintética produzida por Juiz Virtual e a imagem real capturada. O círculo (interseção dos quatro segmentos de reta) representa a posição da câmera que capturou a imagem real, mostrada no retângulo de bordas pretas. A região do campo visível na imagem corresponde à região sombreada. Figura 1 – Cena tridimensional gerada a partir de uma imagem estática. O restante do trabalho é organizado do seguinte modo. Na seção 2, descrevemos o processo de calibração automática de câmera, que é o coração de Juiz Virtual. Na seção 3 listamos as diversas funcionalidades oferecidas, após ter sido realizada a calibração. A seguir, na seção 4, descrevemos as funcionalidades existentes na versão para uso na Internet. Finalmente, na seção 5 apresentamos conclusões e sugestões para trabalhos futuros. 2. A Calibração da Câmera O procedimento principal, responsável por Juiz Virtual ser capaz de obter a cena tridimensional correspondente a uma imagem, é a calibração de câmera. Isto é, encontrar os parâmetros intrínsecos (por exemplo, fator de ampliação) e extrínsecos (por exemplo, posição, direção e inclinação da câmera). Nas primeiras versões do Juiz Virtual, o procedimento de calibração de câmera era feito de modo manual, a partir de pontos fornecidos pelo usuário, chamados de pontos de referência [Carvalho+98], e que correspondiam a pontos notáveis do gramado (como a interseção de duas linhas ou a marca do pênalti). Como o posicionamento destes pontos no campo é determinado pelas leis do jogo, é possível estabelecer uma correspondência entre um conjunto de pontos na imagem e sua posição tridimensional (Figura 2). É possível, então, utilizar um algoritmo clássico de calibração de câmeras, como o método de Tsai ([Tsai86]) ou o algoritmo apresentado em [Carvalho+98]. Figura 2 – Associando pontos da imagem a pontos do gramado. Na versão atual de Juiz Virtual, o procedimento de calibração é automatizado, através do algoritmo descrito em [Szenberg01]. Neste algoritmo, linhas do campo são encontradas na imagem, sem auxílio do usuário, e, em seguida, reconhecidas, permitindo a calibração da câmera a partir de seus pontos de interseção. [Szenberg01] também descreve uma extensão desse algoritmo para processar, em tempo real, uma seqüência de vídeo. As diversas etapas do algoritmo de calibração automática de câmera são descritas esquematicamente na Figura 3. Imagem Informações empontos Filtragempara realce de linhas Reconstrução da visualização do modelo I Ofiltro Laplaciano da Gaussiana (LoG) é aplicado à imagemseguido de uma segmentação (threshold). Informações empontos As linhas do modelo são reconstruídas, encontrando assimas linhas não reconhecidas. Extração de segmentos de retas longos Reajuste das linhas II É feita uma extração de segmentos de reta longos da imagem, candidatos a seremlinhas do modelo. Informações geométricas As linhas do modelo reconstruídas pela transformação planar são reajustadas. Reconhecimento dos segmentos Cálculo da transformação projetiva planar III Umsubconjunto de segmentos é reconhecido como representante das linhas do modelo. Uma transformação geométrica “melhor ajustada” é encontrada, baseada no conjunto das linhas reajustadas. IV Cálculo da transformação projetiva planar preliminar Calibração da câmera Uma transformação geométrica que mapeia linhas do modelo comrelação às linhas reconhecidas da imagemé encontrada. A câmera é calibrada através do método de Tsai. V VI VII VIII Figura 3 – Fluxograma do algoritmo de calibração automática de câmera. O algoritmo baseia-se em encontrar as linhas do campo que estão visíveis na imagem. Uma vez realçadas no passo I, são extraídas no passo II (Figura 4). No passo III estas linhas são reconhecidas, isto é, determina-se, por exemplo, se uma dada linha é projeção da linha de fundo ou da linha lateral da grande área. Para tal é utilizado um de método de reconhecimento baseado em árvore de interpretação [Grimson90]. (b) (a) f7 f5 f4 f3 f2 f6 f1 (c) Figura 4 – Etapas na extração das linhas do campo: (a) realce; (b) extração de segmentos; (c) extração das linhas. Em seguida, pontos de interseção de cada par dessas linhas são encontrados (no sistema de coordenadas da imagem). Com isto temos um conjunto de par de pontos (p, P) onde P é um ponto do campo real e p é a sua projeção na imagem. Com este conjunto de par de pontos é obtida, no passo IV, uma transformação projetiva planar. É possível que nem todas as linhas contidas na imagem que são projeções das linhas do campo tenham sido extraídas (por exemplo, linhas mais distantes da câmera, que aparecem mais apagadas na imagem, podem ter sido omitidas). Por esta razão, a transformação obtida no passo IV tem caráter preliminar. Com base nesta transformação, no passo V uma reconstrução do campo é feita, o que permite fazer, no passo VI, um melhor ajuste das linhas obtidas, além de ser possível identificar linhas previamente omitidas. Com esta informação, é obtida, no passo VII a transformação projetiva final que relaciona pontos da imagem com pontos do gramado. A Figura 5 mostra o resultado obtido ao desenharmos as linhas do campo sobre a imagem, com base nesta transformação. A informação do passo VI também permite calibrar a câmera, usando o método de Tsai, o que é feito no passo VIII. Agora, elementos não contidos no plano do gramado podem também ser acrescentados à cena. A Figura 6 mostra o resultado de acrescentar as traves à mesma imagem das figuras anteriores. Figura 5 – Reconstrução das linhas do campo de futebol. Figura 6 – Projeção das linhas segundo a câmera encontrada pelo método de Tsai. 3. Demais funcionalidades de Juiz Virtual Uma vez realizada a etapa de calibração de câmera, fica estabelecida uma correspondência projetiva entre os pontos do espaço tridimensional e os pontos da imagem. Com isto, é possível realizar-se uma série de tarefas, úteis na análise da imagem de uma jogada. 3.1 Realização de medições sobre o gramado Dados dois pontos da imagem, correspondentes a pontos do gramado, é possível recuperar sua posição real no campo. Deste modo, a distância real entre estes pontos pode ser calculada, como indica a Figura 7. Um uso comum desta funcionalidade é determinar a que distância do gol ou da barreira o ponto de cobrança de uma falta está. Figura 7 – Fazendo medições sobre o gramado. Encontrar a posição no gramado de dois pontos é útil também para verificar posições de impedimento. Para facilitar esta análise, Juiz Virtual oferece a opção de exibir paralelas à linha de fundo traçadas por dois pontos, como mostra a Figura 8. Através da posição relativa destas retas (cuja distância também é fornecida) pode-se estabelecer se um dado atacante está ou não além da linha do último defensor. Figura 8 – Verificação de posição de impedimento. 3.2 Obtenção da posição dos objetos da cena De modo a poder construir uma cena tridimensional correspondente a uma imagem, Juiz Virtual oferece ferramentas para obter a posição dos demais elementos, além das linhas do campo, presentes na imagem: os jogadores, o juiz e a bola. Para tal, na versão atual, é necessária a intervenção do usuário, que deve apontar, na imagem, os chamados pontos de objeto, que correspondem à base dos objetos no gramado, conforme ilustrado na Figura 9. Utilizando as equações de projeção da câmera, pode-se recuperar a posição dos diversos objetos no gramado e, assim, criar objetos virtuais correspondentes. Figura 9 – Pontos de objetos indicados na imagem pelo usuário. 3.3 Criação da cena tridimensional Uma vez determinadas as posições dos objetos, Juiz Virtual cria um ambiente de visualização para a cena tridimensional correspondente. O passo fundamental é a tradução dos dados de calibração da câmera para a especificação de câmera do sistema gráfico utilizado. No caso da biblioteca OpenGL ([Woo+99]), utilizada em Juiz Virtual, isto implica em fornecer a posição e orientação da câmera e o frustrum de visão. A posição e orientação da câmera são diretamente obtidas dos parâmetros de câmera obtidos no processo de calibração. Já para a determinação do frustrum é necessário calcular o ângulo vertical de visão, a razão de aspecto da janela e as distâncias dos planos near e far à câmera. Para calcular o ângulo de visão, basta obter, utilizando as equações de projeção da câmera, a posição no gramado de dois pontos que se projetam nos pontos médios das linhas inferior e superior da imagem. Estes dois pontos, juntamente com a posição da câmera, definem o ângulo vertical de visão. A razão de aspecto é diretamente dada pelas dimensões da imagem. Finalmente, as posições dos planos near e far são especificadas arbitrariamente, mas de modo a conter todos os pontos de interesse da cena. Tendo-se especificado os parâmetros de visualização, pode-se agregar elementos sintéticos à imagem original, como se mostra na Figura 10. Figura 10 – Sobrepondo elementos sintéticos à cena. Pode-se também criar cenas completamente sintéticas, como a mostrada na Figura 11. Juiz Virtual oferece mecanismos de reposicionamento da câmera, que permite observar a mesma cena de outra posição, como mostrado na Figura 12. Figura 11 – Imagem sintética equivalente à cena da Figura 10. Figura 12 – Outro ponto de vista do mesmo lance. Com técnicas de estéreoscopia, Juiz Virtual também gera estas imagens sintéticas para visão estéreo, criando uma segunda câmera com visão paralela à primeira e com um determinado afastamento. Os sólidos de visão deixam de ser totalmente simétricos a fim de possuírem um retângulo em comum, onde o campo é projetado. 4. Juiz Virtual na Web Juiz Virtual tem seu website na Internet [JuizVirtualSite]. Lá, além de informações sobre o programa, pode-se obter uma versão do programa, com as funcionalidades descritas acima. O site contém também uma série de cenas previamente calibradas e com pontos de objeto já determinados, que permitem ir diretamente às funções de análise e visualização. É possível, ainda, experimentar alguns dos recursos de Juiz Virtual diretamente através do navegador web. O programa permite exportar, a partir de uma cena calibrada e com pontos de objeto determinados, arquivos em formato html e vrml. No primeiro caso, o arquivo contém os parâmetros para uma applet em Java que permite realizar medições diretamente no ambiente do navegador. Já o arquivo vrml contém uma descrição completa da cena, que pode ser visualizada por navegadores com plug-ins apropriados (Figura 13). Versões em html e vrml estão disponíveis para cada uma das cenas presentes no site. Figura 13 – Versão VRML de Juiz Virtual. 5. Conclusões e Trabalhos Futuros O sistema Juiz Virtual apresenta-se como uma boa ferramenta para auxílio de comentários sobre uma partida de futebol. Com ele, gera-se uma cena artificial a partir de uma imagem estática e com isto, podemos analisar um lance de um outro ponto de vista. Também é possível realizar medidas no plano do campo. Na versão 2.0, lançada para a copa do mundo de 2002, foi incorporado o algoritmo para calibração automática de câmera, dispensando a necessidade do usuário informar ao sistema os pontos de referência. A exportação para arquivos VRML e Java permite que a aplicação possa ser utilizada em um número maior de plataformas diferentes. Pelo fato do Juiz Virtual poder ser executado em diversas plataformas, inclusive Windows, sem requisitar equipamentos adicionais, seu uso pode ser feito em casa, em contraste com os recursos utilizados por emissoras de televisão, que dependem de equipamentos especiais de alto custo. Diversas aplicações podem ser feitas utilizando as técnicas implementadas no Juiz Virtual, como inserção de cartazes virtuais fazendo propaganda de algum produto ou serviço, ou mesmo, informativo. Nas versão futuras, Juiz Virtual desenhará no campo imagens que facilitam a análise do lance, como por exemplo, circulo delimitando a distância mínima da barreira ao ponto de cobrança de falta. Pretende-se também estender as técnicas utilizadas em Juiz de Virtual para a análise de cenas de outros esportes. 6. Bibliografia [Carvalho+98] Carvalho, P.C.P., Szenberg, F., Gattass, M, “Image-Based Modeling Using a Two-Step Camera Calibration Method”, Proceedings of International Symposium on Computer Graphics, Image Processing and Vision, SIBGRAPI’98, October 20-23, pp. 388-395, 1998. [DigitalReplay] Digital Replay system, http://www.orad.co.il/sport/Pages/dreplay.h tm. [Firstandten] First and Ten system, http://www.sportvision.com/how_it_works/fi rst.asp [GolfProVision] GolfProVision system, http://www.questec.com/q2001/prod_gf.ht m. [Grimson90] Grimson, W.E.L., “Object Recognition by Computer: The Role of Geometric Constraints”, Massachusetts Institute of Technology, 1990. [JuizVirtualSite] http://www.tecgraf.puc-rio.br/juizvirtual ou http://www.visgraf.imp a.br/juizvirtual [PicthTrax] PicthTrax system, http://www.questec.com/q2001/prod_pt.htm. [Szenberg01] Szenberg, F., “Acompanhamento de Cenas com Calibração Automática de Câmeras”, tese de doutorado, departamento de informática, PUC-Rio, 2001. [TennisProVision] TennisProVision system, http://www.questec.com/q2001/prod_tn.h tm. [Tsai86] Tsai, R.Y., “An Efficient and Accurate Camera Calibration Technique for 3D Machine Vision”, CVPR’86 Proceeding, IEEE Computer Society Conference on Computer Vision and Pattern Recognition, Miami Beach, FL, June 22-26, pp. 364-373, 1986. [VirtuaLive] VirtuaLive system, http://www.orad.co.il. [VirtualReplay] Virtual Replay system, http://www.orad.co.il/sport/Pages/vreplay.h tm. [Woo+99] Woo, M., Neider, J., Davis, T., Shreiner, D., “OpenGL Programming Guide: The Official Guide to Learning OpenGL, Version 1.2”, Addison-Wesley, 1999.