seminário de multimídia

52
Seminário de Multimídia Aplicações que utilizam o OpenCV {avap,bcs2,gamsd,jspff,jblj,rar3}@cin.uf pe.br

Upload: ziv

Post on 19-Jan-2016

30 views

Category:

Documents


0 download

DESCRIPTION

Seminário de Multimídia. Aplicações que utilizam o OpenCV {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 - PowerPoint PPT Presentation

TRANSCRIPT

Seminário de Multimídia

Aplicações que utilizam o OpenCV

{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

Transformações com objetivo específico

Dados de entrada podem conter informação contextual

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

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

OpenCV

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

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

OpenCV

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

Intel Russia: gerenciou, codificou, otimizou

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

OpenCV - Objetivos

Crescimento da área de CV

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

Mais lucro para a Intel

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

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

OpenCV - Funcionalidades

Análise estrutural

Calibragem de câmera

Análise de movimento (tracking)

Reconhecimento de objetos

GUI Básica

Rotulagem de imagem

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)

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

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

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

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

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

OpenCV

Alguns módulos: Detector de bordas

OpenCV

Alguns módulos: Detector de Faces

Cadeias de Markov

…1

n

OpenCV

Alguns módulos: Detector de Faces

Cadeias de Markov

i

OpenCV

Alguns módulos: Detector de Contornos

OpenCV

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

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

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

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

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

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

Processamento da imagem

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

Fluxo de aplicação multi-toque

Suporte para aplicações

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

Pode interagir utilizando o protocolo TUIO

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

Exemplo

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

reacTable

Um novo instrumento musical eletrônico e acústico

Multiusuário

IU através de uma mesa tangível

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)

reacTable

reacTable

reacTable

Atualmente fornece dois modelos para venda 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.

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

reacTable

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

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

Como funciona?

Rastreia marcadores especialmente desenvolvidos em tempo real

Também rastreia os dedos

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

Como funciona?

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

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

Exemplos

Vídeo 1 - reacTable

Exemplos

Vídeo 2 - reacTable

Exemplos

Projeto semelhante Jam-O-Drum

Exemplos

Cantora Bjork - reacTable

Dúvidas