Alinhamento Virtual de Projetores Pablo Alfredo Saip Baier Orientador: Paulo C. P. Carvalho 19/09/2001 À Nely Jaramillo. Sua alegria e espontaneidade permanecerão... ii Agradecimentos Meus sinceros agradecimentos aos professores: ✍ Paulo Cezar Pinto de Carvalho, meu orientador, pelos vários momentos de discussão e acompanhamento durante todo o perı́odo de mestrado. ✍ Luiz Velho, pelas idéias sugeridas. ✍ Marcelo Gattass, pela oportunidade de cooperar com a PUC. Meus sinceros agradecimentos a todos os colegas do grupo VISGRAF, em especial a Vinicius Mello & Moacyr Alvim Horta, que me ajudaram a dar os “primeiros passos” em programação. Aos colegas do grupo TECGRAF, em especial a Flávio Szenberg & Maurı́cio Hofmam, que me socorreram em vários momentos crı́ticos. Meus sinceros agradecimentos aos meus pais Rene Alfredo Baier & Ingrid Saip, irmãos Jurgen Baier & Herbert Baier, pelo constante incentivo e apoio. Meus sinceros agradecimentos à Renata Chastinet Braga1 , pela paciência nos anos em que estive fisicamente ausente; sempre estivemos juntos ♥... Meus sinceros agradecimentos a Paul Krause & Micheline Guerreiro, pela agradável convivência, fundamental para a tranquilidade nos estudos. Meus sinceros agradecimentos a todos os amigos do Rio de Janeiro e de Fortaleza, que de alguma forma contribuı́ram para a conquista de mais uma etapa na minha vida. 1 Zab iii Resumo Este trabalho trata dos ajustes que devem ser aplicados nas imagens geradas por vários projetores, de tal forma que visualmente se tenha a impressão de continuidade e unicidade. Fazendo uso de uma câmera, a partir da projeção e captura de padrões, desenvolve-se um método de mı́nimos quadrados que calcula as transformações projetivas que aproximam as projeções das imagens. Através de técnicas de programação linear, são determinados retângulos ótimos na região de projeção, que servem de base para a tela virtual. São discutidos ainda alguns resultados de erro e convergência, assim como exemplos gerados pela aplicação desenvolvida. Sumário 1 Introdução 1.1 Motivação e Descrição do Problema . . . . . . . . . . . . . . . 1 1 2 Conceitos e Teoria Básica 2.1 Geometria Projetiva . . . . . 2.2 Câmera Virtual . . . . . . . . 2.2.1 Câmera Fotográfica . . 2.2.2 Espaços de Referências . . . . 4 4 8 8 9 . . . . . . 11 13 15 17 17 19 20 3 Calibração 3.1 Modelagem da Calibração 3.2 Mı́nimos Quadrados . . . 3.3 Câmera . . . . . . . . . . 3.3.1 Erro . . . . . . . . 3.3.2 Convergência . . . 3.4 Projetor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Ajuste dos Projetores 22 4.1 Maior Retângulo . . . . . . . . . . . . . . . . . . . . . . . . . 23 4.2 Exemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 4.3 Obtenção das Tranformações . . . . . . . . . . . . . . . . . . . 27 5 Produto 5.1 Desenvolvimento . . . 5.1.1 Recursos . . . . 5.1.2 Procedimentos 5.2 Resultados . . . . . . . 5.2.1 Caso IE . . . . 5.2.2 Caso IM . . . . . . . . . . . . . . . . . . . . . . . . . . . . iv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 29 30 31 32 32 34 SUMÁRIO v 6 Considerações Finais 37 6.1 Conclusões . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 6.2 Trabalhos Futuros . . . . . . . . . . . . . . . . . . . . . . . . . 37 Lista de Figuras 1.1 1.2 Exemplo da projeção de uma paisagem em forma de mosaico . Distorções provocadas pelos projetores . . . . . . . . . . . . . 2 3 2.1 2.2 2.3 2.4 2.5 Fotografia de uma estrada . Plano projetivo . . . . . . . Projeção cônica . . . . . . . Descrição da câmera de furo Modelo de câmera . . . . . . 5 7 8 8 9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (a) Imagem capturada pela câmera, no espaço da imagem C. (b) Imagem no espaço corretivo, mostrando a geometria correta dos objetos. . . . . . . . . . . . . . . . . . . . . . . . 3.2 Esquema geral de projeção e captura . . . . . . . . . . . . . 3.3 A esquerda vê-se uma imagem que representa uma nuvem de pontos no espaço da imagem C e a direita o modelo da nuvem de pontos no espaço corretivo. . . . . . . . . . . . . . . . . . 3.4 Aplicação projetiva entre espaço da imagem C e o espaço corretivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.5 Posições da câmera . . . . . . . . . . . . . . . . . . . . . . . 3.6 Esquema geral para calibração do projetor . . . . . . . . . . . . . . . 3.1 4.1 4.2 . 11 . 12 . 13 . 14 . 18 . 20 4.3 4.4 4.5 4.6 4.7 Projeções no espaço corretivo . . . . . . . . . . . . . . . . . . Retângulos: (a) genérico no plano (4 parâmetros), (b) com razão de aspecto ρ (3 parâmetros) . . . . . . . . . . . . . . . . (a) Retângulos com taxa de sobreposição µ, (b) µ = 1, (c) µ = 0. Retângulos ajustados lateralmente nos quadriláteros . . . . . . Exemplo 1 de maior retângulo. Caso estéreo. . . . . . . . . . . Exemplo 2 de maior retângulo. Caso por sobreposição. . . . . Exemplo 3 de maior retângulo. Caso por sobreposição. . . . . 5.1 5.2 Aspecto inicial da aplicação . . . . . . . . . . . . . . . . . . . 30 Etapa de calibração da câmera . . . . . . . . . . . . . . . . . . 31 vi 23 23 24 25 26 27 27 LISTA DE FIGURAS 5.3 5.4 5.5 5.6 Projetores Projetores Projetores Projetores desalinhados em estéreo alinhados em estéreo . . desalinhados em mosaico alinhados em mosaico . vii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 33 35 36 Capı́tulo 1 Introdução “Os economistas, por brilhante que seja, às vezes propõem coisas insensatas. E não só os economistas. Os sociólogos, então nem se fale...” Fernando Henrique Cardoso, presidente da República. 1.1 Motivação e Descrição do Problema A utilização de vários projetores simultâneos para visualizar imagens em mosaico (IM ), como paisagens e imagens de alta resolução (ver Figura 1.1), e imagens em estéreo (IE ) é, hoje em dia, uma crescente necessidade. O resultado precisa criar uma impressão de continuidade e unicidade, porém distorções provocadas pelo posicionamento e caracterı́sticas inerentes a cada projetor, assim como deformações da tela de projeção, tornam difı́cil, se não impossı́vel, um ajuste manual dos equipamentos, que resulte em projeções visualmente satisfatórias (Figura 1.2). Uma forma de resolver o problema é usar projetores de sobreposição com precisão eletro-mecânica (e.g., simuladores de vôo) ou com lentes e hardware especı́ficos, ambos de alto custo [12]. No presente trabalho será apresentado um método robusto para alinhamento de projetores, fazendo uso de uma câmera, que calcula as deformações (“warping”) que devem ser aplicadas às imagens, para os problemas de IM e IE com dois projetores (que pode facilmente, para o caso de IM, ser estendido para três ou mais projetores), de tal forma que ao serem projetadas estejam perceptualmente corretas sem que seja necessário fazer ajustes na posição dos projetores. Assume-se que as projeções são feitas sobre uma superfı́cie regular plana e que a câmera esteja em uma posição fixa capaz de captar todas as projeções simultaneamente. Através da projeção e captação de padrões (para identificar e comparar nuvens de pontos) e fazendo uso de um método de minimização (discutido no 1 CAPÍTULO 1. INTRODUÇÃO 2 Figura 1.1: Exemplo da projeção de uma paisagem em forma de mosaico Capı́tulo 3), serão calculadas algumas das transformações entre os espaços das etapas de visualização do modelo de câmera “pin hole” (apresentado no Capı́tulo 2), que servirão para determinar regiões de projeção apropriadas (explicitadas no Capı́tulo 4), resultando nos warpings (transformações projetivas) procurados. Nos Capı́tulos 5 e 6 são discutidos os resultados e conclusões. O método descrito nesta tese trata apenas do problema geométrico, não tratando da correção de crominância ou luminância. Parâmetros intrı́nsecos ou extrı́nsecos dos equipamentos não são requeridos. Projetores de resolução, zoom, ou densidade de pixels diferentes podem ser usados. O método proposto elimina a necessidade de projetores sofisticados, reduzindo significantemente o custo financeiro da solução. CAPÍTULO 1. INTRODUÇÃO Figura 1.2: Distorções provocadas pelos projetores 3 Capı́tulo 2 Conceitos e Teoria Básica “Época triste a nossa em que é mais difı́cil quebrar um preconceito do que um átomo.” Albert Einstein, (1879–1955). 2.1 Geometria Projetiva Nesta seção serão apresentados alguns conceitos básicos da geometria projetiva. Em busca de um modelo de geometria que seja adequado aos objetivos da Computação Gráfica, pode-se enumerar diversos aspectos que se deve exigir: 1. As transformações devem preservar elementos lineares do espaço (retas, segmentos, planos, etc.). 2. As transformações devem possuir uma representação simples que possibilite uma implementação fácil e eficiente no computador. 3. As transformações da geometria devem atender aos requisitos mı́nimos de manipulação dos objetos que se deseja criar e visualizar. Uma escolha natural seria o espaço Rn com as transformações afins1 , pois incluem às isometrias (satisfazendo (1)) e são representadas por matrizes (satisfazendo (2)). Porém, situações como fotografias de paisagens mostradas na Figura 2.1 não seriam possı́veis de serem representadas, já que, na operação de visualização da foto 2.1-(a) para 2.1-(b), a relação de paralelismo é quebrada, fato não suportado pelas transformações afins (não satisfazendo à condição (3)). A escolha recai, então, no espaço projetivo RPn , que, como será mostrado a seguir, contém de modo natural o espaço Rn , as transformações afins e as 1 transformações do tipo T : Rn → Rn ; T (x) = Ax + b 4 CAPÍTULO 2. CONCEITOS E TEORIA BÁSICA 5 P (a) (b) Figura 2.1: Fotografia de uma estrada projeções cônicas2 , ou seja, contém todas as propriedades necessárias para satisfazer às condições (1), (2) e (3). O Espaço Projetivo Em termos mais precisos, define-se o espaço projetivo RPn como sendo o quociente de Rn+1 módulo a seguinte relação de equivalência: v ∼ w ⇔ ∃λ ∈ R∗ ; w = λv, v, w ∈ Rn+1 , ou seja, pontos que estão em uma mesma reta que passa pela origem, representam a mesma classe. Geometricamente pode-se interpretar RPn da seguinte forma: cada reta que passa pela origem de Rn+1 , excluindo a própria origem, é um ponto projetivo de RPn e todo ponto projetivo de RPn é uma reta que passa pela origem de Rn+1 , menos a origem. Dessa forma, como será visto com mais detalhes a seguir, RPn representa os pontos e direções do Rn−1 . Além disso, como RPn parametriza os subespaços de dimensão 1 de Rn+1 , segue que a dimensão de RPn é n. Um espaço projetivo de dimensão 1 será chamado de reta projetiva e de dimensão 2 de plano projetivo. Uma projeção cônica T : Π → Π0 , Π, Π0 hiperplanos contidos em Rn , é definida pondo T (P ) = P 0 conforme mostrado na Figura 2.3. Tais projeções modelam as transformações presentes na Figura 2.1. 2 CAPÍTULO 2. CONCEITOS E TEORIA BÁSICA 6 Coordenadas Homogêneas A coordenada homogênea de um ponto Pb ∈ RPn é a escolha de um representante da classe de Pb, ou seja, a coordenada homogênea de Pb é uma (n + 1)-upla P = (p1 , p2 , . . . , pn+1 ) pertencente à reta dada por Pb em Rn+1 . Logo, as coordenadas projetivas não se alteram quando multiplicadas por um escalar não nulo. Transformações Projetivas Dada uma aplicação linear bijetiva T : Rn+1 → Rn+1 defina-se Tb : RPn → RPn Pb 7→ T[ (P ), onde P é uma coordenada homogênea de Pb. Tal aplicação está bem definida, pois se P 0 é outra escolha para Pb, tem-se: \ T (P 0 ) = T (λP ) = λT (P ), λ ∈ R∗ ∴ T (P 0 ) = T[ (P ). Toda aplicação desse tipo é chamada de transformação projetiva. Além disso observe que se Q : Rn+1 → Rn+1 é tal que Q = λT, λ ∈ R∗ , temb = Tb, ou seja, uma transformação projetiva define T a menos de um se Q produto por escalar não nulo. Afirmação A. O espaço projetivo RPn contém de modo natural o Rn . Com efeito, sem perda de generalidade considere n = 2 e o plano de equação z = 1 em R3 (ver Figura 2.2). Um ponto projetivo Pb ∈ RP2 com coordenadas homogêneas P = (x, y, z), z 6= 0, possui outro representante P 0 no plano z = 1 com coordenadas homogêneas P 0 = (x/z, y/z, 1). Reciprocamente, todo ponto (x, y, 1) do plano z = 1 define uma única reta que passa pela origem, que é um ponto projetivo. Essa correspondência natural determina uma partição dos pontos do plano em dois conjuntos n o n o 2 \ \ RP = (x, y, 1) ∪ (u, v, 0) , (u, v) 6= 0. Os pontos da forma (x, y, 1) são os pontos do plano euclidiano z = 1. Esses pontos são chamados pontos afins do plano projetivo. Os pontos com coordenadas (u, v, 0) são chamados de pontos ideais ou pontos do infinito. Afirmação B. Existe uma correspondência biunı́voca entre as tranformações afins T de Rn e as projetivas T 0 de RPn que tranformam RPn−1 nele mesmo. CAPÍTULO 2. CONCEITOS E TEORIA BÁSICA 7 P 1 P' Figura 2.2: Plano projetivo De fato, seja P = (p1 , p2 , . . . , pn+1 ) ∈ Rn+1 as coordenadas homogêneas3 de Pb ∈ RPn , associado a Q ∈ Rn (Afirmação A) da seguinte forma: Q = (q1 , q2 , . . . , qn ); q1 = p1 /pn+1 , q2 = p2 /pn+1 , . . . , qn = pn /pn+1 . A correspondência é então dada por T ↔ T 0 , onde T: e Rn n → R P Pn n (q1 , . . . , qn ) → 7 j=1 a1j qj + a1(n+1) , . . . , j=1 anj qj + an(n+1) T0: RPn+1 → RPn+1 P Pn+1 \ n+1 (p1 , \ . . . , pn+1 ) → 7 a p , . . . , a p , p n+1 j=1 1j j j=1 nj j (Ver [8]). Afirmação C. A projeção cônica é uma transformação projetiva. Com efeito, seja T : Π → Π0 uma projeção cônica, onde Π, Π0 são hiperplanos contidos em Rn+1 . Tome uma transformação projetiva L que transforma o centro de projeção O em um ponto do infinito (ver Figura 2.3). Todas as retas de projeção são transformadas por L em retas paralelas, portanto a transformação composta L ◦ T da projeção cônica T com a transformação projetiva L é uma projeção paralela4 T 0 entre os planos Como T 0 deixa uma dimensão fixa, pode-se escolher P tal que pn+1 6= 0. Uma projeção T : Π → Π0 é dita paralela quando existe uma reta r tal que ∀P ∈ Π tem-se P T (P ) k r. É facil ver que T é uma aplicação afim, donde projetiva. 3 4 CAPÍTULO 2. CONCEITOS E TEORIA BÁSICA 8 P P' O Q Q' Figura 2.3: Projeção cônica transformados L (Π) e L (Π0 ). Segue-se que a projeção cônica é dada por T = L−1 ◦ T 0 . Ou seja, ela é composta de uma projeção paralela com a transformação projetiva L−1 , sendo pois uma transformação projetiva. Das afirmações A, B, C, segue que a geometria projetiva satisfaz às condições 1, 2, 3. 2.2 Câmera Virtual Nesta seção serão apresentadas a definição e alguns conceitos básicos relacionados ao modelo de câmera virtual “pin hole” (ver [14]). 2.2.1 Câmera Fotográfica O modelo de câmera fotografica virtual usado neste trabalho está descrito na Figura 2.4. Plano da retina Centro ótico Objeto C Eixo ótico Plano focal Imagem Distância focal Figura 2.4: Descrição da câmera de furo CAPÍTULO 2. CONCEITOS E TEORIA BÁSICA 9 Na primeira tela, denominada plano focal, existe um “pin hole” (furo) no ponto C, chamado de centro ótico ou centro de projeção, por onde passam os feixes de luz que saem do objeto, incidindo na segunda tela, denominada plano da retina ou plano de projeção, formando a imagem. A distância entre os planos é chamada de distância focal e a reta perpendicular ao plano da retina que passa por C denomina-se eixo ótico. Para evitar que a imagem projetada pela câmera resulte invertida, é comum deslocar o plano de projeção, posicionando-o à frente do centro de projeção C, como ilustrado na Figura 2.5. Assim, do ponto de vista de transformações projetivas, a visualização de um objeto gráfico tridimensional consiste em utilizar uma projeção (cônica ou paralela) no plano, reduzindo o problema ao de visualização bidimensional. Plano de Projeção C Centro de Projeção Figura 2.5: Modelo de câmera 2.2.2 Espaços de Referências Para mapear as superfı́cies dos objetos em um suporte de exibição de uma forma fiel e eficiente, é conveniente dividir o processo de visualização em etapas, transformando os objetos para o sistema de coordenada no qual se torne mais natural a realização das transformações inerentes a cada etapa. De um modo geral o processo todo de visualização envolve o uso de 7 sistemas de coordenadas distintos, associados aos seguinte espaços: espaço do objeto, espaço de cena, espaço da câmera, espaço normalizado, espaço de ordenação, espaço de imagem e espaço do dispositivo. Porém, para o propósito deste trabalho serão considerados apenas: ❅ Espaço do objeto: É o espaço onde cada objeto é modelado. Esse espaço possui um sistema de coordenadas associado à geometria do objeto. CAPÍTULO 2. CONCEITOS E TEORIA BÁSICA 10 ❅ Espaço de imagem: Esse é o espaço da tela virtual no plano de projeção da câmera virtual. Neste espaço estão as imagens capturadas pela câmera. ❅ Espaço do dispositivo: Também é chamado de espaço de tela. Esse é o espaço associado à superfı́cie de exibição do dispositivo de saı́da gráfica. Para facilitar o entendimento será introduzido mais um espaço: ❅ Espaço corretivo: É o espaço onde as imagens aparecem sem as distorções provocadas pelos equipamentos. Tais distorções vão depender de algum tipo de referencial no espaço de cena e de um modelo desse referencial. Este espaço será mais detalhado no Capı́tulo 3. Para maiores detalhes sobre os diferentes espaços associados a uma transformação de visualizção ver [7]. Capı́tulo 3 Calibração “Eu não falhei. Eu descobri 10.000 formas que não funcionam.” Thomas Alva Edison, (1847–1931). Para poder utilizar uma câmera para corrigir as distorções provocadas pelos projetores, é necessário inicialmente calibrar a câmera, eliminando as deformações introduzidas pelo posicionamento e pela lente, conforme mostrado na Figura 3.1. Figura 3.1: (a) Imagem capturada pela câmera, no espaço da imagem C. (b) Imagem no espaço corretivo, mostrando a geometria correta dos objetos. Na Figura 3.1: (a) tem-se a imagem original capturada pela câmera, enquanto que na Figura 3.1: (b) vê-se a imagem corrigida segundo o referêncial do tabuleiro de xadrez. Como visto anteriormente (seção 2.1), essa transformação é projetiva (sendo estimada na seção 3.3). Após o ajuste da câmera, ela pode ser usada como base para o ajuste do projetor. Vale ressaltar que um projetor pode ser visto como uma “câmera inversa”, assim, o Espaço do Projetor nada mais é do que um Espaço da Câmera, logo, 11 CAPÍTULO 3. CALIBRAÇÃO 12 o Espaço do dispositivo para o projetor passa a ser o Espaço do objeto para a câmera, que será chamado apenas de Espaço Real. O esquema geral de projeção e captura é mostrado na Figura 3.2. Espaço Real Tela Plana C P E Im spa ag ço em da P da o C ç pa em Es ag Im TP TC Espaço Corretivo Figura 3.2: Esquema geral de projeção e captura Na figura acima se observa a imagem no Espaço da Imagem P que esta sendo projetada pelo projetor (representado pela transformação P ) em uma tela plana no Espaço Real. De forma “inversa”, a imagem no Espaço da Imagem C é gerada pela captura feita com a câmera (representada pela transformação C) do Espaço Real, que contém a tela plana e a projeção. Para estabelecer o espaço corretivo é necessário definir, neste espaço, o modelo de um objeto do espaço real, de tal sorte que, quando o objeto é capturado pela câmera seja possı́vel “compará-lo” com o modelo. Tal “comparação” é feita pontualmente, ou seja: tem-se um objeto no espaço real representando uma nuvem de pontos que tem uma nuvem equivalente modelada no espaço corretivo. Um objeto natural sugerido é um quadriculado em forma de tabuleiro de xadrez, que determina os pontos dos cantos de cada “casa” do tabuleiro, o que é facilmente modelado no quadrado unitário, como visto na Figura 3.3. Outra opção é adotar a imagem1 gerada por um dos projetores como objeto, modelado no retângulo de base unitária e lado igual a razão de aspecto do projetor. Devido à tela no espaço real ser plana e ao modelo usual de câmera virtual “pin hole” (seção 2.2), todas as transformações podem ser consideradas 1 Novamente sugere-se um quadriculado em forma de Xadrez. CAPÍTULO 3. CALIBRAÇÃO 13 Figura 3.3: A esquerda vê-se uma imagem que representa uma nuvem de pontos no espaço da imagem C e a direita o modelo da nuvem de pontos no espaço corretivo. projetivas de RP2 → RP2 . Para facilitar os cálculos pode-se tomar a imagem no espaço da imagem P como sendo um retângulo de base 1 e altura igual a razão de aspecto do projetor. 3.1 Modelagem da Calibração De uma maneira geral, calibrar uma câmera define-se como sendo a determinação de seus parâmetros intrı́nsecos (caracterı́sticas óticas de sua lente) e extrı́nseco (posição e orientação). Neste trabalho, porém, calibração do projetor e da câmera se referirá somente a determinação das aplicações Tp e Tc respectivamente, fechando o ciclo proposto no esquema da Figura 3.2. Problemas envolvendo estimação de parâmetros são naturalmente postos como problemas de otimização contı́nua, em que o objetivo é determinar um conjunto de parâmetros que minimizam o erro de ajuste. Suponha que existam n pontos cujas coordenadas pi = (xi , yi ) , (i = 1, . . . , n) (no espaço corretivo) sejam conhecidas. Associando estas coordenadas, através de uma aplicação projetiva T , às respectivas coordenadas qi = (ui , vi ) na imagem2 , são obtidas 2n equações, conforme exemplo mostrado na Figura 3.4. A determinação da aplicação projetiva consiste, portanto, em resolver tal sistema de equações. Em geral, porém, não é possı́vel obter uma solução que satisfaça a to2 Tais pontos são identificados automaticamente através de um processo na imagem. CAPÍTULO 3. CALIBRAÇÃO 14 Figura 3.4: Aplicação projetiva entre espaço da imagem C e o espaço corretivo das as equações. Tipicamente, é utilizado um grande número de pontos na calibração dos parâmetros de T (o uso de um número pequeno de pontos normalmente conduz a erros consideráveis na estimação dos parâmetros). Assim, o sistema de equações gerado pela associação destes pontos às suas imagens produz um número de equações superior ao número de incógnitas, fazendo com que, possivelmente, o sistema não tenha solução. Ou seja, para qualquer conjunto de parâmetros, haverá discrepâncias entre o ponto da imagem (ui , vi ) e seu associado (u0i , vi0 ) = T (xi , yi ). Desta forma o conjunto de parâmetros a ser calculado deve ser tal que estas discrepâncias sejam as menores possı́veis. É comum adotar como medida de discrepância o erro quadrático: n X 2 2 (ui − u0i ) + (vi − vi0 ) (3.1) i=1 Desta forma, o problema de calibração de câmera pode ser colocado como: min T n X 2 2 (ui − u0i ) + (vi − vi0 ) i=1 onde T é uma matriz 3 × 3 de RP2 → RP2 . (3.2) CAPÍTULO 3. CALIBRAÇÃO 3.2 15 Mı́nimos Quadrados Nesta seção será proposto um Sendo t1 T = t2 t3 método que procura resolver a equação (3.2). t13 t23 , ti = (ti1 ti2 ), t33 as coordenadas u0i e vi0 são dadas por t1 pi + t13 0 , ui = t3 pi + t33 vi0 = t2 pi + t23 t3 pi + t33 (3.3) Substituindo na equação de minimização do erro quadrático (3.2) tem-se: min T n X i=1 t1 pi + t13 ui − t3 pi + t33 2 t2 pi + t23 + vi − t3 pi + t33 2 (3.4) Este problema é não linear, exigindo a necessidade de técnicas elaboradas na busca de uma solução. Porém, pode-se “linearizar” a equação (3.4) multiplicando os termos no somatório por (t3 pi + t33 )2 , resultando na equação: min T n X (ui (t3 pi + t33 ) − t1 pi − t13 )2 + (vi (t3 pi + t33 ) − t2 pi − t23 )2 (3.5) i=1 que possui a solução trivial T ≡ 0. Isto vem do fato de que todas as matrizes da forma λT , onde λ ∈ R∗ , representam a mesma transformação projetiva. Portanto, é necessário adicionar uma condição de normalização. Faugeras (ver [5]) sugere o uso de kt3 k = 1, que resulta num problema de minimização com condição não linear, podendo ser resolvido por métodos de auto-valores. Caso se estivesse realmente minimizando a equação (3.2), todas as normalizações seriam equivalentes, já que multiplicações escalares não alteram a aplicação projetiva. Na versão linear (3.5), entretanto, diferentes normalizações levam a diferentes estimativas de T . Uma opção é adotar t3 c + t33 = 1, (3.6) onde c = (cx , cy ) é o centróide (média) dos pontos pi . O objetivo desta escolha é tornar o denominador da transformação projetiva, para um “tı́pico” ponto da cena, igual a 1. Já que os demais pontos não estão muito distantes do seu centróide, é de se esperar que o erro, quando do uso da versão linear ao invés da não linear, não seja tão sério. CAPÍTULO 3. CALIBRAÇÃO 16 Desta forma o problema à ser resolvido torna-se: mint kAtk sujeito a: aT t = 1 onde a e t são vetores 9 × 1 e A é uma matriz 2n × 9, construı́dos como mostrado à seguir: a = 0 0 0 0 0 0 cx cy 1 , t= A= t11 t12 t13 t21 t22 t23 t31 t32 t33 −x1 −y1 −1 0 0 0 u1 x1 −x2 −y2 −1 0 0 0 u2 x2 .. .. .. .. .. .. .. . . . . . . . −xn −yn −1 0 0 0 un xn 0 0 0 −x1 −y1 −1 v1 x1 0 0 0 −x2 −y2 −1 v2 x2 .. .. .. .. .. .. .. . . . . . . . 0 0 0 −xn −yn −1 vn xn , u1 y 1 u 1 u2 y 2 u 2 .. .. . . un y n u n . v1 y1 v1 v2 y2 v2 .. .. . . vn yn vn O problema acima pode, também, ser escrito na seguinte forma equivalente: Minimizar o funcional f : R9 → R, f (t) = kAtk2 = hAt, Ati, restrito ao hiperplano, que não passa pela origem, dado implicitamente pela equação φ(t) = 1, onde φ : R9 → R é tal que φ(t) = ha, ti. As derivadas parciais de f e φ são dadas por: ∂f (t) ∂ti = ∂hAt,Ati ∂ti ∂φ(t) ∂ti = ∂ha,ti ∂ti = 2 hAδi , Ati = 2 hδi , A∗ Ati , = hδi , ai . Portanto, os gradientes de f e φ são: ∇f (t) = 2A∗ At, ∇φ(t) = a. Assim, pelo Teorema dos Multiplicadores de Lagrange, o problema é equivalente ao sistema linear: ∗ A At = λa , ha, ti = 1 onde λ/2 é o multiplicador de Lagrange associado à condição linear. Assim, resolver o problema (3.5) com a condição (3.6) é equivalente a resolver o sistema acima. CAPÍTULO 3. CALIBRAÇÃO 17 A qualidade da estimativa obtida para T pode ser melhorada através de um processo seqüencial. Usando T , obtida como indicado anteriormente, calculam-se os denominadores di = t3 pi + t33 da expressão (3.3), resultando no seguinte problema: min T 2 n X ui (t3 pi + t33 ) − t1 pi − t13 di i=1 + 2 vi (t3 pi + t33 ) − t2 pi − t23 di (3.7) sujeito a: t3 c + t33 = 1. Isto conduz a uma segunda aproximação T2 para T , que pode ser usada para uma terceira aproximação T3 , e assim por diante... Desta forma, se obtém um método seqüencial linear de mı́nimos quadrados para resolver problemas não lineares de minimização do tipo (3.1). Em testes de desempenho com uma “referência virtual”, entretanto, as alterações numéricas resultantes do uso do processo seqüencial foram muito pequenas e as mudanças perceptuais praticamente inexistentes [1], como constatado na seção 3.3.2. 3.3 Câmera Para o problema de calcular Tc , do esquema da Figura 3.2, um questionamento natural é: “Em qual espaço deve-se minimizar a transformação projetiva?”, ou seja, tem-se que aplicar o método de minimização para Tc ou Tc−1 ? Inicialmente observe que minimizar erros no espaço da imagem significa diminuir erros perceptuais, enquanto que minimizar erros no espaço corretivo significa diminuir erros com a geometria dos objetos. Dessa forma, como se deseja que o resultado seja visualmente coerente, a escolha natural é Tc−1 . Na Figura 3.1 tem-se em (a) a imagem no espaço da imagem C, enquanto que em (b) a imagem deformada, através de Tc , para o espaço corretivo, onde os pontos em vermelho (nos cantos do tabuleiro) estao nas coordenadas {(0, 0), (1, 0), (1, 1), (0, 1)}. 3.3.1 Erro Foram realizados testes com um modelo de Tabuleiro de Xadrez (Figura 3.4) 8 × 8 (com n = 49 pontos), e com uma WebCam (que possui bastante distorção angular) com resolução de 352 × 288, nas posições 1, 2, 3, mostradas na Figura 3.5. Devido a ocorrer uma pequena variação na identificação dos pontos na imagem do tabuleiro, ocasionada pela interferência das luzes fluorecentes da sala e da falta de precisão da câmera, foram realizadas 3 medições em cada posição. Os resultados dos erros obtidos são dados abaixo, onde o CAPÍTULO 3. CALIBRAÇÃO 18 Erro Total é dado por: n q X (ui − u0i )2 + (vi − vi0 )2 i=1 que é a soma das distâncias entre o ponto calculado e seu associado, o Erro Médio é a normalização do Erro Total: Pn q (ui − u0i )2 + (vi − vi0 )2 i=1 n e o Maior Erro é o maior dos termos: q (ui − u0i )2 + (vi − vi0 )2 Modelo do tabuleiro Posição 1 Posição 2 Posição 3 Figura 3.5: Posições da câmera CAPÍTULO 3. CALIBRAÇÃO 19 ☞ Posição 1: Medição Erro Total 1 35.8 2 35.4 3 33.4 Erro Médio Maior Erro 0.7 1.7 0.7 2.6 0.6 2.6 ☞ Posição 2: Medição Erro Total 1 41.7 2 39.1 3 35.0 Erro Médio Maior Erro 0.8 2.3 0.8 2.3 0.7 2.7 ☞ Posição 3: Medição Erro Total 1 45.6 2 48.8 3 46.7 Erro Médio Maior Erro 0.9 2.3 1.0 2.4 0.9 2.3 Observa-se que o Erro médio é menor que 1, ou seja, em média, a distância entre o ponto da imagem e seu associado é menor que 1 pixel, o que é perceptualmente irrelevante. Porém o “Maior Erro” indica casos onde tal distância é maior do que 2 pixels. Além disso nota-se que o Erro Total tende a aumentar à medida que a câmera se posiciona de forma perpendicular ao tabuleiro (Posição 3). Isso se deve ao fato de que quanto mais perpendicular a câmera esteja, o tabuleiro preenche mais a imagem (Figura 3.5), aumentando a distância entre os pontos, conseqüentemente aumentando a interferência da distorção angular provocada pela WebCam. Porém tal posição, é mais “democrática” com todos os pontos da imagem, evitando grandes erros, o que não ocorre, principalmente nos cantos da imagem, quando a câmera está colocada nas demais posições. 3.3.2 Convergência Em todas as medições das 3 posições verificou-se que a ordem de grandeza do erro de calibração kTn − T k, onde Tn é a matriz resultante na n-ésima iteração do processo seqüencial e T é a matriz final, foi a mesma em todos os casos, como mostra a tabela abaixo: n kTn − T k 1 e−1 2 e−5 3 e−9 4 e−13 CAPÍTULO 3. CALIBRAÇÃO 20 Os resultados indicam que kTn − T k ∼ = e−4n+3 . Segue que e−4(n+1)+3 kTn+1 − T k / kTn − T k ∼ = e(−4(n+1)+3)−(−4n+3) = e−4 = e−4n+3 ∴ kTn+1 − T k / kTn − T k é constante, sugerindo que a convergência do método seja linear. 3.4 Projetor Uma vez calibrada a câmera, pode-se usar a imagem capturada por ela para calibrar o projetor. Para encontrar Tp usa-se um processo “inverso”, ou seja, ao invés de usar um objeto, cria-se uma imagem retângular de base unitária e lado igual a razão de aspecto do projetor, que represente um padrão em que seja possı́vel identificar uma nuvem de pontos (novamente sugere-se o formato de Xadrez), projetando-a de forma cheia3 conforme ilustrado na Figura 3.6. Espaço Real P da ço P pa m Es age Im T Es I m p aço ag em d a C C TP TC Espaço Corretivo Figura 3.6: Esquema geral para calibração do projetor 3 Cobrindo todo o espaço de projeção. CAPÍTULO 3. CALIBRAÇÃO 21 Após modelar, no espaço da imagem P, a nuvem de pontos dada pela imagem, novamente se recai na pergunta: “Ao ser capturada pela câmera, usa-se o método dos mı́nimos quadrados para calcular qual transformação?”, ou seja, em qual espaço se deseja minimizar o erro? No espaço da imagem C ou no espaço corretivo (aplicando Tc depois ou antes)? Pelo mesmo motivo já discutido na seção 3.3 (minimizar o erro perceptual), se escolheu o espaço da imagem C. Assim, se calcula uma transformação T :Espaço da imagem P → Espaço da imagem C, donde se segue, como Tc já é conhecida, que Tp = (Tc ◦ T )−1 = T −1 ◦ Tc−1 . A análise de Erro e Convergência é similar à feita na seção 3.3. Capı́tulo 4 Ajuste dos Projetores “Quando a mente está pensando, está falando consigo mesma.” Platão, (429–347aC). O propósito, tanto no caso de IE, quanto no caso IM, é obter uma imagem projetada na tela que ocupe a maior área possı́vel1 , mantendo as proporções e orientação corretas. Suponha que, para cada projetor P1 , P2 , foram construı́das imagens I1 e I2 de mesma dimensão, que devem no caso IE ou IM, se sobrepor ou posicionar lateralmente na tela respectivamente. Como os projetores estão desalinhados, as projeções de I1 e I2 são, na realidade, quadriláteros convexos U e V . Portanto, para obter uma imagem correta sem mover os projetores, é necessário deformar as imagens I1 e I2 de modo que, ao serem projetadas resultem em retangulos R1 e R2 sobrepostos (no caso IE ) ou adjacentes (no caso IM ). O objetivo deste capı́tulo é obter tais deformações que, segundo o modelo da câmera pin-hole (seção 2.2), são transformações projetivas. Pela forma como foi construı́do, o espaço corretivo é uma “cópia” do espaço real, logo as deformações que forem aplicadas neste espaço serão vistas na tela (através da composta P TP ) de forma “idêntica”. Assim, a idéia é considerar que os quadriláteros U = (u1 , u2 , u3 , u4 ) e V = (v1 , v2 , v3 , v4 ), estão no espaço corretivo, ou seja, ui = TP−1 (si ), vi = TP−1 (ti ), i = 1, 2, 3, 4, 1 2 onde (s1 , s2 , s3 , s4 ) e (t1 , t2 , t3 , t4 ) são os cantos do retângulo que serve de suporte para a tela virtual no espaço das imagem P1 e P2 respectivamente (Figura 4.1) e TPi dado como descrito na seção 3.4. A seguir será proposta uma forma de determinar maiores retângulos R1 e R2 contidos nos quadriláteros U e V respectivamente, com posicionamento relativo adequado aos casos IE e IM. 1 Para aproveitar a região de projeção. 22 CAPÍTULO 4. AJUSTE DOS PROJETORES Espaço da imagem P1 s2 s3 s1 s4 t2 t3 t1 t4 23 Espaço corretivo TP1-1 v2 u3 v3 u2 R1=R2 TP2-1 v1 D2 u1 D1 v4 u4 Espaço da imagem P2 Figura 4.1: Projeções no espaço corretivo 4.1 Maior Retângulo Um retângulo no plano com lados paralelos aos eixos coordenados, fica determinado por quatro parâmetros: o ponto base (x, y) , a altura a e a largura l, como na Figura 4.2: (a). (x, y + a) r (x + l, y + a)r r r (x, y) (x + l, y) (a) (x, y + ρl) r (x + l, y + ρl)r r r (x, y) (x + l, y) (b) Figura 4.2: Retângulos: (a) genérico no plano (4 parâmetros), (b) com razão de aspecto ρ (3 parâmetros) Porém, observe que para manter a proporção correta da imagem, os retângulos R1 e R2 devem ser congruentes e semelhantes a (s1 , s2 , s3 , s4 ) e (t1 , t2 , t3 , t4 ), o que corresponde a possuir a mesma razão de aspecto ρ das imagens I1 e I2 , ou seja a = ρl, sendo portanto, parametrizado por apenas três parâmetros: x, y, l (Figura 4.2: (b)). Os casos IE e IM podem ser tratados de modo unificado, observando que CAPÍTULO 4. AJUSTE DOS PROJETORES 24 eles correspondem a casos particulares do problema de dispor 2 retângulos congruentes lado a lado, com uma taxa de sobreposição µ, com 0 ≤ µ ≤ 1 (Figura 4.3: (a)). O caso em que os retângulos são idênticos (IE ) ocorre para µ = 1 (Figura 4.3: (b)), enquanto o caso em que eles estão dispostos lado a lado (IM ) ocorre para µ = 0 (Figura 4.3: (c)). ml l (a) (b) (c) Figura 4.3: (a) Retângulos com taxa de sobreposição µ, (b) µ = 1, (c) µ = 0. Deve-se ressaltar que, na prática, para o caso de mosaico, os retângulos deverão ter uma pequena sobreposição, para que a descontinuidade entre as projeções seja menos perceptı́vel. Os retângulos R1 e R2 devem se situar, em relação a U e V , de modo que os quatro vértices centrais estejam na interseção de U e V , os dois vértices mais à esquerda de R1 estejam em U e os dois mais à direita de R2 estejam em V . Para tal, basta impor as seguintes 16 restrições aos vértices de R1 e R2 (Figura 4.4): → −−→ 1. (x + (µ − 1)l, y) está à direita dos vetores − u− 4 u1 e u 1 u2 , → −−→ 2. (x + (µ − 1)l, y + ρl) está à direita dos vetores − u− 1 u 2 e u2 u 3 , → −−→ 3. (x + µl, y + ρl) está à direita dos vetores − u− 2 u3 e u 3 u4 , → −−→ 4. (x + µl, y) está à direita dos vetores − u− 3 u 4 e u4 u 1 , → −−→ 5. (x, y) está à direita dos vetores − v− 4 v1 e v1 v2 , → −−→ 6. (x, y + ρl) está à direita dos vetores − v− 1 v2 e v2 v3 , → −−→ 7. (x + l, y + ρl) está à direita dos vetores − v− 2 v3 e v3 v4 , → −−→ 8. (x + l, y) está à direita dos vetores − v− 3 v4 e v4 v1 . CAPÍTULO 4. AJUSTE DOS PROJETORES (x + (µ − 1)l, y + ρl) rP u PPP R1 = R2 = 25 (x + l, y + ρl) r E v3 PP E 2 PP ? ? E PP ? ? P u x u x P E PP E PP v 2 P ru3 r E AA E E A E A E A E V A U r u 4 E A u x u x E A Y H HH E A 6 6 6 6 y H E A (x + l, y) (x, y) (x + µl, y) E A Erv4 r Ar u1 (x + (µ − 1)l, y) (x, y + ρl) (x + µl, y + ρl) v1 - x Figura 4.4: Retângulos ajustados lateralmente nos quadriláteros O termo “está à direita do vetor” pode ser posto em termos de inequações − → da seguinte forma: o ponto c, está à direita do segmento ab, se, e somente se, (c − a)⊥ , b − a ≥ 0 (4.1) onde ()⊥ é uma rotação de −π/2 (x, y)⊥ = (y, −x) . Observe que tomando c = (x, y) + l(e1 , e2 ), ao fazer: e1 = (µ − 1), 0, µ, 1, e e2 = 0, ρ, obtém-se todos os pontos do retângulo das condições 1, 2, . . . acima. Fazendo a = (a1 , a2 ), b = (b1 , b2 ), das propriedades lineares das rotações e do produto interno, segue ainda que (4.1) é equivalente a inequação linear: (a2 − b2 )x + (b1 − a1 )y + (a2 − b2 )e1 + (b1 − a1 )e2 l ≥ a1 b2 − a2 b1 (4.2) Por outro lado, como os retângulos tem forma fixa, encontrar o maior retângulo consiste em obter um retângulo satisfazendo às condições e apresentando l máximo. Portanto, o problema de encontrar o maior retângulo pode ser colocado como o problema de programação linear abaixo, que pode ser resolvido eficientemente pelo Método Simplex cujos coeficientes da matriz CAPÍTULO 4. AJUSTE DOS PROJETORES 26 são exibidos na inequação (4.2). max l, sujeito às 16 condições dadas por: 1, 2, 3, 4, 5, 6, 7 e 8 Desta forma, ao tomar µ = 1 se obtem os retângulos R1 e R2 que modelam o caso IS e para 0 ≤ µ < 1 o caso IM, onde quando µ = 0, as imagens estão justaposta lateralmente. Para o problema de encontrar retângulos em poligonos mais gerais ver [3] ou [4]. 4.2 Exemplos A seguir veem-se 3 exemplos onde, em cada figura, na parte direita tem-se uma tabela com a razão de aspecto ρ, a taxa de sobreposição µ, os valores dos pontos ui e vi , i = 1, 2, 3, 4 e o resultado x, y, l. Na parte esquerda a visualização geométrica, onde U e V são os quadriláteros em vermelho e verde respectivamente, além de R1 e R2 em azul. ρ = 0,75 m = 1,0 i 1 2 3 4 ui (0,10, 0,10) (0,05, 0,90) (0,55, 0,85) (0,87, 0,20) x = 0,33 vi (0,05, 0,15) (0,60, 0,80) (0,90, 0,70) (0,80, 0,03) y = 0,18 l = 0,40 Figura 4.5: Exemplo 1 de maior retângulo. Caso estéreo. CAPÍTULO 4. AJUSTE DOS PROJETORES 27 ρ = 1,25 m = 0,3 i 1 2 3 4 ui (0,00, 0,20) (0,05, 0,80) (0,70, 0,90) (0,62, 0,20) vi (0,35, 0,25) (0,30, 0,80) (1,00, 0,85) (0,90, 0,18) x = 0,45 y = 0,23 l = 0,45 Figura 4.6: Exemplo 2 de maior retângulo. Caso por sobreposição. ρ = 1,0 m = 0,0 i 1 2 3 4 ui (0,10, 0,25) (0,05, 0,75) (0,50, 0,70) (0,67, 0,20) x = 0,53 vi (0,40, 0,20) (0,55, 0,70) (0,90, 0,75) (0,95, 0,28) y = 0,27 l = 0,35 Figura 4.7: Exemplo 3 de maior retângulo. Caso por sobreposição. 4.3 Obtenção das Tranformações Uma vez obtidos os retângulos (seção 4.1) associados a cada projetor Pi , a transformação final (Warping) que deve ser aplicada a cada imagem gerada é a composta Wi = TPi Di TP−1 , i = 1, 2, onde D1 , D2 são transformações i projetivas que levam os quadriláteros U e V nos retângulo R1 e R2 respectivamente2 (ver Figura 4.1). De R1 ⊂ U e R2 ⊂ V , segue ainda que W1 (I1 ) ⊂ I1 e W2 (I2 ) ⊂ I2 . Resultados obtidos utilizando este processo são mostrados nas seções 5.2.1 e 5.2.2. O método foi desenvolvido para dois projetores, porém a generalização para qualquer quantidade de projetores é imediata, bastando, para isso, adap2 Pelo teorema fundamental do plano projetivo tais aplicações Di estão bem definidas. CAPÍTULO 4. AJUSTE DOS PROJETORES 28 tar o problema de maior retângulo, inclusive para apenas um, onde se deseja apenas corrigir a distorção provocada pelo seu posicionamento. Além disso, observe que tais warpings podem ser inseridos facilmente no final do pipeline de visualização (apenas multiplicar com a matriz W ), gerando imagens visualmente corrigidas quando projetadas, sem nenhum custo adicional na rasterização. Capı́tulo 5 Produto “Depois de escalar um grande morro, descobrimos apenas que há muitos outros morros para escalar.” Nelson Mandela, polı́tico Africano. Neste capı́tulo são apresentados o desenvolvimento da aplicação e os resultados obtidos. 5.1 Desenvolvimento O software foi desenvolvido para o sistema operacional Windows, com a linguagem C++. A interface com o usuario assim como a parte gráfica foram feitas usando bibliotecas do próprio Windows. Para a identificação dos pontos no padrão usou-se a bilbioteca OpenCV (ver [15]), com um preprocessamento da imagem capturada usando o algoritmo de Otsu (realça o padrão através de um threshold local, ver [16]). Porém a implementação dos algoritmos foi feita apenas em C, onde o código do método Simplex foi extraido de [11] e o código do método de calibração foi gentilmente sedido por Flávio Szenberg, sem o uso de bibliotecas adicionais, garantindo a portabilidade para outros sistemas operacionais. Foi particularizado o uso de um padrão quadriculado de 7 × 7 = 49 pontos (tabuleiro de 8 × 8 casas), porém, procurou-se deixar o código bastante genérico, de forma que, com um pouco de trabalho e cuidado, seja possı́vel estender para um número qualquer de pontos. O aspecto geral da aplicação é visto na Figura 5.1. Na parte inferior esquerda é mostrada a imagem capturada pela câmera, onde é possı́vel observar (canto superior direito) os projetores1 com os quais foram feitos os testes (além do autor desta tese) e na direita a imagem processada captando 1 EzPro 610 da CTX de resolução 800 × 600 29 CAPÍTULO 5. PRODUTO 30 os pontos (em vermelho) do quadro2 . Na parte superior tem-se o menu com alguns recursos que serão brevemente descritos na seção seguinte. Figura 5.1: Aspecto inicial da aplicação 5.1.1 Recursos ✿ File: Possui apenas a opção Exit. ✿ Options: Possui as opções: ❁ Video Format: Abre diálogo referente ao formato de vı́deo. ❁ Video Source: Abre diálogo referente ao tipo de vı́deo. ✿ Parameters: Possui as opções: ❁ Threshold: Abre diálogo em que o usuário seleciona o tipo de threshold que deseja usar. ❁ Proj. Type: Abre diálogo em que o usuário seleciona o tipo de projeção (Estéreo (µ = 1) ou Mosaico (µ = 0)). ❁ Ratio: Abre diálogo em que o usuário entra com a razão de aspecto do projetor e da imagem a ser projetada. ✿ Calibration: Possui as opções: 2 Placa branca de madeira de 1×1 m2 desenhada com quadriláteros pretos de 12×12 cm2 convenientemente distribuidos. CAPÍTULO 5. PRODUTO 31 ❁ Camera: Calibra a Câmera. Possui as opções: ❀ Object: Calibra através de um objeto (placa). ❀ Left Projector: Calibra segundo o projetor esquerdo. ❀ Right Projector: Calibra segundo o projetor direito. ❁ Left Projector: Calibra o projetor esquerdo. ❁ Right Projector: Calibra o projetor direito. 5.1.2 Procedimentos Nesta seção serão detalhados os procedimentos para usar o software. Inicialmente deve-se por a câmera em uma posição fixa em que seja capaz de capturar todas as projeções e identificar os pontos dos padrões3 , para tal se necessário, pode-se alterar os valores do formato e tipo de video atraves do menu: Options, alterar os parametros do threshold no menu: Parameters ,→ Threshold, ou posicionar a câmera de forma que o eixo ótico esteja o mais perpendicular possı́vel à tela de exibição. Figura 5.2: Etapa de calibração da câmera O primeiro passo é calibrar a câmera (caso se omita esta etapa, a calibração default é a identidade). Para isso, toma-se a opção do menu: Calibration ,→ Camera ,→ “tipo de calibração”4 . Assim que o padrão for identificado, será emitido um aviso sonoro e exibido em azul e verde os pontos associados aos capturados (em vermelho), calculando automaticamente Tc , conforme mostrado na Figura 5.2. Quanto mais próximos os pontos em azul 3 4 Sempre que os pontos são identificados, são exibidos em vermelho (Figura 5.1). Object, Left Projector ou Right Projector. CAPÍTULO 5. PRODUTO 32 estiverem dos pontos em vermelho, melhor terá sido a aproximação para Tc , podendo repetir esta estapa quantas vezes o usuário achar necessário. No passo seguinte são calibrados os projetores. Seleciona-se no menu: Calibration ,→ “Projetor”5 , quando, de forma análoga à câmera os pontos são identificados e Tpi calculado. Posteriormente deve-se repetir a operação para o outro projetor, gerando no final, o arquivo Matrizes.txt com as duas matrizes Wi : [1, 0] × [0, ρ] = suporte da imagem ⊂ RP2 → RP2 , ρ = razão de aspecto. Esta etapa pode também, para cada projetor, ser realizada quantas vezes o usuário desejar, assim como a mudança do tipo de projeção (caso IE ou IM ). 5.2 Resultados A seguir serão mostrados alguns resultados. Devido a não considerar as correções da cor na interseção das imagens, o caso IM foi tratado com µ = 0 (cortadando uma imagem ao meio). As imagens exibidas estão no espaço corretivo (aplicou-se Tc ), eliminando a distorção provocada pelo posicionamento da câmera no processo de captura. Do lado esquerdo das Figuras 5.3, 5.4 e na parte superior das Figuras 5.5 e 5.6, veem-se as imagens originadas por 2 projetores. Para melhor visualizar, no lado direito e na parte inferior respectivamente, vê-se: em vermelho o contorno, em azul e verde os eixos vertical e horizontal que passam pelo centro, da respectiva imagem. Em cada caso (IE ou IM ) a câmera se encontra na mesma posição. 5.2.1 Caso IE A câmera foi posicionada de forma que o eixo óptico estivesse o mais perpendicular possı́vel. Dessa forma, como era de se esperar, nota-se que (5.1) tende a se aproximar da identidade. 1.165367 −0.134926 −0.023062 0.918404 −0.137903 Tc = 0.057001 (5.1) −0.126398 −0.229796 1.187708 As matrizes resultantes Wi são: 0.874406 0.000573 −0.000000 0.841768 0.116761 W1 = 0.022709 0.041471 −0.003464 0.961993 5 Left Projector ou Right Projector. CAPÍTULO 5. PRODUTO W2 0.794339 −0.017646 0.219416 0.801897 0.074830 = 0.058120 0.058693 −0.013755 0.955061 33 (5.2) Note que as matrizes (5.2) também tendem a se apriximar da identidade, onde na parte linear (bloco 2 × 2) observa-se uma pequena “contração” e na última coluna, uma sutil translação, como constatado nas figuras abaixo. Na Figura 5.3 se observa a configuração inicial dos projetores enquanto que em 5.4 o resultado do método com as imagens sobrepostas. Figura 5.3: Projetores desalinhados em estéreo Figura 5.4: Projetores alinhados em estéreo Observe, na Figura 5.4, que o contorno não coincide de forma exata (principalmente na parte inferior esquerda), enquanto que os eixos se sobrepõem. Isto se deve ao fato do objeto (placa de madeira) usado na calibração da CAPÍTULO 5. PRODUTO 34 câmera ter sido posto preferêncialmente no centro da região de projeção (tentando distribuir de forma equivalente o erro nos cantos6 ). Porém, devido à capacidade do cérebro humano de identificar a equivalência entre os pontos nas duas imagens, quando do uso dos óculos especiais para estereoscopia, tais diferenças desaparecem. 5.2.2 Caso IM Para que a câmera conseguisse capturar toda a extenssão da região de projeção, ela teve que ser posicionada de forma que o eixo ótico ficasse levemente inclinado no sentido horizontal, introduzindo um ponto de fuga na coordenada x, constatado na 3a linha da matriz de calibração (5.3) abaixo. 1.370584 −0.085737 −0.022178 1.163622 −0.196575 Tc = −0.054421 (5.3) −0.490550 −0.058795 1.235717 As matrizes resultantes Wi são: 0.919733 W1 = −0.114587 −0.035121 0.897487 −0.042508 W2 = 0.048689 0.080267 0.000000 0.724474 0.310647 0.020330 1.014790 0.073808 0.004078 0.682309 0.192550 0.011716 0.939595 (5.4) Note que a “contração” no bloco linear, assim como a translação, ocorrem basicamente no eixo y, como constatado nas figuras abaixo, onde em 5.5 se observa a configuração inicial dos projetores enquanto que em 5.6 o resultado do método com as imagens alinhadas lateralmente. 6 Para maiores detalhes de calibração com distorção radial, ver [5]. CAPÍTULO 5. PRODUTO 35 Figura 5.5: Projetores desalinhados em mosaico Observe, na Figura 5.6, que qualquer variação introduzida na junção das imagens, provoca uma descontinuidade visual, realçada pela diferença da crominância e luminância. Tal descontinuidade é fortemente percebida, principalmente nas linhas retas dos objetos da imagem (junção da areia com o mar e edifı́cio “cortado ao meio”), sendo necessário, ainda, um pós-processamento de ajuste fino. CAPÍTULO 5. PRODUTO Figura 5.6: Projetores alinhados em mosaico 36 Capı́tulo 6 Considerações Finais “A verdadeira dificuldade não está em aceitar idéias novas. Está em escapar das idéias antigas.” John Maynard Keynes (1883–1946), economista Ingles. 6.1 Conclusões Apresentou-se uma forma robusta de alinhar virtualmente vários projetores, dispensando ajustes manuais, de forma ótima (na maior área possvel). Para isso, se expôs um método de calibração dos equipamentos que aproxima, através de transformações projetivas, a correção das deformações introduzidas pelo posicionamento da câmera e projetor. Usando técnicas de programação linear, se desenvolveu um método que determina a maior área na região de projeção, de forma que quando as imagens sejam projetadas, se tenha a impressão correta. O método mostrou-se eficiente, no entanto, principalmente no caso de imagens em mosaico, é necessário um pós-processamento de ajuste fino juntamente com o uso de câmera mais sofisticada, além da correção na crominância e luminância dos projetores. A aplicação desenvolvida é de uso simples e intuitivo, gerando uma arquivo que pode facilmente ser lido por outras aplicações em que se deseje fazer uso dos projetores corrigidos. 6.2 Trabalhos Futuros Devido à grande sensibilidade do olho humano em captar grandes variações (altas frequências), o grande problema do ajuste é o casamento dos lados de forma a tornar a imagem uniforme. Desta forma sugere-se como trabalhos futuros: 37 CAPÍTULO 6. CONSIDERAÇÕES FINAIS 38 1. Ajuste “fino”: Realizar um pós-processamento, aplicando, nas regiões referêntes às imagens projetadas, outro método. 2. Ajuste na crominância e luminância: Ajuste no espaço de cor das imagens de forma a minimizar as diferênças provoca das pelos projetores. 3. Modelo mais relista de câmera e projetor: Considerar na calibração da câmera e do projetor outras distorções provocadas pelos equipamentos e ambiente de projeção. 4. Inserir no pipe-line de projeção: Incluir no drive de video as matrizes calculadas, de forma a projetar qualquer imagem de forma correta. 5. Sistema automático: Montar sistema totalmente automático, onde o software realiza todas as etapas de forma idependente. Referências Bibliográficas [1] Carvalho, P. C. P., Szenberg, F. & Gattass, M., 1998. Image-base Modeling Using a Two-step Camera Calibration Method. SIBGRAPI, 388-395. [2] Carvalho, P. C. P., Figueiredo, L. H., Gomes, J. & Velho, L., 1999. Métodos de Otimização em Computação Gráfica. 22o Colóquio Brasileiro de Matemática - IMPA. [3] Daniels, K., Milenkovic, V. & Roth, D., 1995. Finding the largest rectangle in several classes of polygons. Cambridge, MA. [4] Datta A., 1992. Efficient algorithms for the largest rectangle problem. journal Inform. Sci. volume 64, 121-141. [5] Faugeras, O., 1993. Three-Dimensional Computer Vision: a geometric viewpoint. MIT Press. [6] Figueiredo, L. H. & Carvalho, P. C. P., 1991. Introdução à Geometria Computacional. 18o Colóquio Brasileiro de Matemática - IMPA. [7] Gomes, J. & Velho, L., 1998. Computação Gráfica, Volume 1. Série de Computação e Matemática. IMPA. [8] Hefez, A., 1990. Introdução à Geometria Projetiva. Monografias de Matemática N o 46. IMPA. [9] Lima, E. L., 1979. Curso de Análise, Volume 2. Projeto Euclides. IMPA. [10] Lima, E. L., 1995. Álgebra Linear. Coleção Matemática Universitária. IMPA. [11] Press, William H. & Vetterling, William T. & Teukolsky, Saul A. & Flannery, Brian P., NUMERICAL RECIPES in C - Second Edition. [12] Raskar, R., Welch, G. & Fuchs H., 1998. Seamless Projection Overlaps using Image Warping and Intensity Blending. Fourth International Conference on Virtual System and Multimedia, Gifu, Japan. 39 REFERÊNCIAS BIBLIOGRÁFICAS 40 [13] Tsai, Y., 1987. A versatile camera calibration technique for high accuracy 3D machine vision metrology using off-the-shelf cameras and lenses. IEEE Transactions on Robotics and Automation, 3(4). [14] Pinhole Camera. http://www.midland-7.org/moutray/pinhole camera.htm [15] Open Source Computer Vision Library. http://intel.com/research/mrl/research/opencv/ [16] Algoritmo de Otsu. http://www.computer.org/tpami/tp1997/i0540abs.htm http://ipe.et.uni-magdeburg.de/ hamid/segment.htm 41 . . ... :‘‘..’: : ‘‘‘‘.’ :’’::’ ..:.. : .’’ : ‘‘. ‘: .’ : : : : : : : : : : : : : : : :..’’’’‘‘::. : ...:..’ .’’ .’ .’ .::::’ :..’’’‘‘::::::: ’ ‘:::: . . :’..‘‘: ... ’::’’: ’.‘‘‘‘ : : ’’. : ..:.. : ’. :‘ .‘‘ : : : : : : : : : : : : .::‘‘’’’’..: : : ’’. ’..:... : ’::::. ’. ’. :::::::‘‘’’’..: ::::‘ ’ “Nascer, Morrer, Renascer ainda e progredir sem cessar, tal é a lei.” ‘:: :::. ..:‘‘‘.:’‘. ::’‘. ..’ ‘:.: :: .: .:‘‘::: .: ..’’ ::: : .’’ :: : :: : : : : ______________________________ Epitáfio no tumulo de Allan Kardek (1804 - 1869). ::‘ .::: .‘’:: .‘’:.‘‘‘:.. :: :.:‘ ’.. :::‘‘:. :. ::: ’’.. :. :: ’’. : :: : : : : :