césar palomo [email protected] dissertação de mestrado julho/2009

36
Renderização interativa baseada em imagens para síntese de vistas virtuais a partir de mapas de cor e profundidade César Palomo [email protected] Dissertação de Mestrado Julho/2009

Upload: internet

Post on 18-Apr-2015

104 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: César Palomo cpalomo@inf.puc-rio.br Dissertação de Mestrado Julho/2009

Renderização interativa baseada em imagens para síntese de vistas virtuais a partir de mapas de cor e profundidade

César Palomo [email protected]

Dissertação de Mestrado Julho/2009

Page 2: César Palomo cpalomo@inf.puc-rio.br Dissertação de Mestrado Julho/2009

?

Motivação

Como interpolar amostras visuais de uma cena para gerar vistas virtuais?

Câmera virtualCâmera real Câmera real

Page 3: César Palomo cpalomo@inf.puc-rio.br Dissertação de Mestrado Julho/2009

Motivação

Como interpolar amostras visuais de uma cena para gerar vistas virtuais?

Câmera virtualCâmera real Câmera real

Page 4: César Palomo cpalomo@inf.puc-rio.br Dissertação de Mestrado Julho/2009

Efeitos especiais: freeze-frame/bullet-time effect

Passeios virtuais

FTV: telespectador seleciona ponto de vista

Games, entretenimento

Aplicações

Google Maps®

Page 5: César Palomo cpalomo@inf.puc-rio.br Dissertação de Mestrado Julho/2009

Image-based rendering (IBR)

Utiliza primariamente imagens ao invés de geometria para gerar novas vistas

Técnicas existentes diferem-se principalmente nos seguintes aspectos: Número de imagens capturadas e

usadas para rendering

Existência ou não de geometria da cena

Obtenção do proxy geométrico usado para interpolação▪ geometria da cena: modelada, capturada por visão computacional ou

dispositivo

Levoy, Hanrahan 1996

Zitnick et al 2004

Debevec et al 1997 Mattoccia et al 2007

Page 6: César Palomo cpalomo@inf.puc-rio.br Dissertação de Mestrado Julho/2009

Mapa de profundidade como representação geométrica

Vantagem: não exige grande número de imagens de entrada

Métodos de estéreo do estado-da-arte geram mapas de profundidade de boa qualidade

Câmeras de captura de Z estão se tornando acessíveis comercialmente

Z-Cam – 3DV Systems ®

Project Natal - Microsoft ®

Page 7: César Palomo cpalomo@inf.puc-rio.br Dissertação de Mestrado Julho/2009

Mapa de profundidade denso

Mapas de profundidade densos: um valor de Z para cada pixel

View-dependent geometry: um mapa de profundidade para cada vista

em contra-ponto à utilização de uma única geometria

Page 8: César Palomo cpalomo@inf.puc-rio.br Dissertação de Mestrado Julho/2009

Pipeline de uma solução completa de IBR

Calibração de

câmeras

Captura (amostrage

m)

Obtenção de

geometria (e.g.

stereo)

Compressão

Descompressão

Representaçãoda cena

(cor e geometria)

Rendering

Cor + geometria

Page 9: César Palomo cpalomo@inf.puc-rio.br Dissertação de Mestrado Julho/2009

Foco deste trabalho

Calibração de

câmeras

Captura (amostrage

m)

Obtenção de

geometria (e.g.

stereo)

Compressão

Descompressão

Representaçãoda cena

(cor e geometria)

Rendering

Cor + geometria

Page 10: César Palomo cpalomo@inf.puc-rio.br Dissertação de Mestrado Julho/2009

Objetivos

Permitir posicionamento arbitrário do ponto de vista desejado, com transição suave ao mudar ponto de vista

Renderizar vistas virtuais visualmente precisas: com qualidade comparável a imagens reais, livre de artefatos visíveis

Performance interativa, sem necessidade de pós ou pré-processamento Usar como entrada somente dados de calibração das câmeras

usadas na captura, imagens coloridas e respectivos mapas de profundidade

Page 11: César Palomo cpalomo@inf.puc-rio.br Dissertação de Mestrado Julho/2009

Configuração de captura

Assume-se uma configuração de câmeras tal como a de Zitnick et al 2004

câmeras com baseline de aproximadamente 30º de espaçamento

número modesto de câmeras dispostas em um arco

Zitnick et al 2004 - High-quality video view interpolation using a layered representation

Page 12: César Palomo cpalomo@inf.puc-rio.br Dissertação de Mestrado Julho/2009

Entrada: coleção de imagens de n câmeras {C1, C2, …, Cn}

1. Para obter parâmetros de Cvirtual , usar par de câmeras adjacentes Ci e Ci+1

2. Renderizar separadamente vista de cada câmera de referência

3. Fazer composição para gerar imagem final

Uso intenso da GPU para manter performance interativa

Visão geral do método proposto

Render

Composição

Render

CvirtualC1 C2 Ci

Ci+1 Cn

Page 13: César Palomo cpalomo@inf.puc-rio.br Dissertação de Mestrado Julho/2009

Fase 1 – Parâmetros da câmera virtual

