objetos com kinect reconhecimento dealemart/mac5832/apresentacao.pdf · 2012-11-29 · objetos com...

57
Reconhecimento de objetos com Kinect MAC5832 - Profª Nina Alexandre Martins [email protected] 28 de Outubro de 2012

Upload: others

Post on 15-Aug-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: objetos com Kinect Reconhecimento dealemart/mac5832/apresentacao.pdf · 2012-11-29 · objetos com Kinect MAC5832 - Profª Nina Alexandre Martins alemart@ime.usp.br 28 de Outubro

Reconhecimento de objetos com Kinect

MAC5832 - Profª NinaAlexandre Martins

[email protected]

28 de Outubro de 2012

Page 2: objetos com Kinect Reconhecimento dealemart/mac5832/apresentacao.pdf · 2012-11-29 · objetos com Kinect MAC5832 - Profª Nina Alexandre Martins alemart@ime.usp.br 28 de Outubro

Classificar objetos conhecidos colocados

sobre uma mesa

Page 3: objetos com Kinect Reconhecimento dealemart/mac5832/apresentacao.pdf · 2012-11-29 · objetos com Kinect MAC5832 - Profª Nina Alexandre Martins alemart@ime.usp.br 28 de Outubro

1. Aquisição dos dados

2. Mudança de representação

3. Segmentação dos objetos

4. Classificaçãoi. formaii. cor

Roteiro

Page 4: objetos com Kinect Reconhecimento dealemart/mac5832/apresentacao.pdf · 2012-11-29 · objetos com Kinect MAC5832 - Profª Nina Alexandre Martins alemart@ime.usp.br 28 de Outubro

Aquisição dos dados

Microsoft Kinect (agradecimentos ao hitoshi :)

Câmera RGB - 640x480 @ 30HzSensor de profundidade - 640x480 @ 30Hz

Autores: James Pfaff, Alphathon (Wikipedia). CC-BY-SA 3.0

Page 5: objetos com Kinect Reconhecimento dealemart/mac5832/apresentacao.pdf · 2012-11-29 · objetos com Kinect MAC5832 - Profª Nina Alexandre Martins alemart@ime.usp.br 28 de Outubro

Aquisição dos dados

Page 6: objetos com Kinect Reconhecimento dealemart/mac5832/apresentacao.pdf · 2012-11-29 · objetos com Kinect MAC5832 - Profª Nina Alexandre Martins alemart@ime.usp.br 28 de Outubro

Mudança de representação

Quero uma nuvem de pontos 3D, colorida.

Page 7: objetos com Kinect Reconhecimento dealemart/mac5832/apresentacao.pdf · 2012-11-29 · objetos com Kinect MAC5832 - Profª Nina Alexandre Martins alemart@ime.usp.br 28 de Outubro

Mudança de representação

Modelo: câmera de furo

1) Dado (u, v) na depth image, obtenha a posição (x, y, z) do pontoz = 1 / (depth(u, v) * dc1 + dc2)y = z * (u - px_d) / fx_dx = z * (v - py_d) / fy_d

2) Obtenha a cor (r, g, b) correspondente a (x, y, z)[x' y' z']^t = R [x y z]^t + Tu' = (x' * fx_rgb) / z' + px_rgbv' = (y' * fy_rgb) / z' + py_rgbr = red(u', v'), g = green(u', v'), b = blue(u', v')

Fonte: [1]

Page 8: objetos com Kinect Reconhecimento dealemart/mac5832/apresentacao.pdf · 2012-11-29 · objetos com Kinect MAC5832 - Profª Nina Alexandre Martins alemart@ime.usp.br 28 de Outubro

Mudança de representação

Já implementado na Point Cloud Library :)

pointclouds.org

Page 9: objetos com Kinect Reconhecimento dealemart/mac5832/apresentacao.pdf · 2012-11-29 · objetos com Kinect MAC5832 - Profª Nina Alexandre Martins alemart@ime.usp.br 28 de Outubro

Segmentação dos objetos

...que estão dispostos sobre a mesa

Page 10: objetos com Kinect Reconhecimento dealemart/mac5832/apresentacao.pdf · 2012-11-29 · objetos com Kinect MAC5832 - Profª Nina Alexandre Martins alemart@ime.usp.br 28 de Outubro

