Download - Visión SURF
-
7/25/2019 Visin SURF
1/10
UNIVERSIDAD POLITCNICADE MADRID
MASTER EN AUTOMTICA Y ROBTICA
MADRID, 13 DE ENERO DE 2016
VISIN POR COMPUTADORGABRIEL VINICIO MOREANO SANCHEZ
NMERO DE MATRCULA: M15128TRABAJO DE LA ASIGANTURA
-
7/25/2019 Visin SURF
2/10
-
7/25/2019 Visin SURF
3/10
Visin por Computador
Figura 1. a) Imagen original adquirida con la cmara. B) Imagen despus de realizado el
algoritmo descrito.
Para el conteo de objetos se utiliza la diferencia de colores de gran tamao que tiene la
imagen y para la deteccin de bordes se hace un barrido de los cambios de color entre
un pixel y su vecindad.
3.1.- Dificultades del mtodo
Inestabilidad en la captacin, es decir, que est muy ligado al posicionamiento
de la cmara y del fondo, si se captan partes de que no pertenezcan al fondo
verde puede dar problemas en el conteo de piezas. Dificultad de iluminacin, puede variar los bordes de las fichas.
Dificultad para identificar las fichas, se puede utilizar un sistema de colores que
implicara conocer la mayora de color en cada ficha, o un sistema de superficie
que tambin implicara conocer las superficies de todas las fichas. EL problema
en ambas posibilidades es que se tiene demasiada ambigedad entre las fichas
ya que todas tienen una superficie parecida y mezcla de colores tambin similar.
4.- Detectores y descriptores
4.1.- Introduccin
Una imagen proporciona mucha informacin, parte de la cual puede no ser til, cuando
hablamos de caractersticas, nos referimos a cualquier informacin que nos permita
tratar la imagen de manera reducida: aristas, esquinas, etc. En la literatura, las
caractersticas visuales hacen referencia a ciertos elementos de la imagen con dos
componentes:
Un punto en la imagen. Se suele usar el trmino detector, el detector hace una
interpretacin e informa cobre algn punto de inters de la imagen.
-
7/25/2019 Visin SURF
4/10
Visin por Computador
Cierta informacin extrada de la vecindad del punto, se usa el trmino
descriptor, el descriptor codifica la informacin interesante.
Existen multitud de mtodos de deteccin de caractersticas y algunos menos de
descriptores. Tanto los detectores como los descriptores deben ser invariantes a escala,
posicin, luminosidad y rotacin lo que brinda mayor robustez en comparacin a una
tcnica de pre-procesamiento y es muy comn que se utilicen para encontrar
correspondencias entre imgenes (estreo, flujo ptico, reconocimiento de objetos)
Los mtodos conocidos son:
SIFT
SURF
FAST
MSER
ORB
4.1.2.- SURF
De sus siglas en ingles Speeded-Up Robust Features (Caractersticas Robustas
Aceleradas), es un mtodo de deteccin y descripcin de caractersticas de imgenes
que se basa en la deteccin de puntos de inters, este mtodo es muy similar al mtodo
SIFT con la ventaja de tener una mayor velocidad de procesamiento y mayor eficacia de
deteccin, factor por el cual se decidi usar este mtodo para el presente trabajo.
El detector SURF para promediar la imagen utiliza un filtro de caja (box filter) intentando
encontrar un mnimo o mximo entre escalas. El filtro de caja puede ser calculado
eficientemente con una imagen integral.
La imagen integral es la suma de la imagen original dentro de un rectngulo D de la
imagen. I (x, y) sumada sobre el rea seleccionada requiere 4 evaluaciones de S (x, y) (A,
B, C, D) (ver Figura 2).
Figura 2. Imagen integral.
-
7/25/2019 Visin SURF
5/10
Visin por Computador
Un ejemplo del filtro de caja se puede ver en la Figura 3.
Figura 3. Ejemplo funcionamiento filtro de caja.Surf cambia el tamao del filtro a aplicar, acelerando considerablemente el resultado,
es importante saber que se pueden aplicar filtros en paralelo (GPUSurf). Se calculan
mximos y mnimos igual que con el detector SIFT.
Para la orientacin SURF tambin usa la imagen integra, determina las caractersticas
Haar, que es una forma rpida de calcular el gradiente, esto se hace para cada punto del
entorno del punto de inters y ya que el entorno cambia en funcin de la escala en la
que se haya encontrado la caracterstica se puede determinar la orientacin de la
imagen.
El descriptor busca proporcionar una descripcin nica y robusta de un conjunto.
Describe la distribucin de intensidad del contenido dentro del punto de inters de los
puntos vecinos. Es generado basndose en el rea circundante de un punto de inters,
por lo que, realmente, se obtiene un vector descriptor para cada punto de inters.
La dimensin del descriptor tiene un impacto directo con el tiempo de adquisicin que
se toma. De modo que, pocas dimensiones son indeseables por el "matching"
(correspondencias) de los puntos de inters, aunque proporciona menos distinciones
que una dimensin mayor.
4.2.- Utilizacin del modelo SURF con Matlab
Matlab incorpora en su toolbox de visin por computador todas las herramientas
necesarias para desarrollar un programa en base a la deteccin de puntos de inters por
el modelo SURF, en el presente trabajo se utiliz esta herramienta y vamos a observar
paso a paso como se hace la deteccin y correspondencia de pares de puntos.
El algoritmo completo de adquisicin e identificacin de caractersticas cumplen la
siguiente secuencia, se incluir el cdigo en Matlab para cada paso realizado.
-
7/25/2019 Visin SURF
6/10
Visin por Computador
1. Adquisicin de imagen de referencia y transformacin a escala de grises, Figura
4.
Figura 4. Imagen referencial del objeto a identificar.
2.
Obtencin de las caractersticas por el mtodo SURF de la imagen referencial,Figura5.
Figura 5. Caractersticas de inters de la imagen referencial.
%% Leer pieza de base de datos% la letra O sigifica que es la imagen de la base de datos
pieza1O = imread('pieza5.jpg'); % leerpieza1OG = rgb2gray(pieza1O); % A escala de grisespuntos1O = detectSURFFeatures(pieza1OG); % Caractersticas SURF[Cp1O,Pp1O] = extractFeatures(pieza1OG,puntos1O); % Arreglo de
caracterisiticas y puntos clavefigure, imshow(pieza1O); % Muestra imagen originalhold on; plot(puntos1O.selectStrongest(50)); % Muestra puntos del SURF
En la figura 6 se puede observar los cuadros de 25 caractersticas obtenidas, para poder
conocerlas con ms detalle.
Figura 6. 25 caractersticas de la imagen referencial.
-
7/25/2019 Visin SURF
7/10
Visin por Computador
%% Muestra caractesticas individualesfigure;subplot(5,5,3); title('Primeros 25 puntos clave')fori = 1:25
escala = puntos1O(i).Scale;imagen = imcrop(pieza1O,[puntos1O(i).Location-10*escala 20*escala20*escala]);
subplot(5,5,i);imshow(imagen);hold on;rectangle('Position',[5*escala 5*escala 10*escala
10*escala],'Curvature',1,'EdgeColor','g');end
3. Adquisicin de la escena mediante la cmara, obtencin de caractersticas con
el mismo proceso del punto dos, Figura 7.
Figura 7. Escena nueva y obtencin de caractersticas.
%% Adquiriendo nueva imagenpieza1 = getsnapshot(camara);pieza1G = rgb2gray(pieza1);puntos1 = detectSURFFeatures(pieza1G);[Cp1,Pp1] = extractFeatures(pieza1G,puntos1); % Arreglo de
caracterisiticas y puntos clavefigure, imshow(pieza1); % Muestra imagen originalhold on; plot(puntos1.selectStrongest(300)); % Muestra puntos del SURF
4. Correspondencia de puntos de inters entre los puntos de la imagen referencial
y la imagen adquirida de la cmara, Figura 8.
Figura 8. Correspondencia de puntos.
-
7/25/2019 Visin SURF
8/10
Visin por Computador
pares = matchFeatures(Cp1O,Cp1); % busca correspondenciasPtsCO = Pp1O(pares(:,1)).Location; % obtiene la localizacin puntosPtsC = Pp1(pares(:,2)).Location; % obtiene la localizacin puntosfigure, showMatchedFeatures(pieza1,pieza1O,PtsC,PtsCO,'montage')
%dibuja las coincidencias
5. Eliminacin de falsas correspondencias, Figura 9.
Figura 9. Eliminacin de falsas correspondencias.
Para la eliminacin de falsas correspondencias se utiliza el mtodo RANSAC que permite,
de manera iterativa, estimar los parmetros de un modelo de manera robusta. Matlab
incluye una instruccin para la elaboracin del modelo y la creacin de la matriz de la
matriz rotacin.
%% (Transformacin Geomtrica para asegurar coincidencias)gte = vision.GeometricTransformEstimator; %inicializan RANSACgte.Method = 'Random Sample Consensus (RANSAC)';[MatrizdeTrans,identificacion] = step(gte,PtsCO,PtsC);%Matriz RotacinPtsRansacO = PtsCO(identificacion,:); %arma nuevo vector de puntosPtsRansac = PtsC(identificacion,:); %arma nuevo vector de puntosfigure,
showMatchedFeatures(pieza1,pieza1O,PtsRansac,PtsRansacO, 'montage')
%dibuja las coincidencias nuevas
6. Localizacin e Identificacin del objeto en la escena, Figura 10.
Figura 10. Localizacin e identificacin del objeto.
-
7/25/2019 Visin SURF
9/10
Visin por Computador
%% Seleccionar las esquinas (bordes de la pieza) para localizarlaforma = maketform('affine',double(MatrizdeTrans));[ancho,largo,aux] = size(pieza1O);esquinas = [0,0;largo,0;largo,ancho;0,ancho];
esquinasNuevas = tformfwd(forma,esquinas(:,1),esquinas(:,2));figure,imshow(pieza1);patch(esquinasNuevas(:,1),esquinasNuevas(:,2),[0 1
0],'EdgeColor','green','FaceColor','none','LineWidth',2);
5.- Desarrollo del programa
Por lo expresado en el apartado 3 y las caractersticas robustas que entrega el mtodo
SURF ante cambios de escala, iluminacin y orientacin se decidi realizar el trabajo en
base a este modelo. El programa desarrollado se trata de una interfaz de usuariodesarrollada en Matlab como se ve en la Figura 11, los pasos del funcionamiento del
programa son:
1. Configuracin de la cmara.
En este punto se despliega un men para escoger la cmara que se usar en la
aplicacin y bajo que parmetros de resolucin se utilizar.
Figura 11. Interfaz de Usuario del Programa.
2. Activar la cmara en funcin de video para poder observar el espacio de trabajo
en tiempo real.
3. La deteccin se realiza en base a coincidencias entre pares de puntos
pertenecientes a una base de datos de dos puzzles distintos y la imagen actual
de la cmara.
4. La identificacin se realiza automticamente y de forma continua.
5. Se puede detener la identificacin de piezas cuando se considere oportuno.
-
7/25/2019 Visin SURF
10/10
Visin por Computador
6.- Conclusiones y Recomendaciones:
La visin por computador ha alcanzado niveles muy altos en los ltimos aos ypor tanto se dispone muchas herramientas computacionales y tcnicas a fin de
desarrollar aplicaciones basadas en visin por computador, lo mejor es intentar
identificar la herramienta adecuada para cada tarea que se desee realizar.
Los algoritmos de visin por computador son tericamente los mismo para los
paquetes computacionales ms populares Matlab y Open CV diferencindose
nicamente en como cada paquete usa sus instrucciones para cumplir dichos
algoritmos.
La iluminacin es un factor sumamente importante para una aplicacin de visinpor computador ya que puede afectar a la deteccin de caractersticas como
ayudar tambin en casos de deteccin de bordes, el color de la luz tambin
infiere sobre el trabajo y se debe cuidar este aspecto con mucha seriedad.
7.- Bibliografa:
https://moodle201314.ua.es/moodle/pluginfile.php/70421/mod_page/content/15/4.%20caracter
C3%ADsticas3D.%20Ransac.pdf Index de Matlab y Guide.