Visión por computadora

11
18/06/2010 1 Visión por Computador Programación en C con las librerías OpenCv Arturo de la Escalera José María Armingol Descriptores y clasificación www.uc3m.es/islab Programación con las OpenCv Arturo de la Escalera, José María Armingol Tamaño: la suma de sus pixeles Perímetro: número de pixeles exteriores Compacticidad: Fórmula cuyo valor mínimo corresponde al círculo Tamaño, perímetro, compacticidad - = - = = 1 0 1 0 ) , ( N i N j j i g A A P 2

description

Algunos datos sobre percepción digital, con las ecuaciones necesarias a implementar en el código de la computadora.

Transcript of Visión por computadora

Page 1: Visión por computadora

18/06/2010

1

Visión por Computador

Programación en C con las librerías OpenCv

Arturo de la Escalera

José María Armingol

Descriptores y clasificación

www.uc3m.es/islab

Programación con las OpenCvArturo de la Escalera, José María Armingol

• Tamaño: la suma de sus pixeles

• Perímetro: número de pixeles exteriores

• Compacticidad:

Fórmula cuyo valor mínimo corresponde al

círculo

Tamaño, perímetro, compacticidad

-

=

-

=

=1

0

1

0

),(N

i

N

j

jigA

A

P2

Page 2: Visión por computadora

18/06/2010

2

www.uc3m.es/islab

Programación con las OpenCvArturo de la Escalera, José María Armingol

Rectangularidad

• Relación entre el área del objeto y la del

rectángulo más pequeño que lo engloba

www.uc3m.es/islab

Programación con las OpenCvArturo de la Escalera, José María Armingol

Información de los contornos

• cvArcLength

• cvContourArea

• cvMinAreaRect2

• cvBoundingRect

• cvMinEnclosingCircle

• cvFitEllipse2

Page 3: Visión por computadora

18/06/2010

3

www.uc3m.es/islab

Programación con las OpenCvArturo de la Escalera, José María Armingol

Momentos invariantes a la

rotación, escala y traslación.

x

y

R5

R6

R2

R4

R3

R1

www.uc3m.es/islab

Programación con las OpenCvArturo de la Escalera, José María Armingol

Momentos invariantes a la RST

=x

vuuv yxyxgm ),(

Invarianza a la posición:

yx --=x

vuuv yxyxg )())(,(m

Invarianza a la escala

koo

ij

ij)(m

mh =

Page 4: Visión por computadora

18/06/2010

4

www.uc3m.es/islab

Programación con las OpenCvArturo de la Escalera, José María Armingol

Momentos invariantes a la RST

f h h1 20 02= +

f h h h2 20 02

2

11

24= - +( )

f h h h h3 30 12

2

21 03

23 3= - + -( ) ( )

f h h h h4 30 12

2

21 03

2= + + +( ) ( )

f h h h h h h h h

h h h h h h h h5 30 12 30 12 30 12

2

21 03

2

21 03 21 03 03 12

2

21 03

2

3 3

2 3

= - + + - +

+ - + + - +

( )( ){( ) ( ) }

( )( ){ ( ) ( ) }

f h h h h h h h h h h h6 20 02 30 12 21 03

2

11 30 12 21 034= - + - + + + +( ){( ) ( ) } ( )( )

f h h h h h h h h

h h h h h h h h7 21 03 30 12 30 12

2

21 03

2

12 30 21 03 30 12

2

21 03

2

3 3

3 3

= - + + - +

- - + + - +

( )( ){( ) ( ) }

( )( ){ ( ) ( ) }

www.uc3m.es/islab

Programación con las OpenCvArturo de la Escalera, José María Armingol

Información de los contornos

typedef struct CvMoments {

// spatial moments

double m00, m10, m01, m20, m11, m02, m30, m21,

m12, m03;

// central moments

double mu20, mu11, mu02, mu30, mu21, mu12, mu03;

// m00 != 0 ? 1/sqrt(m00) : 0

double inv_sqrt_m00;

} CvMoments;

Page 5: Visión por computadora

18/06/2010

5

www.uc3m.es/islab

Programación con las OpenCvArturo de la Escalera, José María Armingol

Información de los contornos

• cvMoments

cvGetSpatialMoment

cvGetCentralMoment

• cvGetNormalizedCentralMoment

• cvGetHuMoments

www.uc3m.es/islab

Programación con las OpenCvArturo de la Escalera, José María Armingol

Ejercicio

• Obtener descriptores para las imágenes

clase1.tif clase2.tif clase3.tif

Page 6: Visión por computadora

18/06/2010

6

www.uc3m.es/islab

Programación con las OpenCvArturo de la Escalera, José María Armingol

Reconocimiento de patrones

R2 R31.94 E-1 2.08 E-16.53 E-3 1.56 E+01.02 E-3 0.00 E+04.56 E-5 0.00 E+04.25 E-9 0.00 E+01.70 E-6 0.00 E+0-8.85 E-9 0.00 E+0

C1

C2

O1

O2

O

fd

www.uc3m.es/islab

Programación con las OpenCvArturo de la Escalera, José María Armingol

Reconocimiento de patrones

Imagen

Características

Posiblescandidatos

Clasificacióndel objeto

Fomación dehipótesis

Detector decaracterísticas

Base dedatos

Descriptores

Descriptorde objetos

Clasificador

Page 7: Visión por computadora

18/06/2010

7

www.uc3m.es/islab

Programación con las OpenCvArturo de la Escalera, José María Armingol

Reconocimiento de patrones

• Es la última etapa dentro de un sistema

de visión por computador

• A partir de las características

encontradas y de los posibles objetos

se clasifican los que hay presentes en

la imagen

• Es lo más complejo y difícil y a menudo

se realizan fuertes simplificaciones para

que funcione con éxito

www.uc3m.es/islab

Programación con las OpenCvArturo de la Escalera, José María Armingol

Características: propiedades

• Discriminación

• Fiabilidad

• Independencia

• Número

Page 8: Visión por computadora

18/06/2010

8

www.uc3m.es/islab

Programación con las OpenCvArturo de la Escalera, José María Armingol

Características

• Entrenamiento

•Validación

•Aprendizaje

•Memorización

•Generalización

www.uc3m.es/islab

Programación con las OpenCvArturo de la Escalera, José María Armingol

• K-medias

• Expectation maximization (EM)

• Clasificador Bayesiano

Mahalanobis

K-nearest neighbors

• Árboles de decisión

• Random trees

• Boosting

• Neural networks

• Support Vector Machine

• Detector de caras

Page 9: Visión por computadora

18/06/2010

9

www.uc3m.es/islab

Programación con las OpenCvArturo de la Escalera, José María Armingol

Reconocimiento probabilístico

42.0

1

...

-2

Vector de

características

f1(x)

Distancias/probabilidades para las

m clases

Regla de

decisión

Clase...x =

f2(x)

f3(x)

fm(x)

“x es de tipo 3” d()

www.uc3m.es/islab

Programación con las OpenCvArturo de la Escalera, José María Armingol

Reconocimiento probabilístico

• Información previa Probabilidad de que en la clase

i se de un vector de características X

• Medición El objeto tiene un vector de

características X

• Lo que queremos saber Probabilidad de que el objeto

de vector de características X pertenezca a la clase i

• Teorema de Bayes

XaP i

ap X i

Page 10: Visión por computadora

18/06/2010

10

www.uc3m.es/islab

Programación con las OpenCvArturo de la Escalera, José María Armingol

Clasificador Bayesiano

)(

)()|()|(

Xp

pXPXP ii

i

aaa =

www.uc3m.es/islab

Programación con las OpenCvArturo de la Escalera, José María Armingol

Probabilidades a posteriori

0,00

0,20

0,40

0,60

0,80

1,00

1,20

75.0)(25.0)(

66.0)(33.0)(

5.0)(5.0)(

21

21

21

==

==

==

aa

aa

aa

pp

pp

pp

Page 11: Visión por computadora

18/06/2010

11

www.uc3m.es/islab

Programación con las OpenCvArturo de la Escalera, José María Armingol

OpenCv

• CvNormalBayesClassifier bayes;

• bayes.train(train_data, response_data);

• bayes.predict(test_data,clasif);