Segmentação dos objetos

remova pontos cuja coordenada z é >= limiar

Page 11: objetos com Kinect Reconhecimento dealemart/mac5832/apresentacao.pdf · 2012-11-29 · objetos com Kinect MAC5832 - Profª Nina Alexandre Martins alemart@ime.usp.br 28 de Outubro

Segmentação dos objetos

"downsample"

Page 12: objetos com Kinect Reconhecimento dealemart/mac5832/apresentacao.pdf · 2012-11-29 · objetos com Kinect MAC5832 - Profª Nina Alexandre Martins alemart@ime.usp.br 28 de Outubro

Segmentação dos objetos

remova a mesa (???)

Page 13: objetos com Kinect Reconhecimento dealemart/mac5832/apresentacao.pdf · 2012-11-29 · objetos com Kinect MAC5832 - Profª Nina Alexandre Martins alemart@ime.usp.br 28 de Outubro

Segmentação dos objetos

RANdom SAmple Consensus (RANSAC)

Autor: Msm (Wikipedia). CC-BY-SA 3.0

Page 14: objetos com Kinect Reconhecimento dealemart/mac5832/apresentacao.pdf · 2012-11-29 · objetos com Kinect MAC5832 - Profª Nina Alexandre Martins alemart@ime.usp.br 28 de Outubro

Segmentação dos objetos

remova a mesa

Page 15: objetos com Kinect Reconhecimento dealemart/mac5832/apresentacao.pdf · 2012-11-29 · objetos com Kinect MAC5832 - Profª Nina Alexandre Martins alemart@ime.usp.br 28 de Outubro

Segmentação dos objetos

elimine o ruído restante...

Page 16: objetos com Kinect Reconhecimento dealemart/mac5832/apresentacao.pdf · 2012-11-29 · objetos com Kinect MAC5832 - Profª Nina Alexandre Martins alemart@ime.usp.br 28 de Outubro

Segmentação dos objetos

e extraia os clusters (floodfill)

Page 17: objetos com Kinect Reconhecimento dealemart/mac5832/apresentacao.pdf · 2012-11-29 · objetos com Kinect MAC5832 - Profª Nina Alexandre Martins alemart@ime.usp.br 28 de Outubro

Classificação

Classifique os clusters por forma e por cor

Classif. 1: forma

Classif. 2: cor

Classif. 3:objeto SAÍDA

Page 18: objetos com Kinect Reconhecimento dealemart/mac5832/apresentacao.pdf · 2012-11-29 · objetos com Kinect MAC5832 - Profª Nina Alexandre Martins alemart@ime.usp.br 28 de Outubro

Classificação

Classifique os clusters por forma e por cor

Classif. 1: forma

Classif. 2: cor

Classif. 3:objeto SAÍDA

Page 19: objetos com Kinect Reconhecimento dealemart/mac5832/apresentacao.pdf · 2012-11-29 · objetos com Kinect MAC5832 - Profª Nina Alexandre Martins alemart@ime.usp.br 28 de Outubro

Classificação (forma)

Dado um cluster, quero saber sua forma

Conjunto de classes:{ maçã, banana, caixa, tigela }

Preciso:1) achar um vetor de características2) escolher um classificador3) treiná-lo e testá-lo...

Page 20: objetos com Kinect Reconhecimento dealemart/mac5832/apresentacao.pdf · 2012-11-29 · objetos com Kinect MAC5832 - Profª Nina Alexandre Martins alemart@ime.usp.br 28 de Outubro

Classificação (forma)

Viewpoint Feature Histogram (VFH) é um descritor para nuvens de pontos 3D que codifica geometria e ponto de vista [2]. VFH é rápido e invariante à escala.

É fixado um ponto de vista (ex: origem)

Page 21: objetos com Kinect Reconhecimento dealemart/mac5832/apresentacao.pdf · 2012-11-29 · objetos com Kinect MAC5832 - Profª Nina Alexandre Martins alemart@ime.usp.br 28 de Outubro

Classificação (forma)

Dado um ponto p e sua k-vizinhança { pi }, determine a normal à superfície em p.

Use PCA para determinar a direção:

Dado o ponto de vista, vp, ache o sentido:

Fonte: http://pointclouds.org/documentation/tutorials/normal_estimation.php

