A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Acompanhamento de Cenas com Calibração Automática de Câmeras por Flávio Szenberg Orientadores: Marcelo Gattass Paulo Cezar Pinto Carvalho Departamento.

Apresentações semelhantes


Apresentação em tema: "Acompanhamento de Cenas com Calibração Automática de Câmeras por Flávio Szenberg Orientadores: Marcelo Gattass Paulo Cezar Pinto Carvalho Departamento."— Transcrição da apresentação:

1 Acompanhamento de Cenas com Calibração Automática de Câmeras por Flávio Szenberg Orientadores: Marcelo Gattass Paulo Cezar Pinto Carvalho Departamento de Informática, PUC-Rio 19 de dezembro de 2001

2 Juiz Virtual pontos de referência pontos de objetos

3 Problema Dada uma seqüência de imagens que apresentam a visualização, total ou parcial, de um determinado modelo, acompanhar este modelo, calibrando as câmeras para cada imagem de forma automática, a fim de sobrepor objetos virtuais. Requisitos: Menor intervenção possível do usuário Processamento em tempo real

4 Modelos Os modelos utilizados na tese: Modelo de um campo de futebol Modelo sem simetria

5 Algoritmo básico Imagem Filtragem para realce de linhas A1 Extração de segmentos de retas longos A2 Reconhecimento dos segmentos A3 Cálculo da transformação projetiva planar A4 Calibração da câmera A5

6 Filtragem para realce de linhas O filtro Laplaciano da Gaussiana (LoG) é aplicado à imagem, baseado na luminância. filtro gaussiano filtro laplaciano

7 Filtragem para realce de linhas Problemas com linhas duplas

8 Filtragem para realce de linhas A transformação negativa é aplicada entre o cálculo da luminância e o filtro LoG.

9 Filtragem para realce de linhas Resultado de uma segmentação (threshold) feita na imagem filtrada. (em negativo para visualizar melhor)

10 Extração de segmentos de retas longos O objetivo é localizar segmentos de retas longos candidatos a serem linhas da imagem do modelo. O procedimento é dividido em dois passos: 1.Eliminação de pontos que não estão sobre nenhum segmento de reta. 2.Determinação de segmentos de retas.

11 Eliminando pontos que não estão sobre um segmento de reta A imagem é dividida, por uma grade regular, em células retangulares.

12 Eliminando pontos que não estão sobre um segmento de reta Para cada célula, os autovalores 1 e 2 ( 1 2 ) da matriz de covariância, dada abaixo, são calculados. Se 2 = 0 ou 1 / 2 > M (dado) então o autovetor de 1 é a direção predominante senão a célula não tem uma direção predominante

13 Eliminando pontos que não estão sobre um segmento de reta Podemos atribuir pesos i aos pontos (resultado do LoG).

14 Eliminando pontos que não estão sobre um segmento de reta Células com pontos formando segmentos de retas:

15 Determinando segmentos de reta As células são percorridas de modo que as linhas são processadas de baixo para cima e as células em cada coluna são processadas da esquerda para direita. Um valor é dado para cada célula: Se não existe uma direção predominate na célula, o valor é zero. Caso contrário, verifica-se os três vizinhos abaixo e o vizinho à esquerda da célula corrente. Se algum deles tem uma direção predominante similar ao da célula corrente, quando unidos, então a célula corrente recebe o valor da célula que tem a direção mais similar; senão, um novo valor é usado para a célula corrente.

16 Determinando segmentos de reta São formados grupos com células de mesmo valor, representados na figura abaixo por cores distintas.

17 Extração de segmentos de reta Cada grupo fornece um segmento de reta. A reta de equação v=au+b é encontrada por método de mínimos quadrados: O segmento é obtido limitando a reta pela caixa envoltória dos pontos usados.

18 Extração de segmentos de reta Os segmentos de reta que estão sobre a mesma reta suporte são unidos, formando segmentos longos, usando mínimos quadrados. No final do processo, tem-se um conjunto de segmentos de reta. f1f1 f2f2 f3f3 f4f4 f5f5 f6f6 f7f7

