visión por computadora
DESCRIPTION
Algunos datos sobre percepción digital, con las ecuaciones necesarias a implementar en el código de la computadora.TRANSCRIPT
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
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
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 =
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;
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
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
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
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
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
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
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);