Visión SURF

download Visión SURF

of 10

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