19 Extração de segmentos de reta Sobrepondo as linhas extraída na imagem, temos o seguinte resultado:

20 Reconhecimento dos segmentos A partir do conjunto de segmentos, as linhas do modelo são detectadas e o modelo reconhecido [Grimson90]. Método baseado na Transformada de Hough. Método de reconhecimento baseado em modelo. Conjunto de restrições

21 Reconhecimento dos segmentos F1F1 F7F7 F6F6 F5F5 F4F4 F3F3 F2F2 f1:f1: f2:f2: F1F1 F6F6 F2F2 F3F3 F4F4 F5F5 F7F7 Modelo F1F1 F7F7 F6F6 F5F5 F4F4 F3F3 F2F2 F1F1 F7F7 F6F6 F5F5 F4F4 F3F3 F2F2 F1F1 F7F7 F6F6 F5F5 F4F4 F3F3 F2F2 F1F1 F7F7 F6F6 F5F5 F4F4 F3F3 F2F2 F1F1 F7F7 F6F6 F5F5 F4F4 F3F3 F2F2 F1F1 F7F7 F6F6 F5F5 F4F4 F3F3 F2F2 F1F1 F7F7 F6F6 F5F5 F4F4 F3F3 F2F2 F1F1 F7F7 F6F6 F5F5 F4F4 F3F3 F2F2 Árvore de Interpretação f1f1 f2f2 f3f3 f4f4 f5f5 f6f6 f7f7 Visualização Método de Reconhecimento baseado em Modelo

22 O nó {f 1 : F 1, f 2 :F 6, f 3 :F 3 } é discardado por que viola a restrição: A linha representante de F 6 deve estar entres as linhas que representam F 1 e F 3, na visualização. F1F1 F7F7 F6F6 F5F5 F4F4 F3F3 F2F2 F1F1 F7F7 F6F6 F5F5 F4F4 F3F3 F2F2 f1:f1: f2:f2: Árvore de Interpretação F1F1 F7F7 F6F6 F5F5 F4F4 F3F3 F2F2 F1F1 F7F7 F6F6 F5F5 F4F4 F3F3 F2F2 F1F1 F7F7 F6F6 F5F5 F4F4 F3F3 F2F2 F1F1 F7F7 F6F6 F5F5 F4F4 F3F3 F2F2 F1F1 F7F7 F6F6 F5F5 F4F4 F3F3 F2F2 F1F1 F7F7 F6F6 F5F5 F4F4 F3F3 F2F2 F1F1 F7F7 F6F6 F5F5 F4F4 F3F3 F2F2 F1F1 F7F7 F6F6 F5F5 F4F4 F3F3 F2F2 f3:f3: Reconhecimento dos segmentos Discardando nós F1F1 F6F6 F2F2 F3F3 F4F4 F5F5 F7F7 Modelo f1f1 f2f2 f3f3 f4f4 f5f5 Visualização f6f6 f7f7

23 Reconhecimento dos segmentos Problema relacionado com a perspectiva

24 Reconhecimento dos segmentos Problema relacionado com a perspectiva

25 Reconhecimento dos segmentos Escolhendo a melhor solução F1F1 F6F6 F2F2 F3F3 F4F4 F5F5 F7F7 Modelo Em geral, existem diversas interpretações possíveis; Escolhemos a interpretação onde a soma dos comprimentos dos segmentos representativos é máxima. f 1 : F 4 f 2 : F 3 f 3 : f 4 : f 5 : F 6 f 6 : F 7 f 7 : F 1 Vencedor f1f1 f2f2 f3f3 f4f4 f5f5 f6f6 f7f7 Visualização f 1 : F 4 f 2 : f 3 : f 4 : F 3 f 5 : F 6 f 6 : F 7 f 7 : F 1

