55
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

Flávio Szenberg - PUC-Riowebserver2.tecgraf.puc-rio.br/~mgattass/teses/2001... · 2014. 7. 14. · B3 Reajuste das Linhas A4 Cálculo da transformação projetiva planar A5 Calibração

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

  • Acompanhamento de Cenas com Calibração Automática de Câmeras

    por

    Flávio Szenberg

    Orientadores:Marcelo GattassPaulo Cezar Pinto Carvalho

    Departamento de Informática, PUC-Rio19 de dezembro de 2001

  • Juiz Virtual

    pontos de referênciapontos de objetos

  • 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

  • Modelos

    F1

    F6 F2

    F3

    F4

    F5 F7

    F8 F9

    F1 F6

    F2

    F3

    F4

    F5

    F8

    F7

    F9

    Os modelos utilizados na tese:

    Modelo de um campo de futebol

    Modelo sem simetria

  • Algoritmo básicoImagem

    Filtragem para realce de linhasA1

    Extração de segmentos de retas longosA2

    Reconhecimento dos segmentosA3

    Cálculo da transformação projetiva planarA4

    Calibração da câmeraA5

  • Filtragem para realce de linhas O filtro Laplaciano da Gaussiana (LoG) é aplicado à

    imagem, baseado na luminância.

    010141

    010

    121242121

    161

    filtro gaussiano

    filtro laplaciano

  • Filtragem para realce de linhas Problemas com linhas duplas

  • Filtragem para realce de linhas A transformação negativa é aplicada entre o cálculo da

    luminância e o filtro LoG.

  • Filtragem para realce de linhas Resultado de uma segmentação (threshold) feita na

    imagem filtrada.

    (em negativo para visualizar melhor)

  • 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.

  • Eliminando pontos que não estão sobre um segmento de reta

    A imagem é dividida, por uma grade regular, em células retangulares.

  • 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ãoo autovetor de 1 é a direção predominante

    senãoa célula não tem uma direção predominante

    n

    ii

    n

    iii

    n

    iii

    n

    ii

    vvvvuu

    vvuuuu

    n1

    2

    1

    11

    2

    1

    1

    2

    vu ,

  • Eliminando pontos que não estão sobre um segmento de reta

    Podemos atribuir pesos i aos pontos (resultado do LoG).

    n

    ii

    n

    iii

    n

    iii

    n

    ii

    vvvvuu

    vvuuuu

    n1

    2

    1

    11

    2

    1

    n

    iii

    n

    iiii

    n

    iiii

    n

    iii

    n

    ii vvvvuu

    vvuuuu

    1

    2

    1

    11

    2

    1

    1

  • Eliminando pontos que não estão sobre um segmento de reta

    Células com pontos formando segmentos de retas:

  • 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.

  • Determinando segmentos de reta São formados grupos com células de mesmo valor,

    representados na figura abaixo por cores distintas.

  • Extração de segmentos de retaCada 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.

    n

    iii

    n

    iiii

    n

    ii

    n

    iii

    n

    iii

    n

    iii

    v

    vu

    u

    uu

    ba

    1

    1

    1

    11

    11

    2

    v

    u

  • Extração de segmentos de retaOs 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.

    a

    b

    c

    d

    e

    f

    f1

    f2f3f4

    f5f6

    f7

  • Extração de segmentos de retaSobrepondo as linhas extraída na imagem, temos o seguinte resultado:

  • 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

  • Reconhecimento dos segmentos

    F1 F7 F6F5F4F3F2f1:

    f2:

    F1

    F6F2

    F3

    F4

    F5 F7

    Modelo

    F1 F7 F6F5F4F3F2 F1 F7 F6F5F4F3F2 F1 F7 F6F5F4F3F2F1 F7 F6F5F4F3F2 F1 F7 F6F5F4F3F2 F1 F7 F6F5F4F3F2 F1 F7 F6F5F4F3F2 F1 F7 F6F5F4F3F2

    Árvore de Interpretaçãof1

    f2f3f4

    f5f6

    f7

    Visualização

    Método de Reconhecimento baseado em Modelo

  • O nó {f1: F1, f2:F6 , f3:F3} é discardado por que viola a restrição:

    A linha representante de F6 deve estar entres as linhas que representam F1 e F3, na visualização.

    F1 F7 F6F5F4F3F2

    F1 F7 F6F5F4F3F2f1:

    f2:

    Árvore de Interpretação

    F1 F7 F6F5F4F3F2 F1 F7 F6F5F4F3F2 F1 F7 F6F5F4F3F2F1 F7 F6F5F4F3F2 F1 F7 F6F5F4F3F2 F1 F7 F6F5F4F3F2 F1 F7 F6F5F4F3F2 F1 F7 F6F5F4F3F2

    f3:

    Reconhecimento dos segmentosDiscardando nós

    F1

    F6F2

    F3

    F4

    F5 F7

    Modelo

    f1

    f2

    f3

    f4

    f5

    Visualização

    f6

    f7

  • Reconhecimento dos segmentosProblema relacionado com a perspectiva

    2

    1222

    122

    1222

    12

    12122

    1212

    )()()()(

    ))(())((

    vvuuvvuu

    vvvvuuuu

    ttttssss

    ttssttss

    8.0121

  • Reconhecimento dos segmentosProblema relacionado com a perspectiva

    f1

    f2

    f3

  • Reconhecimento dos segmentosEscolhendo a melhor solução

    F1

    F6F2

    F3

    F4

    F5 F7

    Modelo

    • Em geral, existem diversas interpretações possíveis;

    • Escolhemos a interpretação onde a soma dos comprimentos dos segmentos representativos é máxima.

    f1 : F4 f2 : F3 f3 : f4 : f5 : F6 f6 : F7 f7 : F1 Vencedor

    f1

    f2f3f4

    f5f6

    f7

    Visualização

    f1 : F4 f2 : f3 : f4 : F3 f5 : F6 f6 : F7 f7 : F1

  • f1 : F2 f2 : F3 f3 : f4 : f5 : F6 f6 : F5 f7 : F1

    f1 : F4 f2 : F3 f3 : f4 : f5 : F6 f6 : F7 f7 : F1

    f1

    f2f3f4

    f5f6

    f7

    Visualização

    Reconhecimento dos segmentos

    F1

    F6F2

    F3

    F4

    F5 F7

    ModeloResultado final

    F7F1

    F6F2

    F3

    F4

    F5

    Modelo

    ou

  • 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

  • Calibração da câmeraModelo de Câmera - “pinhole”

    130302

    0301

    zyx

    trtvftrvfrtuftrufr

    svsus

    z

    zy

    zx

    p~ f

    Z

    Y

    X

    P

    v~

    u~C

    Plano da imagem projetada

    u

    v

    xy z

    o

    r1

    r3

    r2

    Oimagem

    p

    P = (x, y, z)p = (u, v)

  • 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

  • Algoritmo estendidoImagem

    Filtragem para realce de linhasA1

    Extração de segmentos de retas longosA2

    Reconhecimento dos segmentosA3

    Cálculo da transformação projetiva planar preliminarB1

    Reconstrução da visualização do modeloB2

    Reajuste das LinhasB3

    Cálculo da transformação projetiva planarA4

    Calibração da câmeraA5

  • Reajuste das linhas

    tolerância para reajuste das linhas reconstruídas

    São usadas faixas de tolerância para descartar pontos distantes.

  • Reajuste das linhaslinhareconstruída

    faixa de tolerância

    pontos da imagem

    nova linha localizada

    A nova linha localizada é obtida pelo método dos mínimos quadrados

  • Reajuste das linhasResultado do reajuste das linhas:

  • 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

  • Calibração da câmera A câmera é calibrada usando o método de Tsai, com erro

    de sobreposição aceitável.

  • • 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

  • Reajuste dos segmentos

    Faixa de tolerância sem estimativa

    Faixa de tolerância com estimativa

    pontos da cena n

    novo ajuste

    posição do segmento na cena n-2

    posição do segmento na cena n-1

    estimativa de posição do segmento para cena n

    Estimativa de posição do segmento na cena n dada suas posições nas cena n-1 e n-2.

  • 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

  • 0

    1

    2

    3

    4

    5

    6

    7

    8

    9

    6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39

    Limiar

    Segm

    ento

    s ex

    traíd

    osHeurí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.

  • Seqüência artificial

    ResultadosSeqüência real

  • Resultados

  • Resultados

    Via acompanhamento

    Algoritmo inteiro

    Diferença

  • ResultadosProtótipo para testar o algoritmo usando uma câmera 8mm

    Resultado do algoritmo usando a câmera posicionada conforme a imagem acima:

  • Resultadoswebcam

    Sem oclusão

    Com oclusão

  • ResultadosOutro modelo

  • Resultados Onde o algoritmo falha

    Falta de nitidez

    Sombra parcial

  • A seqüência real de teste tem 67 imagens

    Computador: Pentium III 600MHzTempo de processamento: 1140 milisegundos

    Computador: Pentium 4 1.7GHzTempo de processamento: 500 milisegundos

    (

  • Resultados (precisão)

    Pontos do Campo Coordenadas Corretas Coordenadas Reconstruídas Erro

    x y z u v u v105,0 68,00 0,00 81,707 216,584 81,731 215,972 0,612

    88,5 13,84 0,00 230,117 78,133 228,747 77,525 1,499

    88,5 54,16 0,00 1,236 183,463 0,424 183,197 0,854

    99,5 24,84 0,00 259,039 134,206 258,566 133,815 0,614

    99,5 43,16 0,00 146,690 174,826 146,067 174,484 0,711

    105,0 30,34 0,00 269,817 155,102 269,629 154,697 0,446

    105,0 30,34 2,44 270,921 181,066 270,215 180,863 0,735

    105,0 37,66 2,44 224,101 194,645 223,291 194,407 0,845

    105,0 37,66 0,00 223,405 170,271 223,082 169,876 0,510

    Erro Médio 0,696Comparação entre as coordenadas corretas e reconstruídas para a primeira cena.

  • Pontos do Campo Coordenadas Corretas Coordenadas Reconstruídas Erro

    x y z u v u v105,0 68,00 0,00 97,167 205,940 96,791 205,585 0,517

    88,5 13,84 0,00 243,883 66,434 243,549 66,022 0,530

    88,5 54,16 0,00 16,101 173,174 15,655 172,623 0,709

    99,5 24,84 0,00 273,344 124,029 273,125 123,715 0,382

    99,5 43,16 0,00 160,672 164,798 160,366 164,421 0,486

    105,0 30,34 0,00 284,160 145,173 283,992 144,914 0,309

    105,0 30,34 2,44 285,241 171,290 284,886 171,090 0,407

    105,0 37,66 2,44 238,127 184,768 237,744 184,538 0,447

    105,0 37,66 0,00 237,462 160,349 237,252 160,063 0,355

    Erro Médio 0,452Comparação entre as coordenadas corretas e reconstruídas para uma outra cena.

    Resultados (precisão)

  • 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.

  • 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.

    2

    1222

    122

    1222

    12

    12122

    1212

    )()()()(

    ))(())((

    vvuuvvuu

    vvvvuuuu

    ttttssss

    ttssttss

  • 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.

  • 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.

  • 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.

  • Trabalhos futurosChroma Key