Page 22: objetos com Kinect Reconhecimento dealemart/mac5832/apresentacao.pdf · 2012-11-29 · objetos com Kinect MAC5832 - Profª Nina Alexandre Martins alemart@ime.usp.br 28 de Outubro

Classificação (forma)

Dados dois pontos ps e pt, definimos seus desvios angulares <α,Φ,θ> por:

onde:

Fonte: http://pointclouds.org/documentation/tutorials/pfh_estimation.php

Page 23: objetos com Kinect Reconhecimento dealemart/mac5832/apresentacao.pdf · 2012-11-29 · objetos com Kinect MAC5832 - Profª Nina Alexandre Martins alemart@ime.usp.br 28 de Outubro

Classificação (forma)

Seja c o centróide do cluster.Para cada pi, calculamos três componentes:

1) viewpoint componentβi = ni . (vp - c) / || (vp - c) ||

2) distância normalizada entre pi e c

3) desvios angulares entre pi e cFonte: [2]

Page 24: objetos com Kinect Reconhecimento dealemart/mac5832/apresentacao.pdf · 2012-11-29 · objetos com Kinect MAC5832 - Profª Nina Alexandre Martins alemart@ime.usp.br 28 de Outubro

Classificação (forma)

... quebramos as componentes em "caixas":

1) viewpoint component: 128 subdivisões

2) distância normalizada: 45 subdivisões

3) desvios angulares: 45*3 subdivisões

... e, usando todos os pontos do cluster, montamos um histograma

Page 25: objetos com Kinect Reconhecimento dealemart/mac5832/apresentacao.pdf · 2012-11-29 · objetos com Kinect MAC5832 - Profª Nina Alexandre Martins alemart@ime.usp.br 28 de Outubro

Classificação (forma)

Assim, para cada cluster, computamos um feature vector de dimensão 308.

YYYYYEEEEEEESSSSS!!!

Page 26: objetos com Kinect Reconhecimento dealemart/mac5832/apresentacao.pdf · 2012-11-29 · objetos com Kinect MAC5832 - Profª Nina Alexandre Martins alemart@ime.usp.br 28 de Outubro

Classificação (forma)

Classificador: k nearest neighbors

Autor: Antti Ajanki (Wikipedia). CC-BY-SA 3.0

Page 27: objetos com Kinect Reconhecimento dealemart/mac5832/apresentacao.pdf · 2012-11-29 · objetos com Kinect MAC5832 - Profª Nina Alexandre Martins alemart@ime.usp.br 28 de Outubro

Classificação (forma)

Distância entre dois histogramas:

kNN já implementado na biblioteca FLANN:Fast Library for Approximate Nearest Neighbors

Fonte: [4]

http://www.cs.ubc.ca/~mariusm/index.php/FLANN/FLANN

Page 28: objetos com Kinect Reconhecimento dealemart/mac5832/apresentacao.pdf · 2012-11-29 · objetos com Kinect MAC5832 - Profª Nina Alexandre Martins alemart@ime.usp.br 28 de Outubro

Classificação (forma)

Para "treinamento", usamos o RGB-D Dataset da Universidade de Washington [3].

Fonte: http://www.cs.washington.edu/rgbd-dataset/index.html

Page 29: objetos com Kinect Reconhecimento dealemart/mac5832/apresentacao.pdf · 2012-11-29 · objetos com Kinect MAC5832 - Profª Nina Alexandre Martins alemart@ime.usp.br 28 de Outubro

Classificação (forma)

RGB-D Dataset: objetos capturados com um Kinect com o auxílio de uma mesa giratória.

Imagem extraída de [2]

Page 30: objetos com Kinect Reconhecimento dealemart/mac5832/apresentacao.pdf · 2012-11-29 · objetos com Kinect MAC5832 - Profª Nina Alexandre Martins alemart@ime.usp.br 28 de Outubro

Classificação (forma)

Testes: validação cruzada (k-fold)k=3 p/ n=2483 amostrasMatriz de confusão:

hmmm..... usando 1 vizinho + próximo...

real \ pred maçã banana caixa tigela

maçã 606 0 0 1

banana 0 725 0 0

caixa 3 0 566 0

tigela 1 0 0 579

