MAC 499 - Trabalho de Formatura Supervisionado 


Iniciação Científica

Professor Supervisor: Professor Doutor Antonio Elias Fabris
Aluno Orientado:
Marcio Calixto Cabral

Professor Responsável MAC 499: Professor Doutor Carlos Eduardo Ferreira


Introdução (Aos futuros alunos)
Muito antes do meu ingresso no IME, no longínquo ano de 1997, a área de Computação Gráfica já me atraía muito, principalmente por causa das megaproduções hollywoodianas, onde muitos "efeitos especiais" eram atribuídos a CG. Desde então tenho procurado me informar a respeito e aprender um pouco mais. Em 1999, comecei a estudar um pouco mais a fundo a Computação Gráfica de verdade com o Professor Antonio Elias Fabris. 
Ao começar a procurar estágio na área de computação gráfica comecei a sentir as primeiras dificuldades. Praticamente não existem empresas que atuem nesta área no estado de São Paulo. A área a que me refiro é a de desenvolvimento, programação e criação de novas teorias e aplicativos em Computação Gráfica. O que podemos encontrar são empresas que apenas utilizam softwares gráficos para criar comerciais de televisão, anúncios de revistas e coisas afins. Essas empresas, que se autodenominam produtoras, não estão interessadas no desenvolvimento de novas tecnologias e aplicações, mas sim em utilizar tecnologias já existentes para produzirem seus trabalhos. A mão-de-obra utilizada por elas é de estudantes de artes gráficas e afins, como alunos da ECA. Eu, particularmente mandei currículo para várias delas aqui em São Paulo, mas o retorno não foi o esperado. Apenas duas retornaram para dizer que o forte dessas empresas não é o desenvolvimento mas sim a criação artística.
A partir deste momento comecei a vivenciar um dilema: continuar minha iniciação científica no IME e permanecer no ambiente acadêmico ou então continuar procurando estágio na área. Minha principal dúvida foi com relação à falta de experiência no mercado que teoricamente me deixaria “defasado” com relação aos outros profissionais do mercado, pois a maioria de meus colegas estava trabalhando em empresas, adquirindo esse conhecimento e experiência novas, enquanto que eu simplesmente não teria o que colocar no currículo ao fim do ano. 
Com o passar do tempo percebi que estagiar em uma empresa que estivesse relacionada com Computação Gráfica seria uma tarefa difícil, senão quase impossível. Decidi então procurar estágio, sem me preocupar com a área de atuação da empresa. Sem me preocupar se iria ou não trabalhar com aquilo que gosto. Devo admitir que fiquei surpreso. O número de oportunidades é realmente grande. Ao ouvir colegas que entraram antes que eu no IME e já estavam trabalhando dizerem que arrumar emprego era fácil e que não teríamos problema não foi fácil de acreditar, principalmente pelas atuais condições de emprego que o país se encontra. Mas a situação foi exatamente essa: várias ofertas de emprego e aparentemente número insuficiente de profissionais para preenchê-las.
Essa minha “busca” por estágio começou no fim novembro de 1999, e por incrível que pareça, apesar de parecer que dezembro é um mês morto e que todos os processos de seleção já se encerraram, consegui agendar algumas entrevistas. Finalmente em janeiro de 2000, comecei a estagiar no LSI - Laboratório de Sistemas Integráveis, onde fui convidado a participar do grupo de Realidade Virtual do LSI que estava sendo criado. Era uma experiência nova, fora do ambiente IME. 
Essa “mudança” de ambiente foi muita proveitosa. Aconselho para os futuros alunos de MAC499 que vivenciem isso. A convivência com novas pessoas, novas metodologias de trabalho e um novo ritmo diário são excelentes para o crescimento interior como indivíduo e como profissional. Felizmente consegui encontrar um trabalho que se adequasse em parte aos meus interesses acadêmicos. Apesar de continuar em um ambiente acadêmico, o ritmo de trabalho era bem diferente do IME. Quando se está ganhando para a realização de um trabalho, as cobranças são maiores e as responsabilidades aumentam, e simplesmente devemos aprender a lidar com isso.

Iniciação científica é uma das melhores formas de se começar a aprender a estudar sozinho e por gosto. Não apenas por obrigação. Aconselho a todos que tentem isso. Conversem com algum professor que você tenha uma maior afinidade, ou ainda melhor, o seu professor tutor que lhe foi designado no momento de ingresso e que está aí para isso, para ajudar e dirimir muitas dúvidas. A iniciação científica me estimulou ainda mais a fazer um curso de mestrado e continuar estudando. O único problema é que a iniciação científica não é muito divulgada e difundida entre os alunos. Talvez um trabalho de “propaganda” deva ser feito entre os alunos. Esperamos que isso venha a mudar nos próximos anos. Tentarei contribuir para isso com a ajuda dos professores.

