objetos com Kinect Reconhecimento dealemart/mac5832/apresentacao.pdf · 2012-11-29 · objetos com...

Preview:

Citation preview

Reconhecimento de objetos com Kinect

MAC5832 - Profª NinaAlexandre Martins

alemart@ime.usp.br

28 de Outubro de 2012

Classificar objetos conhecidos colocados

sobre uma mesa

1. Aquisição dos dados

2. Mudança de representação

3. Segmentação dos objetos

4. Classificaçãoi. formaii. cor

Roteiro

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

Aquisição dos dados

Mudança de representação

Quero uma nuvem de pontos 3D, colorida.

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]

Mudança de representação

Já implementado na Point Cloud Library :)

pointclouds.org

Segmentação dos objetos

...que estão dispostos sobre a mesa

Segmentação dos objetos

remova pontos cuja coordenada z é >= limiar

Segmentação dos objetos

"downsample"

Segmentação dos objetos

remova a mesa (???)

Segmentação dos objetos

RANdom SAmple Consensus (RANSAC)

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

Segmentação dos objetos

remova a mesa

Segmentação dos objetos

elimine o ruído restante...

Segmentação dos objetos

e extraia os clusters (floodfill)

Classificação

Classifique os clusters por forma e por cor

Classif. 1: forma

Classif. 2: cor

Classif. 3:objeto SAÍDA

Classificação

Classifique os clusters por forma e por cor

Classif. 1: forma

Classif. 2: cor

Classif. 3:objeto SAÍDA

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...

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)

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

Classificação (forma)

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

onde:

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

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]

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

Classificação (forma)

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

YYYYYEEEEEEESSSSS!!!

Classificação (forma)

Classificador: k nearest neighbors

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

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

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

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]

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

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%

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

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%

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

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% -

Classificação

Classifique os clusters por forma e por cor

Classif. 1: forma

Classif. 2: cor

Classif. 3:objeto SAÍDA

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...

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

Classificação (cor)

sem intensidade!

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

Classificação (cor)

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

Classificação (cor)

Mistura de Gaussianas

x

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

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

Classificação (cor)

M-step (similar a MLE):

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

Classificação (cor)

fdp da "cor" da maçã:

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

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

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

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%

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

Classificação

Classifique os clusters por forma e por cor

Classif. 1: forma

Classif. 2: cor

Classif. 3:objeto SAÍDA

Classificação (objeto)

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

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.

...

...

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

kbô

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.

Recommended