Page 31: objetos com Kinect Reconhecimento dealemart/mac5832/apresentacao.pdf · 2012-11-29 · objetos com Kinect MAC5832 - Profª Nina Alexandre Martins alemart@ime.usp.br 28 de Outubro

Classificação (forma)

Testes: validação cruzada (k-fold)k=3 p/ n=2483 amostras

hmmm.......................

maçã banana caixa tigela

TP 606 725 566 579

TN 1870 1756 1912 1900

FP 4 0 0 1

FN 1 0 3 1

acurácia 99,8% 100% 99,88% 99,9%

precisão 99,34% 100% 100% 99,82%

Page 32: objetos com Kinect Reconhecimento dealemart/mac5832/apresentacao.pdf · 2012-11-29 · objetos com Kinect MAC5832 - Profª Nina Alexandre Martins alemart@ime.usp.br 28 de Outubro

Classificação (forma)

Testes: validação cruzada (k-fold)k=3 p/ n=2483 amostrasMatriz de confusão:

hmmm..... usando 6 vizinhos + próximos...

real \ pred maçã banana caixa tigela

maçã 607 0 0 0

banana 0 725 0 0

caixa 9 0 558 2

tigela 4 0 0 576

Page 33: objetos com Kinect Reconhecimento dealemart/mac5832/apresentacao.pdf · 2012-11-29 · objetos com Kinect MAC5832 - Profª Nina Alexandre Martins alemart@ime.usp.br 28 de Outubro

Classificação (forma)

Testes: validação cruzada (k-fold)k=3 p/ n=2483 amostras

hmmm.......................

maçã banana caixa tigela

TP 607 725 558 576

TN 1861 1756 1912 1899

FP 13 0 0 2

FN 0 0 11 4

acurácia 99,47% 100% 99,55% 99,75%

precisão 97,92% 100% 100% 99,65%

Page 34: objetos com Kinect Reconhecimento dealemart/mac5832/apresentacao.pdf · 2012-11-29 · objetos com Kinect MAC5832 - Profª Nina Alexandre Martins alemart@ime.usp.br 28 de Outubro

Classificação (forma)

Ele generaliza bem?Cjto. treinamento (n=2483) != cjto. teste (n=48)Matriz de confusão:

hmmm..... usando 6 vizinhos + próximos...

real \ pred maçã banana caixa tigela

maçã 16 0 0 0

banana 0 7 1 0

caixa 2 0 22 0

tigela 0 0 0 0

Page 35: objetos com Kinect Reconhecimento dealemart/mac5832/apresentacao.pdf · 2012-11-29 · objetos com Kinect MAC5832 - Profª Nina Alexandre Martins alemart@ime.usp.br 28 de Outubro

Classificação (forma)

Ele generaliza bem?Cjto. treinamento (n=2483) != cjto. teste (n=48)

hmmm.......................

maçã banana caixa tigela

TP 16 7 22 0

TN 30 40 23 48

FP 2 0 1 0

FN 0 1 2 0

acurácia 96% 97,91% 93,75% 100%

precisão 88,88% 100% 95,65% -

Page 36: objetos com Kinect Reconhecimento dealemart/mac5832/apresentacao.pdf · 2012-11-29 · objetos com Kinect MAC5832 - Profª Nina Alexandre Martins alemart@ime.usp.br 28 de Outubro

Classificação

Classifique os clusters por forma e por cor

Classif. 1: forma

Classif. 2: cor

Classif. 3:objeto SAÍDA

Page 37: objetos com Kinect Reconhecimento dealemart/mac5832/apresentacao.pdf · 2012-11-29 · objetos com Kinect MAC5832 - Profª Nina Alexandre Martins alemart@ime.usp.br 28 de Outubro

Classificação (cor)

Dado um cluster, quero saber sua "cor"

Conjunto de "cores":{ maçã, maçã verde, banana, aveia, cx. cereal, livro }

Preciso:1) achar um vetor de características2) escolher um classificador3) treiná-lo e testá-lo...

Page 38: objetos com Kinect Reconhecimento dealemart/mac5832/apresentacao.pdf · 2012-11-29 · objetos com Kinect MAC5832 - Profª Nina Alexandre Martins alemart@ime.usp.br 28 de Outubro

Classificação (cor)

rg chromacity space

dada uma tripla (R,G,B), calcule:

