Post on 12-Jul-2015
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 1/102
COPPE/UFRJ
INFRAESTRUTURA PARA TELEPRESENÇA 3D E TELEOPERAÇÃO
André Sarmento Barbosa
Tese de Doutorado apresentada ao Programa
de Pós-graduação em Engenharia Civil,
COPPE, da Universidade Federal do Rio
de Janeiro, como parte dos requisitos
necessários à obtenção do título de Doutorem Engenharia Civil.
Orientador: Luiz Landau
Rio de Janeiro
Setembro de 2009
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 2/102
INFRAESTRUTURA PARA TELEPRESENÇA 3D E TELEOPERAÇÃO
André Sarmento Barbosa
TESE SUBMETIDA AO CORPO DOCENTE DO INSTITUTO ALBERTO LUIZ
COIMBRA DE PÓS-GRADUAÇÃO E PESQUISA DE ENGENHARIA (COPPE)
DA UNIVERSIDADE FEDERAL DO RIO DE JANEIRO COMO PARTE DOS
REQUISITOS NECESSÁRIOS PARA A OBTENÇÃO DO GRAU DE DOUTOR
EM CIÊNCIAS EM ENGENHARIA CIVIL.
Examinada por:
Prof. Luiz Landau, D.Sc.
Prof. Gerson Gomes Cunha, D.Sc.
Prof. Fernando Pellon de Miranda, D.Sc.
Prof. Nelson Francisco Favilla Ebecken, D.Sc.
Prof. Marcelo Knörich Zuffo, D.Sc.
RIO DE JANEIRO, RJ – BRASIL
SETEMBRO DE 2009
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 3/102
Barbosa, André Sarmento
Infraestrutura para Telepresença 3D e
Teleoperação/André Sarmento Barbosa. – Rio de
Janeiro: UFRJ/COPPE, 2009.
XIII, 89 p.: il.; 29, 7cm.
Orientador: Luiz Landau
Tese (doutorado) – UFRJ/COPPE/Programa deEngenharia Civil, 2009.
Referências Bibliográficas: p. 49 – 52.
1. telepresença. 2. teleoperação. 3. telerobótica. I.
Landau, Luiz. II. Universidade Federal do Rio de Janeiro,
COPPE, Programa de Engenharia Civil. III. Título.
iii
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 4/102
À minha esposa Paula e ao meu
filho Thiago.
iv
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 5/102
Agradecimentos
Agradeço à minha família, pelo apoio e compreensão pelas horas passa-
das em frente ao computador e na bancada às voltas com fios e circuitos...
Agradeço ao Programa de Engenharia Civil da COPPE/UFRJ, ao Labo-ratório LAMCE, ao Grupo de Realidade Virtual Aplicada (GRVa) e a
todos professores, funcionários e colegas que acompanharam essa jornada.
Agradeço a tudo que possa representar Deus na Natureza e agradeço pelo simples
fato de estarmos vivos e podermos desfrutar, contribuir e retribuir de alguma forma
com tudo e todos.
v
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 6/102
Resumo da Tese apresentada à COPPE/UFRJ como parte dos requisitos necessários
para a obtenção do grau de Doutor em Ciências (D.Sc.)
INFRAESTRUTURA PARA TELEPRESENÇA 3D E TELEOPERAÇÃO
André Sarmento Barbosa
Setembro/2009
Orientador: Luiz Landau
Programa: Engenharia Civil
Esta tese apresenta uma infraestrutura de hardware e software para sistemas de
telepresença 3D e teleoperação. Esta infraestrutura proporciona a um participante
a capacidade de visualizar, em tempo real, outro participante situado em um lo-
cal remoto, possivelmente distante. O vídeo transmitido do participante remoto
é composto somente da parte segmentada pela sua silhueta, o qual é sobreposto,
localmente, a um ambiente virtual.
A infraestrutura completa é composta por uma biblioteca de software baseada em
código fonte livre e uma configuração de hardware baseada na aquisição de vídeoatravés de múltiplas câmeras, além de módulos eletrônicos com suporte a sensores e
atuadores, desenvolvidos especificamente para as ações relacionadas à teleoperação.
O trabalho apresenta, ao seu final, um protótipo construído com a infraestrutura
proposta, onde são realizadas avaliações de desempenho dos algoritmos escolhidos e
testes com os módulos eletrônicos desenvolvidos.
vi
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 7/102
Abstract of Thesis presented to COPPE/UFRJ as a partial fulfillment of the
requirements for the degree of Doctor of Science (D.Sc.)
INFRASTRUCTURE FOR 3D TELEPRESENCE AND TELEOPERATION
André Sarmento Barbosa
September/2009
Advisor: Luiz Landau
Department: Civil Engineering
This thesis presents a hardware and software infrastructure for 3D telepresence and
teleoperation systems. This infrastructure provides a user the ability to visualize, in
real time, another user in a remote, possibly distant place. The transmitted video
from the remote user is formed only for the part segmented for its silhouette, which
is composed to a virtual environment in the local system.
The complete infrastructure contains a software library based on free source code
and a hardware configuration based on the video capture using multiple cameras.
Moreover, electronic modules with support to the sensors and actuators had beendeveloped specifically for the actions related to the teleoperation.
A prototype developed with the proposed infrastructure is presented at the end of
this work, where evaluations of performance of the chosen algorithms and tests with
the developed electronic modules are made.
vii
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 8/102
Sumário
Lista de Figuras xi
Lista de Tabelas xiii
1 Introdução 1
1.1 Motivações . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.1 Hipótese . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3 Relevância . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3.1 Trabalhos relacionados . . . . . . . . . . . . . . . . . . . . . . 4
1.4 Organização do trabalho . . . . . . . . . . . . . . . . . . . . . . . . . 8
2 Fundamentação Teórica 9
2.1 Telepresença . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.1.1 Videoconferência . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.1.2 Ambientes Virtuais Colaborativos . . . . . . . . . . . . . . . . 10
2.1.3 Sistemas de Telepresença Comerciais . . . . . . . . . . . . . . 132.1.4 Telepresença 3D . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.2 Teleoperação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.2.1 Áreas de aplicação da teleoperação . . . . . . . . . . . . . . . 21
2.2.2 A teleoperação via Internet . . . . . . . . . . . . . . . . . . . 23
2.2.3 Eletrônica para suporte à teleoperação . . . . . . . . . . . . . 24
3 Metodologia Empregada 263.1 Visão geral do sistema . . . . . . . . . . . . . . . . . . . . . . . . . . 26
viii
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 9/102
3.2 Infraestrutura para telepresença 3D . . . . . . . . . . . . . . . . . . . 27
3.2.1 Captura de vídeo . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.2.2 Computadores . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.3 Infraestrutura para teleoperação . . . . . . . . . . . . . . . . . . . . . 31
3.4 Comentários Finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4 Implementação da Solução Proposta 34
4.1 Classes que compõem a biblioteca proposta . . . . . . . . . . . . . . . 34
4.2 Implementação da biblioteca com suporte à telepresença 3D e teleo-
peração . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.2.1 Calibragem das câmeras . . . . . . . . . . . . . . . . . . . . . 35
4.2.2 Extração da silhueta de múltiplas câmeras . . . . . . . . . . . 37
4.2.3 Compressão e descompressão do vídeo e da máscara da silhueta 39
4.2.4 Transmissão da imagem via rede IP . . . . . . . . . . . . . . . 39
4.2.5 Reconstrução do vídeo . . . . . . . . . . . . . . . . . . . . . . 40
4.2.6 Métodos para teleoperação . . . . . . . . . . . . . . . . . . . . 41
4.3 Protótipo para validação da biblioteca . . . . . . . . . . . . . . . . . 414.4 Construção do hardware para teleoperação . . . . . . . . . . . . . . . 42
5 Considerações Finais 45
5.1 Avaliações . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
5.2 Conclusões . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
5.3 Contribuições . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
5.4 Pesquisas Futuras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Referências Bibliográficas 49
A Diagramas de Classes 53
B Listagem e documentação das principais classes da biblioteca 59
B.1 Classe VideoCapture . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
B.1.1 Descrição detalhada . . . . . . . . . . . . . . . . . . . . . . . 60
ix
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 10/102
B.1.2 Documentação dos métodos . . . . . . . . . . . . . . . . . . . 60
B.2 Classe VideoDisplay . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
B.2.1 Descrição detalhada . . . . . . . . . . . . . . . . . . . . . . . 64
B.2.2 Documentação dos métodos . . . . . . . . . . . . . . . . . . . 64
B.3 Classe FrameBuffer . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
B.3.1 Descrição detalhada . . . . . . . . . . . . . . . . . . . . . . . 65
B.3.2 Documentação dos métodos . . . . . . . . . . . . . . . . . . . 65
B.4 Classe Calibration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
B.4.1 Descrição detalhada . . . . . . . . . . . . . . . . . . . . . . . 68
B.4.2 Documentação dos métodos . . . . . . . . . . . . . . . . . . . 68B.5 Classe Silhouette . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
B.5.1 Descrição detalhada . . . . . . . . . . . . . . . . . . . . . . . 71
B.5.2 Documentação dos métodos . . . . . . . . . . . . . . . . . . . 71
B.6 Classe Camera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
B.6.1 Descrição detalhada . . . . . . . . . . . . . . . . . . . . . . . 74
B.6.2 Documentação dos métodos . . . . . . . . . . . . . . . . . . . 74
B.7 Classe RenderBillboard . . . . . . . . . . . . . . . . . . . . . . . . . . 75
B.7.1 Descrição detalhada . . . . . . . . . . . . . . . . . . . . . . . 75
B.7.2 Documentação dos métodos . . . . . . . . . . . . . . . . . . . 75
B.8 Classe Teleoperation . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
B.8.1 Descrição detalhada . . . . . . . . . . . . . . . . . . . . . . . 76
B.8.2 Documentação dos métodos . . . . . . . . . . . . . . . . . . . 76
C Diagramas Esquemáticos e Layouts dos Circuitos Eletrônicos 78
Glossário 89
x
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 11/102
Lista de Figuras
2.1 Videoconferência . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2 Uma classificação dos espaços compartilhados de acordo com as di-
mensões de transporte e artificialidade . . . . . . . . . . . . . . . . . 13
2.3 Sistema de telepresença comercial . . . . . . . . . . . . . . . . . . . . 14
2.4 VIRTUE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.5 TELEPORT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.6 Visual Hull baseado em imagem . . . . . . . . . . . . . . . . . . . . . 17
2.7 Painel com aplicação de luz infravermelha . . . . . . . . . . . . . . . 18
2.8 Composição do vídeo ao ambiente virtual . . . . . . . . . . . . . . . . 20
2.9 Modelo da sonda Spirit . Fonte: NASA . . . . . . . . . . . . . . . . . 22
2.10 Teleoperação via Internet . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.11 Modelo abstrato de um módulo de controle e monitoramento . . . . . 25
3.1 Divisão em blocos do sistema proposto . . . . . . . . . . . . . . . . . 27
3.2 Abordagem da telepresença 3D na solução proposta . . . . . . . . . . 28
3.3 Câmera CCD utilizada . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.4 Placa de captura com chipset Philips - 120fps . . . . . . . . . . . . . 30
3.5 Abordagem da teleoperação na solução proposta . . . . . . . . . . . . 32
4.1 Calibragem das câmeras . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.2 Algoritmo de Horprasert . . . . . . . . . . . . . . . . . . . . . . . . . 38
4.3 Infraestrutura física montada . . . . . . . . . . . . . . . . . . . . . . 41
4.4 Composição do vídeo do participante e monitoramento a temperatura 42
4.5 Subtração de fundo e transmissão via rede . . . . . . . . . . . . . . . 43
xi
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 12/102
5.1 Extração de silhueta: Número de pixels x tempo(ms) . . . . . . . . . 46
5.2 Billboards ou sprites: Número de pixels x FPS . . . . . . . . . . . . . 46
5.3 Visual Hull : Número de pixels x FPS . . . . . . . . . . . . . . . . . . 46
A.1 Classes de captura de vídeo . . . . . . . . . . . . . . . . . . . . . . . 54
A.2 Classes de janela de vídeo . . . . . . . . . . . . . . . . . . . . . . . . 55
A.3 Classes de câmera, framebuffer, calibragem e silhueta . . . . . . . . . 56
A.4 Classes de renderização e teleoperação . . . . . . . . . . . . . . . . . 57
A.5 Classes do programa principal (protótipo) . . . . . . . . . . . . . . . 58
C.1 Diagrama esquemático do Módulo de Controle e Sensoriamento . . . 79
C.2 Layout superior da placa do Módulo de Controle e Sensoriamento . . 80
C.3 Layout inferior da placa do Módulo de Controle e Sensoriamento . . . 80
C.4 Layout dos componentes do Módulo de Controle e Sensoriamento . . 80
C.5 Modelo 3D do Módulo de Controle e Sensoriamento . . . . . . . . . . 80
C.6 Diagrama esquemático do Conversor USB-RS485 . . . . . . . . . . . 81
C.7 Layout superior da placa do Conversor USB-RS485 . . . . . . . . . . 82
C.8 Layout inferior da placa do Conversor USB-RS485 . . . . . . . . . . . 82
C.9 Layout dos componentes do Conversor USB-RS485 . . . . . . . . . . 82
C.10 Modelo 3D do Conversor USB-RS485 . . . . . . . . . . . . . . . . . . 82
C.11 Placas de circuito impresso do Módulo e do Conversor . . . . . . . . . 83
C.12 Módulo de Controle e Sensoriamento montado . . . . . . . . . . . . . 83
C.13 Conversor USB-RS485 montado . . . . . . . . . . . . . . . . . . . . . 83
xii
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 13/102
Lista de Tabelas
5.1 Diferentes resoluções com uso de billboards ou sprites . . . . . . . . . 45
5.2 Diferentes resoluções com uso do algoritmo Visual Hull . . . . . . . . 45
xiii
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 14/102
Capítulo 1
Introdução
A evolução dos sistemas de telecomunicação e a globalização mudaram radicalmentea forma como as pessoas trabalham e se comunicam. A telefonia, a Internet e as
videoconferências não são mais suficientes para atender certas demandas. Assim,
muita pesquisa tem sido conduzida em busca de novas formas de comunicação e
colaboração de grupos geograficamente distribuídos.
A utilização da computação gráfica e da visão computacional tem resultado em
avanços expressivos neste sentido, tais como os ambientes virtuais colaborativos e a
telepresença.
Os ambientes virtuais colaborativos [1] permitem que usuários trabalhem de forma
colaborativa em favor de um determinado objetivo, enquanto se beneficiam da flexi-
bilidade e da enorme gama de possibilidades dos ambientes virtuais. Estes ambientes
são compartilhados pelos participantes através de uma rede de computadores, per-
mitindo que grupos possam interagir no ambiente virtual mesmo que fisicamente
distantes uns dos outros.
Os ambientes virtuais colaborativos podem ser construídos a partir de ambien-
tes de realidade virtual que possuem graus de imersão que variam desde os não-
imersivos (através de monitores CRT ou LCD convencionais) aos imersivos, como a
CAVETM[2].
A telepresença permite a visualização da imagem dos participantes como se estes es-
tivessem fisicamente presentes, criando um ambiente onde participantes remotos não
apenas se encontram face a face, como também podem, possivelmente, compartilhar
um mesmo espaço virtual, executando tarefas neste espaço [3].
Além da imagem, outras informações poderiam ser transferidas entre o participante
e o ambiente remoto, tais como áudio e tarefas de controle e monitoração. Assim,funções de teleoperação podem ser integradas à telepresença.
1
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 15/102
A teleoperação envolve o controle de equipamentos à distância, permitindo o envio
de comandos de um operador para o equipamento controlado, bem como retorno
de informações do equipamento para o operador. Este retorno, pode ser fruto de
uma resposta de uma ação de controle ou mesmo a monitoração de características
do equipamento.
Podemos perceber que há uma relação entre todos os conceitos discutidos anteri-
ormente, na qual a telepresença pode ser vista como uma tecnologia que estende a
capacidade das videoconferências e dos ambientes virtuais colaborativos, acrescen-
tando a estes a capacidade de incorporar, em tempo real, o vídeo de cada partici-
pante, além de permitir também, a capacidade de teleoperação.
A imagem transmitida do participante remoto, pode ser composta somente pela
parte segmentada pela sua silhueta, a qual é sobreposta, localmente, ao ambiente
virtual em três dimensões, dando origem ao termo telepresença 3D ou teleimersão.
Aliada à realidade virtual, a telepresença pode levar o homem a mundos hoje apenas
imaginários, criando situações novas, completamente diferentes das que estamos
acostumados a experimentar [4].
Várias soluções têm sido propostas neste sentido; notáveis contribuições e uma re-
visão de trabalhos já publicados podem ser encontrados em [5] e [6].
O presente trabalho propõe uma infraestrutura de hardware e software para telepre-
sença 3D e explora sua integração com a teleoperação. Neste sentido, os participan-tes do sistema de telepresença podem exercer operações de controle e monitoramento
à distância, podendo ainda enviar e receber estímulos físicos, tais como o aciona-
mento de um dispositivo, o monitoramento da temperatura corporal ou ambiente,
ou quaisquer ações que possam ser capturadas e transmitidas via rede.
O uso em conjunto da telepresença e da teleoperação pode ser aplicado em diversos
ambientes e campos de pesquisa, como por exemplo: telerobótica, salas de cirurgia,
plataformas offshore, exploração submarina, áreas de risco, etc.
1.1 Motivações
Os atuais sistemas de telepresença são empregados, em sua maioria, como substi-
tuição à videoconferência convencional. Algumas aplicações incluem simulações e
treinamentos, mas estas realizadas estritamente no contexto do ambiente virtual.
Além disso, estes sistemas possuem, em geral, infraestrutura muito cara, utilizando
geralmente hardware de última geração.Uma importante observação foi a possibilidade de integração entre a telepresença
2
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 16/102
3D e a teleoperação dentro de uma mesma infraestrutura, permitindo que, além
da transmissão do vídeo dos participantes, fosse feita a troca de dados e estímulos
físicos entre os ambientes, possibilitando o controle e monitoramento de dispositivos
remotamente.
Sendo assim, as motivações foram:
• Proporcionar meios de se desenvolver e utilizar aplicativos de telepresença com
baixo custo, baseando-se em software livre e infraestrutura menos complexa;
• Percepção da possibilidade de integração anteriormente descrita, orientando
o uso da telepresença 3D integrada à teleoperação, e não somente como uma
substituição à videoconferência.
1.2 Objetivo
Dentro do exposto anteriormente, o objetivo deste estudo é projetar e implementar
uma infraestrutura de hardware e software para telepresença 3D e teleoperação que
utilize hardware de baixo custo e que se baseie em software livre.
A infraestrutura proposta deve ser projetada e desenvolvida de forma concomitante
com a implementação de um protótipo de testes, onde seja possível avaliar os algo-
ritmos e os componentes de hardware escolhidos durante o processo.
1.2.1 Hipótese
Verificar a possibilidade de que os algoritmos de extração de silhueta e renderiza-
ção escolhidos possuam desempenho satisfatório para uma aplicação de tempo real,
utilizando a infraestrutura de hardware e software proposta.
1.3 Relevância
Neste trabalho, o uso da telepresença é relevante no sentido de explorar a aquisição
de vídeo através de múltiplas câmeras, permitindo a reconstrução e composição do
vídeo em 3D e a integração com a teleoperação dentro da mesma infraestrutura,
com o objetivo de controle e monitoramento de dispositivos remotos.
A integração com a teleoperação, proporciona a comunicação direta com sensores
e atuadores com um ambiente real. Isto permite que participantes possam realizar
3
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 17/102
tarefas de controle e monitoramento de dispositivos em ambientes sem estar fisica-
mente presentes nos mesmos, podendo, possivelmente, colaborar nestas ações com
outras pessoas, face a face, como se estivessem no mesmo local.
Outros aspectos relevantes se referem ao custo e flexibilidade. A proposta em ques-
tão pretende ser flexível a ponto de se poder utilizar infraestruturas menos comple-
xas e hardware de baixo custo, o que não é normalmente encontrado em sistemas
comerciais de telepresença.
1.3.1 Trabalhos relacionados
Os benefícios dos ambientes virtuais colaborativos e dos sistemas de telepresença,
como discutidos em [7], são empiricamente comprovados em várias tarefas colabora-
tivas. Notavelmente, nos últimos anos, várias empresas de grande porte têm lançado
sistemas de telepresença no mercado. Além disso, redes de televisão têm explorado
o uso da telepresença em entrevistas e reportagens.
Sistemas de teleoperação têm sido empregados na exploração submarina e espacial,
na medicina, na limpeza de lixo tóxico, em situações de resgate e desarme de bombas
e explosivos. Em [8], pode ser encontrada uma extensiva revisão da literatura em
teleoperação e telerobótica.
Os seguintes trabalhos podem ser considerados como estado da arte em sistemas detelepresença que integram captura e projeção simultânea de imagem em ambientes
virtuais (telepresença 3D):
• Virtualization gate [9]: Utiliza múltiplas câmeras para captura da imagem,
simulação física e um capacete de realidade virtual para proporcionar imersão
completa do participante e sentimento de presença, em mundos virtuais. A
geometria reconstruída do corpo e sobreposta ao ambiente virtual permite ao
sistema computar colisão de qualquer parte do corpo com outros objetos no
ambiente sintético;
• Blue-c [5]: Um ambiente completo de projeção e aquisição de vídeo 3D do
participante, para design virtual e colaboração. O sistema combina o uso de
múltiplas câmeras de vídeo e uma avançada tecnologia de projeção 3D em uma
CAVETM;
• Image Based Visual Hulls [10]: Utiliza o conceito de Visual Hull [11]
baseado em imagem para reconstruir o vídeo em 3D do participante capturado
através de múltiplas câmeras. Com a técnica descrita no artigo, somente aimagem observada do ponto de vista de interesse é renderizada e não o volume
4
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 18/102
em três dimensões do vídeo completo. Assim, foi alcançado um desempenho
muito alto, principalmente quando o ponto de vista se mantém fixo;
• TELEPORT [12]: Um sistema de telepresença com sobreposição de vídeo
2D dos participantes ao ambiente virtual, o qual é especificamente construídopara estender em proporção e textura o ambiente real;
• VIRTUE [13]: Um sistema de telepresença similar ao TELEPORT, incluindo
a capacidade de compartilhar documentos entre os participantes;
• National Tele-Immersion Initiative [14]: Segue o mesmo conceito do
TELEPORT [12] e do VIRTUE [13], utilizando o algoritmo delta-keying para
separar a silhueta dos participantes do fundo da cena;
• Video Avatar System for Network Virtual Environments [15]: Utilizaum modelo pré-adquirido da cabeça do participante para ser texturizada com
a sua imagem em tempo real;
• The Office of the Future [16]: Uma proposta baseada na unificação de
técnicas de computação gráfica e visão computacional para extrair informações
de objetos e pessoas no ambiente, incluindo paredes, móveis, etc. A proposta
permite renderizar imagens das superfícies, projetar imagens nas superfícies ou
interpretar mudanças das superfícies, proporcionado aplicações de realidade
aumentada, telepresença, etc.
Nos últimos anos, empresas de grande porte têm lançado sistemas comerciais de
telepresença. Além disso, redes de televisão empregaram a tecnologia em entrevistas
e reportagens. Podemos destacar:
• Cisco TelePresence: Lançado em 2006, o TelePresence é um produto da
empresa Cisco Systems, responsável por grande parte dos equipamentos de
rede encontrados hoje na Internet e nas redes de computadores em geral.O Cisco TelePresence custou algo em torno de 10 bilhões de dólares em inves-
timentos em pesquisas. São utilizadas salas especiais com três grandes telas de
plasma de 65 polegadas e telefones IP, custando em média, U$ 300.000,00 cada
sala. A Cisco fornece a sala inteira, até a mobília, sendo ainda são necessários,
no mínimo, enlaces de 6Mbps dedicados às salas;
• Teliris, Polycom e outras: Outras empresas de menor porte, que, apesar de
terem produtos disponíveis antes de 2006, só conseguiram atingir o mercado
após o sucesso alcançado pela Cisco, seguindo o modelo adotado por esta
empresa;
5
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 19/102
• CNN Telepresence Hologram : Em 2008, a rede CNN fez uso da tele-
presença 3D na cobertura das eleições presidenciais dos Estado Unidos. O
termo holograma na realidade não foi empregado corretamente, visto que o
vídeo em 3D capturado de uma repórter, em um local remoto, foi composto
sobre o vídeo assistido pelos telespectadores e não projetado no estúdio localcomo um holograma. A captura de vídeo no estúdio remoto foi feita por 35
câmeras de alta definição e processada por 20 computadores para reconstruir
localmente o vídeo da repórter. Assim, foi possível combinar o vídeo da re-
pórter em 3D, com o vídeo do estúdio local e manipular o resultado em três
dimensões, criando a ilusão de um holograma para os telespectadores.
• Holograma da Rede Globo: Em agosto de 2009, a Rede Globo fez uso da
telepresença, mas sem nenhuma infraestrutura de captura em três dimensões
com múltiplas câmeras, a qual foi caracterizada por muitos, de forma errônea,
como holograma. O efeito alcançado foi o uso da transmissão remota do vídeo,
então projetado no estúdio local sobre uma película metálica muito fina, pra-
ticamente transparente, denominada foil , que provoca a sensação da projeção
pairar no espaço à frente, criando a ilusão de um holograma.
Em geral, as aplicações citadas são voltadas para uma substituição à videoconferên-
cia ou para o trabalho em um ambiente virtual colaborativo, com interações somente
dentro deste, como por exemplo: performances artísticas, simulações, treinamentose outras [5].
A seguir é apresentada também uma revisão bibliográfica de trabalhos pioneiros
que envolvem sistemas de teleoperação, citando inicialmente os casos quando esta
é empregada via Internet, e em seguida, projetos de grande destaque no cenário
científico mundial.
• Mercury Project [17]: Lançado em 1994, foi o primeiro sistema a permitir
que usuários pudessem visualizar e alterar o mundo real, através da Web. OMercury Project consiste de um braço robótico industrial com uma câmera e
um sistema pneumático, permitindo aos usuários escolher e manipular vários
objetos no espaço de trabalho alcançado pelo braço robótico;
• Bradford Robotic Telescope [18]: Protótipo de um telescópio robótico
de baixo custo, desenvolvido na Universidade de Bradford na Inglaterra, onde
estudantes, amadores e profissionais podem acessá-lo via Internet. A interação
com o telescópio é feita por meio de uma interface amigável, via Web, onde
tarefas são submetidas previamente para serem processadas, ou remotamente,
para eventos em tempo real;
6
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 20/102
• Xavier [19]: Descreve o primeiro robô móvel e autônomo controlado pela
Web, o robô pode aceitar comandos para se locomover para diferentes salas
no âmbito de um prédio, transmitindo imagens durante o percurso;
• Jason : Jason foi um veículo subaquático operado remotamente, responsá-vel por localizar o navio Titanic. O veículo foi desenvolvido no Woods Hole
Oceanographic Institute, nos EUA, fazendo uso de sofisticadas técnicas de con-
trole supervisório, compensando as pressões exercidas pela água durante suas
manobras;
• Exploração de Marte pela NASA: A exploração de Marte se iniciou com
as sondas Viking 1 e Viking 2, lançadas em 1975, seguida pela missão Mars
Pathfinder , lançada em meados de 1996, a qual contava com o robô explorador
Sojourner . O robô passeou pela superfície de Marte recolhendo informaçõesdurante mais de um mês terrestre, no total foram obtidas 16.500 fotos a partir
do módulo de pouso e 550 imagens do Sojourner .
Iniciando em 2003, a missão Mars Exploration Rovers é um esforço a longo
prazo para a exploração robótica do planeta. Esta missão envolveu inicial-
mente dois robôs teleoperados, Spirit e Opportunity , com o objetivo de explo-
rar a superfície do planeta.
Em um capítulo mais recente na exploração, a sonda Phoenix , lançada de Cabo
Canaveral em 4 de agosto de 2007, tem o objetivo de pesquisar por moléculasde água na região do pólo norte do planeta, onde pousou em 25 de maio de
2008;
• Robonaut [20]: O Robonaut é um projeto em conjunto entre a DARPA (Agên-
cia de Projeto e Pesquisa Avançada de Defesa dos EUA) e a NASA. O objetivo
do projeto é criar um robô humanóide capaz de operar de forma equivalente
aos humanos durante atividades extraveiculares, no espaço.
A aplicação inicial do Robonaut seria como atuador final no braço robóticoda Estação Espacial Internacional, onde ele poderia servir como alternativa
às atividades humanas extraveiculares, para manutenção externa da estação.
Outras aplicações propõem o seu uso para teleoperação em superfícies pla-
netárias. Apesar de que nem toda a liberdade de movimento e sensibilidade
seja igual a dos humanos, a mão do robô possui quatorze graus de liberdade e
utiliza sensores de toque nas pontas dos dedos.
7
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 21/102
1.4 Organização do trabalho
O trabalho está dividido em cinco capítulos.
Neste primeiro capítulo, foram apresentados conceitos preliminares sobre os campos
de pesquisa abordados, motivações, objetivo, hipótese, relevância e organização do
trabalho.
O capítulo 2 descreve os fundamentos teóricos relacionados à telepresença, desde a
videoconferência até a telepresença 3D, bem como os fundamentos teóricos relacio-
nados à teleoperação.
O capítulo 3 apresenta a metodologia empregada no desenvolvimento da tese.
No capítulo 4, a implementação da infraestrutura de hardware e software é apresen-
tada, bem como um protótipo construído sobre esta infraestrutura, onde foram feitasas avaliações dos algoritmos e os testes com os componentes de hardware escolhidos.
As considerações finais são comentadas no capítulo 5, onde se encontram as avalia-
ções, conclusões, contribuições e sugestões de pesquisas futuras.
8
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 22/102
Capítulo 2
Fundamentação Teórica
Este capítulo apresenta os conceitos teóricos necessários ao desenvolvimento destetrabalho, tendo como principal objetivo facilitar a compreensão dos conceitos de
telepresença e teleoperação, bem como a correlação entre os mesmos.
Nas seções que seguem, sobre telepresença, e posteriormente, teleoperação, são anali-
sadas as tecnologias similares que as antecederam e os requisitos técnicos necessários
para dar suporte ao estado atual das mesmas.
É importante frisar que, apesar dos conceitos serem abordados aqui de forma sepa-
rada, a teleoperação pode ser considerada como parte da telepresença.
A teleoperação envolve o controle de equipamentos à distância, permitindo o envio
de comandos de um operador para o equipamento controlado, bem como retorno
de informações do equipamento para o operador. Este retorno, pode ser fruto de
uma resposta de uma ação de controle ou mesmo a monitoração de características
do equipamento.
A telepresença proporciona a sensação de se estar em um ambiente distante do ope-
rador, retornando informações do ambiente remoto, normalmente através do vídeo
real ou de um ambiente virtual. Além do vídeo, outras informações do ambientepoderiam ser transferidas entre o operador e o ambiente remoto, tais como áudio
e tarefas de controle e monitoração, ficando claro que a teleoperação pode estar
integrada à telepresença.
2.1 Telepresença
O termo telepresença refere-se a um conjunto de tecnologias que torna possível um
indivíduo sentir como se estivesse presente em uma outra localidade que não a suareal, provendo possivelmente, da mesma forma, a outros participantes, a sensação
9
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 23/102
que este indivíduo está fisicamente presente.
As tecnologias envolvidas em um sistema de telepresença vão desde os subsistemas
de vídeo e som, até a capacidade de manipular ou monitorar remotamente objetos
ou o ambiente. Esta capacidade é conhecida como teleoperação.
Os sistemas de telepresença podem apresentar diversos graus de percepção para os
participantes envolvidos, isto devido à complexidade e a quantidade de componentes
disponíveis para se construir tal sistema. Desta forma, será descrito inicialmente, um
sistema simples relacionado à telepresença: a videoconferência. Em seguida, soluções
mais complexas são mostradas, tais como a telepresença utilizada comercialmente e
a telepresença 3D, esta última explorada de forma mais detalhada.
2.1.1 Videoconferência
A videoconferência é uma forma de comunicação, em tempo real, que possibilita o
contato visual e sonoro entre pessoas que estão em locais diferentes, dando a sensação
de que os interlocutores encontram-se no mesmo local.
Na videoconferência não é necessário o uso de salas especiais ou equipamentos caros
e complexos, pois a interface pode se dar através de uma webcam e um microfone
convencional. A infraestrutura da Internet pode ser utilizada para transmissão dos
dados de voz e vídeo de forma compactada, sendo os computadores dos participantesresponsáveis pela compressão e descompressão da transmissão de som e imagem.
A videoconferência permite a comunicação entre grupos, não somente entre dois
indivíduos. Além disso, possibilita encontrar recursos de cooperação entre os usuá-
rios, compartilhando informações e materiais de trabalho. A Figura 2.1 ilustra os
conceitos descritos.
2.1.2 Ambientes Virtuais Colaborativos
Um ambiente virtual colaborativo é uma implementação de um mundo sintético
tridimensional gerado por computador, através do qual grupos de usuários podem
colaborar entre si e com o ambiente.
O ambiente é compartilhado pelos usuários através de uma rede de computado-
res, permitindo que estes grupos possam interagir no ambiente virtual mesmo que
fisicamente distantes uns dos outros.
Como definido em [21], o conceito chave por trás dos ambientes virtuais colabo-
rativos é o compartilhamento do mundo virtual, onde, em um espaço gerado por
computador, os participantes são representados através de uma forma gráfica, po-
10
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 24/102
Figura 2.1: Videoconferência realizada na Unicamp. Fonte: Jornal da Unicamp,fevereiro de 2006.
dendo controlar seus pontos de vista e interagir com os outros participantes, com
dados e com o ambiente compartilhado.
Esta tecnologia pode ser aplicada em diversas áreas, tais como design, marketing,
artes, educação, engenharia, medicina, entretenimento, entre outras.
2.1.2.1 Classificação quanto à imersão:
Em [22] e [23], podemos encontrar informações a respeito das características de imer-
são de alguns ambientes virtuais colaborativos. Dado que estes ambientes podem
ser construídos utilizando interfaces existentes dos sistemas de realidade virtual, po-
demos classificá-los dependendo do tipo de interfaces que eles podem proporcionar:
não-imersivos, semi-imersivos e completamente imersivos.
• Não-Imersivos: São geralmente baseados em desktops e, como o nome sugere,
utilizando a menos imersiva das técnicas de implementação. Deste modo, o
ambiente virtual é visto como um portal ou janela, empregando um monitor
de alta resolução. A interação ocorre normalmente através do teclado, mouse
ou trackball ;
Um ambiente não-imersivo possui a vantagem de não requerer o mais alto nível
de desempenho gráfico, nem hardware especial, podendo ser mais facilmenteimplementado;
11
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 25/102
• Semi-Imersivos: Um ambiente semi-imersivo possui geralmente placas gráfi-
cas de alto desempenho, as quais podem ser acopladas com monitores grandes
de alta resolução e projetores. Nesta categoria se enquadram as projeções
panorâmicas com telas curvas e em forma de domo.
Sistemas semi-imersivos produzem uma apreciação maior das proporções do
ambiente. Adicionalmente, a estereografia pode ser alcançada através do uso
de óculos de realidade virtual;
• Completamente Imersivos: São provavelmente as mais conhecidas imple-
mentações de visualização em ambientes de realidade virtual.
Nesta categoria estão o HMD (Head Mounted Displays) e a CAVETM[2]. O
HMD é um capacete de realidade virtual, através do qual o usuário visualiza
as imagens em estéreo do ambiente virtual e adicionalmente ouve o som geradopelo sistema, ficando completamente imerso no ambiente e excluído do mundo
real. A vantagem deste método é que ele proporciona um campo visual de
360◦, no qual o ponto de vista é atualizado através de sensores presentes no
capacete.
A CAVETMpossui uma infraestrutura mais complexa, onde é necessário o uso
de vários projetores que são sistematicamente instalados para projetar nas
paredes de uma estrutura em forma de cubo. O usuário fica dentro da es-
trutura, podendo se deslocar na mesma. Uma vantagem importante é que ousuário não fica completamente excluído do mundo real. Além disso, não há
o inconveniente de vestir um capacete.
2.1.2.2 Classificação quanto ao transporte e artificialidade:
Os ambientes virtuais colaborativos são, por definição, espaços compartilhados. Em
[21], há uma classificação dos espaços compartilhados como espaços multimídia, sis-
temas de videoconferência orientada espacialmente, ambientes virtuais colaborativose sistemas de telepresença. Assim, os ambientes virtuais colaborativos podem ser
classificados dentro deste contexto, de acordo com características de artificialidade
e transporte (Figura 2.2).
A dimensão do transporte representa os extremos dos conceitos de local e remoto.
A dimensão da artificialidade representa os extremos dos ambientes inteiramente
sintéticos e aqueles inteiramente físicos.
Ainda na Figura 2.2, podemos verificar que a telepresença se encontra na parte infe-
rior direita do diagrama, isto porquê, em [21], o termo telepresença, como tratado,não engloba suas variações ao se combinar com espaços virtuais compartilhados.
12
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 26/102
A telepresença 3D, a qual será vista posteriormente, neste capítulo, pode ser con-
siderada como um híbrido entre os sistemas de telepresença baseados somente no
vídeo e os ambientes virtuais colaborativos, e estaria situada no diagrama da Figura
2.2 em um ponto mediano entre os ambientes virtuais colaborativos e a telepresença.
Observamos, portanto, que existem algumas semelhanças entre os sistemas de tele-
presença e os ambientes virtuais colaborativos, mas que nestes a representação de
um indivíduo é feita através de um personagem, também chamado de avatar , e não
utilizando o vídeo real do indivíduo, adquirido em tempo real.
Figura 2.2: Uma classificação dos espaços compartilhados de acordo com as dimen-sões de transporte e artificialidade [21].
2.1.3 Sistemas de Telepresença Comerciais
Os sistemas de telepresença comerciais atualmente disponíveis são empregados, em
sua maioria, como substituição à videoconferência convencional. Com o uso de
dimensões maiores na área de visualização e a projeção das imagens recebidas em
escalas reais, pode-se aumentar o grau de imersão dos participantes. A utilização de
vários canais de áudio e outras formas de visualização, bem como a correta integração
destas características ao ambiente físico, aumenta ainda mais este grau de imersão,
como pode ser visto na Figura 2.3.
13
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 27/102
Nos últimos anos, muitas empresas têm lançado sistemas comerciais de telepresença,
tais como a Cisco, Teliris, Polycom e outras. Em geral, estes sistemas incluem múl-
tiplos microfones e alto falantes, monitores de alta definição, câmeras, e frequente-
mente redes e salas dedicadas. O objetivo é que os sistemas sejam transparentes para
os usuários o tanto quanto possível, provendo imagens em tamanho real, atrasos detransmissão imperceptíveis e interfaces amigáveis.
O custo de sistemas deste tipo ainda é alto, podendo chegar até US$ 300 mil para o
sistema da Cisco, ilustrado na Figura 2.3. A aquisição destes sistemas por empresas
de grande porte se justifica por reduzir demasiadamente o custo operacional com
reuniões e viagens. Para pequenas e médias empresas o custo pode ser considerado
alto, não se justificando tal investimento.
Figura 2.3: Sistema de telepresença comercial. Fonte: Cisco Systems.
2.1.4 Telepresença 3DO objetivo da telepresença 3D é permitir que indivíduos em diferentes locais possam
se encontrar e compartilhar um mesmo ambiente virtual. Estes indivíduos não são
representados por meio de modelos de personagens (avatares) mas sim pelo vídeo
em tempo real dos mesmos, extraídos pela suas silhuetas, como se estivessem face a
face, compartilhando o mesmo espaço virtual (Figura 2.4).
O sistema TELEPORT, descrito em [12], e o sistema VIRTUE, descrito em [13], são
implementações de tal conceito. Podemos observar, pela Figura 2.5, que no TELE-
PORT há uma projeção por trás da tela colocada na sala, enquanto que no VIRTUE
(Figura 2.4), é utilizado um monitor de plasma ou LCD. Em todo caso, é exibido
14
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 28/102
Figura 2.4: VIRTUE [13].
um ambiente virtual que imita em escala correta as proporções e a perspectiva da
sala real, até mesmo com o modelo virtual de continuação da mesa. No ambiente
virtual, é sobreposto o vídeo do indivíduo remotamente localizado, visto de frente
em ambas as figuras.
Nos sistemas de telepresença 3D, é possível ainda a captura do vídeo do indivíduo
através de múltiplas câmeras, possibilitando reconstruir no sistema remoto o vídeoem 3D, incorporando-o posteriormente ao ambiente virtual, como visto em [10] e
ilustrado na Figura 2.6.
2.1.4.1 Extração da silhueta
Para capturar somente o vídeo do indivíduo demarcado pela sua silhueta é necessário
inicialmente a utilização de algoritmos chamados de segmentação de fundo ou extra-
ção de silhueta. É importante observar que estes algoritmos devem ser executadospara cada câmera no sistema.
Diversos métodos e algoritmos foram desenvolvidos com este objetivo. Inicialmente,
veremos alguns métodos que exigem intervenção física no ambiente (instalação de
painéis) ou a utilização de mecanismos especiais de captura (câmeras exatamente ali-
nhadas, as quais exigem espelhos especiais e ajustes precisos). Em seguida, veremos
como funcionam os métodos baseados em modelagem de fundo, que não requerem
intervenção física no ambiente.
• Chroma-keying : Este método requer que a pessoa fique em frente a uma tela
15
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 29/102
Figura 2.5: TELEPORT [12].
com fundo geralmente azul ou verde. A silhueta é calculada através de simples
computação de pixels. Este método restringe o usuário a não estar vestindo
qualquer roupa com a cor próxima da tela de fundo, implicando, também, na
utilização de painéis específicos para chroma-keying .
• Defocus Video Matting [24]: Utiliza duas câmeras exatamente alinhadas,
uma com foco no indivíduo e outra no fundo. Através de um algoritmo apro-
priado, a silhueta pode ser extraída com alto grau de precisão, processando
simultaneamente o vídeo proveniente das duas câmeras.
• Segmentação de fundo com luz infravermelha [25, 26]: Neste método,
uma luz infravermelha é projetada por trás de uma tela difusora, de forma a
se distribuir sobre a mesma. O indivíduo fica posicionado em frente à tela,assim como no chroma-keying . Uma câmera infravermelha captura a imagem
para montar a silhueta. Outra câmera (não infravermelha) captura a imagem
a partir do mesmo ponto de vista para texturizar a silhueta extraída (Figura
2.7).
Uma vantagem deste método é a não restrição da pessoa estar usando algo
que possua a cor da tela de fundo. Além disso, a tela de fundo pode ser
utilizada também como tela para projeção, uma vez que a luz infravermelha
não interfere com a luz gerada pelo projetor.
• Segmentação da silhueta usando modelagem do fundo:
16
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 30/102
Figura 2.6: Visual Hull baseado em imagem [10]
Vejamos agora métodos que não exigem intervenção física no ambiente e nem a
utilização de mecanismos especiais de captura. A maior parte destes métodos
se baseia no aprendizado prévio das caraterísticas do ambiente, sem que o
objeto a ser capturado esteja presente, sendo conhecidos como algoritmos desubtração de fundo.
A subtração de fundo consiste em subtrair da imagem atual uma imagem de
referência, a qual é adquirida e modelada a partir de um fundo estático durante
um certo período de tempo, conhecido como período de treinamento. Assim, o
fundo pode ser qualquer, desde que permaneça razoavelmente estático durante
o tempo de treinamento.
Alguns algoritmos exploram a diferença estatística de cor entre a imagem atuale a imagem de referência, a qual é treinada durante um período de tempo
ou com base em um número determinado de imagens. Outros algoritmos se
baseiam na análise de movimento dos objetos, em transformações logarítmicas
ou no aprendizado por cadeias de Markov.
Na sua versão mais simples, a subtração de fundo pode partir, inicialmente,
de um certo número de imagens capturadas (fase de treinamento), onde são
calculados, para cada pixel, a média e o desvio padrão, baseado no espaço de
cores RGB. O objetivo desta etapa é fazer a modelagem prévia do fundo dacena, a fim de que os próximos passos do algoritmo possam distinguir o que
17
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 31/102
(a) Vista por uma câmera colorida
(b) Vista por uma câmera infravermelha
Figura 2.7: Painel com aplicação de luz infravermelha [25].
faz parte do fundo e o que faz parte da silhueta de um indivíduo sobre ele.
Esta primeira etapa é também utilizada como ponto de partida para outros
algoritmos mais complexos, tal como o algoritmo de Horprasert [27], que seráanalisado em maiores detalhes no Capítulo 4.
2.1.4.2 Reconstrução da Imagem
A visualização e navegação em ambientes virtuais compostos por objetos sintéticos
e reais constituem um objetivo de longa data na computação gráfica. O termo “re-
alidade virtualizada”, popularizado por Kanade [28], descreve um sistema onde um
cenário do mundo real é capturado por uma coleção de câmeras e então visualizado
através de uma câmera virtual como se fosse uma cena.
18
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 32/102
Na prática, as implementações existentes tentam empregar uma série de algoritmos
de visão computacional para extrair o modelo geométrico da cena desejada.
No caso da telepresença, a reconstrução da geometria desejada é a do corpo humano,
devendo ainda ser realizada em tempo real.
Infelizmente, muitos algoritmos de visão computacional, tais como stereo vision ,
optical flow e shape from shading , são muito lentos para o processamento em tempo
real [10].
Soluções simples podem ser adotadas, tais como o mapeamento seletivo do vídeo
adquirido por cada câmera em um billboard . Um billboard é um objeto gráfico,
normalmente um retângulo, que está sempre com sua normal voltada para o obser-
vador. Desta forma, dependendo do ponto de vista do participante visualizando a
cena, a câmera que mais se aproxima do ângulo de visuaização será selecionada paratexturizar o billboard .
Outros algoritmos, baseados em uma aproximação geométrica conhecida como Vi-
sual Hull , como discutido em [11] e [10], podem ser utilizados em aplicações de tempo
real, possuindo, em contrapartida, a limitação de não detectar regiões não convexas.
O Visual Hull é construído através de uma série de silhuetas para progressivamente
determinar uma região que engloba o objeto.
2.1.4.3 Composição do vídeo ao Ambiente Virtual
O passo seguinte consiste na composição do vídeo do participante ao ambiente vir-
tual. A imagem é geralmente mapeada em um billboard que é colocado no cenário
virtual (Figura 2.8).
Para que a geometria do billboard não interfira no processo, o vídeo deve ser aplicado
como uma textura que possui as regiões não contidas na silhueta sendo transparentes.
Se isso não fosse feito, a imagem do indivíduo apareceria dentro de um quadrado
branco ou preto, por exemplo.Este detalhe é importante no que diz respeito à transmissão do vídeo via rede. Ao
transmitir o vídeo de um individuo, um sistema de telepresença deve enviar, não só
o vídeo capturado, mas também a informação da silhueta.
Dependendo do ponto de vista do indivíduo manipulando o ambiente virtual, a
imagem do outro indivíduo deverá aparecer no ângulo e perspectiva corretos, isto é,
o objetivo do algoritmo de reconstrução do vídeo é prover a visualização de qualquer
ângulo possível da imagem para que esta visão específica seja mapeada no billboard .
Em outras situações, que dependem de como a imagem é reconstruída, a geometria
19
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 33/102
Figura 2.8: Composição do vídeo ao ambiente virtual [26]
deve ser renderizada de forma volumétrica, voxel por voxel .
2.2 Teleoperação
O prefixo de origem Grega tele significa “à distância” e o termo teleoperação indica
naturalmente operação à distância. Portanto, a teleoperação estende a capacidade
humana para manipular objetos remotamente, provendo ao operador condições se-
melhantes às encontradas no local remoto [29].
A teleoperação pode exigir também o envio de informações do objeto controlado para
o operador. Se o dispositivo controlado possui sensores de força ou temperatura, porexemplo, essas informações devem ser monitoradas para refletir uma ação executada
ou para auxiliar na execução de uma operação.
O termo teleoperação é muito associado com a robótica, dando origem à telerobótica,
mas pode ser aplicado em várias circunstâncias, nas quais dispositivos ou máquinas
são operados por um indivíduo à distância.
A fim de compreender claramente a teleoperação, iremos definir, inicialmente, alguns
dos termos básicos e conceitos relacionados. Estas definições foram baseadas nos
trabalhos de [30] e [31].
20
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 34/102
• Teleoperador é a máquina que habilita o operador humano a mover, sen-
tir e manipular objetos à distância. De forma mais generalizada, qualquer
ferramenta, a qual estenda a capacidade mecânica do indivíduo além do seu
alcance, pode ser considerada um teleoperador;
• Telerobô é um robô que aceita instruções à distância, geralmente de um
operador humano, e age no ambiente distante através do uso de sensores,
atuadores ou outros mecanismos. Usualmente um telerobô terá algum tipo de
manipulador e mobilidade;
• Telemanipulação é uma operação mestre-escravo, na qual um braço robótico
(escravo), que está geralmente em um ambiente distante ou perigoso, obedece
as ações de um manipulador (mestre). Em geral, a telemanipulação é divi-
dida em dois processos fortemente acoplados: a interação entre o teleoperadore o dispositivo mestre; e a interação entre o dispositivo escravo remoto e o
ambiente onde este age.
A teleoperação significa, portanto, operar remotamente um robô, ou qualquer dispo-
sitivo, usando a inteligência humana. Isto requer a disponibilidade de uma interface
homem-máquina adequada entre ambos.
2.2.1 Áreas de aplicação da teleoperação
Nas últimas décadas, diferentes sistemas de teleoperação têm sido desenvolvidos
para permitir que operadores humanos executem tarefas em áreas remotas ou am-
bientes perigosos. A tecnologia tem sido empregada em uma grande variedade de
aplicações, tais como explorações subaquáticas, campos de batalha, vigilância re-
mota, e assim por diante. As tarefas de teleoperação se destacam pela interação
contínua entre os operadores humanos, dispositivo teleoperador e o ambiente. Com
o desenvolvimento da Internet e outras tecnologias relacionadas, as aplicações dateleoperação tornaram-se mais abrangentes e mais indispensáveis do que antes.
Veremos a seguir, algumas das áreas onde a teleoperação pode ser empregada.
2.2.1.1 Exploração espacial
A teleoperação tem sido usada de forma muito frequente em missões espaciais. Mui-
tas das sondas espacias que operam no espaço profundo têm sido telerobôs, estas
possuem controles relativamente simples, mas extremamente confiáveis. Os robôsda que fazem parte das missões de exploração de Marte pela NASA são telerobôs.
21
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 35/102
Na Figura 2.9 é mostrado um modelo da sonda Spirit , irmã gêmea da Opportunity ,
lançadas em 2003 pela NASA, como parte da missão Mars Exploration Rovers.
Figura 2.9: Modelo da sonda Spirit . Fonte: NASA.
2.2.1.2 Exploração submarina
Nestas aplicações, a teleoperação pode ser empregada na exploração de petróleo,
inspeção e manutenção de perfuração de poços, plataformas petrolíferas e encana-
mentos, estudos geológicos, e classificação de tarefas marinhas. Em 1985, um veículo
subaquático operado remotamente, chamado Jason, foi responsável por localizar o
navio Titanic.
2.2.1.3 Ambientes hostis
A teleoperação pode ser utilizada onde os seres humanos possam ser expostos à
situações perigosas, como por exemplo: operações militares, salvamento de vítimas
de incêndios, atmosferas tóxicas, ou mesmo situações de refém.
Dispositivos robóticos controlados remotamente estão sendo usados para detectar e
remover a bombas e minas terrestres, possibilitando ao operador sentir o que o robô
está sentindo, para que a tarefa da remoção possa ser feita com mais eficiência e
segurança.
22
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 36/102
2.2.1.4 Telemedicina
A telemedicina tem forte apelo no fornecimento cuidados médicos, onde a distância é
um fator crítico. Em um campo de batalha, por exemplo, a primeira hora depois que
um soldado foi ferido é crítica. A telepresença, poderia ser usada para transportara “presença” do médico ou do cirurgião, tanto para um quarto de hospital quanto
para um campo de batalha, a fim de ajudar os paramédicos, podendo ainda, com
recursos de teleoperação, permitir a intervenção direta dos médicos ou cirurgiões.
Isto facilitaria o uso mais eficaz de um recurso cada vez mais limitado: o especialista
médico.
2.2.1.5 Vigilância eletrônica
As forças de segurança no mundo inteiro estão recorrendo cada vez mais ao mo-
nitoramento e gravação de vídeo como meio de prevenção e combate ao crime. A
telepresença e a teleoperação estão se tornando tendência nesta área, pois cada
agente de segurança pode vigiar vários lugares ao mesmo tempo sem sair de seu
posto. Robôs podem operar de forma autônoma em áreas críticas, podendo ser
teleoperados de acordo com a necessidade.
2.2.2 A teleoperação via InternetA teleoperação via Internet começou na metade dos anos 90 [17–19] e tem sido um
campo muito ativo de pesquisas desde então.
Muito tem se discutido a respeito dos atrasos inerentes à Internet e como eles influem
em sistemas de teleoperação [32]. A transmissão através de uma rede de comuta-
ção de pacotes resulta em atrasos aleatórios que podem chegar a valores altos e,
eventualmente, até a perda de informação, dependendo do protocolo de transporte
utilizado (TCP ou UDP, vide Figura 2.10). Como resultado, o desempenho de umsistema de teleoperação que não suporte atrasos pode ser muito afetado.
Uma escolha entre utilizar TCP (Transmission Control Protocol ) ou UDP (User
Datagram Protocol ) deve ser feita baseada no desempenho esperado e nas caracte-
rísticas do sistema a ser controlado. O protocolo TCP provê comunicação confiável
e garante a entrega dos pacotes ao custo de retransmissões, e possivelmente longos
atrasos, que impactam em aplicações de tempo real. O protocolo UDP não requer
confirmações de pacotes recebidos e não faz retransmissões, gerando, portanto, me-
nos atraso. Em contrapartida, o UDP não garante a entrega dos pacotes, podendo,eventualmente, perdê-los.
23
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 37/102
Figura 2.10: Teleoperação via Internet.
2.2.3 Eletrônica para suporte à teleoperação
A evolução da microeletrônica e o barateamento na fabricação de semicondutores
viabilizaram o emprego de sistemas computadorizados em diversos equipamentos.
Muitos dos equipamentos elétricos e eletrônicos modernos possuem pequenos compu-tadores embutidos, estes são chamados sistemas embarcados ou sistemas embutidos.
Eles são geralmente construídos para tarefas específicas e na grande maioria das
vezes, não contêm disco rígido, flexível nem teclado, podendo nem mesmo ter a
necessidade de um sistema operacional.
Muitos destes sistemas utilizam microcontroladores, que são circuitos integrados
que possuem internamente um microprocessador, memória e diversos periféricos.
Os microcontroladores podem ser então programados para executar todas as tarefas
relativas ao controle do equipamento, necessitando de poucos componentes adicio-nais.
Para o suporte à teleoperação, se faz necessário um sistema embarcado que possua
sensores e atuadores para a finalidade desejada, como, por exemplo, sensores para
detecção de obstáculos e motores, para a locomoção de um robô.
A eletrônica embarcada precisa também de uma forma de comunicação com um
sistema de computação ligado à rede, para que possa ser teleoperada, possivelmente
via Internet. Várias interfaces são disponíveis atualmente, tais como RS-232, RS-
485, USB, Zigbee, Bluetooth, entre outras.
24
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 38/102
A Figura 2.11 mostra o modelo abstrato de um módulo para sensores e atuadores
que ilustra que foi apresentado nos parágrafos anteriores.
Figura 2.11: Modelo abstrato de um módulo de controle e monitoramento.
Nos capítulos seguintes os conceitos aqui adquiridos serão utilizados na metodologiae no desenvolvimento da infraestrutura proposta neste trabalho.
25
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 39/102
Capítulo 3
Metodologia Empregada
Neste capítulo serão apresentados os métodos adotados e os recursos utilizados parao desenvolvimento de uma infraestrutura de hardware e software para sistemas de
telepresença 3D e teleoperação.
A pesquisa foi conduzida de modo a criar uma infraestrutura de baixo custo, que
permitisse a capacidade de visualizar, em tempo real, um participante situado em um
local remoto, possivelmente distante. O vídeo transmitido do participante remoto
é composto somente da parte segmentada pela sua silhueta, o qual é sobreposto,
localmente, a um ambiente virtual.
A infraestrutura completa é composta por uma biblioteca de software baseada em
código fonte livre e uma configuração de hardware baseada na aquisição de vídeo
através de múltiplas câmeras, além de módulos eletrônicos com suporte à sensores e
atuadores, desenvolvidos especificamente para as ações relacionadas à teleoperação.
A partir de constatações obtidas nos capítulos anteriores, sobre os conceitos funda-
mentais de telepresença e teleoperação e o estudo detalhado dos trabalhos relacio-
nados, foi possível conceber uma infraestrutura de hardware e software, as qual foi,
dentro da metodologia adotada, planejada, implementada e testada, a partir de um
protótipo funcional, como descrito a seguir.
3.1 Visão geral do sistema
Analisando a Figura 3.1, a qual mostra uma visão geral do sistema, podemos per-
ceber dois grandes blocos:
• Infraestrutura de hardware: Compreende a pesquisa e escolha de câmeras,interfaces de captura, cabeamento e computadores. Além do desenvolvimento
26
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 40/102
de módulos de controle e monitoração específicos para as ações relacionadas à
teleoperação.
• Infraestrutura de software: Compreende a pesquisa e desenvolvimento de
uma biblioteca de software em C++ que possui os algoritmos necessários à te-lepresença 3D, tais como extração de silhueta, reconstrução 3D e comunicação
via rede. A biblioteca também possui métodos apropriados para o suporte à
teleoperação, com os os módulos de controle e monitoração desenvolvidos.
Assim que montagem da infraestrutura de hardware e a implementação da bibli-
oteca de software chegaram a um nível de desenvolvimento na qual podiam ser
efetivamente utilizadas, foi criado um protótipo funcional, implementado sobre es-
tas infraestruturas, que serviu como prova de conceito, refinamento da biblioteca
desenvolvida e verificação da hipótese do trabalho.
A metodologia empregada seguiu um ciclo de planejamento, implementação, teste
e refinamento das infraestruturas propostas, utilizando para isto o protótipo cons-
truído.
Figura 3.1: Divisão em blocos do sistema proposto
As seções seguintes visam explicar, separadamente, o planejamento da infraestrutura
para telepresença 3D e da infraestrutura para teleoperação.
3.2 Infraestrutura para telepresença 3D
Para a infraestrutura de software, foi projetada e desenvolvida uma biblioteca em
C++ que possui os algoritmos necessários à telepresença 3D, tais como extração desilhueta, reconstrução de vídeo e comunicação via rede. A biblioteca também possui
27
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 41/102
métodos apropriados para o suporte à comunicação com os módulos de controle e
monitoração descritos. No Apêndice A se encontra o diagrama de classes completo
da biblioteca e no Apêndice C a documentação das principais classes que a compõem.
No que concerne ao hardware, foram utilizadas quatro câmeras de vídeo conectadas
à uma placa de captura com capacidade para 30 quadros por segundo por câmera.
Apesar disso, a biblioteca de software permite um número arbitrário de câmeras.
Cada câmera tem sua sequência de vídeo processada de forma independente pelo
algoritmo de extração de silhueta. Uma vez de posse da informação da silhueta, esta
é compactada juntamente com o vídeo e transmitida via rede. Há uma transmissão
para cada câmera do sistema, sendo cada uma realizada por um socket UDP em
uma porta diferente.
No servidor, o vídeo de cada câmera e suas respectivas silhuetas são descompactadase um algoritmo de reconstrução é escolhido para renderizar e sobrepor ao ambiente
virtual a imagem do participante.
O processo completo está ilustrado na Figura 3.2.
Figura 3.2: Abordagem da telepresença 3D na solução proposta
Veremos a seguir, de forma mais detalhada, os principais componentes desta infra-
estrutura, e quais motivos levaram às escolhas citadas.
3.2.1 Captura de vídeo
Inicialmente foram testadas webcams e dispositivos de captura USB. Algumas câ-
meras e dispositivos dos principais fabricantes foram testados mas nenhum deles
28
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 42/102
permitia que, através do driver fornecido, se pudesse acessar mais de um dispositivo
ao mesmo tempo.
A captura de vídeo simultânea é importante devido aos algoritmos a serem utiliza-
dos. Além disso, foi utilizado apenas um computador para a captura de todas as
sequências de vídeo, a fim de fazer com que o custo do sistema permanecesse baixo,
o que é uma das premissas do trabalho.
Mesmo que se pudesse, em teoria, utilizar quatro câmeras USB diferentes, ou que
um dado fabricante fornecesse um driver com capacidade de múltiplas câmeras, isto
colocaria restrições muito grandes no uso do sistema, dado que poucos fabricantes
aderem a tal conceito, ou seja, permitem que se use mais de um mesmo dispositivo
de captura idêntico em um mesmo computador.
Assim, o suporte a dispositivos de captura USB foi mantido em software, mas nãofoi utilizado como hardware de captura nos testes.
As câmeras Firewire não foram utilizadas devido ao seu alto custo. Apesar disso, a
biblioteca desenvolvida neste trabalho possui suporte a estas câmeras no ambiente
Windows, através do DirectShow .
A solução encontrada foi o uso de câmeras CCDs coloridas com saída NTSC, em-
pregadas geralmente em sistemas de circuito fechado de TV. Estas câmeras vêm
dotadas de mecanismo de auto íris, que foi desabilitado de forma a não interferir
com as condições de iluminação durante a captura. A Figura 3.3 mostra uma dascâmeras utilizadas instaladas em um tripé.
Figura 3.3: Câmera CCD utilizada.
Como a saída destas câmeras é de vídeo composto, padrão NTSC, é necessária uma
placa de captura para a aquisição das imagens. As placas de captura recomendadasdevem possuir no mínimo quatro canais de vídeo independentes, cada um operando
29
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 43/102
a 30 quadros por segundo.
Vários fabricantes produzem placas com estas características e que permitem acesso
ao vídeo capturado por meio do DirectShow no ambiente Windows. Outras placas de
captura, baseadas em um chipset muito comum da Philips (SAA7133/35), também
podem ser utilizadas, pois a biblioteca proposta possui suporte.
A placa de captura adquirida para o protótipo 3.4 é baseada no chipset da Philips e é
comercializada sem aplicativos próprios, somente com um kit para o desenvolvedor,
o que permitiu integrá-la facilmente ao sistema proposto.
Figura 3.4: Placa de captura com chipset Philips - 120fps.
Este tipo de placa custa uma fração do valor das placas de captura para sistemas de
vigilância (com as mesmas características), as quais vêm com software proprietário,
e que, na maioria das vezes, não permite utilização de software de terceiros.
3.2.2 ComputadoresConsiderando apenas a captura de vídeo em um ambiente remoto que transmite
para um ambiente local, são utilizados somente dois computadores, um em cada
ambiente.
Os computadores utilizados no experiemnto foram ambos baseados em uma CPU
Intel Core 2 Duo, 2.2GHz com 3GBytes de memória RAM, sob o sistema operacional
Windows XP Service Pack 2.
Não foi testada para fins de protótipo uma estrutura bidirecional. Neste caso, todaa infraestrutura de hardware descrita deveria ser duplicada. Apesar de teoricamente
30
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 44/102
ser possível o uso de dois computadores, testes no protótipo (que não é bidirecional)
indicaram 90% de uso das CPUs. Isto ocorreu devido à concorrência de todas as
threads de captura extração de silhueta serem processadas em um único computador.
3.3 Infraestrutura para teleoperação
No que diz respeito ao hardware para teleoperação, foram desenvolvidos módulos de
controle e monitoramento que podem ser ligados a sensores e atuadores de diversos
tipos.
Os módulos de controle e monitoramento são interconectados através de um barra-
mento serial RS-485, que por ser multiponto, permite a ligação de vários módulos,
em contraste com o RS-232 que permite somente dois dispositivos conectados.O barramento RS-485, que é composto por somente um par de fios, é ligado ao
computador através de um conversor USB-RS485, provendo um mecanismo de co-
municação simples e eficiente entre os módulos e o software sendo executado.
Existem diversas possibilidades de exploração das funções de teleoperação integra-
das ao ambiente virtual. No caso de uma ação de controle, um comando poderia ser
executado no ambiente virtual, sendo então interpretado pelos métodos de teleopera-
ção da biblioteca, estes enviam os dados via USB para um conversor USB-RS485. O
conversor se comunica com os módulos presentes no ambiente executando realmente
a ação desejada (a qual corresponderia a ação no ambiente virtual).
Um exemplo simples deste cenário seria o acendimento de uma lâmpada em um
cenário virtual. Uma lâmpada no ambiente remoto real também acenderia, imitando
o comportamento do cenário virtual.
No caso de uma ação de monitoramento, ou mesmo alarme, o módulo, em um am-
biente remoto, envia os dados através da rede RS-485 para o conversor USB-RS485,
que então chega ao computador e é processado pela biblioteca, esta transmite osdados via rede para o computador do operador. No operador, o dado é interpretado
e apresentado no ambiente virtual.
Um exemplo deste cenário seria o envio das posições de um braço robótico remoto
para o operador. Sensores no braço transmitiriam as posições e enviariam para
o sistema (tal como explicado anteriormente) e no cenário virtual um modelo do
virtual do braço robótico imitaria os movimentos do braço real, no local remoto.
A Figura 3.5 ilustra a interligação destes componentes, conforme o exemplo anterior.
Um exemplo mais simples seria a monitoração da temperatura de um ambiente
remoto, sendo esta temperatura apresentada no cenário virtual, enquanto o usuário
31
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 45/102
Figura 3.5: Abordagem da teleoperação na solução proposta
se move e interage virtualmente no ambiente. Este exemplo foi implementado no
protótipo desenvolvido. Detalhes da implementação estão descritos no Capítulo 4,
onde a (Figura 4.4) ilustra a situação acima descrita.
Uma aplicação interessante consistiria em monitorar a temperatura corporal do pró-
prio participante, juntamente com outras informações (o batimento cardíaco por
exemplo), transportando assim, para o ambiente virtual, não somente a imagemdo participante, como também outros aspectos físicos, reforçando o sentimento de
presença.
Outra possível aplicação seria na monitoração e controle de obras, onde o modelo
virtual poderia ser alimentado com dados como temperatura, nível de iluminação,
umidade, consumo de energia, etc. A partir do ambiente virtual, poderia se controlar
a iluminação, controle de acesso de pessoal, controle de máquinas, etc.
Os módulos concebidos são genéricos, com entradas analógicas e digitais e saídas
digitais ou comandadas com relé. Nas entradas podem ser ligados sensores de diver-
sos tipos e as saídas podem comandar outros dispositivos de baixa tensão. Há uma
saída especial com um relé para acionar cargas de até 5A em 110V.
Os projetos do módulo e do conversosr USB-RS485 foram feitos no software Proteus,
da Labcenter, onde é possível criar o diagrama esquemático, simular e gerar os
layouts para as placas de circuito impresso.
No Apêndice C encontram-se os diagramas esquemáticos e os layouts eletrônicos
do módulo de controle e monitoramento e do conversor USB-RS-485, desenvolvidosespecificamente para este trabalho.
32
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 46/102
3.4 Comentários Finais
Este capítulo apresentou os métodos adotados e os recursos utilizados para o desen-
volvimento de uma infraestrutura de hardware e software para sistemas de telepre-
sença 3D e teleoperação.
Acredita-se que os resultados iniciais obtidos neste estudo indicam que os sistemas
de telepresença e teleoperação podem ser desenvolvidos e bastante aperfeiçoados,
com um custo baixo e com uma vasta gama de aplicações.
33
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 47/102
Capítulo 4
Implementação da Solução
Proposta
Neste capítulo são apresentados detalhes da implementação do software, composto
pela biblioteca e o protótipo (programa principal) baseado na mesma. São também
apresentados detalhes de construção do hardware, composto pelo módulo de controle
e monitoramento, e pelo conversor USB-RS485.
4.1 Classes que compõem a biblioteca propostaInicialmente, vejamos as principais classes que compõem a biblioteca proposta:
• Classes de captura de vídeo: A principal classe é a VideoCapture, onde
está representado um dispositivo de captura.
• Classes de janela de vídeo: A principal classe é a VideoDisplay , onde está
representada uma janela de visualização de vídeo.
• Classe Framebuffer : Classe responsável por armazenar os quadros de forma
protegida. Como os quadros são capturados, escritos no buffer e lidos, isto gera
um caso clássico de produtor/consumidor que apresenta condição de corrida
(race condition ). Por isso, há na implementação um mecanismo para proteger
a leitura e escrita simultânea neste buffer .
• Classe Calibration : Possui todo código necessário à calibragem intrínseca
e extrínseca das câmeras.
• Classe Silhouette: Armazena a silhueta e implementa o algoritmo de Hor-
prasert et al.
34
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 48/102
• Classe Camera : Encapsula todas as classes anteriores.
• Classes de renderização: Contém os algoritmos de renderização chamados
Billboard , Sprite e VisualHull .
• Classe Teleoperation : Contém os métodos para teleoperação.
No Apêndice A, são mostrados todos diagramas das classes descritas anteriormente.
A documentação das classes geradas com o aplicativo doxygen se encontra no apên-
dice B.
4.2 Implementação da biblioteca com suporte à
telepresença 3D e teleoperação
A biblioteca, desenvolvida em linguagem C++, contém vários algoritmos necessários
à implementação de um sistema de telepresença 3D e teleoperação, com os requisitos
indicados no objetivo do trabalho.
A biblioteca é totalmente orientada a objetos e utiliza alguns padrões de projeto
(design patterns), a fim de permitir flexibilidade de uso em sistemas operacionais
distintos e facilitar sua posterior atualização para novos hardwares de captura, novos
algoritmos, etc.
Ela pode ser decomposta em seis blocos principais:
• Calibragem das câmeras;
• Extração da silhueta de múltiplas câmeras;
• Compactação e descompactação do vídeo e da silhueta;
• Transmissão via rede;
• Reconstrução do vídeo;
• Métodos para teleoperação.
4.2.1 Calibragem das câmeras
A calibragem da câmeras é realizada pela classe Calibration a qual contém todo o
código necessário para executar a calibragem intrínseca e extrínseca das câmeras.
35
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 49/102
A calibragem intrínseca corresponde aos parâmetros específicos da lente e do sensor
da câmera, e é realizada com uma câmera por vez (Figura 4.1a).
A calibragem extrínseca corresponde aos parâmetros de posição e rotação da câmera
no espaço e é realizada, simultaneamente, com todas as câmeras (Figura 4.1b)
(a) Calibragem intrínseca das câmeras
(b) Calibragem extrínseca das câmeras
Figura 4.1: Calibragem das câmeras.
36
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 50/102
4.2.2 Extração da silhueta de múltiplas câmeras
O método de extração de silhueta empregado foi baseado no algoritmo Horprasert
[27]. Outros métodos foram estudados, desde a simples subtração de fundo, a qual
proporcionava excelente desempenho, mas baixa qualidade da silhueta, até métodoscom emprego de iluminação infravermelha, tal como descrito no Capítulo 2. O mé-
todo proporcionou bons resultados, mas dependia, para isso, de instalação dedicada
com o hardware de iluminação e tela difusora.
O algoritmo Horprasert [27] se mostrou de boa qualidade e rápido o suficiente para
ser executado em quatro instâncias simultâneas (quatro threads) no computador
responsável pela captura, extração da silhueta e transmissão das imagens.
Por ser uma parte fundamental do processo, este algoritmo será apresentado aqui
em maiores detalhes, tal como foi implementado na classe Silhouette, a qual realizatodos os passos necessário à subtração de fundo.
A subtração de fundo consiste em subtrair da imagem atual uma imagem de refe-
rência, a qual é adquirida e modelada a partir de um fundo estático durante um
certo período de tempo, conhecido como período de treinamento. Assim, o fundo
pode ser qualquer, desde que permaneça razoavelmente estático durante o tempo de
treinamento.
Na sua versão mais simples, a subtração de fundo pode partir, inicialmente, de umcerto número de imagens capturadas (fase de treinamento), onde são calculados,
para cada pixel, a média e o desvio padrão, baseado no espaço de cores RGB. O
objetivo desta etapa é fazer a modelagem prévia do fundo da cena, a fim de que os
próximos passos do algoritmo possam distinguir o que faz parte do fundo e o que
faz parte da silhueta de um indivíduo sobre ele.
Sendo E i a média e S i o desvio padrão das imagens de referência, temos:
E i = [µR(i), µG(i), µB(i)] (4.1)
e
S i = [σR(i), σG(i), σB(i)], (4.2)
onde i representa cada pixel da imagem a ser computado.
Para cada quadro Qi do vídeo, capturado em tempo real, a silhueta é calculada
como um valor binário. O pixel do quadro é parte da silhueta, se:
Qi − E i ≥ S i (4.3)
37
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 51/102
Caso contrário, o pixel não faz parte da silhueta, mas sim do fundo.
No Algoritmo de Horprasert [27] são calculados, além da média e do desvio padrão,
a distorção de brilho αi e a distorção de cor β i, durante a fase de treinamento
(modelagem do fundo).
A Figura 4.2, ilustra todos os passos necessários para realizar a subtração de fundo
segundo este algoritmo.
No final deste processo são obtidas então, quatro imagens de referência: a imagem
média, a imagem do desvio padrão, a imagem da distorção de brilho e a imagem da
distorção de cor. Nestas imagens, estão modeladas as características do fundo e são
estas as utilizadas como referência no processo de segmentação.
Figura 4.2: Algoritmo de Horprasert [33].
Durante a etapa de segmentação, que ocorre em tempo real, o algoritmo classifica o
pixel em uma das quatro categorias B, S, H, F diferentes:
• B (Fundo original): se a distorção de brilho e a distorção de cor do pixel
são similares aos valores correspondentes na imagem de referência;
• S (Fundo com baixa iluminação ou sombra): se a distorção de cor é
similar, mas a distorção de brilho é bem menor do que aquela na imagem de
referência;
38
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 52/102
• H (Fundo com alta iluminação): se existe uma distorção de cor similar,
mas uma distorção de brilho maior do que aquela na imagem de referência;
• F (Objeto em Movimento): o pixel é considerado como sendo parte do
objeto em movimento, se a distorção de cor é diferente aos valores esperadosno treinamento.
4.2.3 Compressão e descompressão do vídeo e da máscara
da silhueta
Após a extração da silhueta, temos uma imagem do participante composta pela
textura e uma máscara que corresponde à região de interesse (silhueta).
A textura é comprimida utilizando JPEG, o qual apresenta perdas, mas produzalta compressão para imagens. Na realidade, foi utilizada uma versão otimizada da
biblioteca JPEG. Esta versão foi criada pela Intel e faz parte da IPP Library, sendo
quase cinco vezes mais rápida que a biblioteca JPEG comum.
A máscara é comprimida utilizando a biblioteca ZLIB, a qual não apresenta perdas e
produz alta compressão para os dados da máscara, que é formada por muitas regiões
de valores binários iguais e consecutivos.
4.2.4 Transmissão da imagem via rede IP
Para a transmissão via rede, a estrutura de um pacote foi projetada para conter a
textura e máscara comprimidas, dentro do campo data , representada pelo seguinte
código:
1 #ifndef PACKET_H
2 #define PACKET_H
3
4 namespace t d p {5 c on st in t PAYLOAD_MAXSIZE = 1 1 7 2 ;
6 c on st in t SERVER_UDP_PORT = 1 5 8 2 0 ;
7
8 typedef struct {
9 unsigned long f r a me _ s i z e ;
10 unsigned long mask_size ;
11 unsigned char∗ data ;
12 } PACKET;
13 }
14 #endif //PACKET_H
39
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 53/102
São enviados no início do pacote o tamanho da textura e o tamanho da máscara,
representando os tamanhos contidos no campo data . Não há informação no pacote
a qual câmera ele pertence, pois são criados quatro sockets, um para cada câmera,
transportando de forma independente as quatro streams de vídeo.
Em contraste à infraestrutura de software baseada em CORBA, utilizada em [34], o
presente trabalho utiliza programação em sockets UDP, por ter menor latência nas
transmissões via rede.
4.2.5 Reconstrução do vídeo
A biblioteca provê vários tipos de renderizações. Ao receber as sequências de vídeo
das várias câmeras, cada uma delas possui a informação de imagem e a máscara
(silhueta), ambas descompactadas. A composição formada pela imagem e pela más-
cara resulta em uma textura agora no formato RGBA, ou seja, com o chamado canal
alfa , que representa o nível de opacidade do pixel.
Assim, esta textura pode ser sobreposta ao ambiente virtual através de três tipos
de renderizações:
• Billboard : Cada quadro RGBA é renderizado em um billboard . Neste método,
a classe RenderBillboard insere o vídeo do participante no ambiente virtual
dentro de uma geometria plana que não se move, mesmo quando o ambiente
virtual é manipulado;
• Sprite: Cada quadro RGBA é renderizado em um Sprite. Neste método, a
classe RenderSprite insere o vídeo do participante no ambiente virtual dentro
de uma geometria plana que se move quando o ambiente virtual é manipu-
lado, permitindo uma sensação maior de integração do vídeo sobreposto com
o ambiente virtual;
• VisualHull : Neste método, a classe RenderVisualHull usa reconstrução do
vídeo baseado no algoritmo de VisualHull [10, 11], o qual proporciona os me-
lhores resultados visuais, mas quando o ambiente virtual é manipulado o algo-
ritmo possui um desempenho inferior aos métodos simples anteriores (menor
taxa de quadros por segundo), por ser bem mais complexo, tal como é mos-
trado nas avaliações realizadas nas considerações finais deste trabalho.
A classe RenderVisualHull implementa a renderização de um Visual Hull baseado em
imagem, tal como descrito em [10]. Assim, ela utiliza simultaneamente as silhuetasprovenientes das quatro câmeras disponíveis no sistema (ou mais se existirem).
40
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 54/102
É importante observar que, como as classes RenderBillboard e RenderSprite só po-
dem operar com uma câmera por vez, a melhor câmera é escolhida por um algoritmo
dentro da classe, que calcula o menor ângulo formado por um raio que parte do ob-
servador para a origem com outros raios que partem das câmeras para a origem, ou
seja, a câmera escolhida será aquela que proporcionar menor ângulo.
4.2.6 Métodos para teleoperação
A classe Teleoperation é responsável pela comunicação com os módulos de controle
e sensoriamento e sua integração com os módulos de controle e sensoriamento se dá
através da comunicação com o conversor USB-RS485, o qual emula uma porta serial
no computador.
Do ponto de vista da classe, a comunicação se passa como uma comunicação serial
convencional, mas na realidade esta flui pela USB até o barramento RS-485, onde
os módulos estão instalados.
4.3 Protótipo para validação da biblioteca
Adicionalmente, um protótipo foi desenvolvido, também em linguagem C++, e to-
talmente orientado a objetos, o qual utiliza a biblioteca proposta.O sistema de câmeras pode ser visto previamente montado na Figura 4.3.
Figura 4.3: Infraestrutura física montada.
As quatro câmeras são instaladas em tripés e direcionadas para o centro de visuali-
41
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 55/102
zação onde se encontra um chessboard .
O chessboard é um marcador padrão para calibrar os parâmetros intrínsecos e ex-
trínsecos das câmeras. Com os parâmetros intrínsecos pode-se modelar a distância
focal e a distorção provocada pela lente das câmeras, com os parâmetros extrínsecos
é possível calcular a posição das câmeras e suas orientações relativas.
Uma vez instalada a infraestrutura, a calibragem só precisa ser feita uma única vez,
desde que não se mova as câmeras e não se faça ajustes na objetiva.
A Figura 4.4 mostra a janela do protótipo em funcionamento. Neste ensaio o protó-
tipo está recebendo as streams de vídeo com a subtração de fundo já computada de
outra máquina (Figura 4.5) e fazendo a composição do vídeo do usuário em um am-
biente virtual. O protótipo está recebendo também a temperatura real do ambiente
onde o usuário se encontra e integrando esta informação ao ambiente virtual.
Figura 4.4: Composição do vídeo do participante e monitoramento a temperatura
4.4 Construção do hardware para teleoperação
Os módulos para controle e sensoriamento desenvolvidos neste trabalho são pequenos
sistemas embutidos microcontrolados. Os módulos se conectam por meio de um
barramento RS485. O padrão RS485 permite a interligação de diversos dispositivos
no mesmo barramento, formada por apenas um par de condutores.Vários módulos podem ser distribuídos pelo equipamento ou ambiente através do
42
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 56/102
Figura 4.5: Subtração de fundo e transmissão via rede
barramento RS485. Em qualquer ponto do barramento, um conversor USB-RS485
pode ser conectado a um computador por meio de uma porta USB.
Os módulos são genéricos, com entradas analógicas e digitais e saídas digitais ou
comandadas com relé. Nas entradas podem ser ligados sensores de diversos tipos e
as saídas podem comandar outros disposivos de baixa tensão. Há uma saída especial
com um relé para acionar cargas de até 5A em 110V.
No projeto do módulo, dois circuitos integrados foram utilizados: um microcontro-
lador (PIC16F88), que controla os sinais dos sensores, atuadores e a comunicação,
além de outro integrado, para prover a adaptação elétrica ao barramento RS485
(DS1487). No apêndice C são apresentados o diagrama esquemático do módulo,
bem como os layouts das placas de circuito impresso.
O módulo foi montado em uma placa de aproximadamente 6 x 5cm e sua alimentaçãodeve ser provida por uma fonte externa de 5V a 30V.
O microcontrolador PIC16F88 foi utilizado em versão SMD (Surface Mount Device),
a fim de reduzir as dimensões do módulo. Como este tipo de encapsulamento fica
soldado de forma permanente à placa, a programação do microcontrolador teve que
ser feita por meio da técnica ICSP (In Circuit Serial Programming ). Portanto, além
dos conectores de alimentação, entradas e saídas, relé e barramento RS485, há um
conector especial de 6 pinos para uso exclusivo de programação ICSP.
Um conversor USB-RS485 também foi projetado e construído especificamente paraeste trabalho. Dois circuitos integrados foram utilizados: USB (FT232RL) e RS485
43
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 57/102
(SN65HVD3082E). A interligação dos dois circuitos integrados é feita de forma tri-
vial, os dados enviados pela porta USB são encaminhados para o barramento RS485
e vice e versa.
O circuito integrado FT232RL é detectado pelo computador como uma interface
serial virtual. Assim, tudo que a biblioteca de software deve fazer é uma comuni-
cação serial, enviando dados segundo um protocolo estipulado para obter dados dos
módulos ou controlá-los, conforme o caso. A alimentação do conversor é provida
pela própria porta USB. No apêndice C são apresentados o diagrama esquemático
do conversor, bem como os layouts das placas de circuito impresso.
O controlador USB não necessita de programação ( firmware), no entanto um pe-
queno programa em assembly foi desenvolvido para os módulos. A programação dos
módulos foi feita através sofware MPLAB da Microchip e o hardware de programa-
ção (gravador) utilizado foi o Pickit 2.
Os projetos do módulo e do controlador USB foram feitos no software Proteus da
Labcenter, onde é possível criar o diagrama esquemático, simular e gerar os layouts
das placas de circuito impresso.
44
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 58/102
Capítulo 5
Considerações Finais
5.1 Avaliações
Com o protótipo apresentado, foi possível obter o tempo gasto na etapa de extração
de silhueta, a qual empregou o algoritmo de Horprasert, em várias resoluções de
vídeo diferentes.
Foi possível também obter a quantidade de quadros apresentada em um segundo
(FPS - Frames per second ), ao se utilizar uma sobreposição de vídeo simples ao
ambiente virtual (por meio de um billboard ou sprite) ou pelo uso do algoritmo deVisual Hull (Tabelas 5.1 e 5.2).
Tabela 5.1: Diferentes resoluções com uso de billboards ou sprites.
Tabela 5.2: Diferentes resoluções com uso do algoritmo Visual Hull .
45
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 59/102
Em seguida, foram gerados três gráficos para melhor observação dos dados contidos
nas tabelas, conforme apresentado nas Figuras 5.1, 5.2 e 5.3.
Figura 5.1: Extração de silhueta: Número de pixels x tempo(ms).
Figura 5.2: Billboards ou sprites: Número de pixels x FPS.
Figura 5.3: Visual Hull : Número de pixels x FPS.
5.2 Conclusões
Este trabalho teve como objetivo projetar e implementar uma infraestrutura de
hardware e software para telepresença 3D e teleoperação utilizando hardware de
baixo custo e baseada em software livre.
46
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 60/102
Utilizando o protótipo baseado na infraestrutura proposta, foram realizados testes
que permitiram chegar às seguintes conclusões:
• Com o uso de uma resolução de 320 por 240 pixels, o sistema possui um
desempenho de 10 FPS quando se usa uma sobreposição de vídeo simples aoambiente virtual (por meio de um billboard ou sprite).
Quando se usa um algoritmo de reconstrução do vídeo, como o Visual Hull ,
um desempenho próximo, em termos de FPS, só ocorre em resoluções muito
baixas (160 por 120 pixels).
O fato se deve a concorrência do algoritmo com as threads responsáveis pela
descompressão JPEG da imagem e descompressão das silhuetas de todas as
câmeras recebidas;
• Em relação às técnicas de compressão empregadas, foram feitos testes com a
JPEG comum e a JPEG otimizada pela Intel. Esta última demonstrou ser
muito mais rápida tanto na compressão quanto na descompressão. Não foi
testado nenhum nível de MPEG, pois, dada a necessidade de sincronismo de
diversas câmeras e a requisição de um buffer para o processamento da MPEG,
tal procedimento tornaria impraticável o sincronismo necessário à reconstrução
do vídeo em tempo real;
• O resultado alcançado em termos de custo de hardware e software podemser considerados baixos. Entenda-se custo baixo como o custo próximo ao
necessário a se implantar um sistema de videoconferência convencional;
• O protótipo permite o controle e sensoriamento de um ambiente real através
dos módulos descritos.
5.3 Contribuições
Estão apresentadas a seguir as principais contribuições deste trabalho:
• Substituição dos tradicionais avatares pelo vídeo 3D do participante em tempo
real, aplicando algoritmos de extração da silhueta e reconstrução do vídeo do
participante;
• Levantamento e teste de soluções de captura de múltiplas câmeras: O estudo
pode servir de guia para outras aplicações que utilizem múltiplas câmeras;
47
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 61/102
• Investigação das técnicas e algoritmos de extração de silhueta e reconstrução
do vídeo 3D do participante, a fim de satisfazer critérios de qualidade e latência
de uma aplicação de tempo real;
• Investigação de hardware que possibilite uma construção de baixo custo;• Integração de funções de teleoperação dentro da mesma infraestrutura de te-
lepresença 3D;
• Sugestão de uma infraestrutura de hardware aliada à produção de uma biblio-
teca de software para telepresença 3D e teleoperação, que atenda aos requisitos
dos objetivos deste trabalho, sendo disponibilizada à comunidade de forma li-
vre e de código aberto.
5.4 Pesquisas Futuras
Ao finalizar este trabalho, algumas questões importantes capazes de nortear pesqui-
sas futuras devem ser colocadas:
• Suporte a vários participantes simultâneos: A biblioteca desenvolvida permite
a criação de um sistema de telepresença que suporte vários participantes si-multâneos, renderizados no mesmo ambiente virtual. No protótipo de teste foi
implementada a renderização para apenas um participante.
• Processamento de áudio: Não foi levada em consideração a transmissão de
áudio do participante. A biblioteca poderia ser estendida para incorporar
áudio em tempo real, sincronizado com o vídeo.
• Comunicação sem fio entre os módulos de teleoperação: Os módulos de con-
trole e sensoriamento estão interligados via rede RS485. Poderiam ser desen-
volvidos módulos sem fio, utilizando, por exemplo, os protocolos Zibgbee ou
Bluetooth.
• Outros algoritmos de extração de silhueta e reconstrução 3D: Poderiam ser
implementados outros algoritmos, estendendo biblioteca proposta.
48
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 62/102
Referências Bibliográficas
[1] MAYBURY, M. T. “Collaborative Virtual Environments for Analysis and Deci-
sion Support”, Commun. ACM , v. 44, n. 12, pp. 51–54, 2001. Disponível
em: <http://doi.acm.org/10.1145/501317.501342>.
[2] CRUZ-NEIRA, C., SANDIN, D., DEFANTI, T. “Surround-Screen Projection-Based Virtual Reality: The Design and Implementation of the CAVE”,
Proceedings of SIGGRAPH ’93 , pp. 135–142, 1993.
[3] LALIOTI, V., HASENBRINK, F., TRAMBEREND, H., et al. “Immersive
Telepresence in Responsive Virtual Environments”. , 1998. Disponí-
vel em: <http://citeseer.ist.psu.edu/338014.html;http://www.
cs.up.ac.za/~vali/bio/../Publications/NEC98.pdf>.
[4] DE SOUZA VIEIRA, R. Protótipo de um Sistema de Monitoramento RemotoInteligente. Tese de Mestrado, Universidade Federal de Santa Catarina,
Brazil, Junho 1999.
[5] GROSS, M., WÜRMLIN, S., NAEF, M., et al. “Blue-c: A Spatially Immersive
Display and 3D Video Portal for Telepresence”. In: ACM Transactions on
Graphics, pp. 819–827, 2003.
[6] HASENBRINK, F., LALIOTI, V. “Towards Immersive Telepre-
sence - SCHLOSSTAG’97”. , 2000. Disponível em: <http://citeseer.ist.psu.edu/337994.html;http://www.cs.up.ac.za/
~vali/bio/../Publications/IPT98.pdf>.
[7] NARAYAN, M., WAUGH, L., ZHANG, X., et al. “Quantifying the benefits
of immersion for collaboration in virtual environments”. In: VRST ’05:
Proceedings of the ACM symposium on Virtual reality software and te-
chnology , pp. 78–81, New York, NY, USA, 2005. ACM Press. ISBN:
1-59593-098-1. doi: http://doi.acm.org/10.1145/1101616.1101632.
[8] SHERIDAN, T. B. Telerobotics, automation, and human supervisory control .
Cambridge, MA, USA, MIT Press, 1992. ISBN: 0-262-19316-7.
49
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 63/102
[9] PETIT, B., LESAGE, J.-D., BOYER, E., et al. “Virtualization gate”. In:
SIGGRAPH ’09: ACM SIGGRAPH 2009 Emerging Technologies, pp.
1–1, New York, NY, USA, 2009. ACM. ISBN: 978-1-60558-833-9. doi:
http://doi.acm.org/10.1145/1597956.1597982.
[10] MATUSIK, W., BUEHLER, C., RASKAR, R., et al. “Image-based visual
hulls.” In: SIGGRAPH , pp. 369–374, 2000.
[11] LAURENTINI, A. “The Visual Hull Concept for Silhouette-Based Image Un-
derstanding”, IEEE Trans. Pattern Anal. Mach. Intell., v. 16, n. 2,
pp. 150–162, 1994. ISSN: 0162-8828. doi: http://dx.doi.org/10.1109/
34.273735.
[12] GIBBS, S. J., ARAPIS, C., BREITENEDER, C. “TELEPORT - Towards
Immersive Copresence”, Multimedia Syst , v. 7, n. 3, pp. 214–221, 1999.Disponível em: <http://link.springer.de/link/service/journals/
00530/bibs/9007003/90070214.htm>.
[13] SCHREER, O., SHEPPARD, P. “VIRTUE - The step towards immersive tele-
presence in virtual video-conference sysstems”. In: Proc. of eBusiness and
eWorks 2000 , pp. 989–995, Outubro 2000.
[14] SADAGIC, A., TOWLES, H., HOLDEN, L., et al. “Tele-immersion
Portal: Towards an Ultimate Synthesis”. , 2003. Disponívelem: <http://citeseer.ist.psu.edu/642880.html;http://www.cs.
unc.edu/Research/stc/publications/Sadagic_Presence01.pdf>.
[15] RAJAN, V., SUBRAMANIAN, S., KEENAN, D., et al. “A Realistic Video
Avatar System for Networked Virtual Environments”. , 2002. Dispo-
nível em: <http://citeseer.ist.psu.edu/529911.html;http://www.
view.iao.fhg.de/IPT2002/papers/VR2002-155.pdf>.
[16] RASKAR, R., WELCH, G., CUTTS, M., et al. “The Office of the Future:A Unified Approach to Image-based Modeling and Spatially Immersive
Displays”. In: SIGGRAPH , pp. 179–188, 1998. Disponível em: <http:
//doi.acm.org/10.1145/280814.280861>.
[17] GOLDBERG, K., GENTNER, S., SUTTER, C., et al. “The Mercury Project:
A Feasibility Study for Internet Robots”, IEEE Robotics and Automation
Magazine, v. 7, pp. 35–39, 2000.
[18] MARK, M., COX, M., BARUCH, D. J. E. F. “Robotic Telescopes: An In-
teractive Exhibit on the World-Wide Web”. In: Proc. 2nd International
Conference of the World-Wide Web, pp. 150–162, October 1994.
50
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 64/102
[19] SIMMONS, R., FERNANDEZ, J., GOODWIN, R., et al. “Xavier: An Auto-
nomous Mobile Robot on the Web”. In: IEEE Robotics and Automation
Magazine, pp. 43–48, 1999.
[20] MARTINEZ, G., KAKADIARIS, I. A., MAGRUDER, D., et al. “Teleope-rating ROBONAUT: A case study”. In: In The British Machine Vision
Conference (BVMC 2002), pp. 757–766, 2002.
[21] BENFORD, S., BROWN, C., REYNARD, G., et al. “Shared Spaces: Trans-
portation, Artificiality, and Spatiality.” In: CSCW , pp. 77–86, 1996.
[22] MILGRAM, P., KISHINO, F. “A Taxonomy of Mixed Reality Visual Dis-
plays”, IEICE Trans. Information Systems, v. E77-D, n. 12, pp. 1321–
1329, dec 1994. Available at http://vered.rose.utoronto.ca/people/paul_-
dir/IEICE94/ieice.html.
[23] HINDMARSH, J., FRASER, M., HEATH, C., et al. “Object-focused inte-
raction in collaborative virtual environments”, ACM Trans. Comput.-
Hum. Interact , v. 7, n. 4, pp. 477–509, 2000. Disponível em: <http:
//doi.acm.org/10.1145/365058.365088>.
[24] MCGUIRE, M., MATUSIK, W., PFISTER, H., et al. “Defocus video matting”,
ACM Trans. Graph., v. 24, n. 3, pp. 567–576, 2005. ISSN: 0730-0301. doi:
http://doi.acm.org/10.1145/1073204.1073231. Disponível em: <http://
www.cs.brown.edu/people/morgan/DefocusVideoMatting>.
[25] DAVIS, J. W., BOBICK, A. F. “A Robust Human-Silhouette Extraction Te-
chnique for Interactive Virtual Environments”. In: CAPTECH ’98: Pro-
ceedings of the International Workshop on Modelling and Motion Cap-
ture Techniques for Virtual Environments, pp. 12–25, London, UK, 1998.
Springer-Verlag. ISBN: 3-540-65353-8.
[26] AHN, S. C., LEE, T.-S., KIM, I.-J., et al. “Computer Vision based InteractivePresentation System”. In: Proceedings of Asian Conference for Computer
Vision 2004, pp. 486–490, 2004.
[27] HORPRASERT, T., HARWOOD, D., DAVIS, L. S. “A statistical approach
for real-time robust background subtraction and shadow detection”. In:
7th IEEE International Conference on Computer Vision, Frame Rate
Workshop (ICCV 99), pp. 1–19, 1999.
[28] RANDER, P. W., NARAYANAN, P., KANADE, T. “Virtualized Re-ality: Constructing Time-Varying Virtual Worlds from Real World
51
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 65/102
Events”. In: Yagel, R., Hagen, H. (Eds.), IEEE Visualization ’97 , pp.
277–284, 1997. Disponível em: <citeseer.ist.psu.edu/article/
rander97virtualized.html>.
[29] HOKAYEM, P. F., SPONG, M. W. “Bilateral teleoperation: An historicalsurvey”, Automatica , v. 42, n. 12, 2006. Disponível em: <http://dx.
doi.org/DOI:%2010.1016/j.automatica.2006.06.027>.
[30] CUI, J., TOSUNOGLU, S., ROBERTS, R., et al. “A review of teleoperation
system control”. In: Proceedings of the 2006 Florida Conference Recent
Advances in Robotics (FCRAR), 2003.
[31] SHERIDAN, T. B. “Teleoperation, telerobotics and telepresence: A progress
report”. In: Control Engineering Practice, pp. 205–214, 1995.
[32] GOLDBERG, K., MASCHA, M., GENTNER, S., et al. “Desktop Teleope-
ration via the World Wide Web”. In: Robotics and Automation, 1995.
Proceedings., 1995 IEEE International Conference on , pp. 654–659, 1995.
[33] TRUYENQUE, M. A. Q. Uma Aplicação de Visão Computacional que Utiliza
Gestos da Mão para Interagir com o Computador . Tese de Mestrado,
PUC-Rio - Pontifícia Universidade Católica do Rio de Janeiro, Brazil,
Março 2005.
[34] GROSS, M., LAMBORAY, E., NÄF, M., et al. “The blue-c Distributed Scene
Graph”. In: Proceedings of IPT/EGVE 2003 . ACM Press, 2003.
52
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 66/102
Apêndice A
Diagramas de Classes
A seguir são apresentados os diagramas de classe da biblioteca desenvolvida. Apesardas classes serem planejadas antes do desenvolvimento, os diagramas foram gerados
após a conclusão da implementação da biblioteca, representando assim, de forma
fiel, o desenvolvimento alcançado. Para gerar os diagramas de classe, foi utilizado o
próprio ambiente de desenvolvimento do Visual Studio C++ da Microsoft.
Os seguintes diagramas de classe compõem a biblioteca:
• Classes de captura de vídeo: Onde a principal classe é a VideoCapture,
onde está representado um dispositivo de captura.• Classes de janela de vídeo: Onde a principal classe é a VideoDisplay , onde
está representada uma janela de visualização de vídeo.
• Classe Framebuffer : Classe responsável por armazenar os quadros de forma
protegida.
• Classe Calibration : Possui todo código necessário à calibragem intrínseca
e extrínseca das câmeras.
• Classe Silhouette: Armazena a silhueta e implementa o algoritmo de Hor-
prasert.
• Classe Camera : Encapsula todas as classes anteriores.
• Classes de renderização: Contém os algoritmos de renderização chamados
Billboard , Sprite e VisualHull .
• Classe Teleoperation : Contém os métodos para teleoperação.
Adicionalmente, as classes do programa principal (protótipo) estão relacionadas nafigura A.5.
53
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 67/102
Figura A.1: Classes de captura de vídeo.
54
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 68/102
Figura A.2: Classes de janela de vídeo.
55
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 69/102
Figura A.3: Classes de câmera, framebuffer, calibragem e silhueta.
56
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 70/102
Figura A.4: Classes de renderização e teleoperação.
57
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 71/102
Figura A.5: Classes do programa principal (protótipo).
58
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 72/102
Apêndice B
Listagem e documentação das
principais classes da biblioteca
A documentação das classes da biblioteca foi gerada pelo software Doxygen. Os
comentários no código fonte, colocados de forma estruturada, são rastreados pelo
Doxygen e organizados de forma a gerar uma documentação fiel ao estado atual do
desenvolvimento.
B.1 Classe VideoCapture#include <VideoCapture.h>
Métodos públicos
• virtual int start ()=0
• virtual int stop ()=0
• void setName (std::string name)• std::string getName ()
• void setTypeName (std::string typenam)
• std::string getTypeName ()
• void setDevice (int device)
• int getDevice ()
• void setInput (TypeInput input)
• TypeInput getInput ()
• void setFormat (TypeFormat format)
• TypeFormat getFormat ()
59
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 73/102
• void setWidth (int w)
• int getWidth ()
• void setHeight (int h)
• int getHeight ()
• void setSize (int w, int h)
• void getSize (int ∗w, int ∗h)
• void setFPS (int fps)
• int getFPS ()
• virtual void registerCaptureCallback (void(∗pCallback)(unsigned char ∗buffer,
int size, void ∗arg), void ∗arg)
Atributos públicos
• void(∗ _pCallback )(unsigned char ∗buffer, int size, void ∗arg)
Atributos protegidos
• std::string _name
• std::string _typename
• int _device• TypeInput _input
• TypeFormat _format
• int _width
• int _height
• int _fps
• void ∗ _arg
B.1.1 Descrição detalhada
Classe abstrata que representa um dispositivos de captura em, possivelmente, várias
plataformas diferentes.
B.1.2 Documentação dos métodos
B.1.2.1 int tdp::VideoCapture::getDevice () [inline]
Obtém o id do dispositivo capturado (inicia em 0).
60
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 74/102
B.1.2.2 TypeFormat tdp::VideoCapture::getFormat () [inline]
Retorna o formato do padrão de vídeo.
B.1.2.3 int tdp::VideoCapture::getFPS () [inline]
Retorna a taxa de quadros por segundo (FPS).
B.1.2.4 int tdp::VideoCapture::getHeight () [inline]
Retorna a altura dos quadros capturados.
B.1.2.5 TypeInput tdp::VideoCapture::getInput () [inline]
Retorna o tipo de entrada de vídeo.
B.1.2.6 std::string tdp::VideoCapture::getName () [inline]
Retorna o nome do objeto de captura.
B.1.2.7 void tdp::VideoCapture::getSize (int ∗ w , int ∗ h ) [inline]
Obtém o tamanho dos quadros capturados.
B.1.2.8 std::string tdp::VideoCapture::getTypeName () [inline]
Retorna o nome do tipo do objeto de captura.
B.1.2.9 int tdp::VideoCapture::getWidth () [inline]
Retorna a largura dos quadros capturados.
B.1.2.10 virtual void tdp::VideoCapture::registerCaptureCallback
(void(∗)(unsigned char ∗buffer, int size, void ∗arg) pCallback ,
void ∗ arg ) [inline, virtual]
Registra a callback de captura dos frames.
61
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 75/102
B.1.2.11 void tdp::VideoCapture::setDevice (int device) [inline]
Configura o id do dispositivo a ser capturado (inicia em 0).
B.1.2.12 void tdp::VideoCapture::setFormat (TypeFormat format )[inline]
Configura o formato do padrão de vídeo.
B.1.2.13 void tdp::VideoCapture::setFPS (int fps) [inline]
Configura a taxa de quadros por segundo (FPS).
B.1.2.14 void tdp::VideoCapture::setHeight (int h ) [inline]
Configura a altura dos quadros capturados.
B.1.2.15 void tdp::VideoCapture::setInput (TypeInput input )
[inline]
Configura o tipo de entrada de vídeo.
B.1.2.16 void tdp::VideoCapture::setName (std::string name)
[inline]
Configura o nome do objeto de captura.
B.1.2.17 void tdp::VideoCapture::setSize (int w , int h ) [inline]
Configura o tamanho dos quadros capturados.
B.1.2.18 void tdp::VideoCapture::setTypeName (std::string typenam )
[inline]
Configura o nome do tipo do objeto de captura.
B.1.2.19 void tdp::VideoCapture::setWidth (int w ) [inline]
Configura a largura dos quadros capturados.
62
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 76/102
B.1.2.20 virtual int tdp::VideoCapture::start () [pure virtual]
Inicia a captura.
Implementada em tdp::VideoCaptureUDP, tdp::WinVideoCaptureGeneric, and
tdp::WinVideoCaptureSAA713x.
B.1.2.21 virtual int tdp::VideoCapture::stop () [pure virtual]
Pára a captura.
Implementada em tdp::VideoCaptureUDP, tdp::WinVideoCaptureGeneric, and
tdp::WinVideoCaptureSAA713x.
B.1.2.22 void(∗ tdp::VideoCapture::_pCallback)(unsigned char
∗buffer, int size, void ∗arg)
Callback de captura dos frames.
63
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 77/102
B.2 Classe VideoDisplay
#include <VideoDisplay.h>
Métodos públicos
• VideoDisplay (void ∗handle, int width, int height)
• virtual void render (unsigned char ∗buffer, int rw, int rh)=0
Atributos protegidos
• void ∗ _handle
• int _width
• int _height
B.2.1 Descrição detalhada
Classe que representa a visualização do vídeo em, possivelmente, várias plataformas
diferentes.
B.2.2 Documentação dos métodos
B.2.2.1 virtual void tdp::VideoDisplay::render (unsigned char ∗ buffer ,
int rw , int rh ) [pure virtual]
Renderiza a janela de visualização.
Implementada em tdp::WinVideoDisplay.
64
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 78/102
B.3 Classe FrameBuffer
#include <FrameBuffer.h>
Métodos públicos
• FrameBuffer (int size)
• void Write (unsigned char ∗in)
• void Read (unsigned char ∗out)
• void Write2 (unsigned char ∗in, unsigned char ∗in2)
• void Read2 (unsigned char ∗out, unsigned char ∗out2)
• bool isNew ()
B.3.1 Descrição detalhada
Classe que representa um buffer de um quadro de vídeo. Pussui mutexes para
proteger a escritas e leituras nos buffers.
B.3.2 Documentação dos métodos
B.3.2.1 bool tdp::FrameBuffer::isNew ()
Verifica se o buffer possui dados novos.
B.3.2.2 void tdp::FrameBuffer::Read (unsigned char ∗ out )
Lê do buffer .
B.3.2.3 void tdp::FrameBuffer::Read2 (unsigned char ∗ out , unsigned
char ∗ out2 )
Lê do buffer (segunda versão).
B.3.2.4 void tdp::FrameBuffer::Write (unsigned char ∗ in )
Escreve no buffer .
65
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 79/102
B.3.2.5 void tdp::FrameBuffer::Write2 (unsigned char ∗ in , unsigned
char ∗ in2 )
Escreve no buffer (segunda versão).
66
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 80/102
B.4 Classe Calibration
#include <Calibration.h>
Métodos públicos
• void init ()
• void initUndistort ()
• void undistort (unsigned char ∗buffer)
• void intrinsicCalibration (bool value)
• void extrinsicCalibration (bool value)
• bool isIntrinsicCalibration ()
• bool isExtrinsicCalibration ()
• bool intrinsicProcessing (unsigned char ∗buffer)
• bool extrinsicProcessing (unsigned char ∗buffer)
• void raytest (unsigned char ∗buffer, osgViewer::Viewer ∗viewer)
• void setWidth (int w)
• int getWidth ()
• void setHeight (int h)
• int getHeight ()• void setSize (int w, int h)
• void getSize (int ∗w, int ∗h)
• void setIntrinsic (TypeIntrinsic in)
• void setIntrinsic (double fx, double fy, double cx, double cy, double k1, double
k2, double p1, double p2)
• TypeIntrinsic getIntrinsic ()
•
void getIntrinsic (double∗
fx, double∗
fy, double∗
cx, double∗
cy, double∗
k1,double ∗k2, double ∗p1, double ∗p2)
• void setExtrinsic (TypeExtrinsic ex)
• void setExtrinsic (double px, double py, double pz, double ox, double oy,
double oz)
• TypeExtrinsic getExtrinsic ()
• void getExtrinsic (double ∗px, double ∗py, double ∗pz, double ∗ox, double ∗oy,
double ∗oz)
67
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 81/102
B.4.1 Descrição detalhada
Classe que representa a calibragem da câmera. Possui métodos para corrigir a
distorção da lente e obter parâmetros intrísecos e extrínsecos da câmera.
B.4.2 Documentação dos métodos
B.4.2.1 void tdp::Calibration::extrinsicCalibration (bool value)
Configura para iniciar ou parar a calibração extrínseca.
B.4.2.2 bool tdp::Calibration::extrinsicProcessing (unsigned char ∗
buffer )
Realiza a calibração extrínseca.
B.4.2.3 void tdp::Calibration::getExtrinsic (double ∗ px , double ∗ py ,
double ∗ pz , double ∗ ox , double ∗ oy , double ∗ oz ) [inline]
Obtém os parâmetros extrínsecos da câmera.
B.4.2.4 TypeExtrinsic tdp::Calibration::getExtrinsic () [inline]
Obtém os parâmetros extrínsecos da câmera.
B.4.2.5 int tdp::Calibration::getHeight () [inline]
Retorna a altura dos quadros capturados.
B.4.2.6 void tdp::Calibration::getIntrinsic (double ∗ fx , double ∗ fy ,double ∗ cx , double ∗ cy , double ∗ k1, double ∗ k2 , double ∗
p1, double ∗ p2 ) [inline]
Obtém os parâmetros intrínsecos da câmera.
B.4.2.7 TypeIntrinsic tdp::Calibration::getIntrinsic () [inline]
Obtém os parâmetros intrínsecos da câmera.
68
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 82/102
B.4.2.8 void tdp::Calibration::getSize (int ∗ w , int ∗ h ) [inline]
Obtém o tamanho dos quadros capturados.
B.4.2.9 int tdp::Calibration::getWidth () [inline]
Retorna a largura dos quadros capturados.
B.4.2.10 void tdp::Calibration::init ()
Inicializa os atributos da classe.
B.4.2.11 void tdp::Calibration::initUndistort ()
Inicializa as matrizes de correção da distorção.
B.4.2.12 void tdp::Calibration::intrinsicCalibration (bool value)
Configura para iniciar ou parar a calibração intrínseca.
B.4.2.13 bool tdp::Calibration::intrinsicProcessing (unsigned char ∗
buffer )
Realiza a calibração intrínseca.
B.4.2.14 bool tdp::Calibration::isExtrinsicCalibration ()
Verifica se está em calibração extrínseca.
B.4.2.15 bool tdp::Calibration::isIntrinsicCalibration ()
Verifica se está em calibração intrínseca.
B.4.2.16 void tdp::Calibration::raytest (unsigned char ∗ buffer ,
osgViewer::Viewer ∗ viewer )
Teste de projeção de um raio.
69
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 83/102
B.4.2.17 void tdp::Calibration::setExtrinsic (double px , double py ,
double pz , double ox , double oy , double oz ) [inline]
Configura os parâmetros extrínsecos da câmera.
B.4.2.18 void tdp::Calibration::setExtrinsic (TypeExtrinsic ex )
[inline]
Configura os parâmetros extrínsecos da câmera.
B.4.2.19 void tdp::Calibration::setHeight (int h ) [inline]
Configura a altura dos quadros capturados.
B.4.2.20 void tdp::Calibration::setIntrinsic (double fx , double fy ,
double cx , double cy , double k1, double k2 , double p1,
double p2 ) [inline]
Configura os parâmetros intrínsecos da câmera.
B.4.2.21 void tdp::Calibration::setIntrinsic (TypeIntrinsic in ) [inline]
Configura os parâmetros intrínsecos da câmera.
B.4.2.22 void tdp::Calibration::setSize (int w , int h ) [inline]
Configura o tamanho dos quadros capturados.
B.4.2.23 void tdp::Calibration::setWidth (int w ) [inline]
Configura a largura dos quadros capturados.
B.4.2.24 void tdp::Calibration::undistort (unsigned char ∗ buffer )
Realiza a correção da distorção.
70
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 84/102
B.5 Classe Silhouette
#include <Silhouette.h>
Métodos públicos
• void setFrameSize (int w, int h)
• void setNumFrames (int n)
• bool isStackFull ()
• void stackFrame (unsigned char ∗fp)
• void preProcess ()
• void getSilhouette (unsigned char ∗sil, unsigned char ∗fp)
• void setThresholds (double thresh_chroma, double thresh_luma, double
sdev_min, double dist_chroma_min, double dist_luma_min)
• void setShadowColor (bool value)
• void enable (bool enabled)
• bool isLearning ()
• void learnBackground ()
• bool isReady ()
B.5.1 Descrição detalhada
Classe que representa uma silhueta extraída de um frame. Possui métodos para
obter estatísticas do fundo e fazer a subtração. Atualmente implementa o algoritmo
de Horprasert et al.
B.5.2 Documentação dos métodos
B.5.2.1 void tdp::Silhouette::enable (bool enabled ) [inline]
Habilita a extração de silhueta.
B.5.2.2 void tdp::Silhouette::getSilhouette (unsigned char ∗ sil ,
unsigned char ∗ fp )
Extrai a silhueta.
71
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 85/102
B.5.2.3 bool tdp::Silhouette::isLearning () [inline]
Verifica se está em fase de treinamento (modelagem do fundo).
B.5.2.4 bool tdp::Silhouette::isReady () [inline]
Verifica se já está pronto para operar.
B.5.2.5 bool tdp::Silhouette::isStackFull ()
Verifica se já capturou a quantidade total de quadros.
B.5.2.6 void tdp::Silhouette::learnBackground () [inline]
Configura se está ou não em fase de treinamento (modelagem do fundo).
B.5.2.7 void tdp::Silhouette::preProcess ()
Realiza o pré-processamento nos quadros armazenados.
B.5.2.8 void tdp::Silhouette::setFrameSize (int w , int h )
Configura o tamanho do quadro.
B.5.2.9 void tdp::Silhouette::setNumFrames (int n )
Configura a quantidade de quadros.
B.5.2.10 void tdp::Silhouette::setShadowColor (bool value)
Seleciona a cor do fundo, após a extração da silhueta.
B.5.2.11 void tdp::Silhouette::setThresholds (double thresh_chroma ,
double thresh_luma , double sdev_min , double
dist_chroma_min , double dist_luma_min )
Configura os limiares de operação.
72
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 86/102
B.5.2.12 void tdp::Silhouette::stackFrame (unsigned char ∗ fp )
Armazena um quadro.
73
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 87/102
B.6 Classe Camera
#include <Camera.h>
Métodos públicos
• void videoCapture (VideoCapture ∗videoCapture)
• VideoCapture ∗ videoCapture ()
• void videoDisplay (VideoDisplay ∗videoDisplay)
• VideoDisplay ∗ videoDisplay ()
• void calibration (Calibration ∗calibration)
• Calibration ∗ calibration ()
• void silhouette (Silhouette ∗silhouette)
• Silhouette ∗ silhouette ()
• void frameBuffer (FrameBuffer ∗frameBuffer)
• FrameBuffer ∗ frameBuffer ()
B.6.1 Descrição detalhada
Classe que representa uma câmera
B.6.2 Documentação dos métodos
Simplesmente encapsula as classes anteriores.
74
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 88/102
B.7 Classe RenderBillboard
#include <RenderBillboard.h>
Métodos públicos
• RenderBillboard (osg::Group ∗root, osgViewer::Viewer ∗viewer,
std::vector< Camera ∗ > cameras)
• void run ()
Métodos estáticos
• static void threadFunc (RenderBillboard ∗obj)
B.7.1 Descrição detalhada
Classe que representa a renderização em um simples billboard .
B.7.2 Documentação dos métodos
B.7.2.1 void tdp::RenderBillboard::run ()
Inicia a renderização.
B.7.2.2 static void tdp::RenderBillboard::threadFunc (RenderBillboard
∗ obj ) [static]
Método estático responsável por executar a renderização como uma thread .
Observação: As outras classes de renderização não são mostradas aqui pois seguem
o mesmo padrão.
75
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 89/102
B.8 Classe Teleoperation
#include <Teleoperation.h>
Métodos públicos
• void send (int deviceid, std::string command)
• void receive (int &deviceid, std::string &command)
• void setSerialPort (int serialport)
• int getSerialPort ()
• void setDeviceId (int deviceid)
• int getDeviceId ()
• void setMode (int mode)
• int getMode ()
• void setTCPPort (int tcpport)
• int getTCPPort ()
• void setCommand (std::string command)
• std::string getCommand ()
B.8.1 Descrição detalhada
Classe responsável pela comunicação bidirecional dos sensores e atuadores. Provê
também métodos para extrair e configurar comandos que podem ser utilizados dentro
do ambiente virtual para controlar atuadores ou obter dados dos sensores.
B.8.2 Documentação dos métodos
B.8.2.1 std::string tdp::Teleoperation::getCommand () [inline]
Retorna o comando enviado, ou um comando recebido.
B.8.2.2 int tdp::Teleoperation::getDeviceId () [inline]
Retorna a identificação (ID) do dispositivo
B.8.2.3 int tdp::Teleoperation::getMode () [inline]
Retorna o modo de operação (0 - sensor, 1 - atuador).
76
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 90/102
B.8.2.4 int tdp::Teleoperation::getSerialPort () [inline]
Verifica qual porta serial (emulada por USB) está sendo usada.
B.8.2.5 int tdp::Teleoperation::getTCPPort () [inline]
Retorna a porta TCP sendo utiizada.
B.8.2.6 void tdp::Teleoperation::receive (int & deviceid , std::string &
command )
Recebe um comando de um dispositivo remoto.
B.8.2.7 void tdp::Teleoperation::send (int deviceid , std::string
command )
Envia um comando para um dispositivo remoto.
B.8.2.8 void tdp::Teleoperation::setCommand (std::string command )
[inline]
Configura o comando a ser enviado.
B.8.2.9 void tdp::Teleoperation::setDeviceId (int deviceid ) [inline]
Configura a identificação (ID) do dispositivo
B.8.2.10 void tdp::Teleoperation::setMode (int mode) [inline]
Configura o modo de operação (0 - sensor, 1 - atuador).
B.8.2.11 void tdp::Teleoperation::setSerialPort (int serialport )
[inline]
Configura a porta serial (emulada por USB) sendo usada.
B.8.2.12 void tdp::Teleoperation::setTCPPort (int tcpport ) [inline]
Configura a porta TCP a ser utiizada.
77
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 91/102
Apêndice C
Diagramas Esquemáticos e
Layouts dos Circuitos Eletrônicos
A seguir são apresentados os diagramas esquemáticos e o layout dos circuitos de-
senvolvidos para suporte à teleoperação. Foi utilizado o software Proteus 7 da Lab-
Center Electronics para todas as fases do projeto, desde a diagramação, simulação,
até o layout das placas de cirtuito impresso.
Com o referido software também foi possível gerar um modelo 3D das placas, antes
do processo de fabricação. Pode se consultar, portanto, nas figuras a seguir: os
diagrama esquemáticos, os layouts da placa, e os modelos 3D, além de imagens reaisdos circuitos montados.
78
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 92/102
Figura C.1: Diagrama esquemático do Módulo de Controle e Sensoriamento.
79
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 93/102
Figura C.2: Layout superior da placa do Módulo de Controle e Sensoriamento.
Figura C.3: Layout inferior da placa do Módulo de Controle e Sensoriamento.
Figura C.4: Layout dos componentes do Módulo de Controle e Sensoriamento.
Figura C.5: Modelo 3D do Módulo de Controle e Sensoriamento.
80
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 94/102
Figura C.6: Diagrama esquemático do Conversor USB-RS485.
81
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 95/102
Figura C.7: Layout superior da placa do Conversor USB-RS485.
Figura C.8: Layout inferior da placa do Conversor USB-RS485.
Figura C.9: Layout dos componentes do Conversor USB-RS485.
Figura C.10: Modelo 3D do Conversor USB-RS485.
82
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 96/102
Figura C.11: Placas de circuito impresso do Módulo e do Conversor.
Figura C.12: Módulo de Controle e Sensoriamento montado.
Figura C.13: Conversor USB-RS485 montado.
83
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 97/102
Glossário
Avatar Representação gráfica de um usuário em um
ambiente de realidade virtual. Dependendo da
tecnologia, pode variar desde um sofisticado
modelo 3D até uma simples imagem plana.
Biblioteca Uma coleção de subrotinas ou métodos uti-
lizados no desenvolvimento de software. Bi-
bliotecas contém código e dados auxiliares,
provendo serviços a programas independentes,
permitindo o compartilhamento e a alteração
de código e dados de forma modular.
Billboard Um objeto gráfico, normalmente um retân-
gulo, que uma vez dentro de um ambiente vir-
tual, está sempre com sua normal voltada para
o observador.
Bluetooth É uma especificação industrial para áreas de
redes pessoais sem fio. O Bluetooth provê uma
maneira de conectar e trocar informações en-
tre dispositivos como telefones celulares, no-
tebooks, computadores, impressoras, câmeras
digitais e diversos outros dispositivos, atravésde uma freqüência de rádio de curto alcance,
globalmente não licenciada e segura.
Buffer Região de memória temporária utilizada para
escrita e leitura de dados.
84
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 98/102
Canal Alfa O canal alfa pode ser visto como a quarta com-
ponente na definição da cor, ele define a opaci-
dade de um pixel em uma imagem. No espaço
de cores RGB é comum seu acréscimo, resul-tando em RGBA, ou seja, Vermelho, Verde,
Azul e o alfa.
Cave Sala onde são projetados gráficos em três di-
mensões, em suas paredes, podendo ser visu-
alizadas por pessoas dentro da mesma, para
que possam explorar e interagir com objetos,
pessoas virtuais e outros modelos no mundo
virtual.
CRT Acrônimo em inglês para Cathode Ray Tube
que em português significa “tubo de raios ca-
tódicos”, também conhecido como Cinescópio.
Usado em muitos monitores de computador e
televisores, os CRTs são hoje substituídos pe-
los monitores de Plasma, LCD, LED e OLED.
Directshow Parte da API do DirectX desenvolvido pela
Microsoft para execução de arquivos multimí-dia para a plataforma Windows.
Firewire Também conhecido como i.Link, IEEE 1394
ou High Performance Serial Bus/HPSB , é
uma interface serial para computadores pes-
soais e aparelhos digitais de áudio e vídeo que
oferece comunicações de alta velocidade e ser-
viços de dados em tempo real.FPS Acrônimo em inglês para Frames per Second ,
representa o número de quadros de vídeo ren-
derizados em um segundo.
Frame Um quadro de vídeo completo, onde uma ima-
gem é renderizada.
HDM Acrônimo em inglês para Head Mounted Dis-
lay , termo utilizado para designar capacetesde realidade virtual.
85
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 99/102
IP Acrônimo em inglês para Internet Protocol , o
qual é um protocolo da camada de redes de
computadores. O IP é o principal protocolo daInternet, responsável por encaminhar os paco-
tes de dados da origem até o destino.
JPEG/JPG Método comumente usado para comprimir
imagens. Além de ser um método de com-
pressão, é frequentemente considerado como
um formato de arquivo. É importante notar
que o JPEG é um método com perdas na com-
pressão, o que remove informações da imagem
original, mas pode reduzir bastante o tamanho
do arquivo.
LCD Acrônimo em inglês para Liquid Crystal Dis-
play que em português significa “Display de
Cristal Líquido”. O LCD é um painel fino,
usado para exibir informações por via eletrô-
nica, como texto, imagens e vídeos. Seu usoinclui monitores para computadores, televiso-
res, painéis de instrumentos e outros disposi-
tivos.
MPEG Compõe um conjunto de métodos usados para
compressão de áudio e vídeo. Representa tam-
bém o nome de um arquivo digital contendo
vídeo e áudio digitais codificados seguindo de-terminados padrões de compressão e armaze-
nados em formatos específicos (Ex.: MPEG 1,
MPEG 2, etc).
86
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 100/102
Pixel É o menor elemento num dispositivo de exibi-
ção (como por exemplo um monitor), ao qual
é possivel atribuir-se uma cor. De uma forma
mais simples, um pixel é o menor ponto queforma uma imagem digital, sendo que o con-
junto de milhares de pixels formam a imagem
inteira.
Porta Serial Tipo de conexão bidirecional, através do qual
os bits fluem um por vez, em série. Os com-
putadores pessoais antigos possuíam normal-
mente duas portas seriais, sendo designadas
COM1 e COM2. Hoje ainda se encontram
alguns modelos com pelo menos uma porta
serial, sendo estas substituídas pelas portas
USB.
RGB Sistema de cores aditivas formado pelo Ver-
melho (Red ), Verde (Green ) e Azul (Blue).
RGBA Sistema de cores aditivas formado pelo Verme-
lho (Red ), Verde (Green ), Alfa (Alpha ). Veja
“Canal Alfa”.RS-232 Também conhecido por EIA RS-232C ou V.24,
é um padrão para troca serial de dados bi-
nários entre um DTE (terminal de dados, de
Data Terminal equipment ) e um DCE (co-
municador de dados, de Data Communication
equipment ). É comumente usado nas portas
seriais dos PCs.
RS-485 Também conhecido por TIA/EIA-485, é umpadrão para troca serial de dados binários,
cuja transmissão é feita em linhas balancea-
das. Ao contrário do RS-232, permite mais de
dois dispositivos em uma mesma linha, sendo
portanto um sistema multiponto.
87
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 101/102
Socket Um soquete pode ser usado em ligações fim a
fim em redes de computadores para criar um
elo bidirecional de comunicação entre dois pro-
gramas. A interface padronizada de soquetessurgiu originalmente no sistema operacional
Unix BSD (Berkeley Software Distribution );
portanto, eles são muitas vezes chamados de
Berkeley Sockets.
Sprite É normalmente uma imagem bidimensional
que é sobreposta a uma cena já construída.
Difere de um Billboard por não ter seu plano
normal necessariamente voltado sempre para
o observador. Veja Billboard .
Stream Pode ser definido como um fluxo de dados
em um sistema computacional, sendo aplicado
para fluxos de dados em relação a arquivos em
disco ou mesmo em fluxos de áudio e vídeo em
redes de computadores.
TCP Acrônimo em inglês para Transmission Con-
trol Protocol , o qual é um protocolo da ca-mada de transporte de redes de computadores.
O TCP é um protocolo orientado à conexão,
nele, há garantia de entrega dos pacotes envi-
ados.
Thread Pode ser traduzido como “linha de execução”,
é uma forma de um processo computacional
dividir a si mesmo em duas ou mais tarefas
que podem ser executadas simultaneamente.
UDP Acrônimo em inglês para User Datagram Pro-
tocol , o qual é um protocolo da camada de
transporte de redes de computadores. O UDP
é um protocolo não orientado à conexão, nele,
não há qualquer tipo de garantia de entrega
dos pacotes enviados.
88
5/11/2018 TELEPRESEN A - slidepdf.com
http://slidepdf.com/reader/full/telepresenca 102/102
USB Acrônimo em inglês para Universal Serial Bus,
é um tipo de conexão serial que permite a co-
nexão e desconexão de periféricos sem a ne-
cessidade de desligar o computador. O padrãoUSB permite a conexão de até 127 periféricos,
com taxa de transmissão superior à porta se-
rial convencional.
Voxel Corresponde à versão em três dimensões do
termo Pixel. É a menor unidade gráfica de
volume.
Zigbee O termo ZigBee designa um conjunto de es-
pecificações para a comunicação sem fio entre
dispositivos eletrônicos, com ênfase na baixa
potência de operação, na baixa taxa de trans-
missão de dados e no baixo custo de implan-
tação.
ZLIB É uma biblioteca multiplataforma de compres-
são de dados, utilizada principalmente em um
programa de compressão chamado gzip. É im-portante notar que o método de compressão
usado na ZLIB não produz perdas, mantendo
fielmente as informações do arquivo original.
89