Cronograma de atividades

        Quando entrei no LSI, estava sendo criado o grupo de Realidade Virtual do LSI. Assim, logo que entrei, fui alocado a este grupo para trabalhar no desenvolvimento de aplicações para Realidade Virtual, mais especificamente auxiliando uma aluna de doutorado na parte de programação. Minha tarefa seria a de implementar alguns algoritmos e criar aplicativos para colocar em prática algumas idéias da tese de doutorado. 

        Janeiro de 2000 (20-31):     Na primeira semana de trabalho pude me familiarizar com plataformas que ainda não tinha tido contato, como estações gráficas da Silicon Graphics e o sistema operacional IRIX 6.5. 

        Fevereiro de 2000:  Curso de UNIX - Duração: 1 semana; Curso de JAVA - Duração: 1 semana ;

De uma forma geral, o curso foi básico. Apenas um comando ou outro considerei útil. De acordo o pessoal do LSI, estes cursos são apenas para nivelar os estagiários que entram todos os anos, pois entram estagiários de várias faculdades: IME, POLI, FAU, ECA, FÍSICA, etc e a alguns não conhecem UNIX nem JAVA. As únicas coisas úteis foram às apostilas dadas durante o curso.
            Durante o resto do mês de Fevereiro, após fazer os cursos, comecei a fazer programas simples em Visual C++, linguagem que eu ainda não conhecia, para me familiarizar. O principal problema em aprender Visual C++ é aprender a utilizar as bibliotecas da Microsoft (MFC,etc) que na maioria das vezes geram algumas "telas azuis" do windows quando tentamos acessar a  "parte gráfica" (desenhar, etc). Além disso, foi um pouco difícil se adaptar ao padrão de programação Windows . 

Março de 2000:

Em março comecei a estudar a biblioteca OpenGL. Devido ao curso de MAC420, onde os dois primeiros EP's deveriam ser implementados utilizando-se OpenGL, pude utilizar meus conhecimentos adquiridos na elaboração dos EP's. Após isso, comecei a estudar como utilizar o OpenGL dentro do Visual C++  e Windows. Apesar de ser a mesma biblioteca, muitas rotinas são diferentes e basicamente precisei estudar bastante até que o primeiro programa de aprendizagem começa-se a funcionar.
            Paralelamente a estes estudos, comecei a criar e desenvolver um site para o grupo de Realidade Virtual do LSI, grupo que começou a se formar no início deste ano. 

Abril de 2000:

            No fim de março, chegaram alguns placas gráficas para renderização de volumes em tempo real ( VolumePro ). A partir da chegada das mesmas, comecei a desenvolver um programa de visualização em Visual C++ com OpenGL. Este programa consiste em ler os dados do Visible Human  e visualizá-los de forma estereoscópica, sendo possível ver o volume de qualquer ângulo, e fazer qualquer tipo de corte neste volume (a princípio, apenas cortes paralelos aos eixos de coordenadas ).
            Depois de "baixarmos" os dados do Visible Human (não foi tarefa fácil pois todo o conjunto de dados tem aproximadamente 17Gigabytes), o primeiro problema a ser resolvido era como "transformar" os dados do Visible Human em dados que a placa aceleradora VP pudesse ler. Estes dados consistem de 1871 "fatias" full color em formato RAW. A tarefa então foi concatenar estas fatias, uma a uma,  em um único arquivo com extensão .VOX que está especificado nos manuais da VolumePro. 

    Maio de 2000:

Após a criação do arquivo .VOX,  comecei a aprender a usar as bibliotecas da VP. Após alguns dias de estudo, a implementação do programa começou. Neste ponto devo dizer que programação "for windows" não é muito agradável para quem gosta e está acostumado ao mundo UNIX/Linux, mas como as bibliotecas da VP só funcionam em Windows NT (No Thanks) não havia muito a fazer. Aos poucos o programa foi ficando pronto. Basicamente os dados são lidos e jogados para a memória da placa VP. Definimos então os pontos de projeção e planos de corte através do mouse. A partir destes dados, faço a matriz de transformações que será aplicada ao volume. A placa recebe esta matriz, faz a renderização e nos devolve um plano de textura e um hexágono que contém a região delimitadora associada a este plano. Estes dados são passados então a OpenGL que coloca na tela o resultado obtido. 