obs: r + g + b = 1 Fonte: http://en.wikipedia.org/wiki/Rg_chromaticity

Page 39: objetos com Kinect Reconhecimento dealemart/mac5832/apresentacao.pdf · 2012-11-29 · objetos com Kinect MAC5832 - Profª Nina Alexandre Martins alemart@ime.usp.br 28 de Outubro

Classificação (cor)

sem intensidade!

Autor: Augurar (Wikipedia). CC-BY-SA 3.0.

Page 40: objetos com Kinect Reconhecimento dealemart/mac5832/apresentacao.pdf · 2012-11-29 · objetos com Kinect MAC5832 - Profª Nina Alexandre Martins alemart@ime.usp.br 28 de Outubro

Classificação (cor)

Cada ponto terá um feature vector: (r, g)

Page 41: objetos com Kinect Reconhecimento dealemart/mac5832/apresentacao.pdf · 2012-11-29 · objetos com Kinect MAC5832 - Profª Nina Alexandre Martins alemart@ime.usp.br 28 de Outubro

Classificação (cor)

Mistura de Gaussianas

x

Page 42: objetos com Kinect Reconhecimento dealemart/mac5832/apresentacao.pdf · 2012-11-29 · objetos com Kinect MAC5832 - Profª Nina Alexandre Martins alemart@ime.usp.br 28 de Outubro

Classificação (cor)

Seja x = (x1,...,xn) uma amostra de n observações i.i.d. de uma mistura de duas gaussianas d-dimensionais.

Há n va's "ocultas", z1,..., zn, que determinam de qual gaussiana veio a observação. Ademais,cada zi é uma Bernoulli. zi's são as "etiquetas".

Fonte: http://en.wikipedia.org/wiki/Multivariate_normal_distribution

Page 44: objetos com Kinect Reconhecimento dealemart/mac5832/apresentacao.pdf · 2012-11-29 · objetos com Kinect MAC5832 - Profª Nina Alexandre Martins alemart@ime.usp.br 28 de Outubro

Classificação (cor)

Expectation-Maximization algorithm (EM)

Repita até convergência {

E-step:meu melhor "chute" da prob. de que xi é da gaussiana j

Fonte: http://en.wikipedia.org/wiki/Expectation%E2%80%93maximization_algorithm

Page 45: objetos com Kinect Reconhecimento dealemart/mac5832/apresentacao.pdf · 2012-11-29 · objetos com Kinect MAC5832 - Profª Nina Alexandre Martins alemart@ime.usp.br 28 de Outubro

Classificação (cor)

M-step (similar a MLE):

} Fonte: http://en.wikipedia.org/wiki/Expectation%E2%80%93maximization_algorithm

Page 46: objetos com Kinect Reconhecimento dealemart/mac5832/apresentacao.pdf · 2012-11-29 · objetos com Kinect MAC5832 - Profª Nina Alexandre Martins alemart@ime.usp.br 28 de Outubro

Classificação (cor)

fdp da "cor" da maçã:

Page 47: objetos com Kinect Reconhecimento dealemart/mac5832/apresentacao.pdf · 2012-11-29 · objetos com Kinect MAC5832 - Profª Nina Alexandre Martins alemart@ime.usp.br 28 de Outubro

Classificação (cor)

1. Estimei a fdp, no espaço rg, de cada "cor"

2. Classifico todos os pontos do cluster (Bayes)

3. Classifico o cluster como a "cor" + frequente

Page 48: objetos com Kinect Reconhecimento dealemart/mac5832/apresentacao.pdf · 2012-11-29 · objetos com Kinect MAC5832 - Profª Nina Alexandre Martins alemart@ime.usp.br 28 de Outubro

Classificação (cor)

Classificação dos pontos:

categoria ("cor") %

maçã (vermelha) 70,2465

aveia 18,3099

cx. cereal 5,98592

banana 2,8169

livro 2,46479

maçã verde 0,176056

Page 49: objetos com Kinect Reconhecimento dealemart/mac5832/apresentacao.pdf · 2012-11-29 · objetos com Kinect MAC5832 - Profª Nina Alexandre Martins alemart@ime.usp.br 28 de Outubro

Classificação (cor)

Testes: validação cruzada (k-fold)k=6 p/ n=48 objetos. Matriz de confusão:

real \pred maçã aveia banana livro cx. cereal m. verde

