representación con grafos de imágenes 3d para su búsqueda y recuperación. aproximación con...

27
Representación con grafos de imágenes 3D para su búsqueda y recuperación. Aproximación con imágenes 2D Binarias . Luis Fernández Esteban. Miguel Fernández Labrador. Procesamiento de Imágenes Digitales (Topología Digital)

Upload: mario-sibila

Post on 02-Apr-2015

116 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Representación con grafos de imágenes 3D para su búsqueda y recuperación. Aproximación con imágenes 2D Binarias. Luis Fernández Esteban. Miguel Fernández

Representación con grafos de imágenes 3D para su búsqueda y

recuperación.Aproximación con imágenes 2D Binarias.

Luis Fernández Esteban.Miguel Fernández Labrador.

Procesamiento de Imágenes Digitales (Topología Digital)

Page 2: Representación con grafos de imágenes 3D para su búsqueda y recuperación. Aproximación con imágenes 2D Binarias. Luis Fernández Esteban. Miguel Fernández

Introducción• Con el reciente interés e incremento de las imágenes 3D ,las bases de datos cada vez son mas grandes y mas difíciles de manejar por lo que se busca soluciones para que nos ayuden al respecto.

• Se precisan de buenos descriptores para las imágenes 3D y así poder manejar dichas bases de datos de forma eficiente, incluidas las búsquedas mediante contenido.

• Este nuevo descriptor, el grafo, es novedoso en el sentido de que no perdemos información geométrica y además es similar a la vista humana. Por lo tanto el nuevo descriptor propuesto sería útil para el reconocimiento de objetos 3D, compresión y búsqueda basada en el contenido.

Page 3: Representación con grafos de imágenes 3D para su búsqueda y recuperación. Aproximación con imágenes 2D Binarias. Luis Fernández Esteban. Miguel Fernández

Diagrama del algoritmo

3D OBJECT

VOXELIZATION MEDIAL AXIS TRANSFORM

NODE GENERATION

NODE MERGING

DATABASE

Page 4: Representación con grafos de imágenes 3D para su búsqueda y recuperación. Aproximación con imágenes 2D Binarias. Luis Fernández Esteban. Miguel Fernández

Voxelization

La voxelización consiste en transformar las mallas triangulares de la imagen 3D en voxels. Estos no son más que cubos. Así cuando se tienen solo cubos estos coinciden con el mallado del cubo que envuelve la imagen 3D siendo más fácil trabajar con ella.

Después los voxels se rellenan con un procedimiento de llenado.

Page 5: Representación con grafos de imágenes 3D para su búsqueda y recuperación. Aproximación con imágenes 2D Binarias. Luis Fernández Esteban. Miguel Fernández

SkeletonizationLa esqueletización se realiza mediante medial axis transform. Obtenemos las distintas componentes del esqueleto de la imagen 3D.

skeletons K=0 K=1

K=2 K=3 K=4

Page 6: Representación con grafos de imágenes 3D para su búsqueda y recuperación. Aproximación con imágenes 2D Binarias. Luis Fernández Esteban. Miguel Fernández

Node generationEl nodo se genera a partir de las componentes del esqueleto de la imagen. Así para la componente con rango igual a k, se genera el nodo asociado dilantando dicha componente k veces.

Empezamos por el k máx y en los menores no dilatamos en los pixeles que pertenecen a una componente (del esqueleto) de mayor rango.

imagen esqueleto rango 3

2 dilataciones

K=2

1 dilatación K=1

0 dilataciones

K=0

unión 3,4 y 5 imagen

Page 7: Representación con grafos de imágenes 3D para su búsqueda y recuperación. Aproximación con imágenes 2D Binarias. Luis Fernández Esteban. Miguel Fernández

Node generation

Voxels con 54 nodos Nodos y aristas representados por esferas y segmentos.

Las aristas se generan teniendo en cuenta la adyacencia de los píxeles.

Page 8: Representación con grafos de imágenes 3D para su búsqueda y recuperación. Aproximación con imágenes 2D Binarias. Luis Fernández Esteban. Miguel Fernández
Page 9: Representación con grafos de imágenes 3D para su búsqueda y recuperación. Aproximación con imágenes 2D Binarias. Luis Fernández Esteban. Miguel Fernández
Page 10: Representación con grafos de imágenes 3D para su búsqueda y recuperación. Aproximación con imágenes 2D Binarias. Luis Fernández Esteban. Miguel Fernández

Nuestra Aproximación• Imágenes 2D binarias en lugar de 3D.

• No es necesario voxelizar.

• Dos pasos: Generación del esqueleto y generación de nodos.

Page 11: Representación con grafos de imágenes 3D para su búsqueda y recuperación. Aproximación con imágenes 2D Binarias. Luis Fernández Esteban. Miguel Fernández

Generación del Esqueleto.

Si S(A) denota el esqueleto de A, entonces . Con

donde

es la aplicación sucesiva de k erosiones.

K es el último paso iterativo antes de que A se erosione a un conjunto vacío.

Page 12: Representación con grafos de imágenes 3D para su búsqueda y recuperación. Aproximación con imágenes 2D Binarias. Luis Fernández Esteban. Miguel Fernández

