seminário de multimídia

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

Upload: deliz

Post on 08-Jan-2016

32 views

Category:

Documents


0 download

DESCRIPTION

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 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Seminário de Multimídia

Seminário de Multimídia

OpenCV e suas aplicações

{avap,bcs2,gamsd,jspff,jblj,rar3}@cin.ufpe.br

Page 2: Seminário de Multimídia

Roteiro

Introdução

Visão computacional

OpenCV

TouchLib

ReactTable

Page 3: Seminário de Multimídia

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

Page 4: Seminário de Multimídia

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

Page 5: Seminário de Multimídia

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

Page 6: Seminário de Multimídia

OpenCV

Page 7: Seminário de Multimídia

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

Page 8: Seminário de Multimídia

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

Page 9: Seminário de Multimídia

OpenCV

Infra-estrutura de visão computacional largamente disponível Core de código implementado Especificações de algoritmos

Intel Russia: gerenciou, codificou, otimizou

Page 10: Seminário de Multimídia

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

Page 11: Seminário de Multimídia

OpenCV - Objetivos

Crescimento da área de CV

O crescimento das aplicações exigiria processadores mais rápidos

Mais lucro para a Intel

Page 12: Seminário de Multimídia

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

Page 13: Seminário de Multimídia

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

Page 14: Seminário de Multimídia

OpenCV - Funcionalidades

Análise estrutural

Calibragem de câmera

Análise de movimento (tracking)

Reconhecimento de objetos

GUI Básica

Rotulagem de imagem

Page 15: Seminário de Multimídia

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)

Page 16: Seminário de Multimídia

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

Page 17: Seminário de Multimídia

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

Page 18: Seminário de Multimídia

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 (?)

Page 19: Seminário de Multimídia

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

Page 20: Seminário de Multimídia

OpenCV

SwitcherSwitcher

OpenCV(C++ classes, High-level C functions)OpenCV(C++ classes, High-level C functions)

Open source

Open source

Open sourceOpen source

Open source

IPPIPP (Optimized low level functions)(Optimized low level functions)

DShow filters, Demo apps, Scripting Environment

DShow filters, Demo apps, Scripting Environment

Open source

Low level C-functionsLow level C-functions

Page 21: Seminário de Multimídia

OpenCV

Alguns módulos: Detector de bordas

Page 22: Seminário de Multimídia

OpenCV

Alguns módulos: Detector de Faces

Cadeias de Markov

…1

n

Page 23: Seminário de Multimídia

OpenCV

Alguns módulos: Detector de Faces

Cadeias de Markov

i

Page 24: Seminário de Multimídia

OpenCV

Alguns módulos: Detector de Contornos

Page 25: Seminário de Multimídia

OpenCV

Alguns módulos: Detector de Objetos e orientação 3D

Page 26: Seminário de Multimídia

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

Page 27: Seminário de Multimídia

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

Page 28: Seminário de Multimídia

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

Page 29: Seminário de Multimídia

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

Page 30: Seminário de Multimídia

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

Page 31: Seminário de Multimídia

Processamento da imagem

Page 32: Seminário de Multimídia

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

Page 33: Seminário de Multimídia

Fluxo de aplicação multi-toque

Page 34: Seminário de Multimídia

Suporte para aplicações

Muitas plataformas para desenvolvimento de aplicações multi-toque: Adobe Flash Java vvvv C++

Pode interagir utilizando o protocolo TUIO

Page 35: Seminário de Multimídia

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

Page 36: Seminário de Multimídia

Exemplo

Lux framework: framework para design de experiencia, visualização de informação

Page 37: Seminário de Multimídia

reacTable

Um novo instrumento musical eletrônico e acústico

Multiusuário

IU através de uma mesa tangível

Page 38: Seminário de Multimídia

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)

Page 39: Seminário de Multimídia

reacTable

Page 40: Seminário de Multimídia

reacTable

Page 41: Seminário de Multimídia

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.

Page 42: Seminário de Multimídia

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

Page 43: Seminário de Multimídia

reacTable

Como ele processa a informação captada pela câmera? ReacTIVision

Page 44: Seminário de Multimídia

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

Page 45: Seminário de Multimídia

Como funciona?

Rastreia marcadores especialmente desenvolvidos em tempo real

Também rastreia os dedos

Page 46: Seminário de Multimídia

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

Page 47: Seminário de Multimídia

Como funciona?

Na segmentação, pequenos círculos podem ser recuperados

Usa-se um algoritmo complementar para diferenciar os dedos de distorções

Page 48: Seminário de Multimídia

Exemplos

Page 49: Seminário de Multimídia

Exemplos

Page 50: Seminário de Multimídia

Exemplos

Projeto semelhante Jam-O-Drum

Page 51: Seminário de Multimídia

Exemplos

Cantora Bjork

Page 52: Seminário de Multimídia

Dúvidas