Junho de 2000:

            Apos a correria do mes passado para terminar o paper antes do deadline de submissao, comecamos a reformular a pagina do Núcleo de Realidade Virtual. Nessa reformulacao, mudamos o logotipo e toda a estrutura da pagina. Estou na primeira foto da secao Gallery / Galeria de Fotos.
            Aproximadamente entre a terceira e a quarta semana do mes de junho, devido a problemas financeiros, fui realocado para o Nucleo de Engenharia de Midias para que finalmente pudesse comecar a receber algum tipo de bolsa. Essa realocacao envolveu tambem uma mudanca no trabalho. O projeto em que entrei visa desenvolver interfaces de visualizacao e interacao homem-maquina em Java e VRML.
            Ate final do mes, fiquei estudando um pouco de VRML e como implementar Java com VRML. 

Julho de 2000:

            Continuei estudando Java e VRML, e pesquisando tutoriais na Internet para implantacao das duas linguagens em conjunto. Atualmente estou fazendo download e instalando as linguagens necessarias para poder comecar o projeto que sao Java, Java3D, VRML (CosmoPlayer) e mais alguns outros utilitarios. ( Ver Web 3D Consortion  )
            Durante os dias 20 a 28 de julho estarei participando do SIGGRAPH 2000 como Student Volunteer. Basicamente ficarei ajundando a carregar caixas, configurar micros, instalar programas, ficar na recepcao de cursos e apresentacao de papers (quem sabe da pra assistir um pouco), etc.  Mas vai ser possivel assistir alguns cursos de acordo com o interesse do estudante, bem como trazer pra casa os Proceedings e Course Notes, que sao muito interessantes e caros. Acho que vai ser uma otima experiencia, sem falar do que contato que terei com a area de Computacao Grafica neste Congresso. 

Agosto de 2000:

A experiência adquirida durante o congresso SIGGRAPH foi excelente. Pude entrar em contato com pessoas do mundo todo que estudam e gostam de Computação Gráfica. É interessante observar como mudam os cursos e a forma de aprendizado de Universidade para Universidade ao redor do mundo. Na Inglaterra e Estados Unidos, por exemplo, existem cursos de graduação na área de animação, desenvolvimento de jogos, etc. 

Assim que voltei do SIGGRAPH, comecei a testar e implementar novas funcionalidades no sistema Polimídia. O sistema Polimídia funciona como um buscador de videos na biblioteca. Digitando-se uma palavra chave ou então se fazendo busca por gênero, pode-se visualizar quais vídeos estão disponíveis na biblioteca. É importante ressaltar que a visualização não é apenas do título do video, mas do video em si.

O processo não foi tão simples, pois o projeto já havia começado e quem estava programando deixou o projeto. Fui obrigado a depurar o código para poder entender o que estava acontecendo, além das condições não favoráveis que se encontrava a documentação do projeto, específicamente do código fonte do programa.

Setembro de 2000:

Continuei depurando o código do sistema para um entendimento completo. Implementei novas funcionalidades como ativação de botões de help e email. Com a parte de mail pude entrar em contato a linguagem Perl, que até então só havia visto no segundo ano da faculdade.

Outubro de 2000:

Testes de usabilidade e de erro foram as principais atividades na finalização do projeto Polimidia. Atualmente o sistema está sendo implantado em caráter de testes na biblioteca da Eng. Elétrica da poli. 

Continuando o trabalho desenvolvido do Visible Human, o tamanho do volume visualizado foi alterado 256x152x1150 voxels, que significa que todo o corpo pode ser visualizado. A perda de performance foi razoável, visto o tamanho do volume sendo carregado na memória. 

Descrição Detalhada dos Projetos Desenvolvidos
 

