tracking js

61
Maira Bello tracking.js uma nova dimensão

Upload: maira-bello

Post on 05-Dec-2014

1.426 views

Category:

Technology


6 download

DESCRIPTION

Meet tracking.js, an open source computer vision library for JavaScript that allows you to easily build new interactions for the web. Conheça o tracking.js, uma biblioteca de visão computacional open source para JavaScript que facilita a criação de novas interações na web.

TRANSCRIPT

Page 1: Tracking js

Maira Bello

tracking.jsuma nova dimensão

Page 2: Tracking js

Maira Bello

Page 3: Tracking js
Page 4: Tracking js

discover.liferay.com/frontinbh

Page 5: Tracking js

Visão computacional

Page 6: Tracking js

Detecção de faces

Page 7: Tracking js

Reconhecimento de faces

Page 8: Tracking js

Robôs autônomos

Page 9: Tracking js

Realidade virtual

Page 10: Tracking js

Realidade aumentada

Page 11: Tracking js

Como fazer isso?

Page 12: Tracking js

OpenCV

Page 13: Tracking js

ARToolkit

Page 14: Tracking js

Como fazer isso no browser?

Page 15: Tracking js

Acessar a câmera

#1

Page 16: Tracking js

Acesso à câmera

navigator.getUserMedia({ video: true}, onSuccess, onFail);

Page 17: Tracking js

Reproduzir o vídeo

#2

Page 18: Tracking js

<video>

Page 19: Tracking js

Callback de sucesso

function onSuccess(stream) { var video = document.querySelector('video'); video.src = window.URL.createObjectURL(stream); video.onloadedmetadata = function(e) { // Pronto };}

Page 20: Tracking js

Obter matriz de pixels

#3

Page 21: Tracking js

<canvas>

Page 22: Tracking js

Algoritmos de tracking

#4

Page 23: Tracking js

Resumo

Permissão do usuário

<video>

Acessar a câmera

Reproduzir vídeo

Algoritmos de tracking

Obter matriz de pixels

<canvas> Resultado

Page 24: Tracking js

tracking.js

Page 25: Tracking js

JavaScript

Eduardo Lundgren

Page 26: Tracking js

Realidade aumentada

Java

Page 27: Tracking js

Time

Zeno RochaEduardo Lundgren

Java

Page 28: Tracking js
Page 29: Tracking js

Maira Bello

Pablo Carvalho

Zeno Rocha

Time

Eduardo Lundgren

Java

Page 30: Tracking js

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

Page 31: Tracking js

Trackers

Page 32: Tracking js

Color Tracker

Page 33: Tracking js
Page 34: Tracking js

Demo

Page 35: Tracking js

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 });});

Page 36: Tracking js

Object Tracker

Page 37: Tracking js
Page 38: Tracking js

Demo

Page 39: Tracking js

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 });});

Page 40: Tracking js

Custom Tracker

Page 41: Tracking js

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 });};

Page 42: Tracking js

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 });});

Page 43: Tracking js

Utilitários

Page 44: Tracking js

Fast

Page 45: Tracking js
Page 46: Tracking js

Brief

Page 47: Tracking js
Page 48: Tracking js

Lições aprendidas

Page 49: Tracking js

41ms por frame

24 frames por

segundo

Tempo real

Page 50: Tracking js
Page 51: Tracking js

Complexidade do algoritmo

Page 52: Tracking js

Int32Array

Uint16Array

Float64Array

Uint8ClampedArray

Arrays tipados

Page 53: Tracking js

jsperf.com/tracking-js-arrays

Page 54: Tracking js

jsperf.com/tracking-js-arithmetic

Page 55: Tracking js

Demo

Page 56: Tracking js

Web Components

</>

Page 57: Tracking js

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?

Page 58: Tracking js

<video is="video-color-tracking" target="magenta" camera="true" ontrack="onResult"></video>

Usando Web Components…

Page 59: Tracking js

Documentação

Page 60: Tracking js

trackingjs.com

Page 61: Tracking js

[email protected]

trackingjs.com