=Paper= {{Paper |id=Vol-1754/EPoGames_2016_AC_paper_5 |storemode=property |title=Um sistema de captura de movimentos de baixo custo para Animação de Personagens |pdfUrl=https://ceur-ws.org/Vol-1754/EPoGames_2016_AC_paper_5.pdf |volume=Vol-1754 |authors=Matheus Pereira,Agostinho Júnior }} ==Um sistema de captura de movimentos de baixo custo para Animação de Personagens== https://ceur-ws.org/Vol-1754/EPoGames_2016_AC_paper_5.pdf
 Um Sistema de Captura de Movimentos de Baixo Custo para
                Animaç ão de Personagens
                            Matheus Pereira, Agostinho Júnior
               1
                   Departamento de Engenharia da Computação e Automação
      Universidade Federal do Rio Grande do Norte (UFRN) – Natal, RN – Brazil
                   matheus.petrovich@gmail.com, ambj@dca.ufrn.br

    Resumo. Este artigo descreve o desenvolvimento de um sistema de captura de
    movimentos portátil e de baixo custo para assistir o processo de animação de
    personagens, reduzindo o tempo gasto pelo animador e atribuindo maior re-
    alismo ao produto final. O sistema é baseado no processamento de imagem
    oriunda de uma câmera afixada em um aparato de captura que a mantém estável
    em relação ao rosto do ator. O sistema consegue rastrear com êxito 13 marca-
    dores ao redor da boca e sombrancelhas e ainda as pupilas do ator.

    Abstract. This article describes the development of low cost and portable mo-
    tion capture system to aid with the process of character animation. Such systems
    reduces the time spent by the animator and gives more realism to the final ani-
    mation. The system is based on image processing using a camera fixed to a
    helmet that remains stable in relation to the actor’s face. The system can suc-
    cessfully track 13 markers around the mouth and eyebrows and even the actor’s
    pupils.

Introdução
A sutileza das expressões faciais representa parte significativa do processo de
comunicação humana. Pequenas nuances podem separar um sorriso verdadeiro que passe
aceitação, de um forçado que passe desconforto. Buscando um nı́vel cada vez maior de
realismo, a indústria do entretenimento tem usado diversos artifı́cios para tornar seus pro-
dutos cada vez mais realistas e verossı́meis, tanto nas formas e qualidade da imagem,
quanto na animação. Esse realismo é normalmente obtido usando técnicas de captura de
movimentos [Moeslund and Granum 2001].
         São os pequenos detalhes que agregam realismo ao desempenho do personagem e
acrescem ao individualismo de seu comportamento. Esses podem ser difı́ceis de se criar
através de métodos mais tradicionais de animação como o keyframe, no qual todos os
movimentos do modelo são definidos manualmente pelo animador [Fatih Erol 2007].
        A técnica de captura de movimentos (motion capture, ou mocap) permite que con-
juntos de movimentos, capturados de um ator no mundo real, sejam inseridos na animação
de um personagem virtual. Aplicando diretamente os dados extraı́dos do ator ao persona-
gem, são inseridos os macro movimentos conscientes, bem como os micro movimentos
normalmente associados às emoções. De tal forma, o animador pode gerar personagens
com maior grau de realismo, conferirindo agilidade ao pocesso de animação[et al. 2013].
        O método de animação por keyframe pode ser trabalhoso e demorado, podendo
exigir mais de um dia para um animador completar 10 segundos do rascunho de animação

                                                                                          24
chamado de blocking. O uso de métodos baseados em captura de movimento pode reduzir
esse tempo em aproximadamente 7 vezes. Autores como Shiratori, da Disney Research,
reforçam que a agilidade no processo de blocking da animação é importante uma vez que
nessa etapa de criação, a agilidade é essencial para que os animadores possam concretizar
a cena que têm em mente. Essa economia de tempo ainda permite que eles explorem e
experimentem muito mais possibilidades com menos esforço, construindo uma base de
movimentos que podem ser aprovados pelos diretores e então refinados para uma versão
final[Shiratori et al. 2013].
        Existem diversas técnicas de captura de movimentos, com sensoriamento baseado
em fibras ópticas, sensores eletromagnéticos, potenciômetros embarcados em uma roupa
apropriada e processamento de imagem. Essas tecnologias podem ser separadas em duas
grandes classes: com marcadores e sem marcadores, sendo a primeira a mais evidente no
mercado atualmente [Sigal and Koltun 2012]. Atualmente, sistemas de mocap baseados
em processamento de imagem estão se tornando cada vez mais comuns dada a evolução
dos trabalhos cientı́ficos na área.
         Métodos baseados em marcadores passivos são mais largamente utilizados na
indústria pelo fato de ser mais simples rastrear regiões de cor ou formato conhecido (mar-
cador), e permitir maior flexibilidade ao ator. Em contrapartida, métodos que dispensam o
uso de marcadores tendem a apresentar limitações no rastreio em tempo real e uma maior
margem de erro [Vicon ].
         Dentre os sistemas de rastreio de movimento, os de deteção de espressões faci-
ais estão entre os mais difı́cieis de serem concebidos, posto que devem ter a precisão
para captar as pequenas nuances de expressões faciais. Essas nuances são as principais
responsáveis pelo realismo de um personagem, especialmente o movimento dos olhos.
        Bons sistemas de rastreio de caracterı́sticas faciais são caros e normalmente devem
ser adaptados a cada tipo de ambiente. Além disso, necessitam de aparato especial a ser
colocado no ator para que o rastreio da face possa ser feito in loco enquanto esta atua no
espaço de gravações.
        Sistemas de baixo custo podem ser interessantes para pequenos estúdios que não
dispõem de muitos recursos mas necessitam de usar mocap para animar personagens em
filmes ou jogos digitais.
        Esse trabalho visa contribuir apresentando uma proposta de um sistema de cap-
tura de movimento de baixo custo para faces usando marcadores passivos. O sistema é
composto por um dispositivo de captura ao qual está acoplada a câmera, e um software de
processamento de imagens que recebe e trata o stream de vı́deo em tempo real para uso
na animação de personagens.
         O presente artigo é organizado nas seguintes seções. A seção 2 descreve o modelo
de aparato desenvolvido para realizar a captura e as técnicas de captura de movimento
que foram empregadas. A seção 3 descreve como se dá o processo de rastreio das regiões
das sombrancelhas e da boca. A seção 4 mostra o processo usado no rastreio das pupilas.
A seção 5 conclui o trabalho, apresentando perspectivas de aprimoramento e expansão da
utilidade da ferramenta1 .

   1
       Algumas imagens no trabalho foram premeditadamente modificadas na versão de apreciação pelos

                                                                                                   25
Modelo do sistema de captura

O aparato de captura é composto de um capacete em resina de poliéster reforçada com
fibra de vidro e uma câmera afixada em um braço de alumı́nio. O capacete deve ser
confeccionado a partir de um molde da cabeça do usuário, obtido em um processo de
moldagem com ataduras de gesso. Normalmente, a moldagem é necessária para o capa-
cete fique bem firme na cabeça do seu utilizador, minimizando vibrações da câmera que
será colocada em frente ao rosto.
        Sobre o modelo foram laminadas camadas de resina de poliester pigmentada
reforçadas com manta de fibra de vidro. Cortes foram feitos na parte traseira do capa-
cete para permitir flexibilidade e uma tira de velcro foi afixada para ajuste, de modo que o
capacete fique justo na cabeça do usuário. No interior do capacete foram colados pedaços
de feltro para melhorar o conforto e ajudar a deixar o capacete mais fixo, para que a
câmera estivesse sempre estática em relação ao rosto do usuário. A estrutura do capacete
é mostrado na Figura 1.




                               Figura 1. Aparato de captura completo.


        Dois parafusos foram usados para afixar o braço de alumı́nio ao capacete. A barra
de alumı́nio necessita ser medida e moldada de forma a permitir que a câmera tenha uma
visão completa da face do usuário. Na ponta do braço de alumı́nio é presa uma câmera
USB que fará a captura da imagem da face do usuário.
         A fim de não limitar a mobilidade do ator durante a captura, o software foi embar-
cado em um Raspberry Pi afixado à parte traseira do capacete. Através de uma conexão
à internet o sistema pode ser remotamente configurado e acompanhado. As imagens
são capturadas na resolução de 480 pontos horizontais por 640 pontos verticais. Nesta
resolução, o hardware do Raspberry consegue capturar imagens com velocidade em torno
20 quadros por segundo de uma câmera USB e processá-las.

revisores de modo a não permitir a identificação dos autores

                                                                                          26
Rastreio de marcadores
Os marcadores utilizados neste trabalho devem ser confeccionados bolas de isopor reves-
tidas com pintura tinta amarela e colados na face do ator utilizando o adesivo Pros-Aid R .
Este adesivo é produzido pela ADM Tronics R e utilizado largamente na indústria de en-
tretenimento em maquiagem e efeitos especiais [ADMTronics ]. Um exemplo de imagem
com os marcadores colados na face do usuário é mostrada na Figura 2.




              Figura 2. Marcadores Passivos Colados no Rosto do Usuário

        Foram realizados testes com bolas isopor em cor natural branca e tingidas com
tintas azul, vermelha e verde. Entretanto, a cor amarela foi a que produziu melhores
condições de separação do restante dos elementos da imagem.
        A segmentação das imagens para extração dos marcadores é feito no espaço de
cores HSV, utilizando a componente de matiz (H). A seleção da faixa de matizes ade-
quada para o marcador amarelo deve ser feita conforme as condições de iluminação es-
tabelecidas para o ambiente de captura. Uma ferramenta permite ao utilizador escolher
os limiares inferior e superior de limitam a região de matizes amarelas dos marcadores.
O uso do model HSV é importante para desvincular a informação da cor das condições
de iluminação da cena. Para diversos testes realizados em ambientes com condições de
iluminação variada, a faixa H0 ∈ [90, 110], considerando uma faixa de varredura para
H ∈ [0, 180], mostrou os melhores resultados para separar os marcadores do restante da
cena. A Figura 3 mostra um exemplo de imagem segmentada com os marcadores isola-
dos.
       Os marcadores são fixados em pontos estratégicos com áreas de maior
movimentação e expressividade e maior relevância para a percepção de emoções como
a boca e sombrancelhas [Neth and Martinez 2009]. Para acompanhamento ao longo da
captura, cada marcador recebe um rótulo identificador. A quantidade e posição dos mar-
cadores devem seguir a distribuição vista na Figura 2.
        A imagem segmentada é então varrida, buscando pelas regiões brancas. Quando
uma região é encontrada, assume-se que ali existe um cı́rculo e seu diâmetro é medido.
Para evitar a influência do ruı́do que naturalmente ocorrem durante a segmentação da
cena, uma região só será considerada uma região de marcador se tiver diâmetro maior que
7 pixels (valor estabelecido experimentalmente). Caso a região seja aceita, as coordenadas

                                                                                         27
     Figura 3. Exemplo de imagem segmentada mostrando os marcadores isolados
     do restante da cena.


do seu centro de massa serão rotuladas e guardadas para rastreio. A região é removida
para que não seja encontrada múltiplas vezes na mesma cena.
         A identificação dos pontos e sua associação com os rótulos é feita considerando-se
tanto sua posição na imagem, quanto seu posicionamento em relação aos demais pontos.
Para facilitar essa identificação, os pontos da região da boca e os da sombrancelha são
separados em conjuntos distintos, de forma que sejam comparados apenas com os demais
pontos de sua própria região. Uma vez que a varredura seja finalizada, os pontos são
ordenados conforme a ordem crescente de suas coordenadas horizontais. Caso seja a
primeira varredura da imagem, os pontos de referência terão de ser criados, caso contrário,
eles receberão apenas a informação do deslocamento. Em ambos os casos, a identificação
dos rótulos é feita usando esse mesmo algoritmo.

Rastreio das sombrancelhas
A distribuição dos marcadores na região das sobrancelhas é sempre realizado conforme
mostra a Figura 4. A distribuição dos marcadores nessa região é feita em quatro colunas
com dois marcadores cada. Dessa forma haverá 4 pares de pontos (dois em cada coluna),
onde cada par possui valores próximos para suas coordenadas horizontais. Dessa forma,
ordenando os pontos conforme a ordem crescente de suas coordenadas horizontais, os
pares de pontos de cada coluna serão sempre subsequentes nesse conjunto ordenado.
        Cada par de pontos será comparado quanto às suas coordenadas verticais. O ponto
mais próximo ao topo da imagem será classificado como ponto superior e o mais próximo
ao rodapé será classificado como ponto inferior. A Figura 5 ilustra a rotulação realizada,
destancando os pontos superiores s1s, s2s, s3s e s4s e os pontos inferiores s1i, s2i, s3i
e s4i. O resultado da segmentação é mostrado na Figura 5.

Rastreio da boca
Apesar da ausência da uniformidade vista na região da sombrancelha, os marcadores da
boca são identificados de forma similar. O ponto mais próximo à lateral esquerda é deno-
minado canto 1. Os dois pontos seguintes serão comparados usando sua posição vertical.
Aquele situado mais próximo à região superior do conjunto será será o ponto superior. O

                                                                                              28
                  Figura 4. Rastreio dos marcadores na sombrancelhas.




     Figura 5. Resultado da segmentação dos pontos na região das sombrancelhas


mais próximo à região inferior do conjunto será o ponto inferior. Em seguida, serão com-
parados 3 pontos, que se encontra mais abaixo será o ponto do queixo, o que se encontra
mais acima será o superior e o outro ponto, será o ponto inferior da boca. Os próximos
dois são comparados de forma semelhante ao primeiro par. O último ponto será sempre o
canto 2.
         A Figura 6 ilustra o processo de marcação automática dos pontos da boca em duas
situações distintas.

Rastreio dos olhos
O rastreio dos olhos do usuário é semi-assistido. Requer mı́nima intervenção do usuário
apenas para criar uma marcação inicial a pupila de cada olho em uma imagem capturada
no sistema interativo desenvolvido. Uma vez marcada a pupila aparecerão retângulos
sobre os olhos indicando a região processada para o rastreio, como pode ser visto na
Figura 7. Como o aparato mantém a câmera estática em relação ao rosto, a posição dos
retângulos não precisa ser corrigida no decorrer da captura.
        O rastreio se dá em duas fases: primeiramente encontra-se a posição horizontal da
pupila e então a posição vertical. Cada olho é isolado em uma nova imagem de dimensões
iguais a 60 pixels verticais por 110 Pixels horizontais. As imagens são obtidas em tons
de cinza a partir do isolamento de um dos canais de cor da imagem original em RGB. Em
seguida, as imagens são limiarizadas, assumindo para os pixels valor zero (preto) se for

                                                                                          29
                        Figura 6. Rastreio dos marcadores na Boca




                          Figura 7. Regiões de rastreio dos olhos


menor ou igual ao limiar estabelecido, e 255 (branco) caso seja maior que tal limiar. O
limiar adequado é definido por meio do software de captura e deve ser ajustado conforme
as condições de iluminação da cena.
         As regiões escuras dos cı́lios provocam o aparecimento de ruı́dos nas laterais dos
olhos próximas ao lado externo da face. Para evitar o processamento desnecessário desse
ruı́do, optou-se por realizar a busca pela pupila do centro da imagem em direção às laterais
da face, coluna após coluna.
        Para cada pixel em uma linha de uma coluna, procura-se pela primeira sequência
contı́nua de cinco pixels pretos que ocorrem na direção vertical. Quando esse evento
ocorre, o contorno externo da pupila é encontrado. Para chegar à coordenada horizontal
do centro da pupila, caminha-se um total de 10 pixels em direção à lateral da face.
        Para determinar a coordenada vertical do centro, caminha-se da borda inferior
da janela em direção à superior. A posição do contorno externo é encontrada quando
um conjunto consecutivo de 5 pixels pretos é percorrido. O primeiro pixel determina a
posicão do contorno. Caminha-se um total de 10 pixels em direção à borda superior da
imagem e ficam assim determinadas as coordenadas horizontal e vertical do centro da

                                                                                            30
                  Figura 8. Regiões de rastreio dos olhos segmentadas


pupila.
        A decisão por caminhar de baixo para cima em busca da coordenada vertical do
centro evita a presença incômoda dos cı́lios nessa etapa de reconhecimento.
        A contagem de cinco pontos mostrou-se eficiente para eliminar ruı́do proveniente
da etapa de segmentação e encontrar a pupila com sucesso. Como o diâmetro da pupila é
constante, um pequeno offset de 10 pixels foi suficiente para determinar as coordenadas
dos centros. Esses parâmetros podem ser facilmente ajustados para imagens tomadas em
resoluções alternativas.




                               Figura 9. Rastreio das pupilas


Considerações Finais
O presente trabalho apresentou um sistema para captura de movimento de pontos da face
usando hardware de baixo custo. Foram mostrados os procedimentos para preparação do
sistema de captura e como se dá o rastreio de pontos estratégicos na face e nos olhos do
usuário.
       É importante notar que os algoritmos utilizados são todos de baixo custo compu-
tacional, posto que executam em equipamentos com capacidade de computação limitada.
Todos os algoritmos utilizados baseiam-se em estratégias simples, tais como verificar fai-
xas de valores para componentes de cor e rotular de pixels em regiões pré-determinadas.
       A configuração do sistema é feita utilizando uma aplicação que pode ser acessı́vel
diretamente no Raspberry Pi. Uma vez configurada, poderá guardar o arquivo de captura
de movimento para uso posterior em algum processo de animação.
       A documentação completa do sistema e a disponibilização dos códigos-fonte de-
senvolvidos estão sendo realizadas sob licença de código livre para a comunidade.

                                                                                           31
        O sistema está sendo aperfeiçoado para que toda a configuração se dê de forma
remota usando tecnologias de baixo custo computacional. Versões futuras do sistema
também terão incorporados modelos computacionais usando ferramentas de animação de
código livre como o Blender para facilitar a tarefa da equipe de animação.
        O suporte para animação baseada em robôs animatrônicos também está em fase
de testes com o sistema criado. Versões futuras dessa plataforma deverão contemplar
também o processo de construção de um animatrônico.

Referências
ADMTronics. Pros-aide adhesive. http://www.pros-aide.com/original.
  html. Accessed: 2016-09-28.
et al., A. H. B. (2013). Facial performance enhancement using dynamic shape space
   analysis.
Fatih Erol, U. G. (2007). An interactive facial animation system.
Moeslund, T. B. and Granum, E. (2001). A Survey of Computer Vision-Based Human
  Motion Capture. Computer Vision and Image Understanding, 81(3):231–268.
Neth, D. and Martinez, A. (2009). Emotion perception in emotionless face images sug-
  gests a norm-based representation. Journal of Vision.
Shiratori, T., Mahler, M., Trezevant, W., and Hodgins, J. K. (2013). Expressing animated
  performances through puppeteering.
Sigal, L. and Koltun, V. (2012). (marker-based) motion capture. University Lecture.
Vicon.    What is motion capture.         https://www.vicon.com/
  what-is-motion-capture. Accessed: 2016-10-15.




                                                                                       32