Visible Human (Abril a Junho)
        Somente recentemente, técnicas avançadas de visualização volumétrica têm sido usadas amplamente devido à disponibilidade de placas aceladoras de vídeo a preços acessíveis. Estas aplicações têm um grande potencial de uso em muitas aplicações de realidade virtual e em especial na medicina. 
        A maioria dos aplicativos disponíveis atualmente é baseada tradicionamente em sistemas gráficos orientados a polígonos. Recentemente técnicas avançadas de renderização direta de volumes como a “Ray-casting” baseada no algoritmo shear-warp tem sido implementadas em sistemas de baixo custo tornando possível aplicações em tempo real e uma visualização mais precisa de dados volumétricos antes atingida apenas por sistemas caros e complexos. Esses avanços tecnológicos abrem um precedente no campo médico para a disponibilidade de dados volumétricos de alta-resolução não-invasivos como tomografia computadorizada helicoidal, ressonância magnética funcional e iamgens do tipo SPECT .
        Aplicações não convencionais poderiam considerar fontes de dados como as “fatias” volumétricas em full color que se tornaram disponíveis com o projeto Visible Human*, onde dois corpos (um corpo de um homem e um corpo de uma mulher) foram cortados milimetricamente e fotografados em alta resolução. Muitos estudos têm sido feitos relacionados à visualização interativa 3D de tais conjuntos de dados, entretanto, devemos considerar que muitos destes estudos utilizam supercomputadores caríssimos além de utilizar também computadores de alta performance com processamento paralelo, como já dito antes, o que os torna inviáveis e impossível a disseminação destes sistemas de alto custo.
(*)Em 1989, a National Library of Medicine iniciou o projeto entitulado "The Visible Human Project" com o intuito de criar um atlas digital da anatomia humana[NLM98]. O atlas digital é baseado em dois conjuntos de dados: The Visible Human and The Visible Woman.


        Imagens full color RGB baseadas em fotografias tiradas de seções físicas de ambos os cadáveres estão disponíveis. Para a obtenção destas imagens os cadáveres foram mergulhados em um tipo de gelatina, congelados e fatiados da cabeça aos pés . À medida que cada layer era cortado, uma fotografia colorida RGB era tirada a uma resolução de 2048x1216 pixels. No Visible Man, cada fatia tem a espessura de 1mm, resultando em 1871 imagens full color. Já no Visble Woman, as fatias tinham a espessura de 0.33 mm, resultando em 5000 imagens. 

