Animação por Computador Capítulo 6 Captura de movimentos CRAb – Grupo de Computação Gráfica...
Transcript of Animação por Computador Capítulo 6 Captura de movimentos CRAb – Grupo de Computação Gráfica...
Animação por Computador
Capítulo 6Captura de movimentos
CRAb – Grupo de Computação Gráfica
Departamento de ComputaçãoUFC
2
Sumário do Capítulo 6
6. Introdução6.1 Tecnologias 6.2 Processando as imagens 6.3 Calibração da câmera6.4 Reconstrução de posição tridimensional6.5 Ajustando ao esqueleto6.6 Saída do sistema de captura de
movimento6.7 Manipulando os dados de captura de
movimento
3
6. Introdução
• Criar um movimento fisicamente realístico com keyframe, cinemática direta ou inversa é difícil– Ainda precisam muito do talento do animador
• Existem detalhes mínimos que fazem muita diferença para a animação parecer realística– Para facilitar, grava-se movimentos de objetos
reais e faz o mapeamento dos movimentos na animação
– A gravação e mapeamento é chamado de Captura de Movimento (motion capture - mocap)
4
6. Introdução
• Captura de Movimento envolve:– Sensoriamento– Digitalização– Gravação de movimentos
• Objetos:– Humanos– Animais
•Será o foco do capítulo
– Outras estruturas
5
6. Introdução
• Retirar o movimento do vídeo não adulterado é extremamente difícil– Ainda em estudo
• A figura capturada (talent ) é normalmente equipada – Pontos característicos fáceis de serem
detectados e gravados
6
6. Introdução
• Se as gravações forem imagens 2D– Necessidade de calibração da câmera
para a reconstrução de juntas tridimensionais•São usados figuras sintéticas com
demissões compatíveis ao talento do mocap
•Dados podem ser editados e combinados com outros movimentos antes da animação final
8
6.1 Tecnologias
• Instrumentos– Sensores eletromagnéticos
• Também chamados de rastreamento magnético• Sensores nas juntas que transmitem sua posição e
orientação par ao processador central• Teoricamente precisos• Requerem ambientes isentos distorções de campos
magnéticos• Transmissão de dado
– Cabo: o talento tem que ser “amarrado” com os cabos
– Wireless: o talento tem que carregar uma fonte de energia
• Pode-se gravar e mostrar (quase) em tempo real• Desvantagens: Alcance e precisão devido ao campo
magnético e equipamentos
10
6.1 Tecnologias
• Instrumentos– Marcadores ópticos
•Maior alcance•Necessidade de usar somente uma roupa
com marcadores refletores•Não é em tempo real•Propenso a erros e ruídos•Usa tecnologia de vídeos
– Câmeras com infravermelho
•Por falta de informação da orientação, um numero maior de marcadores é necessário
•Custo mais baixo
12
6.1 Tecnologias
• Instrumentos– Sistemas mecânicos
• Utiliza próteses que calculam variáveis físicas para medir posição
• Prós– Custa menos que os sistemas magnéticos e ópticos– O sistema é em geral portátil– Captura em tempo real– Os sensores nunca sofrem oclusão
• Contras– Tem uma taxa de amostragem muito baixa– Complexo– Traz limitações ao movimento das juntas humanas– A maior parte dos sistemas não calculam
deslocamentos globais
15
6.2 Processando as imagens
• Objetivo do controle de movimento:– Reconstruir o movimento tridimensional
de um objeto para um modelo sintético
• Sistemas ópticos– As imagens bidimensionais tem que ser
processadas para localizar, identificar e correlacionar os marcadores•Processamento de imagens•Lógica simples•Entrada do usuário•E um pouco de sorte...
16
6.2 Processando as imagens
• Sistemas ópticos– Transformação do bidimensional par
ao tridimensional•Calibração de câmera•Cuidado com imprecisões numéricas
– Os pontos tridimensionais devem ser forçados a obedecerem o movimento capturado •Modelo triangularizado do artista•Satisfazer restrições das posições
relativas de marcadores
17
6.2 Processando as imagens
• Marcadores ópticos– Adaptado de uma bola de tênis de mesa– Coberto para conseguir aparecer no
vídeo– Presos com velcro na vestimenta
•Ou outro método conveniente
– Podem ser coloridos– Colocados próximos as juntas
•Estruturas de interesse para a animação
– Complicação: marcador se mover relatico a junta
19
6.2 Processando as imagens
• Apos a vídeo digitalizado– Escanear cada imagem do vídeo– Para achar os marcadores ópticos
•Quanto mais marcadores, mais complicado•Os marcadores...
– podem ficar oclusos– se sobrepõem em uma imagem– mudam sua posição relativa ao outros
•Rastrear cada marcador em todas as imagens– Mesmo quando não estão visíveis
– Se o fundo da imagem for estático, pode ser feita uma subtração •Simplificar a imagem
20
6.2 Processando as imagens
• Para achar os marcadores– Conhecimento do domínio
•Movimento: Andado– Os últimos marcadores sempre serão os do
tornozelos (ou dos pés)» Assume-se que sempre estão a uma
pequena distancia do final da imagem
•Usar o frame anterior– Sabendo informações sobre os limites de
velocidade e aceleração» Descobrir o numero máximo de pixels que o
marcador andou
21
6.2 Processando as imagens
• Para achar os marcadores não visíveis– Uso de heuristicas para
•Ficam não visíveis por alguns frames •Tem velocidade quase constante
– Problemas•Troca de caminho dos marcadores no meio
da sequência– Isso ocorre até para marcadores que ficam
sempre visíveis caso passem perto» Erros numéricos
• Introdução de novo marcador quando na verdade o marcador está reaparecendo
22
6.2 Processando as imagens
• Para achar os marcadores não visíveis– Soluções
•Posições tridimensionais dos marcadores• Intervenção do usuário•Uso de marcadores ativos
– São LEDs– Emitem uma luz única que os identifica– Pontos negativos
» Não tem brilho forte» Cada marcador precisa de um tempo para
soltar o próprio identificador» Há um atraso nas medidas dos marcadores por
isso não são gravados no mesmo instante
23
6.2 Processando as imagens
• Problema: Ruído– Movimentos relativos a posição inicial
•Oscilações•Reposicionamento
– Processo de amostragem• Imprecisão no posicionamento
– Ex: Por 0,5 cm» Para algumas animações pode ser um
grande erro
24
6.2 Processando as imagens
• Problema: Ruído– O usuário pode condicionar os dados
antes da reconstrução•Pontos muito inconsistentes podem ser
jogados fora•O resto é filtrado
– Objetivo: suavizar a imagem sem remover características importantes» Uso de média ponderada» Usuário entra com o número de vizinhos a
serem usados
26
6.3 Calibração da câmera
• É necessário saber informações das câmeras– Posição– Orientações– Distância focal– Centro da imagem– Aspect ratio
27
6.3 Calibração da câmera
• A calibração é feita com um modelo simples de câmera pinhole– Ponto negativo
•Não apresenta efeitos ópticos que estão presentes no mundo real
– Define uma geometria de projeção•Usado para descrever um ponto no
espaço tridimensional•Plano de projeção ao longo do eixo-z
28
6.3 Calibração da câmera
• A calibração é feita com um modelo simples de câmera pinhole– Plano de projeção ao longo do eixo-z
29
6.3 Calibração da câmera
• A calibração é feita com um modelo simples de câmera pinhole– A imagem do ponto é formada onde o
raio passa pelo plano de projeção– Uso de semelhança de triângulos
30
6.3 Calibração da câmera
• A calibração é feita com um modelo simples de câmera pinhole– Gravação de pontos no espaço que são
conhecidos– Cria-se um conjunto de equações
lineares que serão resolvidas por método dos mínimos quadrados (least squares)
– Geralmente é necessário saber a não linearidade das •Lentes•Distancia focal•Outros...
32
6.4 Reconstrução de posição tridimensional
• É necessário encontrar o marcador em pelo menos duas câmeras– Quanto mais ortogonais, melhor
– A imagem do ponto se encontra em
e
1I 2I
33
6.4 Reconstrução de posição tridimensional
• O usuário pode reconstruir o a posição em coordenadas do mundo
• Igualando as equações– Tem-se três equações e duas
variáveis • e são desconhecido
PCIkC
PCIkC
)(
)(
2222
1111
1k 2k
34
6.4 Reconstrução de posição tridimensional
• Problemas: Ruído – Faz com que essas equações não se
interceptam•Mas normalmente os pontos são próximos
– é perpendicular as outras duas linhas– O ponto entre e pode ser usado
0
0
2212
1112
)()(
)()(
CIPP
CIPP
)( 12 PP
1P 2P
35
6.4 Reconstrução de posição tridimensional
• Casos onde a identificação e o rastreio dos marcadores não foi completa– A distância entre e pode ser
usado para testar a correção de e •Se for muito grande
– Os marcadores são diferentes
1P 2P
1I 2I
36
6.4 Reconstrução de posição tridimensional
• 6.4.1 Múltiplos marcadores– A quantidade e posição dependem do
que se pretende fazer com o movimento capturado
– Em uma configuração normal só é necessário de 14 marcadores•3 por braços ou pernas•2 para cabeça
37
6.4 Reconstrução de posição tridimensional
• 6.4.1 Múltiplos marcadores– Para mais precisão são adicionadas
•Cotovelos• Joelhos•Peito•Mãos•Dedos•Tornozelo•Espinha
39
6.4 Reconstrução de posição tridimensional
• 6.4.2 Múltiplas câmeras– Possibilidades de um marcador não
permanecer visível•Aumenta com a complexidade e o número
de marcadores
– Tipicamente, um sistema deveria ter 8 câmeras simultâneas•Devem ser sincronizadas
– Automaticamente– Manualmente
41
6.5 Ajustando ao esqueleto
• Abordagem direta– A posição tridimensional de cada
marcador é sua posição global de uma junta•Problemas devido ao ruído, suavização e
imprecisões– As distâncias das juntas do esqueleto não
ficarão precisas ao longo do tempo» O tamanho do osso pode mudar entre 10 a
20%» Pode causar foot-sliding
42
6.5 Ajustando ao esqueleto
• Abordagem direta– A posição tridimensional de cada
marcador é sua posição global de uma junta•Os marcadores não estão exatamente no
lugar das juntas– Se encontram fora de sua superfície– Solução: Realocação do ponto
» Sem orientação– A falta de orientação pode ser resolvida
colocando marcadores dos dois lados da junta» Não funciona para juntas complexas
(ombros e espinha)» Dobra o numero de marcadores
43
6.5 Ajustando ao esqueleto
• Cálculos geométricos podem ser feitos para descobrir o deslocamento entre o marcador e a junta– É calculada a normal do plano que é feito por 3
juntas consecutivas• Normal usada para deslocar a junta• Exemplo: Cotovelo
– Se existirem 2 marcadores no pulso» A posição da junta do pulso pode ser interpolada
– A normal é calculada com as posições pulso-cotovelo-ombro
– A real posição do cotovelo é calculado acrescentando na direção da normal a medida do artista
– A normal é recalculada a cada frame– Problema: colinearidade
» Pode interpolado
44
6.5 Ajustando ao esqueleto
• Tendo as juntas em posições consistentes– Podem ser usados para controlar o
esqueleto– Uso das posições digitalizadas para
calcular a rotação das juntas
45
6.5 Ajustando ao esqueleto
• Por causa das inpresições algunams restrições podem ser violadas– Ex: Penetração no chão– Os problemas são potencialmente nos
end effectors•Normalmente tem que ser posicionados
independente do resto– As juntas acima na hierarquia devem ser
ajustadas
47
6.6 Saída do sistema de captura de movimento
• Existem disponíveis softwares de captura de movimento– Permite montar a hierarquia dos
marcadores– Calibração de câmera– Automatizar o máximo possível o
processamento dos marcadores– Tem entrada do usuário para resolver
ambiguidades– Resultado pode ser animado ou salvo
48
6.6 Saída do sistema de captura de movimento
• Vários formatos-padrão de arquivos existem, os mais comuns são:– .asf / .amc (Acclaim)– .bvh (Biovision)
• Organização dos arquivos em duas partes:– Estrutural– Movimentação
• Orientados a:– Juntas (.bvh)– Esqueleto (.asf / .amc)
49
6.6 Saída do sistema de captura de movimento
• Exemplo de hierarquia de juntas root
joint Chest offset 0 5.21 03 DOFs: Zrotation Yrotation, XrotationLimits: (-180,180) (-90,90) (0,270)
joint Neckoffset 0 5.45 03 DOFs: Zrotation Yrotation, Xrotation
...joint Left UpperLeg
offset 3.91 0.0 0.03 DOFs: Xrotation Yrotation, Zrotation
joint LeftLowerLegoffset 3.91 0.0 0.01 DOF: Xrotation
...
50
6.6 Saída do sistema de captura de movimento
• Exemplo da gravação das juntas ao decorrer do tempo
– Cada linha é uma amostra do movimento
– O número de valores por linha é o DOF
-2.4 40.2 3.2 2.8 22.0 -23.0 ... -12.4 40.2 3.2 2.8 ...-2.8 42.1 3.4 2.8 22.1 -23.2 ... -12.2 42.3 3.3 3.8 ... 0.2 48.2 3.5 3.9 30.2 -25.2 ... -14.4 45.8 3.1 3.0 ... 2.4 50.4 3.3 5.0 35.2 -23.3 ... -20.2 44.9 3.3 2.8 ...
52
6.7 Manipulando os dados de captura de movimento
• Os arquivos podem ser usados para animar qualquer objeto cujas dimensões correspondam objeto capturado
• Infelizmente, podem existir erros– Movimento pode ser recapturado– Pode-se manipular os arquivos
53
6.7 Manipulando os dados de captura de movimento
• 6.7.1 Processamento sinais– Cada parâmetro do movimento capturado
(angulo da junta), podem ser tratados como um sinal que varia no tempo
– Sinal pode ser decomposto em • Frequências
– Podem ser extraídas, manipuladas e recolocadas
• Time-warped• Interpolado com outros sinais
– Os sinais originais representam movimentação fisicamente correta
– Entretanto, nada garante a corretude física do movimento após modificação do sinal
54
6.7 Manipulando os dados de captura de movimento
• 6.7.1 Processamento sinais (processamento de sinal do movimento)– Baixa frequência:
• Representa movimentação grosseira, geral
– Alta frequência: • Representa detalhes e sutilezas• É onde a maior parte da ruído se encontra
– Para as modificações• Convolução com um filtro de kernel• Os ganhos de cada banda são ajustadas pelo
usuário• E depois são somados para reconstruir o sinal
55
6.7 Manipulando os dados de captura de movimento
• 6.7.1 Processamento sinais (deformação do movimento)– Cada curva de movimento é
deformada independentemente– Portanto, considera-se apenas uma
curva sem se preocupar com a influência das demais sobre ela
)(t
56
6.7 Manipulando os dados de captura de movimento
• 6.7.1 Processamento sinais (deformação do movimento)– As restrições incluem
•Um conjunto de pares , cada par dando o valor que deve assumir em um dado tempo
•Um conjunto de pares na forma agem como restrições de tempo– Cada par dando tempo para o qual o valor
originalmente associado ao tempo deve ser deslocado
),( ii t
)',( jj tt
jtjt
57
6.7 Manipulando os dados de captura de movimento
• 6.7.1 Processamento sinais (deformação do movimento)– O procedimento de deformação produz o
mapeamento: • Interpola através das restrições de
deformação
– Cria a curva de deformação de movimento:•Transladando e/ou escalando a curva original
para satisfazer as restrições:– Especificado pelo usuário– Funções e podem ser interpoladas no
tempo» Combinadas, estabelecem a função
)'(tgt
)()()()(' tbttat
),()(' tft
)(ta )(tb)'(t
58
6.7 Manipulando os dados de captura de movimento
• 6.7.2 Redirecionamento do movimento (motion retargeting )– Dimensões do objeto não bate com o
capturado•Mapear o movimento•Modificar para que satisfaça restrições
importantes– Evitar
» Penetração dos pés no chão» Auto penetração» Não permitir que o pé deslize
•Recontruida de forma mais semelhante possível da original
59
6.7 Manipulando os dados de captura de movimento
• 6.7.3 Combinando movimentos– A capacidade de combinar os
movimentos faz a captura de movimento mais útil para um animador•Os movimentos são gravados durando
poucos minutos cada•O modo mais simples de se combinar
pequenos movimentos em um maior é ter uma posição em comum– Não, necessariamente, há uma sensação de
continuidade
60
6.7 Manipulando os dados de captura de movimento
• 6.7.3 Combinando movimentos– Combinações mais realistas podem
ser conseguidas através da mistura entre o fim do primeiro e o início do segundo•Essa mistura pode parecer estranha se os
pontos a serem conectados não forem similares
•As técnicas de processamento de sinal podem ser utilizados para a mistura
– Há ainda pesquisa na área