290 likes | 410 Views
Aplicación basada en grafos de Reeb para detección temprana de roturas en piezas. Procesamiento de imágenes digitales (Topología digital) Escuela Técnica Superior de Ingeniería Informática José María Navarro España Manuel Abel Corral Domínguez Curso 2012-2013. ÍNDICE. OBJETIVOS
E N D
Aplicación basada en grafos de Reeb para detección temprana de roturas en piezas Procesamiento de imágenes digitales (Topología digital) Escuela Técnica Superior de Ingeniería Informática José María Navarro España Manuel Abel Corral Domínguez Curso 2012-2013
ÍNDICE • OBJETIVOS • GRAFOS Y GRAFOS DE REEB • ESTADO DEL ARTE • ENTORNO DE IMPLANTACIÓN • APLICACIÓN PROPIA: ALGORITMIA • MANUAL DE USUARIO • EXPERIMENTACIÓN • COMPARATIVA • CONCLUSIONES • BIBLIOGRAFÍA
OBJETIVOS • Estudiar el estado del arte actual con grafos de Reeb • Implementar una aplicación basada en grafos de Reeb • Ofrecer una aplicación didáctica • Definición de un entorno para tal aplicación • Diseñar una aplicación para WindowsTM 7
GRAFOS Y GRAFOS DE REEB (I) • Grafo: estructura matemática que relaciona nodos • Dirigidos (bidireccional) • No dirigidos • Implementación: • Listas de adyacencia • Tablas de adyacencia • En la aplicación propia: listas y bidireccionales
GRAFOS Y GRAFOS DE REEB (II) • Propuesto por el matemático francés Georges Henri Reeb (1920-1993) en 1946 • Se trata de un grafo con nodos que permiten reflejar cambios en el objeto sobre el que se realiza
ESTADO DEL ARTE (I) • Obtener el grafo de Reeb de un objeto para detectar defectos [6] • El objeto se recubre de un mallado triangular (también se puede utilizar tetraedros) • Se incrementa el grafo, al mismo tiempo que se recorren los triángulos.
ENTORNO DE IMPLANTACIÓN (I) • Se ha desarrollado para un entorno industrial: cinta transportadora. • Dispositivo propuesto: cámara y selector
ENTORNO DE IMPLANTACIÓN (II) • Propuestas para controlar verticalidad: • molde • bandas nervadas
APLICACIÓN PROPIA: ALGORITMIA (I) • Las imágenes están en formato bmp de 24 bits • La aplicación las procesa ya binazaridas: • Binarización(Imagen, Umbral) 1) Para cada píxel P de Imagen: 1.1) Si P > Umbral entonces P = Blanco 1.2) Si P <=Umbral entonces P = Negro 2) Devolver Imagen
APLICACIÓN PROPIA: ALGORITMIA (II) • Se parte de un catálogo de piezas sobre las que se calculan puntos de unión en caso de no estar fracturas y se programa • Puntos críticos: píxeles con tres de sus vecinos blancos usando 4 adyacencia (no extremos)-> Casos
APLICACIÓN PROPIA: ALGORITMIA (III) • Primer paso: Cálculo de puntos medios Procesa_Fila(F) 1) Para cada columna C de Imagen: 1.1) pixelActual=Imagen[F][C] 1.2) pixelSiguiente=Imagen[F][C+1] 1.3) Si cambiaBlancoNegro(pixelActual, pixelSiguiente) 1.3.1) jbn=C+1 1.4) Si cambiaNegroBlanco(pixelActual, pixelSiguiente) 1.4.1) jnb=C 1.5) Si jbn!=-1 AND jnb!=-1 1.5.1) jmedio=(int)(jbn + jnb)/2 1.5.2) añadir(vectorFila, jmedio) 1.5.3) jnb=jbn=-1 2) Devolver vectorFila
APLICACIÓN PROPIA: ALGORITMIA (IV) • Primer paso: Cálculo de puntos medios
APLICACIÓN PROPIA: ALGORITMIA (V) • Segundo paso: Unir los puntos según la pieza y llamar al objeto Graph para construir el grafo: CasoGrafoReeb(Imagen) 1)Para cada fila F de Imagen: 1.1) VectorF1 = Procesa_Fila(F) 1.2) VectorF2 = Procesa_Fila(F+1) 2) Para cada punto P de VectorF1: 2.1) Si VectorF1[P] es un caso con alguno de VectorF2: 2.1.1) Unir VectorF1[P] con punto de VectorF2 2.1.2) Crear arco entre los dos puntos unidos 3) Devolver Imagen
APLICACIÓN PROPIA: ALGORITMIA (VI) • Segundo paso: Unir los puntos según la pieza y llamar al objeto Graph para construir el grafo:
APLICACIÓN PROPIA: ALGORITMIA(VII) • Tercer Paso: Comparar ambos grafos Comparar_Grafos() • VectorNodos1=grafoModelo.getNodos() • VectorNodos2=grafoPieza.getNodos() • Si VectorNodos1.size()==VectorNodos2.size() 3.1) iguales=comprobar_que_todos_tienen_iguales_coordenadas( VectorNodos1,VectorNodos2) 3.2) Si iguales 3.2.1) mostrar(“Pieza correcta”) 3.3) |Otro caso: 3.3.1) mostrar (“Pieza con rotura”) 4) |Otro caso: mostrar(“Pieza con rotura”)
APLICACIÓN PROPIA:ALGORITMIA(VIII) Tercer paso: Comparar ambos grafos • Comparar ambos grafos -Nº nodos iguales -Hay nodos con coordenadas distintas Salida: Pieza dañada
MANUAL DE USUARIO (I) • Interfaz amigable similar a la del sistema • Botones: Cargar, Reeb, Guardar, Borrar • Panel derecho: detección comparativa • Opciones formato: • Ajuste del tamaño: zoom, centrado
MANUAL DE USUARIO (II) • Cargar pieza de la base de datos: Cargar
MANUAL DE USUARIO (III) • Obtener grafo de Reeb: Reeb
MANUAL DE USUARIO (IV) • Repetir pasos para pieza desde la cinta
MANUAL DE USUARIO (V) • Detección de fisuras:panel derecho>Comparar
EXPERIMENTACIÓN (I) • Pieza 1
EXPERIMENTACIÓN (II) • Pieza 2
EXPERIMENTACIÓN (III) • Pieza 3
EXPERIMENTACIÓN (IV) • Pieza 4
COMPARATIVA • La empresa ReniShawTMoferta un producto para detección de fisuras en tornillos mediante un láser y sensores. • La aplicación propia tiene un eminente carácter didáctico y se dedicado a detección temprana de fisuras: un primer filtro para las piezas rotas que se ha complementar con productos más específicos.
CONCLUSIONES • Se ha desarrollado una aplicación netamente didáctica • Se han usado estructuras matemáticas • Se ha basado en grafos de Reeb • Se ha definido el entorno de implantación • Se ha diseñado una aplicación para WindowsTM 7
BIBLIOGRAFÍA [1] AnExtensiveExamination of Data StructuresUsing C# 2.0 http://msdn.microsoft.com/en-us/library/ms379574%28v=vs.80%29.aspx [20-11-2012] [2] Ingeniería del Transporte, López Boada y otros, Editorial Uned, (1ª edición) [3] Data skeletonization via Reeb Graphs, Issam y otros: http://books.nips.cc/papers/files/nips24/NIPS2011_0559.pdf [4] http://www.renishaw.es/es/1030.aspx [1-12-2012] [5] http://www.shardaintl.com/chevron.htm [10-12-2012] [6] Robust On-line Computation of Reeb Graphs: Simplicity and Speed, Pascucci y otros: http://www.pascucci.org/pdf-papers/pascucci-siggraph-2007-Reeb-Graph.pdf [7] A Fast Algorithm for Computing Reeb Graph 2-Manifold, Jean- Baptiste Debard: http://cg.cs.tsinghua.edu.cn/archive/2006-TR-01.pdf [8] Topological Modeling Of Illuminated Surfaces Using Reeb Graph: A. Ben Hnmza http://ieeexplore.ieee.org/xpl/articleDetails.jsp?reload=true&arnumber=1247075