SlideShare uma empresa Scribd logo
Maira Bello
tracking.js
uma nova dimensão
Maira Bello
Tracking js
discover.liferay.com/frontinbh
Visão computacional
Detecção de faces
Reconhecimento de faces
Robôs autônomos
Realidade virtual
Realidade aumentada
Como fazer isso?
OpenCV
ARToolkit
Como fazer isso
no browser?
Acessar a câmera
#1
Acesso à câmera
navigator.getUserMedia({	
video: true	
}, onSuccess, onFail);
Reproduzir o vídeo
#2
<video>
Callback de sucesso
function onSuccess(stream) {	
var video = document.querySelector('video');	
video.src = window.URL.createObjectURL(stream);	
video.onloadedmetadata = function(e) {	
// Pronto	
};	
}
Obter matriz de pixels
#3
<canvas>
Algoritmos de tracking
#4
Resumo
Permissão do usuário
<video>
Acessar a câmera
Reproduzir vídeo
Algoritmos de
tracking
Obter matriz
de pixels
<canvas> Resultado
tracking.js
JavaScript
Eduardo
Lundgren
Realidade
aumentada
Java
Time
Zeno RochaEduardo
Lundgren
Java
Tracking js
Maira Bello
Pablo Carvalho
Zeno Rocha
Time
Eduardo
Lundgren
Java
100% JavaScript!
Open Source
Sem dependências de
outras bibliotecas
tracking.js
Algoritmos implementados
Facilmente extensível
API simples e intuitiva
Alta performance
Testes de unidade e de
performance
Setup automático ~ 7 Kb
Trackers
Color Tracker
Tracking js
Demo
var tracker = new tracking.ColorTracker(‘magenta’);	
!
tracking.track('#video', tracker, {	
camera: true	
});	
!
tracker.on('track', function(event) {	
event.data.forEach(function(rect) {	
// Seu código aqui	
});	
});
Object Tracker
Tracking js
Demo
var tracker = new tracking.ObjectTracker(‘face’);	
!
tracking.track('#video', tracker, {	
camera: true	
});	
!
tracker.on('track', function(event) {	
event.data.forEach(function(rect) {	
// Seu código aqui	
});	
});
Custom Tracker
var MyTracker = function() {	
MyTracker.base(this, 'constructor');	
};	
!
tracking.inherits(MyTracker, tracking.Tracker);	
!
MyTracker.prototype.track = function(pixels, width, height) {	
// Seu código aqui	
!
this.emit('track', {	
// Seu código aqui	
});	
};
var tracker = new tracking.MyTracker();	
!
tracking.track('#video', tracker, {	
camera: true	
});	
!
tracker.on('track', function(event) {	
event.data.forEach(function(rect) {	
// Seu código aqui	
});	
});
Utilitários
Fast
Tracking js
Brief
Tracking js
Lições aprendidas
41ms por
frame
24 frames
por
segundo
Tempo real
Tracking js
Complexidade do algoritmo
Int32Array
Uint16Array
Float64Array
Uint8ClampedArray
Arrays
tipados
jsperf.com/tracking-js-arrays
jsperf.com/tracking-js-arithmetic
Demo
Web Components
</>
var tracker = new tracking.ColorTracker(‘magenta’);	
!
tracking.track('#video', tracker, {	
camera: true	
});	
!
tracker.on('track', function(event) {	
event.data.forEach(function(rect) {	
// Seu código aqui	
});	
});	
Lembra?
<video is="video-color-tracking"	
target="magenta"	
camera="true"	
ontrack="onResult">	
</video>	
Usando Web Components…
Documentação
trackingjs.com
Obrigada!
maira.araujo@liferay.com
trackingjs.com

Mais conteúdo relacionado