Visualização Volumétrica é um termo genérico que descreve algoritmos e métodos para a visualização 3D de dados volumétricos. Os termos gráficos volumétricos ou renderização volumétrica geralmente se referem a imagens criadas baseadas no espaço volumétrico e sãoentão mostradas ou visualizadas em projeção paralela ou perspectiva em uma tela de computador CRT. O espaço volumétrico pode ser gerado através de muitas fontes que incluem simulações computadorizadas, análises sísmicas, tomografias computadorizadas, ressonâncias magnéticas, imagens PET e SPECT.

        Particularmente, renderização volumétrica direta é um termo que designa o conjunto de algoritmos de renderização que fazem um mapeamento direto entre os voxels e pixels oferecendo imagens renderizadas precisas do conjunto de dados volumétrico. Visualização volumétrica lida com quantidades enormes de dados, considerando por exemplo o conjunto de dados do Visible Human que é da ordem de 12 Gigabytes considerando suas dimensões 2048x1216x5000 voxels.

        O termo visualização volumétrica se refere, geralmente, as imagens criadas a partir de conjuntos de dados volumétricos e então visualizados através de uma projeção paralela em uma tela plana CRT. Projeção perspectiva não é tão comumente usada porque ela considera a profundidade nos cálculos computacionais de projeção e isso aumenta significantemente o custo computacional de resampling na renderização volumétrica.

        Estereoscopia dentro do processo de visualização volumétrica adiciona a perspectiva e o sentimento de realismo que potencialmente pode vir a ter muitas aplicações dentro do campo de realidade virtual. Quando um observador olha para uma cena 3D, a separação horizontal dos olhos significa que as imagens projetadas no fundo de cada olho do observador para um ponto particular na cena diferem na sua posição horizontal. Este efeito é chamado de disparidade binocular ou paralaxe binocular.

        Sistemas estereoscópicos “time-multiplexed” apresentam o par de imagens estereoscópicas alternando-se entre olho direito e esquerdo de um objeto sendo exibido no monitor CRT. Implementações atuais usam uma taxa de alternação entre as imagens de 120Hz (60Hz para a imagem do olho direito e 60Hz para a imagem do olho esquerdo).

        A placa aceladora VolumePro é o primeiro sistema de baixo custo de renderização direta de volume para PCs. A introdução deste sistema no mercado causou grande impacto no desenvolvimento de aplicações em tempo real com este tipo de técnica de visualização que antes disso só era disponível através de plataformas muito caras como supercomputadores com processamento paralelo ou então estações de trabalho gráficas como as da Silicon Graphics OnyxII .

        A placa VolumePro implementa a renderização direta de volume “ray-casting” baseada no algoritmo de shearwarp da matriz de visualização, o que permite o processamento paralelo de fatia por fatia. O sistema tem incorporado hardware para estimação por gradiente, classificação e iluminação Phong. O sistema renderiza 500 milhões de voxels interpolados, iluminados pelo método de Phong por segundo possibilitando assim a renderização de até 16 milhões de voxels (256x256x256) a uma taxa de 30 frames por segundo.

        O pipeline de renderização implementado pela VolumePro associa valores RGBA para partes interpoladas ao contrário de muitos métodos de renderização volumétrica que usualmente primeiro classificam voxels e então interpolam em RGBA. O sistema suporta 8 e 12 bits escalares de voxels e a classificação é baseada na tabelas full color de 24bits RGB e nas tabelas Alpha (opacidade) de 12bits. Essas tabelas são chamadas Tabelas de classificação RGBA.

        Este esquema de classificação RGBA resulta em uma grande acuidade para mapeamentos não-linear de dados para cor e opacidade, entretanto, a renderização direta de volumes que já são pré-classificados em matérias RGBA como as imagens full color do Visible Human não é possível.

        Uma grande desvantagem do algoritmo de Ray-casting quando comparado com outros métodos relacionados é que o volume é processado ordenadamente fatia por fatia e então interpolado bilinearmente ao invés de tri-linearmente dando assim uma significante redução no cálculo da complexidade computacional. Entretanto, quando consideramos a interpolação dos índices das tabelas de cor, resíduos de cor aparecem resultando em uma qualidade de imagem baixa. Alguns algoritmos de quantização existentes podem ser usados para minimizar este problema, mas neste caso, as tabelas de cor precisam ser calculadas e computadas a cada nova renderização de imagem, reduzindo dramaticamente nosso frame rate. O método apresentado adiante soluciona estes problemas.

        O principal objetivo do sistema é ser uma plataforma baseada em PC com baixo custo que suporta e permite Realidade Virtual na medicina. Aplicações baseadas nesta plataforma estarão relacionadas com treinamento e educação de procedimentos clínicos em pequenas regiões específicas de interesse no corpo humano. Um aspecto importante é quando consideramos simulações cirúrgicas que não devam restringir o movimento de mãos e braços do médico.

        Considerando-se estes aspectos construímos nosso modelo conceitual baseando-se no modelo “Fish-Tank”, onde um display de 21 polegadas servirá para estabelecermos um “portal” para o mundo virtual. A estereoscopia “time-multiplexed” e dispositivos adicionais chamados de haptic (proporciona force-feedback) específicos para cada aplicação proporcionam sentimentos de imersão para o usuário com restrições mínimas para os movimentos do corpo. Grupos de 5 ou mais médicos podem facilmente dividir o mesmo espaço virtual com um ótimo sentimento de imersão. O problema principal deste método é que o sentimento de imersão é perdido completamente quando os usuários não olham diretamente para a tela do computador.
        A plataforma de hardware utilizada é um Pentium III 600Mhz com 128Mbytes RAM with PCI and AGP buses. O adaptador gráfico utilizado é o 3Dlabs Oxygen GVX1-AGP que suporta estereoscopia. Para suportar estereoscopia são usados os óculos polarizadores da StereoGraphics da CrystalEyes com dispositivos de transmissão infravermelhos. Finalmente para suportar a estereoscopia do tipo “time-multiplexed” um monitor do tipo Sony-UltraScan 1600HS 21" está sendo utilizado pelo sistema. Na figura 1 podemos ver o sistema implementado.

        O software foi implementado na linguagem C++, usando-se a biblioteca VLI VolumePro API sobre a plataforma WindowsNT da Microsoft. As transformações de warping e de visualização foram implementadas utilizando-se a biblioteca OpenGL. As segmentações, resamplings e filtragens foram implementadas em C.


Figura 01 – O Sistema implementado


 
 

Figura 02 – O Pipeline da Renderização Volumétrica

 O Pipeline de Visualização