maçã 8 0 0 0 0 0

aveia 0 5 0 0 0 0

banana 0 0 8 0 0 0

livro 0 0 0 8 0 0

cx. cereal 0 0 1 6 4 0

m. verde 0 0 0 0 0 8

Page 50: objetos com Kinect Reconhecimento dealemart/mac5832/apresentacao.pdf · 2012-11-29 · objetos com Kinect MAC5832 - Profª Nina Alexandre Martins alemart@ime.usp.br 28 de Outubro

Classificação (cor)

Testes: validação cruzada (k-fold)k=6 p/ n=48 objetos.

maçã aveia banana livro cx. cereal m. verde

TP 8 5 8 8 4 8

TN 40 43 39 34 37 40

FP 0 0 1 6 0 0

FN 0 0 0 0 7 0

acurácia 100% 100% 97,91% 87,5% 85,41% 100%

precisão 100% 100% 88,88% 57,14% 100% 100%

Page 51: objetos com Kinect Reconhecimento dealemart/mac5832/apresentacao.pdf · 2012-11-29 · objetos com Kinect MAC5832 - Profª Nina Alexandre Martins alemart@ime.usp.br 28 de Outubro

Classificação (cor)

Classificação dos pontos:

hmmmm...

categoria %

cx. cereal 29,9973

banana 28,5373

aveia 15,5296

livro 15,3172

maçã (vermelha) 6,26493

maçã verde 4,3536

Page 52: objetos com Kinect Reconhecimento dealemart/mac5832/apresentacao.pdf · 2012-11-29 · objetos com Kinect MAC5832 - Profª Nina Alexandre Martins alemart@ime.usp.br 28 de Outubro

Classificação

Classifique os clusters por forma e por cor

Classif. 1: forma

Classif. 2: cor

Classif. 3:objeto SAÍDA

Page 53: objetos com Kinect Reconhecimento dealemart/mac5832/apresentacao.pdf · 2012-11-29 · objetos com Kinect MAC5832 - Profª Nina Alexandre Martins alemart@ime.usp.br 28 de Outubro

Classificação (objeto)

Universo conhecido:{ maçã, m. verde, banana, aveia, cx. cereal, livro, tigela }

Page 54: objetos com Kinect Reconhecimento dealemart/mac5832/apresentacao.pdf · 2012-11-29 · objetos com Kinect MAC5832 - Profª Nina Alexandre Martins alemart@ime.usp.br 28 de Outubro

Classificação (objeto)

Árvore de decisão hardcoded...forma?

maçã

cor?

m. verde

maçãvermelha

maçã verde

tigela

tigela

caixa

cx. cereallivro

cor?

...

...

livrodecálculo

caixadecereal

...

m. verm.

...

...

Page 55: objetos com Kinect Reconhecimento dealemart/mac5832/apresentacao.pdf · 2012-11-29 · objetos com Kinect MAC5832 - Profª Nina Alexandre Martins alemart@ime.usp.br 28 de Outubro

Demonstraçãohttp://youtu.be/tRbAWkYoSm4

Page 56: objetos com Kinect Reconhecimento dealemart/mac5832/apresentacao.pdf · 2012-11-29 · objetos com Kinect MAC5832 - Profª Nina Alexandre Martins alemart@ime.usp.br 28 de Outubro

kbô

Page 57: objetos com Kinect Reconhecimento dealemart/mac5832/apresentacao.pdf · 2012-11-29 · objetos com Kinect MAC5832 - Profª Nina Alexandre Martins alemart@ime.usp.br 28 de Outubro

Referências[1] J. Kramer, et al. Hacking the Kinect. Apress, 2012.

[2] R. B. Rusu, G. Bradski, R. Thibaux e J. Hsu, "Fast 3D Recognition and Pose Using the Viewpoint Feature Histogram", Proceedings of the 23rd IEEE/RS, International Conference on Intelligent Robots and Systems (IROS), 2012.

[3] K. Lai, L. Bo, X. Ren e D. Fox. "A Large-Scale Hierarchical Multi-View RGB-D Object Dataset", IEEE International Conference on Robotics and Automation (ICRA), Maio de 2011.

[4] O. Pele e M. Weman, "The Quadratic-Chi Histogram Distance Family", ECCV 2010.