26 f 1 : F 2 f 2 : F 3 f 3 : f 4 : f 5 : F 6 f 6 : F 5 f 7 : F 1 f 1 : F 4 f 2 : F 3 f 3 : f 4 : f 5 : F 6 f 6 : F 7 f 7 : F 1 f1f1 f2f2 f3f3 f4f4 f5f5 f6f6 f7f7 Visualização Reconhecimento dos segmentos F1F1 F6F6 F2F2 F3F3 F4F4 F5F5 F7F7 Modelo Resultado final F7F7 F1F1 F6F6 F2F2 F3F3 F4F4 F5F5 Modelo ou

27 Cálculo da transformação projetiva planar Uma transformação projetiva planar H (homografia) correspondente às linhas reconhecidas é encontrada (usando pontos de interseção e pontos de fuga como pontos de referência). Modelo reconstruído H pontos de interseção pontos de fuga

28 Calibração da câmera Modelo de Câmera - pinhole P = (x, y, z)p = (u, v)

29 Calibração da câmera A câmera é calibrada usando método de Tsai para a reconstrução de elementos que não estão no plano do modelo. Erros de sobreposição

30 Algoritmo estendido Imagem Filtragem para realce de linhas A1 Extração de segmentos de retas longos A2 Reconhecimento dos segmentos A3 Cálculo da transformação projetiva planar preliminar B1 Reconstrução da visualização do modelo B2 Reajuste das Linhas B3 Cálculo da transformação projetiva planar A4 Calibração da câmera A5

31 Reajuste das linhas tolerância para reajuste das linhas reconstruídas São usadas faixas de tolerância para descartar pontos distantes.

32 Reajuste das linhas linha reconstruída faixa de tolerância pontos da imagem nova linha localizada A nova linha localizada é obtida pelo método dos mínimos quadrados

33 Reajuste das linhas Resultado do reajuste das linhas:

34 Depois do reajuste das linhas do modelo na visualização, uma nova transformação é encontrada e uma nova reconstrução pode ser obtida. Cálculo da transformação projetiva planar

35 Calibração da câmera A câmera é calibrada usando o método de Tsai, com erro de sobreposição aceitável.

36 Para a primeira imagem, aplicamos o algoritmo proposto por inteiro. Trabalhando com uma seqüência A transformação projetiva planar final da imagem anterior é usada como a transformação preliminar para a imagem corrente. Para otimizar o processo, da segunda imagem em diante, tiramos proveito do resultado da imagem anterior. Próxima imagem da seqüência A1 Filtragem para realce de linhas B3 Reajuste das Linhas A4 Cálculo da transformação projetiva planar A5 Calibração da câmera

37 Reajuste dos segmentos Faixa de tolerância sem estimativa Faixa de tolerância com estimativa Estimativa de posição do segmento na cena n dada suas posições nas cena n-1 e n-2.

38 Algoritmo proposto Filtragem para realce de linhas Primeira imagem da seqüência Próxima imagem da seqüência Extração de segmentos de retas longos Reconhecimento dos segmentos Cálculo da transformação projetiva planar preliminar Reconstrução da visualização do modelo Cálculo da transformação projetiva planar Calibração da câmera Filtragem para realce de linhas Reajuste dos segmentos

39 Heurística para determinar o limiar de corte usado na segmentação Procura um patamar com valor máximo no gráfico que informa o número de segmentos extraídos para cada valor do limiar de corte.

40 Seqüência artificial Resultados Seqüência real

41 Resultados

42 Via acompanhamento Algoritmo inteiro Diferença

43 Resultados Protótipo para testar o algoritmo usando uma câmera 8mm Resultado do algoritmo usando a câmera posicionada conforme a imagem acima:

44 Resultados webcam Sem oclusão Com oclusão

45 Resultados Outro modelo

46 Resultados Onde o algoritmo falha Falta de nitidez Sombra parcial

47 A seqüência real de teste tem 67 imagens Computador: Pentium III 600MHz Tempo de processamento: 1140 milisegundos Computador: Pentium 4 1.7GHz Tempo de processamento: 500 milisegundos (<< 2234 milisegundos necessários para processamento em tempo real – 30 fps) Resultados