PDF
C# capturando e salvando imagens da web cam
ODP
Desenvolvimento Java
PPTX
Simples pelo simples google android com robo guice
ODP
Java - Learn Once Use Anywhere
PPTX
Programas Gratuitos para Vídeo Marketing
PDF
Curso de ReactJS
PDF
JavaCE Conference 2012: ExtJS 4 + VRaptor
PDF
Vuejs
C# capturando e salvando imagens da web cam
Desenvolvimento Java
Simples pelo simples google android com robo guice
Java - Learn Once Use Anywhere
Programas Gratuitos para Vídeo Marketing
Curso de ReactJS
JavaCE Conference 2012: ExtJS 4 + VRaptor
Vuejs

Semelhante a Tracking js (20)

PDF
Tracking.js
PPT
Introdução à visão computacional utilizando software livre
PDF
Demoiselle Behave - Parte 2
PDF
Congresso TI 2015: Introducao ao Phonegap (Cordova)
PDF
Projetando Mobile 2 - PhoneGap
PDF
Seminário sd android_exemplos
PDF
HTML5 Sensitivo
ODP
introdução a visão compuutacional com opencv e python
PDF
Detecção de Movimento - Criação de instrumento musical
DOC
Material screenr
PPTX
Desenvolvimento Mobile com Visual Studio 2008, por onde começar?
PPTX
DevOps Summit Brasil - O que não te contaram sobre Agile Testing
PDF
Chromecast na Qcon RJ
PPT
Desenvolvimento Do jQuery Light Box Plugin ao vivo
PDF
MobileConf 2013: PhoneGap
PDF
Watch face gdg jf
PPTX
AULA 06 - CRIAÇÃO E EDIÇÃO DE VÍDEOS - IFSC.pptx
PDF
Android things, machine learning e maquinas de doces
PPTX
TDC2016POA | Trilha Web - Realidade Virtual com WebVR
PDF
Interfacestangiveiscomputacaovisual
Tracking.js
Introdução à visão computacional utilizando software livre
Demoiselle Behave - Parte 2
Congresso TI 2015: Introducao ao Phonegap (Cordova)
Projetando Mobile 2 - PhoneGap
Seminário sd android_exemplos
HTML5 Sensitivo
introdução a visão compuutacional com opencv e python
Detecção de Movimento - Criação de instrumento musical
Material screenr
Desenvolvimento Mobile com Visual Studio 2008, por onde começar?
DevOps Summit Brasil - O que não te contaram sobre Agile Testing
Chromecast na Qcon RJ
Desenvolvimento Do jQuery Light Box Plugin ao vivo
MobileConf 2013: PhoneGap
Watch face gdg jf
AULA 06 - CRIAÇÃO E EDIÇÃO DE VÍDEOS - IFSC.pptx
Android things, machine learning e maquinas de doces
TDC2016POA | Trilha Web - Realidade Virtual com WebVR
Interfacestangiveiscomputacaovisual
Anúncio

Mais de Maira Bello (7)

PDF
Edge middleware acelerando o ecommerce.pdf
PDF
ASTs - o poder nas suas mãos
PDF
HackaPET 2019: React
PDF
HackaPET 2019: HTML/CSS
PDF
Escalando graphql
PDF
Optimizing Web Performance - A personal experience
PDF
GraphQL: Como começar a usar no seu projeto AGORA
Edge middleware acelerando o ecommerce.pdf
ASTs - o poder nas suas mãos
HackaPET 2019: React
HackaPET 2019: HTML/CSS
Escalando graphql
Optimizing Web Performance - A personal experience
GraphQL: Como começar a usar no seu projeto AGORA
Anúncio

Último (16)

PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PDF
Processos na gestão de transportes, TM100 Col18
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PDF
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PPTX
Arquitetura de computadores - Memórias Secundárias
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PDF
COBITxITIL-Entenda as diferença em uso governança TI
PPTX
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
Custos e liquidação no SAP Transportation Management, TM130 Col18
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
Processos na gestão de transportes, TM100 Col18
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
Arquitetura de computadores - Memórias Secundárias
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
COBITxITIL-Entenda as diferença em uso governança TI
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14

Tracking js