1 / 52

Seminário de Multimídia

Seminário de Multimídia. OpenCV e suas aplicações {avap,bcs2,gamsd,jspff,jblj,rar3}@cin.ufpe.br. Roteiro. Introdução Visão computacional OpenCV TouchLib ReactTable. Visão Computacional. Transformação de dados De: imagem estática ou stream de vídeo Para: decisão ou nova representação

deliz
Download Presentation

Seminário de Multimídia

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Seminário de Multimídia OpenCV e suas aplicações {avap,bcs2,gamsd,jspff,jblj,rar3}@cin.ufpe.br

  2. Roteiro • Introdução • Visão computacional • OpenCV • TouchLib • ReactTable

  3. Visão Computacional • Transformação de dados • De: imagem estática ou stream de vídeo • Para: decisão ou nova representação • Transformações com objetivo específico • Dados de entrada podem conter informação contextual

  4. Visão Computacional • Decisão • “tem uma pessoa nessa cena” • “existem 14 células doentes nessa imagem” • Representação • Transformar uma imagem colorida em tons de cinza • Remover o movimento da câmera de uma sequência de imagens

  5. Visão Computacional • Cérebro • Sistemas de atenção – identificam áreas importantes de um campo visual • Múltiplos fluxos de processamento de informação • Associações cruzadas / experiência adquirida / condicionamento • Máquina • Sequência de números

  6. OpenCV

  7. OpenCV • Open source computer vision library • Infra-estrutura de visão computacional de fácil uso • Aplicações sofisticadas de CV rapidamente construídas • Otimizada para tempo real • Multi-plataforma, C/C++ • APIs low-level e high-level

  8. OpenCV - Contexto • 99/2000 • Intel Research Initiative • Aplicações de uso intensivo da CPU • Real-time ray tracing • MIT Media Lab • Código passado de mão em mão

  9. OpenCV • Infra-estrutura de visão computacional largamente disponível • Core de código implementado • Especificações de algoritmos • Intel Russia: gerenciou, codificou, otimizou

  10. OpenCV - Objetivos • Avançar a pesquisa em CV • Prover código aberto e otimizado • Não reiventar a roda • Disseminar o conhecimento de CV • Infra-estrutura comum • Código prontamente legível e transferível • Avançar aplicações comerciais em CV • Código portável, otimizado e gratuito • Licença BSD Intel

  11. OpenCV - Objetivos • Crescimento da área de CV • O crescimento das aplicações exigiria processadores mais rápidos • Mais lucro para a Intel

  12. OpenCV • C/C++, Python, Visual Basic, Ruby, Matlab • Linux (POSIX), Windows, Mac OS X • Eficiência Computacional • Foco em tempo real, C otimizado, processadores multicore • Mais otimização: Intel’s IPP • Integrated Performance Primitives • Algoritmos de baixo nível otimizados

  13. OpenCV - Funcionalidades • Manipulação de dados de imagens • E/S de imagem e vídeo • Manipulação de matrizes e vetores • Rotinas de álgebra linear • Estruturas de dados dinâmicas • Processamento de imagem básico

  14. OpenCV - Funcionalidades • Análise estrutural • Calibragem de câmera • Análise de movimento (tracking) • Reconhecimento de objetos • GUI Básica • Rotulagem de imagem

  15. OpenCV - Módulos • cxcore • Estruturas de dados e álgebra linear • Transformadas de dados, persistência de objetos, gerenciamento de memória, mainpulação de erros, carregamento dinâmico de código • Desenho, texto, matemática básica • cv • Processamento de imagem, análise de estrutura, movimento e tracking, reconhecimento de padrões, calibragem de câmera (em C)

  16. OpenCV - Módulos • cvcam • Interface de câmera • cvaux • Eigen objects (técnica de reconhecimento), gestures, contorno de regiões, matching de formas, descritores de texturas, tracking de olhos e bocas, descoberta de esqueletos, segmentação de background-foreground, calibragem de câmera (em C++) • Alguns migrarão para cv, outros, não

  17. OpenCV - Módulos • HighGUI • Interface de usuário • Armazenamento e chamada de imagem/vídeo • ml • Aprendizagem de máquina • Clustering, classificação e análise de dados • Suficientemente genérica

  18. OpenCV – Quem usa? • IBM, Microsoft, Intel, Sony, Siemens, Google • Stanford, MIT, CMU, Cambridge, INRIA • Yahoo Groups: 20,000 membros • China, Japão, Rússia, Europa, Israel • Estabilidade (?)

  19. OpenCV • Câmeras de vigilância, imagens e vídeo na web, interfaces de jogos, imagens aéreas, monitoramento de segurança, veículos não-tripulados, análises biomédicas, inspeção automática de produção, robótica • Touchlib

  20. OpenCV Open source Open source DShow filters, Demo apps, Scripting Environment OpenCV(C++ classes, High-level C functions) Switcher Low level C-functions Open source Open source IPP (Optimized low level functions)

  21. OpenCV • Alguns módulos: • Detector de bordas

  22. OpenCV • Alguns módulos: • Detector de Faces • Cadeias de Markov 1 … n

  23. OpenCV • Alguns módulos: • Detector de Faces • Cadeias de Markov Pi - Probabilidade Escolha o max(Pi) i

  24. OpenCV • Alguns módulos: • Detector de Contornos

  25. OpenCV • Alguns módulos: • Detector de Objetos e orientação 3D

  26. TouchLib • Biblioteca para criação de superfícies de interação multi-toque • Capaz de adquirir as imagens a partir de diversos dispositivos • Realiza detecção e tracking dos blobs • Capaz de reconhecer diversos eventos de toque e envia-los a sua aplicação

  27. TouchLib • Assim, a touchlib atua como um driver para a mesa multi-toque de modo a aplicação poder interpretar os toque do usuário • A aplicação fica responsável pelo retorno ao usuário • Vem com um software para calibrar e testar a câmera que será utilizada

  28. Técnicas de captura • FTIR – frustrated total internal reflection • Luz infra-vermelha ilumina internamente um painel acrílico • Capturada por uma câmera infra-vermelha • Mais popular

  29. Técnicas de captura • Difused Illumination • Luz infra-vermelha é colocada embaixo de um painel de vidro/acrílico, com um difusor • Quando objeto toca a superfície, ela reflete mais luz e é detectada pela câmera • MS surface

  30. Técnicas de captura • Gap method • A luz infra-vermelha é despejada sobre o painel através de um pequeno espaço • Quando alguem toca o painel, reflete a luz, que é detectada • Baseado em sensores • Teste de capacitância • Utiliza um grid eletrônico • iPhone

  31. Processamento da imagem

  32. Fluxo de aplicação multi-toque • Após serem capturadas, as imagens contém blobs brancos (as digitais do usuário) • A imagem é processada e as coordenadas dos blobs são obtidas • Touchlib então detecta padrões de toque e repassa pra aplicação • Usa-se um projetor para dar retorno ao usuário

  33. Fluxo de aplicação multi-toque

  34. Suporte para aplicações • Muitas plataformas para desenvolvimento de aplicações multi-toque: • Adobe Flash • Java • vvvv • C++ • Pode interagir utilizando o protocolo TUIO

  35. Sobre o projeto • Criado pelo grupo NUI – Natural User Interface • Grupo interessado em novos métodos e conceitos de IHC • Realidade aumentada • Reconhecimento de gestos, voz, escrita, etc. • Visão computacional • Visualização de informações

  36. Exemplo • Lux framework: framework para design de experiencia, visualização de informação

  37. reacTable • Um novo instrumento musical eletrônico e acústico • Multiusuário • IU através de uma mesa tangível

  38. reacTable • O movimento e identificação de artefatos físicos na superfície da mesa controlam a sinterização de sons • Dynamic Patching • Utiliza a troca de informações através de pacotes UDP • ID • Orientacao • Localização • Utiliza o protocolo TUIO que é baseado no Open Sound Control (OSC)

  39. reacTable

  40. reacTable

  41. reacTable • Atualmente fornece dois modelos para compra • Concert table • Table for public installations • O preço de uma mesa da segunda categoria pode chegar até aproximadamente $23.000 • O sintetizador gráfico pode ser configurado através de um arquivo de XML.

  42. reacTable • Suporta que outros instrumentos também participem da sessão • Exemplo: trombone • Modelos colaborativos • Colaboração local • Separação espacial • Espaço compartilhado • Colaboração remota

  43. reacTable • Como ele processa a informação captada pela câmera? • ReacTIVision

  44. reacTIVision • Framework de visão computacional para rastrear marcadores • Open-source • Multi-plataforma • Retorna uma mensagem OpenSound Control • Para qualquer cliente ligado • Via UDP na porta 3333

  45. Como funciona? • Rastreia marcadores especialmente desenvolvidos em tempo real • Também rastreia os dedos

  46. Como funciona? • Pré-processamento da imagem capturada • Binarização e segmentação • Procura por padrões de alta profundidade • Recuperação do centro e orientação do marcador • Codifica a presença, localização orientação e identidade do marcador

  47. Como funciona? • Na segmentação, pequenos círculos podem ser recuperados • Usa-se um algoritmo complementar para diferenciar os dedos de distorções

  48. Exemplos

  49. Exemplos

  50. Exemplos • Projeto semelhante • Jam-O-Drum

More Related