Ejemplo Esqueleto.

Page 13: Representación con grafos de imágenes 3D para su búsqueda y recuperación. Aproximación con imágenes 2D Binarias. Luis Fernández Esteban. Miguel Fernández

Ejemplo Esqueleto.

Page 14: Representación con grafos de imágenes 3D para su búsqueda y recuperación. Aproximación con imágenes 2D Binarias. Luis Fernández Esteban. Miguel Fernández

Generación de Nodos.• Los nodos se generan a partir de cada componente k del esqueleto de la imagen, donde k es el rango. En primer lugar se realizan K dilataciones sucesivas a la componente K del esqueleto, los nodos son generados como resultado de las dilataciones. Después se procede a realizar K-1 dilataciones en la componente K-1 menos los píxeles contenidos en la componente K. • Finalmente el grafo está compuesto por la unión de los nodos generados en cada paso. Si los nodos tienen píxeles en común, estos pertenecen al nodo obtenido de la componente con mayor k.

Page 15: Representación con grafos de imágenes 3D para su búsqueda y recuperación. Aproximación con imágenes 2D Binarias. Luis Fernández Esteban. Miguel Fernández

Ejemplo Nodos.

Original k=2 k=1 k=0 Resultado

Page 16: Representación con grafos de imágenes 3D para su búsqueda y recuperación. Aproximación con imágenes 2D Binarias. Luis Fernández Esteban. Miguel Fernández

Implementación.• Plugin para Ia aplicación ImageJ.

• API de ImageJ para procesamiento de imágenes

• Lenguaje de programación Java

• El propio programa da la opción de compilar tus propios plugins.

Page 17: Representación con grafos de imágenes 3D para su búsqueda y recuperación. Aproximación con imágenes 2D Binarias. Luis Fernández Esteban. Miguel Fernández
Page 18: Representación con grafos de imágenes 3D para su búsqueda y recuperación. Aproximación con imágenes 2D Binarias. Luis Fernández Esteban. Miguel Fernández

Implementación.

• Nombre del plugin: NodeGenerator.

• Obtiene la secuencia de componentes que forman el esqueleto.

•Obtiene la secuencia de nodos.

Page 19: Representación con grafos de imágenes 3D para su búsqueda y recuperación. Aproximación con imágenes 2D Binarias. Luis Fernández Esteban. Miguel Fernández

Implementación.// Al implementar PlugInFilter tenemos que implementar los metodos// setup y run. public class GenerateNodes_ implements PlugInFilter

// El método setup configura lo necesario para el plugin.// Comprobamos que la imagen de entrada es binaria.

 public int setup(String arg, ImagePlus imp)

// El método run es el que realiza la funcionalidad del plugin.

public void run(ImageProcessor ip) {

 

Page 20: Representación con grafos de imágenes 3D para su búsqueda y recuperación. Aproximación con imágenes 2D Binarias. Luis Fernández Esteban. Miguel Fernández

Implementación.Otros Métodos auxiliares.

// El método getK calcula el número de componentes que tendrá el //esqueleto

 int getK(ImageProcessor ip)

Page 21: Representación con grafos de imágenes 3D para su búsqueda y recuperación. Aproximación con imágenes 2D Binarias. Luis Fernández Esteban. Miguel Fernández

Implementación. Otros Métodos auxiliares.

// Devuelve una Lista de imágenes, cada imagen es una componente del //esqueleto 

ArrayList<ImagePlus> getSkeletons(ImageProcessor ip)

Page 22: Representación con grafos de imágenes 3D para su búsqueda y recuperación. Aproximación con imágenes 2D Binarias. Luis Fernández Esteban. Miguel Fernández

Implementación.Otros Métodos auxiliares.

// Devuelve una animación con las componentes del esqueleto. ImagePlus getStakOfSkeleton(ArrayList<ImagePlus> skeletons)

Page 23: Representación con grafos de imágenes 3D para su búsqueda y recuperación. Aproximación con imágenes 2D Binarias. Luis Fernández Esteban. Miguel Fernández

Implementación.Otros Métodos auxiliares.

// Devuelve una animación con los nodos obtenidos.

 ImagePlus getStakOfNodes(ArrayList<ImagePlus> nodos)

Page 24: Representación con grafos de imágenes 3D para su búsqueda y recuperación. Aproximación con imágenes 2D Binarias. Luis Fernández Esteban. Miguel Fernández

Implementación.Otros Métodos auxiliares.

// Devuelve una lista de imágenes, cada imagen es un posible nodo.

 ArrayList<ImagePlus> getNodos(ArrayList<ImagePlus> skeletons)

Page 25: Representación con grafos de imágenes 3D para su búsqueda y recuperación. Aproximación con imágenes 2D Binarias. Luis Fernández Esteban. Miguel Fernández

Demostración.

Page 26: Representación con grafos de imágenes 3D para su búsqueda y recuperación. Aproximación con imágenes 2D Binarias. Luis Fernández Esteban. Miguel Fernández

Dudas.

Page 27: Representación con grafos de imágenes 3D para su búsqueda y recuperación. Aproximación con imágenes 2D Binarias. Luis Fernández Esteban. Miguel Fernández

Gracias por vuestra atención.