O pipeline de visualização proposto pode ser visto na Figura 02.
        O primeiro passo no pipeline de visualização volumétrica é o resampling do conjunto de dados do Visible Human para que seja possível a colocação do mesmo na memória da placa VoulmePro. Foram escolhidas 377 fatias coloridas do conjunto de dados original resultando em um volume com 2048x1216x377 voxels coloridos. O volume foi então reduzido por um fator de 8x8x2 resultando em 256x152x180 voxels.
        O volume já após ter sido reduzido (resampled) foi segmentado para remoção da gelatina azul (esta gelatina foi introduzida no corpo do indíviduo para tampar eventuais bolsas de ar que estavam dentro do corpo, a fim de facilitar os cortes efetuados); a segmentação foi baseada no algoritmo de region growing com tolerância de 20% com relação à semente RGB original. Um filtro de média (mean filter) de 3x3x3 foi aplicado para remoção de ruídos adicionais que não foram totalmente eliminados pela segmentação. Para classificação de opacidade dos voxels dois métodos foram usados: modulação por gradiente e mapeamento direto de opacidade.
        Devido à incapacidade da placa aceleradora VolumePro em renderizar conjunto de dados full color pré-classificados, foi necessário dividir o volume RGB 24bit original em três volumes monocromáticos de 8bit, respectivamente chamados de Volume Red, Volume Green e Volume Blue. A volumePro então renderizou independentemente cada um dos três volumes resultando em três pares monocromáticos estéreo. Os pares estéreos foram gerados utilizando-se projeção paralela (já que a volumePro ainda não renderiza em projeção perspectiva) com paralaxe binocular de 7.0.
        Os três pares estéreos monocromáticos foram então compostos em um único par estéreo RGB full color, que foi então transferido para a memória da GL para a aplicação final de warping na imagem e então mostrada no monitor para o usuário.

a) b)

c) d)

Figura 03 – Imagens Renderizadas do Conjunto de Dados doVisible Man

Resultados

        A Figura 03 mostra algumas imagens renderizadas pelo sistema acima descrito. Na Figura 03 (a) e (b) é possível observar duas visões diferentes do conjunto de dados de 256x152x180 sem segmentação ou filtragem. Neste caso, a opacidade por modulação de gradiente está ativada para maximizar a transparência da gelatina. Na Figura 03 (c) e (d) é possível observar duas visões diferentes do conjunto de dados de 256x152x180 segmentado e filtrado. Na Figura 03 (d) é mostrado o volume com dois planos de corte que permitem visualizar o interior do corpo. Estas imagens foram geradas em tela cheia (1280x1024) com estereoscopia e a uma refresh rate variando de 15 a 25 Hz.
        O sistema foi testado com diferentes tipos de usuários e aparentemente todos conseguiram visualizar as imagens em estéreo. De acordo com pesquisas e estudos a respeito da visão humana, cerca de 5 a 10% da população não consegue visualizar figuras estereoscópicas. O cérebro de algumas pessoas não é capaz de fundir o par estereoscópico de imagens criadas no cérebro para que o sentimento de profundidade seja alcançado.
        Consideramos que o alto nível de aceitação é baseado no fato de que as renderizações são resultado de objetos semitransparentes com uma variação dinâmica de cores muito grande que podem facilitar a disparidade binocular até mesmo considerando que os objetos não estão projetados com projeção perspectiva.
Mais algumas imagens geradas pelo sistema:



Pessoas envolvidas neste projeto:
 

Vicente Pimentel de Sampaio Góes 

Liliane dos Santos Machado

Marcio Calixto Cabral

Ricardo Bittencourt Vidigal Leitão

Roseli de Deus Lopes