48 Resultados (precisão) Pontos do Campo Coordenadas Corretas Coordenadas Reconstruídas Erro xyzuvuv 105,068,000,0081,707216,58481,731215,9720,612 88,513,840,00230,11778,133228,74777,5251,499 88,554,160,001,236183,4630,424183,1970,854 99,524,840,00259,039134,206258,566133,8150,614 99,543,160,00146,690174,826146,067174,4840, ,030,340,00269,817155,102269,629154,6970, ,030,342,44270,921181,066270,215180,8630, ,037,662,44224,101194,645223,291194,4070, ,037,660,00223,405170,271223,082169,8760,510 Erro Médio0,696 Comparação entre as coordenadas corretas e reconstruídas para a primeira cena.

49 Pontos do Campo Coordenadas Corretas Coordenadas Reconstruídas Erro xyzuvuv 105,068,000,0097,167205,94096,791205,5850,517 88,513,840,00243,88366,434243,54966,0220,530 88,554,160,0016,101173,17415,655172,6230,709 99,524,840,00273,344124,029273,125123,7150,382 99,543,160,00160,672164,798160,366164,4210, ,030,340,00284,160145,173283,992144,9140, ,030,342,44285,241171,290284,886171,0900, ,037,662,44238,127184,768237,744184,5380, ,037,660,00237,462160,349237,252160,0630,355 Erro Médio0,452 Comparação entre as coordenadas corretas e reconstruídas para uma outra cena. Resultados (precisão)

50 Conclusões A estratégia de dividir a imagem em células resolve bem o problema da extração de segmentos de retas quando a imagem contém regiões com características diversas. Uma boa maneira para identificar linhas do modelo na imagem é a utilização do método baseado na árvore de interpretações. Um conjunto de apenas 5 restrições é suficiente. O reajuste das linhas utilizando uma faixa de tolerância e operando com a imagem filtrada e segmentada apresentou bons resultados para a nova localização dos segmentos na seqüência de quadros. Uma estimativa de localização de segmentos baseada em quadros passados é importante, podendo conduzir a resultados melhores.

51 Conclusões A heurística apresentada para determinar um valor de limiar utilizado no método de segmentação apresentou na prática resultados satisfatórios. O critério que suaviza a restrição de paralelismo mostrou-se eficiente quando existe uma distorção perspectiva na imagem.

52 Conclusões O algoritmo proposto gerou bons resultados mesmo quando aplicado às imagens com ruídos capturadas de uma transmissão de TV. O algoritmo pode ser usado em computadores pessoais (nenhum hardware especializado é necessário). O tempo de processamento é bem abaixo do necessário para processamento em tempo real. O tempo extra pode ser usado, por exemplo, para desenhar anúncios ou propagandas.

53 Trabalhos futuros Pesquisar outros filtros para realce de linhas e métodos de segmentação. Obter métodos para determinar o valor do limiar usado na segmentação. Utilizar de forma mais eficiente os valores dos pontos da imagem resultante do filtro LoG, através de funções de transferência. Critério de paralelismo: determinar valores para e. Desenvolver outras técnicas de coletas de pontos para o reajuste das linhas.

54 Trabalhos futuros Investigar métodos para suavizar a seqüência de câmeras através da aplicação do filtro de Kalman. Desenvolver técnicas para acompanhar outros objetos que se movem sobre o modelo, tais como bola e jogadores sobre as linhas do gramado. Desenhar objetos no campo atrás dos jogadores, dando a impressão de que os jogadores estão andando sobre eles.

55 Trabalhos futuros Chroma Key


Carregar ppt "Acompanhamento de Cenas com Calibração Automática de Câmeras por Flávio Szenberg Orientadores: Marcelo Gattass Paulo Cezar Pinto Carvalho Departamento."

Apresentações semelhantes


Anúncios Google