Parâmetros da câmera virtual Cvirtual definidos como interpolação dos parâmetros de calibração das câmeras de referência

Ci Ci+1

10 t

Parâmetros de calibração de câmera Ci:

Matriz intrínseca K

Matriz de visualização V (posição e orientação) – decomposta em:

posição eye quatérnio de rotação Q

0100

00

0

yaf

xsf

K

10003333231

2232221

1131211

trrr

trrr

trrr

V

),,( 1 iivirtual QQtslerpQ

1)1( iivirtual teyeeyeteye

1)1( iivirtual tKKtK

Cvirtual

Page 14: César Palomo cpalomo@inf.puc-rio.br Dissertação de Mestrado Julho/2009

Fase 2 – Renderizar uma vista

Imagem da câmera de referência Ci sofre 3D warping (McMillan et al 1997) para ponto de vista de Cvirtual:

1. Criar geometria a partir do mapa de profundidade

2. Reprojetar geometria para o ponto de vista desejado

3. Atribuir cor a cada ponto da superfície gerada

4. Identificar regiões de oclusão

Page 15: César Palomo cpalomo@inf.puc-rio.br Dissertação de Mestrado Julho/2009

Geometria a partir do mapa de profundidade

Gera-se uma malha 3D densa, regular, com número de vértices igual à resolução do mapa de profundidade

1 pixel no mapa de profundidade 1 vértice na malha 3D

Imagem WxH

Mesh com WxH vértices

Page 16: César Palomo cpalomo@inf.puc-rio.br Dissertação de Mestrado Julho/2009

Otimização

Buffer com mesh 2D com coordenadas (x,y): coluna e linha do mapa de profundidade

Vértice (x, y, ?)

Z: obtido acessando posição (x, y) domapa de profundidade (vertex shader)

Vértice (x, y, Z)

Se dimensão das imagens não muda, buffer pode ser gerado uma única vez economia na transferência CPU-GPU

0 W

0

H

Page 17: César Palomo cpalomo@inf.puc-rio.br Dissertação de Mestrado Julho/2009

Reprojeção para Cvirtual (3D warping)

Reprojeção de Ci para Cvirtual feita em GPU (vertex shader):

Unprojection: vértice (x, y, Z) transformado em coordenadas do mundo usando matrizes Ki e Vi

Reprojection: vértice em coordenadas do mundo transformado para ponto de vista Cvirtual usando matrizes Kvirtual e Vvirtual

Z

y

x

world

world

world

Z

Y

X

virtual

virtual

virtual

C

C

C

Z

Y

X

Unproject Reproject

Page 18: César Palomo cpalomo@inf.puc-rio.br Dissertação de Mestrado Julho/2009

Atribuição de cor

Envia-se textura com imagem colorida da câmera Ci para a GPU

Coordenadas de textura geradas na GPU (vertex shader) Vértice (x, y, Z) coordenada de textura (x, y)

Hardware gráfico interpola coordenadas de textura na rasterização

Cor (RGB) e profundidade (Z) armazenados em textura (render-to-texture)

Page 19: César Palomo cpalomo@inf.puc-rio.br Dissertação de Mestrado Julho/2009

Resultado até agora

Ci Cvirtual

3D warping

Page 20: César Palomo cpalomo@inf.puc-rio.br Dissertação de Mestrado Julho/2009

Regiões de oclusão artefatos

Áreas oclusas (não capturadas) se tornam visíveis ao mover-se de Ci para Cvirtual

Estas regiões devem ser preenchidas com informação da outra câmera de referência

Page 21: César Palomo cpalomo@inf.puc-rio.br Dissertação de Mestrado Julho/2009

Identificando regiões de oclusão

Regiões oclusas coincidem com regiões de descontinuidade em Z no mapa de profundidade facilmente identificáveis em um vertex shader

Vizinhos do vértice acessados no mapa de profundidade para testar continuidade canal alpha armazena label para posterior tratamento

Regiões de oclusão pintadas em preto somente para visualização

Page 22: César Palomo cpalomo@inf.puc-rio.br Dissertação de Mestrado Julho/2009

Fase 3 - Composição

Ci Ci+1

Cvirtual

?Composiç

ão

Composição (pixel-a-pixel) deve envolver:1. Função suave de blending – sem saltos bruscos de

cor2. Determinação de visibilidade3. Tratamento de oclusões

Page 23: César Palomo cpalomo@inf.puc-rio.br Dissertação de Mestrado Julho/2009

Função de blending suave- distância angular

Como sugerido por Buehler et al 2001:

Distâncias angulares entre ponto de vista desejado e câmeras de referência devem ser usadas para blend consistente

Quanto mais próximo Cvirtual estiver de uma câmera de referência, mais esta camera deve afetar a cor final

Buehler et al 2001 – Unstructured Lumigraph Rendering

Ci

Ci+1Cvirtual

Page 24: César Palomo cpalomo@inf.puc-rio.br Dissertação de Mestrado Julho/2009

Para transição suave entre câmeras, função exponencial usada para calcular pesos de vistas de referência

),max( 1

ii

i

ewi

),max(

11

1

ii

i

ewi

Função de blending - pesos

Ci

Ci+1Cvirtual

1ii

Page 25: César Palomo cpalomo@inf.puc-rio.br Dissertação de Mestrado Julho/2009

Penalidades – motivação

Ci

Ci+1

Cvirtual

Pixels marcados como oclusos

Pixels mais distantes de Cvirtual em uma câmera em relação a outra

Page 26: César Palomo cpalomo@inf.puc-rio.br Dissertação de Mestrado Julho/2009

Penalidades – oclusão

Se distância angular muito pequena, deve penalizar pouco extremo é a câmera virtual coincidente com a câmera de referência

ocluso como marcado pixel se ,

ocluso como marcado não pixel se ,0

1ii

ioccipenalty

Ci

Ci+1Cvirtual

1ii

Page 27: César Palomo cpalomo@inf.puc-rio.br Dissertação de Mestrado Julho/2009

Penalidades – visibilidade

Ao invés de fazer teste absoluto de Z, levamos informação de oclusão em consideração

Nos nossos testes, PENNz = 0.8 deu bons resultados

virtualcâmera da longe maisou ocluso não pixel se

virtualcâmera da próximo mais e ocluso pixel se

0,

,ZZcloser

PEENpenalty

i

Page 28: César Palomo cpalomo@inf.puc-rio.br Dissertação de Mestrado Julho/2009

Equação final de blending

Pesos finais para cada câmera:

Depois de normalizar pesos, cor final do pixel p definida como:

1

11

ii

iiiip ww

wcolorwcolorcolor

)1(),max( 1ii penaltyew ii

i

)1( 1),max(

11

1

ii penaltyew ii

i

Page 29: César Palomo cpalomo@inf.puc-rio.br Dissertação de Mestrado Julho/2009

Resumo do método

[CPU-GPU] Geração de buffer para malha 2D com dimensão igual ao mapa de profundidade (envio à GPU uma única vez)

[CPU] Determinar matrizes da câmera virtual a partir de par de câmeras adjacentes

[CPU-GPU] Atualizar texturas com imagens coloridas e mapas de profundidade para frame atual

[GPU] Separadamente para cada vista:

Reprojetar malha para ponto de vista desejado, identificando e marcando regiões de oclusão no canal alpha

[GPU] Fazer composição, levando em conta distância angular entre as câmeras e penalidades

Page 30: César Palomo cpalomo@inf.puc-rio.br Dissertação de Mestrado Julho/2009

Resultados – demo

Page 31: César Palomo cpalomo@inf.puc-rio.br Dissertação de Mestrado Julho/2009

Resultados – performance

Linear no número de pixels das imagens de entrada

Performance interativa para imagens Full HD (1920x1080)

0 500000 100000015000002000000250000030000000

5

10

15

20

25

30

35

320x240640x480

1024x768

1600x1200

1920x1440

Images’ number of pixels x Rendering time per frame (ms)

Workstation: Intel Core 2

Quad 2.4GHz Nvidia GeForce

9800 GTX 2 MB RAM

Page 32: César Palomo cpalomo@inf.puc-rio.br Dissertação de Mestrado Julho/2009

Resultados – análise qualitativa

Transições suaves de cor quando ponto de vista desejado muda

Poucos artefatos visíveis, exceto possivelmente em regiões onde Z estimado no mapa de profundidade não é confiável

Com vídeos, “flickering” na regiões de borda de objetos: os mapas de profundidade de entrada não apresentam coerência temporal

Dificilmente se distingue a imagem sintética da imagem real

Page 33: César Palomo cpalomo@inf.puc-rio.br Dissertação de Mestrado Julho/2009

Limitações – ghosting

+ =

“Fantasmas” podem aparecer no encontro entre regiões A e B A: região que sofreu blending (vista pelas duas câmeras de ref.)

B: região visível somente por uma câmera de ref., oclusa na outra

Ghost

Page 34: César Palomo cpalomo@inf.puc-rio.br Dissertação de Mestrado Julho/2009

Limitações – mix entre frente e fundo

Mix frente-fundo

Na imagem capturada: blend entre cor de objeto de frente e objeto de fundo

Mapa de profundidade atribui um único valor de Z por pixel

Após 3D warping, pixels podem acabar sendo contaminados

Contribuiçãode frente e

fundo

Único Z por pixel

Page 35: César Palomo cpalomo@inf.puc-rio.br Dissertação de Mestrado Julho/2009

Conclusão e trabalhos futuros

Contribuição: técnica inteiramente executada em GPU, desde criação de geometria e tratamento de oclusão até composição

Resolver limitações Ghosting: pós-processamento ou Gradient-domain compositing

Mix frente-fundo: Matting (determinar alpha) em regiões de oclusão na GPU para manter alta performance

Coerência temporal para mapas de profundidade frame-a-frame para interpolação de vídeos: evita saltos entre frames

Estimar mapas de profundidade para imagens de entrada framework completo de IBR a partir de imagens coloridas

Page 36: César Palomo cpalomo@inf.puc-rio.br Dissertação de Mestrado Julho/2009

Dúvidas?

[email protected]

http://www.tecgraf.puc-rio.br/~cpalomo/thesis