infore tutorial.docx
TRANSCRIPT
Cauca PopayánUniversidad del cauca – PopayánMODULO DE FORMACION
INFORE TUTORIAL VISION DE MAQUINA
Fecha:2015-23-04
Página 1 de 8
Universidad del Cauca
REALIZADO POR:LENIN CORDOBA
MONICA VOLVERAS
PRESENTADO A:ING ELENA MUÑOZ ESPAÑA
UNIVERSIDAD DEL CAUCA
FACULTAD DE INGENIERIA ELECTRÓNICA Y TELECOMUNICACIONES
Cauca PopayánUniversidad del cauca – PopayánMODULO DE FORMACION
INFORME TUTORIAL VISION DE MAQUINA
Fecha:2015-23-04
Página 2 de 8
Detección de Objetos en una escena desordenada Empleo de juegos de caracteristicas
Este ejemplo muestra cómo detectar un objeto en particular en una escena desordenada, dada una imagen de referencia del objeto.
Visión de conjunto
En este ejemplo se presenta un algoritmo para la detección de un objeto específico basado en la búsqueda de correspondencias entre el punto de la imagen de destino y de referencia. Es capaz de detectar objetos a pesar de un cambio de escala o en el plano de rotación. También es robusto a pequeña cantidad de rotación y la oclusión fuera de plano.
Este método de detección de objetos funciona mejor para los objetos que exhiben patrones de textura que no se repiten, que dan lugar a partidos de características únicas. Esta técnica no es probable que funcione bien para los objetos de manera uniforme de color, o de los objetos que contienen patrones que se repiten. Cabe tener en cuenta que este algoritmo está diseñado para detectar un objeto específico, por ejemplo, el elefante en la imagen de referencia, en lugar de cualquier elefante. Para la detección de objetos de una categoría en particular, como las personas o caras,
Para la deteccion de objetos por medio de este algoritmo se requiere seguir los siguientes pasos
Paso 1: Leer Imágenes
Leer la imagen de referencia que contiene el objeto de interés.
boxImage = imread ( 'stapleRemover.jpg' ); lectura de la imagen
figure;
imshow (boxImage); impresión de la imagen
títle ( 'Imagen de una caja " ); nombre de la imagen
Cauca PopayánUniversidad del cauca – PopayánMODULO DE FORMACION
INFORME TUTORIAL VISION DE MAQUINA
Fecha:2015-23-04
Página 3 de 8
Leer la imagen de destino que contiene una escena desordenada.
sceneImage = imread ( 'clutteredDesk.jpg' ); lectura de la imagen
figure;
imshow (sceneImage); impresión de la imagen
títtle ( 'Imagen de una escena de Cluttered' ); titulo de la imagen
Cauca PopayánUniversidad del cauca – PopayánMODULO DE FORMACION
INFORME TUTORIAL VISION DE MAQUINA
Fecha:2015-23-04
Página 4 de 8
Paso 2: Función de detección de Puntos
Detectar puntos característicos en ambas imágenes.
boxPoints = detectSURFFeatures (boxImage);
scenePoints = detectSURFFeatures (sceneImage); devuelve los puntos de un objeto que contiene información sobre las funciones SURF detectadas en la imagen a escala de grises. La función detectSURFFeatures implementa el algoritmo de características robustas acelerada (SURF) para encontrar características blob
figure;
imshow(boxImage);
title('100 Strongest Feature Points from Box Image');
hold on;
plot(selectStrongest(boxPoints, 100)); devuelve N número de puntos con las métricas más fuertes.
Visualizar los puntos de la entidad más fuertes que se encuentran en la imagen de destino.
figure;
imshow (sceneImage);
títle ( '300 Strongest Característica Puntos de Escena Imagen' );
hold on ;
plot (selectStrongest (scenePoints, 300));
Cauca PopayánUniversidad del cauca – PopayánMODULO DE FORMACION
INFORME TUTORIAL VISION DE MAQUINA
Fecha:2015-23-04
Página 5 de 8
Paso 3: Extraer Feature Descriptores
Extraer descriptores de características en los puntos de interés en ambas imágenes.
[boxFeatures, boxPoints] = extractFeatures (boxImage, boxPoints);
[SceneFeatures, scenePoints] = extractFeatures (sceneImage, scenePoints); extrae vectores de características, también conocidos como descriptores, y sus correspondientes ubicaciones, a partir de una imagen binaria o a la intensidad. La función deriva los descriptores de los píxeles que rodean un punto de interés. Los píxeles que representan las características de los puntos especificados para una ubicación de un solo punto. Un solo punto especifica la ubicación en el centro de una vecindad. El método que se utiliza para la extracción del descriptor depende de la clase de los puntos de entrada.
Paso 4: EXTRACCION DE LOS DESCRIPTORES
Coinciden con las funciones utilizando los descriptores.
boxPairs = matchFeatures (boxFeatures, sceneFeatures); devuelve los índices de las características encontradas en los dos conjuntos de funciones de entrada. Tanto de las características de entrada debe ser Características binarias de objetos o matrices.
Cauca PopayánUniversidad del cauca – PopayánMODULO DE FORMACION
INFORME TUTORIAL VISION DE MAQUINA
Fecha:2015-23-04
Página 6 de 8
Visualizar características supuestamente emparejadas.
matchedBoxPoints = boxPoints (boxPairs (:, 1), :);
matchedScenePoints = scenePoints (boxPairs (:, 2), :);
figure;
showMatchedFeatures (boxImage, sceneImage, matchedBoxPoints, ...
matchedScenePoints, 'montage' );
títle ( 'supuestamente puntos relacionados (Incluidos los valores atipicos)' );
Paso 5: Busqueda del objeto en la escena
estimateGeometricTransform calcula la transformación que relaciona los puntos coincidentes, mientras realiza la eliminación de valores atípicos. Esta transformación nos permite localizar el objeto en la escena.
[TForm, inlierBoxPoints, inlierScenePoints] = ...
estimateGeometricTransform (matchedBoxPoints, matchedScenePoints, 'afín' ); devuelve los puntos por líneas correspondientes en 1 y 2 .
Mostrar los pares de puntos de coincidencia con los valores atípicos retirados
figure;
showMatchedFeatures (boxImage, sceneImage, inlierBoxPoints, ...
inlierScenePoints, 'montage' );
títle ( 'Igualados Puntos (Sólo inliers)' );
Cauca PopayánUniversidad del cauca – PopayánMODULO DE FORMACION
INFORME TUTORIAL VISION DE MAQUINA
Fecha:2015-23-04
Página 7 de 8
Obtener el polígono de delimitación de la imagen de referencia.
boxPolygon = [1, 1; ... % superior izquierda
size(boxImage, 2), 1; ... % superior derecha
size(boxImage, 2), size (boxImage, 1); ... % superior derecha
1, size (boxImage, 1); ... % inferior izquierda
1, 1]; % superior izquierda de nuevo para cerrar el polígono
Transformar el polígono en el sistema de coordenadas de la imagen de destino. El polígono transformado indica la ubicación del objeto en la escena.
newBoxPolygon = transformPointsForward (TForm, boxPolygon);
Ver el objeto detectado.
figure;
imshow(sceneImage);
hold on;
line(newBoxPolygon(:, 1), newBoxPolygon(:, 2), 'Color', 'y');
title('Detected Box');
Cauca PopayánUniversidad del cauca – PopayánMODULO DE FORMACION
INFORME TUTORIAL VISION DE MAQUINA
Fecha:2015-23-04
Página 8 de 8