![Page 1: EHCI - Interação com computador através de webcam](https://reader033.vdocuments.site/reader033/viewer/2022051513/54665f41b4af9f623f8b535c/html5/thumbnails/1.jpg)
Daniel Lélis Baggio
Interação com o Computador Através deVisão Computacional e Webcam:
utilizando a biblioteca EHCI em Python
![Page 2: EHCI - Interação com computador através de webcam](https://reader033.vdocuments.site/reader033/viewer/2022051513/54665f41b4af9f623f8b535c/html5/thumbnails/2.jpg)
Daniel Lélis Baggio | [email protected] | EHCI Python Bindings | 2
Roteiro
Introdução – O que é a EHCI?
Como funcionam os principais algoritmos?
API e integração com Python
EHCI & Panda3D
Aplicações
Instruções para download, instalação e documentação
![Page 3: EHCI - Interação com computador através de webcam](https://reader033.vdocuments.site/reader033/viewer/2022051513/54665f41b4af9f623f8b535c/html5/thumbnails/3.jpg)
Daniel Lélis Baggio | [email protected] | EHCI Python Bindings | 3
Roteiro
Introdução – O que é a EHCI?
Como funcionam os principais algoritmos?
API e integração com Python
EHCI & Panda3D
Aplicações
Instruções para download, instalação e documentação
![Page 4: EHCI - Interação com computador através de webcam](https://reader033.vdocuments.site/reader033/viewer/2022051513/54665f41b4af9f623f8b535c/html5/thumbnails/4.jpg)
Daniel Lélis Baggio | [email protected] | EHCI Python Bindings | 4
Introdução – O que é a EHCI?
• Biblioteca open source para obtenção de entrada do usuário através da análise de imagens obtidas pela webcam
• Implementada em C++
• Desenvolvida no Google Summer of Code '08 com o Natural User Interface Group
• Obtenção de posicionamento e rotação da cabeça e mão do usuário sem o uso de qualquer acessório
![Page 5: EHCI - Interação com computador através de webcam](https://reader033.vdocuments.site/reader033/viewer/2022051513/54665f41b4af9f623f8b535c/html5/thumbnails/5.jpg)
Daniel Lélis Baggio | [email protected] | EHCI Python Bindings | 5
Roteiro
Introdução – O que é a EHCI?
Como funcionam os principais algoritmos?
API e integração com Python
EHCI & Panda3D
Aplicações
Instruções para download, instalação e documentação
![Page 6: EHCI - Interação com computador através de webcam](https://reader033.vdocuments.site/reader033/viewer/2022051513/54665f41b4af9f623f8b535c/html5/thumbnails/6.jpg)
Daniel Lélis Baggio | [email protected] | EHCI Python Bindings | 6
Algoritmos:“Stable Real-Time 3D Tracking using Online and Offline Information” L. Vacchetti, V. Lepetit and P. Fua
Solução em tempo real para fazer “tracking” de objetos 3d rígidos usando uma única câmera
– Inicialização: posição conhecida
• Detecção de feições naturais
– Estimativa dos graus de liberdade através de POSIT
– Tracking através de point matching
![Page 7: EHCI - Interação com computador através de webcam](https://reader033.vdocuments.site/reader033/viewer/2022051513/54665f41b4af9f623f8b535c/html5/thumbnails/7.jpg)
Daniel Lélis Baggio | [email protected] | EHCI Python Bindings | 7
Algoritmo de Detecção de Faces Viola-Jones– Utilizado na inicialização do tracking– Classificador em cascata– Treinado através de Adaptive Boosting– Utilizando features do tipo Haar
Algoritmos:“Rapid Object Detection Using a Boosted Cascade of Simple Features” Viola, P; Jones, M.
![Page 8: EHCI - Interação com computador através de webcam](https://reader033.vdocuments.site/reader033/viewer/2022051513/54665f41b4af9f623f8b535c/html5/thumbnails/8.jpg)
Daniel Lélis Baggio | [email protected] | EHCI Python Bindings | 8
Features Retângulos Fáceis de serem calculados
– Áreas brancas são subtraídas das áreas pretas– Integral Image – Representação especial que torna a
extração da feature mais rápida
![Page 9: EHCI - Interação com computador através de webcam](https://reader033.vdocuments.site/reader033/viewer/2022051513/54665f41b4af9f623f8b535c/html5/thumbnails/9.jpg)
Daniel Lélis Baggio | [email protected] | EHCI Python Bindings | 9
Principais features identificadas
![Page 10: EHCI - Interação com computador através de webcam](https://reader033.vdocuments.site/reader033/viewer/2022051513/54665f41b4af9f623f8b535c/html5/thumbnails/10.jpg)
Daniel Lélis Baggio | [email protected] | EHCI Python Bindings | 10
Principais features identificadas
Classificador extremamente rápido (60 microinstruções)
Ajustado para detectar 100% das faces, com 40% de falsos positivos no primeiro estágio
![Page 11: EHCI - Interação com computador através de webcam](https://reader033.vdocuments.site/reader033/viewer/2022051513/54665f41b4af9f623f8b535c/html5/thumbnails/11.jpg)
Daniel Lélis Baggio | [email protected] | EHCI Python Bindings | 11
Algoritmos:“Pyramidal Implementation of the Lucas Kanade Feature Tracker Description of the algorithm” Jean-Yves Bouguet Tracking
![Page 13: EHCI - Interação com computador através de webcam](https://reader033.vdocuments.site/reader033/viewer/2022051513/54665f41b4af9f623f8b535c/html5/thumbnails/13.jpg)
Daniel Lélis Baggio | [email protected] | EHCI Python Bindings | 13
Algoritmos:POSIT - “Model-based object pose in 25 lines of code” D. DeMenthon and L. S. Davis
Solução iterativa para o problema de encontrar o vetor de translação e a matriz de rotação (6 graus de liberdade)
Supor inicialmente que todos os pontos têm a mesma profundidade
Solução de sistema linear super-determinado. Decomposição SVD e cálculo de pseudo-inversa
![Page 14: EHCI - Interação com computador através de webcam](https://reader033.vdocuments.site/reader033/viewer/2022051513/54665f41b4af9f623f8b535c/html5/thumbnails/14.jpg)
Daniel Lélis Baggio | [email protected] | EHCI Python Bindings | 14
Obtenção da matriz de rotação e do vetor de translação Correlações entre os pontos do objeto e suas
respectivas projeções devem ser conhecidas!
![Page 15: EHCI - Interação com computador através de webcam](https://reader033.vdocuments.site/reader033/viewer/2022051513/54665f41b4af9f623f8b535c/html5/thumbnails/15.jpg)
Daniel Lélis Baggio | [email protected] | EHCI Python Bindings | 15
Obtenção da matriz de rotação e do vetor de translação
![Page 17: EHCI - Interação com computador através de webcam](https://reader033.vdocuments.site/reader033/viewer/2022051513/54665f41b4af9f623f8b535c/html5/thumbnails/17.jpg)
Daniel Lélis Baggio | [email protected] | EHCI Python Bindings | 17
Roteiro
Introdução – O que é a EHCI?
Como funcionam os principais algoritmos?
API e integração com Python
EHCI & Panda3D
Aplicações
Instruções para download, instalação e documentação
![Page 18: EHCI - Interação com computador através de webcam](https://reader033.vdocuments.site/reader033/viewer/2022051513/54665f41b4af9f623f8b535c/html5/thumbnails/18.jpg)
Daniel Lélis Baggio | [email protected] | EHCI Python Bindings | 18
PyEHCI = EHCI + SWIG
SWIG: Simplified Wrapper and Interface Generator (1996)
![Page 19: EHCI - Interação com computador através de webcam](https://reader033.vdocuments.site/reader033/viewer/2022051513/54665f41b4af9f623f8b535c/html5/thumbnails/19.jpg)
Daniel Lélis Baggio | [email protected] | EHCI Python Bindings | 19
EHCI API
import ehci ehci.ehciInit()
– Criação de uma janela para visualizar aquisição da webcam e processamento da imagem
ehci.ehciLoop(modo , estimativaInicial)
– Obtenção do quadro e processamento
– Modos:
• 0x0001 – Detecção 2D da face
• 0x0011 – Detecção 6D da face
• 0x0100 – Detecção 2D das mãos
• 0x1100 – Detecção 6D das mãos
![Page 20: EHCI - Interação com computador através de webcam](https://reader033.vdocuments.site/reader033/viewer/2022051513/54665f41b4af9f623f8b535c/html5/thumbnails/20.jpg)
Daniel Lélis Baggio | [email protected] | EHCI Python Bindings | 20
EHCI - API
ehci.getHeadBounds()
– Retorna a posição x, y (em pixels) do objeto processado assim como sua largura e altura
6 linhas de código vs 128 linhas Python OpenCV
![Page 21: EHCI - Interação com computador através de webcam](https://reader033.vdocuments.site/reader033/viewer/2022051513/54665f41b4af9f623f8b535c/html5/thumbnails/21.jpg)
Daniel Lélis Baggio | [email protected] | EHCI Python Bindings | 21
EHCI - API
ehci.getGlPositMatrix()
– Retorna a matriz de rotação e o vetor de translação do objeto processado
![Page 22: EHCI - Interação com computador através de webcam](https://reader033.vdocuments.site/reader033/viewer/2022051513/54665f41b4af9f623f8b535c/html5/thumbnails/22.jpg)
Daniel Lélis Baggio | [email protected] | EHCI Python Bindings | 22
EHCI - API
simples3d.py - ehci.getGlPositMatrix()[ 0.990, -0.026, 0.138, -44.377]
[ 0.183, -0.981, -0.058, -18.170]
[ 0.137, 0.083, -0.967, 210.353]
[ 0.000, 0.000, 0.000, 1.000]
[ A0, A4, A8, A12 ]
[ A1, A5, A9, A13 ]
[ A2, A6, A10, A14 ]
[ A3, A7, A11, A15 ]
![Page 24: EHCI - Interação com computador através de webcam](https://reader033.vdocuments.site/reader033/viewer/2022051513/54665f41b4af9f623f8b535c/html5/thumbnails/24.jpg)
Daniel Lélis Baggio | [email protected] | EHCI Python Bindings | 24
Hand-tracking
Viola-Jones treinado com as mãos
– novo .xml
Modelo 3D das mãos
– novo modelo
Mesmo algoritmo
![Page 25: EHCI - Interação com computador através de webcam](https://reader033.vdocuments.site/reader033/viewer/2022051513/54665f41b4af9f623f8b535c/html5/thumbnails/25.jpg)
Daniel Lélis Baggio | [email protected] | EHCI Python Bindings | 25
Roteiro
Introdução – O que é a EHCI?
Como funcionam os principais algoritmos?
API e integração com Python
EHCI & Panda3D
Aplicações
Instruções para download, instalação e documentação
![Page 26: EHCI - Interação com computador através de webcam](https://reader033.vdocuments.site/reader033/viewer/2022051513/54665f41b4af9f623f8b535c/html5/thumbnails/26.jpg)
Daniel Lélis Baggio | [email protected] | EHCI Python Bindings | 26
Aplicações
Head-tracking
Augmented Reality
Efeitos especiais em vídeos
Interfaceamento com as mãos: plugins Firefox, Blender
![Page 27: EHCI - Interação com computador através de webcam](https://reader033.vdocuments.site/reader033/viewer/2022051513/54665f41b4af9f623f8b535c/html5/thumbnails/27.jpg)
Daniel Lélis Baggio | [email protected] | EHCI Python Bindings | 27
Roteiro
Introdução – O que é a EHCI?
Como funcionam os principais algoritmos?
API e integração com Python
EHCI & Panda3D
Aplicações
Instruções para download, instalação e documentação
![Page 28: EHCI - Interação com computador através de webcam](https://reader033.vdocuments.site/reader033/viewer/2022051513/54665f41b4af9f623f8b535c/html5/thumbnails/28.jpg)
Daniel Lélis Baggio | [email protected] | EHCI Python Bindings | 28
EHCI – Downloadhttp://code.google.com/p/ehci/
![Page 29: EHCI - Interação com computador através de webcam](https://reader033.vdocuments.site/reader033/viewer/2022051513/54665f41b4af9f623f8b535c/html5/thumbnails/29.jpg)
Daniel Lélis Baggio | [email protected] | EHCI Python Bindings | 29
Referências
Rainer Lienhart and Jochen Maydt. An Extended Set of Haar-like Features for Rapid Object Detection. Submitted to ICIP2002
Viola, P; Jones, M. Rapid Object Detection Using a Boosted Cascade of Simple Features – (2004)
Alexander Kuranov, Rainer Lienhart, and Vadim Pisarevsky. An Empirical Analysis of Boosting Algorithms for Rapid Objects With an Extended Set of Haar-like Features. Intel Technical Report MRL-TR-July02-01, 2002
![Page 30: EHCI - Interação com computador através de webcam](https://reader033.vdocuments.site/reader033/viewer/2022051513/54665f41b4af9f623f8b535c/html5/thumbnails/30.jpg)
Daniel Lélis Baggio | [email protected] | EHCI Python Bindings | 30
Referências
D. DeMenthon and L. S. Davis “Model-based object pose in 25 lines of code”
Jean-Yves Bouguet. “Pyramidal Implementation of the Lucas Kanade Feature Tracker Description of the algorithm”
![Page 32: EHCI - Interação com computador através de webcam](https://reader033.vdocuments.site/reader033/viewer/2022051513/54665f41b4af9f623f8b535c/html5/thumbnails/32.jpg)
Daniel Lélis Baggio | [email protected] | EHCI Python Bindings | 32
EHCI – Dúvidas?
http://code.google.com/p/ehci