Marcelo Knörich Zuffo


 
POLIMÍDIA (Agosto a Outubro)

 

    POLIMÍDIA é um serviço de Vídeo sob Demanda (VoD) concebido para disponibilizar o acervo das videotecas da Escola Politécnica diretamente em formato digital, permitindo um acesso imediato aos vídeos diretamente na tela do computador. 

               O projeto piloto do sistema POLIMÍDIA está sendo disponibilizado inicialmente em caráter experimental exclusivamente na biblioteca da Engenharia Elétrica.
               Especialmente concebido para rodar num terminal PC multimídia comum, conectado a uma rede de servidores de vídeo e dados, o POLIMÍDIA possui uma interface de usuário intuitiva, acessível através de um "browser" convencional de Internet, como o "Netscape" ou o "Internet Explorer", o que simplifica a sua utilização e instalação, tornando-o portável e acessível a um maior número de usuários.

    A consulta de um livro ou periódico na biblioteca é algo extremamente fácil e direto para qualquer pessoa. Basta que se busque o título desejado no catálogo digital (DEDALUS) ou mesmo diretamente nos fichários (à moda antiga), anotar o tombo da obra, isto é, seu endereço ou código de cadastro, se deslocar à estante onde o material se localiza, pegá-lo e consultar ali mesmo.

    Para as fitas da videoteca entretanto – todas em formato VHS – até o momento não se tinha como buscar um título de interesse, checar seu conteúdo e assiti-lo imediatamente, no próprio ambiente da biblioteca, fato que infelizmente contribuia para uma baixa utilização da videoteca.

    O POLIMÍDIA foi concebido para permitir este acesso imediato ao conteúdo das fitas da videoteca, e torná-las tão acessível aos usuários quanto às obras gráficas nas estantes.

    Com ele pode-se realizar buscas e visualizar de forma imediata um vídeo específico, que está disponível para empréstimo na biblioteca. 

    Um trecho máximo de 30 minutos foi digitalizado de cada vídeo disponível no acervo. Vídeos de duração inferior a 30 minutos estão, portanto, integralmente digitalizados e disponíveis para exibição.

    O serviço é disparado a partir da página do Catálogo Online Global Univídeo do DEDALUS (serviço de consultas online à rede de bibliotecas da USP) ou de um "bookmark" disponível no próprio browser. 

    A interface de usuário (que aparece numa janela nova do browser) é uma "tela de televisão" estilizada segundo um projeto artístico que remete ao início da era televisa, quando a nova mídia causou tanto impacto na sociedade. 

    A tela da TV reúne todos os recursos necessários para o usuário navegar pelo serviço.

    Os vídeos estão digitalizados em formato MPEG-1 (taxa de 1.5Mbps, resolução SIF (num x num), áudio em 32KHz/64 Kbps).
 


                     A interface é organizada do seguinte modo:

Plataformas e Programa

    A versão atual do POLIMÍDIA (v.1.0) utiliza o sistema HYPERMS (v.4.0) da NEC Corporation como plataforma servidora de vídeos, plataforma codificadora (MPEG encoder) e cliente (API’s).
    >SERVIDOR: O servidor do POLIMÍDIA consiste numa plataforma Windows NT que hospeda um servidor WEB, um servidor de vídeos HYPERMS, e uma área de armazenamento (disk array) com aproximadamente 24GB de capacidade instalada até o momento (Dezembro/2000). 
    Os módulos executáveis do aplicativo estão localizados junto ao WEB server. 
 
        >INTERFACE CLIENTE: A interface de usuário remota é montada a partir da chamada do browser aos construtores de interface, armazenados no servidor.. A interface de usuário foi desenvolvida atendendo aos critérios biblioteconômicos para indexação, e conta com as facilidades de interação usuais com o usuário de sistemas computacionais.

        >MÁQUINA DE BUSCA: Um módulo “daemon” do POLIMÍDIA opera no servidor monitorando em tempo real a requisição de serviços de busca. A máquina de busca do aplicativo, também desenvolvida em JAVA, consulta uma base de dados SQL onde os metadados relacionados a cada entrada (vídeo) estão armazenados.Os metadados incluem dados de catálogo, índices e informações adicionais sobre os títulos, como dados de autoria, produção e créditos.

        >REDES: O POLIMÍDIA pode tanto operar em redes Ethernet 10/100 Mbps ou ATM (155Mbps). Para redes onde a banda e a qualidade de serviços disponíveis são maiores pode-se utilizar vídeos codificados em taxas mais altas, como MPEG-2 (tipicamente 5-6 Mbps, padrão DVD). A rede atual do projeto piloto é Ethernet 10 Mbps.

        >TECNOLOGIAS: Tanto o controlador executivo do servidor do POLIMÍDIA e sua interface de usuário foram desenvolvidos totalmente em JAVA. O POLIMÍDIA utiliza o JAVA Plugin (v.1.2) e as API’s do sistema HYPERMS da NEC (para o handshaking, streaming e controle de exibição dos videos digitais).


 

Pessoas envolvidas no neste projeto:
 

POLIMÍDIA – Equipe de Produção e Desenvolvimento

Regis Rossi Alves Faria

Concepção, Projeto Funcional e Coordenação Geral

Leonardo Sabino

Detalhamento de Projeto

Sílvia Miazaki

Criação Artística

Jessian Ferreira Cavalcanti

Design e Criação do Site

Marcio Calixto Cabral

Revisão, Acabamento e Testes de Software

Anelise Stein

Vídeo de Abertura
 

Conclusão

 

A experiência que obtive estagiando/fazendo iniciação científica foi extremamente proveitosa para mim. Apesar de ter trabalhado em um ambiente acadêmico, pude conviver com pressão para entrega de projetos em datas pré-determinadas, aprender a trabalhar em equipe, principalmente quando não conhecemos as outras pessoas com quem estaremos trabalhando, e aplicar o conhecimento acumulado durante estes quatro anos de estudo. 

