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).
::‘
.:::
.‘’:: .‘’:.‘‘‘:..
:: :.:‘
’..
:::‘‘:.
:.
:::
’’..
:.
::
’’. :
::
:
:
:
:
:
Download

Alinhamento Virtual de Projetores