Felizmente consegui trabalhar em uma área com a qual tenho mais afinidade. Isso é extremamente importante para se desenvolver um bom trabalho e se realizar profissionalmente.

Aprendi muitas tecnologias novas neste ano. Não senti dificuldades ao lidar com plataformas e linguagens de programação que não havia visto no curso. Ao contrário do que alguns alunos do IME dizem em entrevistas a revistas especializadas, a formação que tive foi completa e possibilita o aprendizado de novas tecnologias facilmente.

Gostaria de ter começado minha iniciação científica no segundo ano. Na minha opinião falta um pouco de incentivo, ou pelo menos um certo "marketing" para mostrar aos alunos o que está sendo feito pelos professores do IME. Concordo que também fui negligente ao tentar me informar melhor sobre o que acontecia dentro do Instituto. Mas, como todo aluno que entra, não me sentia à vontade o suficiente para conversar diretamente com algum professor.

Em resumo, tive a oportunidade de aprender bastante trabalhando este ano e tenho certeza que meu currículo não foi prejudicado, como temia no início do ano, pelo contrário, melhorou bastante.

Gostaria de agradecer ao professor Carlinhos pelo apoio dado aos alunos durante o andamento da disciplina, compreendendo que por causa do estágio, nosso tempo disponível para dedição a matéria fica realmente complicado. Ao professor Elias, pelo apoio as decisões que tomei durante o ano e pela orientação dada ao trabalho. Aos colegas pelo prazer de estudar com vocês e poder fazer amigos que vão durar pela vida toda.

 
 
BIBLIOGRAFIA:

B. Cabral, N. Cam, and J. Foran. “Accelerated volume rendering and tomographic reconstruction using texture mapping hardware”, In 1994 Workshop on Volume Visualization, pp. 91-98, Washington, DC, October 1994.

RMI Tutorial. Sun Corporation - http://java.sun.com

Carlos Eduardo Ferreira - HomePage Curso MAC499 - http://www.ime.usp.br/~cef/mac499

R. A. Drebin, L. Carpenter, P. Hanrahan, “Volume Rendering”, SIGGRAPH’88, August 1988,

                        Foley et al, Computer Graphics Principles and Practice, 2d ed., Addison Wesley, 1990
 
                        L. Hodges, “Tutorial: Time-Multiplexed Stereoscopic Computer Graphics”, IEEE Computer Graphics & Applications, March 1992, pp. 20-30.
 
                        P. Lacroute and M. Levoy. “Fast volume rendering using a shear-warp factorization of the viewing transform”, in Computer Graphics, Proceedings of SIGGRAPH94, p. 451-457, July 1994.

                        M. Levoy, “Display of Surfaces from Volume Data”, IEEE Computer Graphics and Applications, Volume 8, Number 5, May 1988, pp. 29-37.

                        W.E. Lorensen, H.E. Cline, “Marching Cubes: A high-resolution 3D Surface Construction Algorithm”, Computer Graphics, vol. 21,# 4, July 1987, pp. 163-169.

                        Lorensen, W. E. “Marching Through the Visible Human”, Proceeding of Visualization 95, IEEE Press, October 1995, pp. 368-373.

                        Mitsubishi, Volume Library Interface User's Guide, V1.0, Mitsubishi Electric Information Technology Center America, Inc., 1999.

                        National Library of Medicine NLM, “Fact Sheet The Visible Human Project”, http://www.nlm.nih.gov/pubs/factssheets/visible_human.html
 
                        H. Pfister et al., “The Volume Pro Real-Time Ray-Casting System”, SIGGRAPH’99, 1999, pp. 251-260.

                        K. D. Reinig, C. G. Rush, Helen L. Pelster, Victor M. Spitzer, J. A. Heath., “Real Time Visually and Haptically Accurate Surgical Simulation”,     available at:                     http://w1.uchsc.edu/sm/chs/research/MMVR4.html.

                        V. Spitzer et al. “The Visible Human Male: A Technical Report”, Journal of the American Medical Informatics Association, 1995.

                        Stereographics, Developer Handbook, StereoGraphics Corp., 1997.

                        U. Tiede; T. Schiemann and K. H. Höhne, “Visualizing the Visible Human”, IEEE Computer Graphics and Applications, January 1996, pp. 7-9.