cenidet
V O L . 1 3V E R A N O 2 0 0 6
Editorial
Estimados Colegas,
La Computer Society, con aproximadamente
100,000 miembros, fue fundada en 1946. Es la
organiz...
El Centro ofrece la posibilidad de
realizar trabajos de investigación en
convenio con otras instituciones como el
Institut...
21.
Sumario
1. Editorial.
2. Bienvenidos a CENIDET.
Clasificación de páginas Web :
un análisis semántico.7.
Procesamiento ...
Sumario
Metodología para la generación
de modelos 3D.41.
Los Sistemas Híbridos
Neuro-Simbólicos.35.
Detección de puntos de...
Clasificación de páginas Web: un análisis semántico
Rocío Vargas Arroyo, Azucena Montes Rendón
Centro Nacional de Investig...
atención se centra en los marcadores reformuladores
recapitulativos porque con ellos se presenta una
recapitulación o conc...
Figura 2. Esquema de clasificación de páginas HTML.
5.1. Petición al buscador Web y extracción de
hipervínculos
El proceso...
5.3. Localización del término buscado y
exploración del contexto
Una vez que se seleccionaron los párrafos, el
termino de ...
6. Conclusiones
La manera más sencilla de obtener información de
la Web es mediante buscadores Web y directorios; sin
emba...
13
Procesamiento Digital de Imágenes en el Dominio Wavelet
Osslan Osiris Vergara Villegas y Raúl Pinto Elías
Centro Nacion...
14
El análisis multiresolución juega un papel muy
importante en el mecanismo de percepción y de toma
de decisiones de los ...
15
convierten a cero los primeros tres niveles se puede
obtener una imagen como la de la figura 7a. Si se
cambian a cero c...
16
soporte compacto, simetría, etc. Por otro lado, el nivel
de resolución no debe ser mayor que Log2(N).
Después, se reali...
17
GAP: Una Herramienta para Solucionar el Problema de la Visualización de
Contenidos Web en Dispositivos Pocket PC.
J. Ca...
18
inservible miles de recursos ya existentes (se deberían
de modificar tanto clientes como servidores Web).
2.2 Modificac...
19
proyecto Moviware[6], cuya función principal es
brindar una serie de servicios a clientes móviles
propensos a desconexi...
20
tanto GAP, WinGAP y SmartGAP son el mismo
programa pero con nombre distinto, para diferenciar la
plataforma en la cual ...
21
Evaluación de herramientas para procesos de negocio en tres niveles de
abstracción
Erika M. Nieto Ariza1
, Javier Ortiz...
22
2. Conceptos de modelado
Un modelo de proceso de negocio puede ser visto
en distintos niveles de abstracción, estas vis...
23
realiza el análisis y evaluación de las herramientas de
modelado. La calificación correspondiente a cada
concepto de la...
24
Tabla 6: Evaluación a nivel de integración
Nivel de
integración
Valor
Máx.
I* Tropos EKD BPM-
UML
OO-
Method
Actor 5 5 ...
27
Lenguaje de scripts para segmentación de imágenes
Francisco Cervantes, Raúl Pinto
Centro Nacional de Investigación y De...
28
la necesidad de modificar el código del núcleo, además
cada operador es independiente entre ellos. La única
restricción...
29
Mediante esta estructura lo primero que hace el
sistema es explorar la biblioteca de operadores para
generar las estruc...
30
operadores; BinarizarImagen y VerImagenGris. Estos
scripts pueden ser almacenados para ser reutilizados
posteriormente....
31
Recuperación de Información de Páginas Web mediante una Ontología que es
poblada usando Clasificación Automática de Tex...
32
cantidad de enlaces que le hagan referencia. A mayor
cantidad de enlaces a una página, mayor su puntuación,
convirtiénd...
33
incluyen a los signos de puntuación y a las etiquetas de
HTML; también aparecen palabras de uso muy
frecuente, palabras...
34
corridas, mostrando el porcentaje de elementos bien
clasificados.
Tabla 1. Porcentajes de elementos bien clasificados.
...
35
Sistemas Híbridos Neuro-Simbólicos
Vianey Guadalupe Cruz Sánchez, Gerardo Reyes Salgado, Osslan Osiris Vergara Villegas...
Lookingforward
Lookingforward
Lookingforward
Lookingforward
Lookingforward
Lookingforward
Lookingforward
Lookingforward
Lookingforward
Lookingforward
Lookingforward
Lookingforward
Lookingforward
Lookingforward
Lookingforward
Lookingforward
Lookingforward
Lookingforward
Lookingforward
Lookingforward
Lookingforward
Lookingforward
Lookingforward
Lookingforward
Lookingforward
Lookingforward
Lookingforward
Lookingforward
Lookingforward
Lookingforward
Lookingforward
Lookingforward
Lookingforward
Lookingforward
Lookingforward
Lookingforward
Lookingforward
Lookingforward
Lookingforward
Próxima SlideShare
Cargando en…5
×

Lookingforward

246 visualizaciones

Publicado el

0 comentarios
0 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Sin descargas
Visualizaciones
Visualizaciones totales
246
En SlideShare
0
De insertados
0
Número de insertados
4
Acciones
Compartido
0
Descargas
0
Comentarios
0
Recomendaciones
0
Insertados 0
No insertados

No hay notas en la diapositiva.

Lookingforward

  1. 1. cenidet V O L . 1 3V E R A N O 2 0 0 6
  2. 2. Editorial Estimados Colegas, La Computer Society, con aproximadamente 100,000 miembros, fue fundada en 1946. Es la organización líder para los profesionales de las ciencias computacionales, y la más grande de las sociedades organizadas por el IEEE. La Computer Society, fomenta la comunicación internacional, cooperación y el intercambio de información. Esta dedicada a la promoción de la teoría, practica y la aplicación de la computación en la tecnología del procesamiento de la información. El Looking Forward es la revista estudiantil escrita por estudiantes y para estudiantes de la Computer Society. Después de una gran esfuerzo, por fin presentamos la edición número 13 de la revista electrónica Looking Forward. Antes de continuar queremos agradecer la ayuda prestada por los miembros del Capítulo Estudiantil de Computación del CENIDET, quienes están muy honrados ser elegidos para producir esta edición. Los artículos contenidos en esta revista abarcan diversos temas, todos relacionados con los proyectos de tesis de Maestría y Doctorado que se están desarrollando en el Departamento de Computación. Particularmente, en la líneas de investigación como: Ingeniería de Software, Sistemas Distribuidos e Inteligencia Artificial. Agradecemos la cooperación de la M.C Andrea Magadán Salazar por coordinar a todos los miembros del mismo. No puedo concluir la editorial sin hacer un reconocimiento al Prof. Ken Christensen que con su apoyo y confianza, ha sido posible que el Capítulo Estudiantil del CENIDET estuviera a cargo de la presente edición. Esperamos que en un futuro esta revista pueda ser agregada al IEEExplore como parte de la literatura de la Computer Society. Larga vida al Looking Forward Jonathan Villanueva Tavira Jonathan.villanueva@ieee.org Editor Director Ken Christensen, Associate Profesor, Department of Computer Science and Engineering , University of South Florida Editor en Jefe M.C Andrea Magadán Salazar Vicepresidenta del Capítulo de Computación Sección Morelos. Editores Jonathan Villanueva Tavira Rocio Vargas Arroyo Jorge A. Saldaña García Colaboradores Edgar Colorado Soto Erika M. Nieto Ariza Francisco Cervantes Álvarez Hilda Solano Lira Jorge A. Saldaña García Juan C. Olivares Rojas Luis E. Morán López Maricela C. Bravo Contreras Michelle Arandine Barrón Vivanco Osslan O. Vergara Villegas Rafael I. Ponce Medellín Rocío Vargas Arroyo Salvador Cervantes Álvarez Vianey G. Cruz Sánchez Miembros del Capítulo Estudiantil de Computación Cenidet
  3. 3. El Centro ofrece la posibilidad de realizar trabajos de investigación en convenio con otras instituciones como el Instituto de Investigaciones Eléctricas y el Centro de Investigación en Energía; además existen convenios con importantes universidades e institutos del extranjero. CENIDET cuenta con los departa- mentos de Electrónica , Mecánica , Mecatrónica y Ciencias Computacionales sede del Capitulo Estudiantil de Computación del IEEE. El Centro Nacional de Investigación y Desarrollo Tecnológico, CENIDET, está ubicado en Cuernavaca, Morelos, ciudad que se ha convertido en sede de numerosas instituciones científicas, dedicadas a la investigación y a la docencia, lo que ha permitido un intercambio fructífero entre éstas. Cuernavaca se beneficia de su cercanía a la ciudad de México, ya que los profesores investigadores y los estudiantes pueden desplazarse fácilmente para participar o asistir a eventos, intercambiar información, consultar bibliotecas, recibir asesorías y, en general, para relacionarse con todas las actividades que propicien y amplíen el conocimiento y la creatividad. El Centro, naturalmente, participa de esta valiosa sinergia. El CENIDET ofrece sus programas de posgrado, para egresados de licenciaturas afines que estén interesados en prepararse para la investigación aplicada y el desarrollo tecnológico. Bienvenidos a CENIDET Departam ento de Ciencias Com putacionales
  4. 4. 21. Sumario 1. Editorial. 2. Bienvenidos a CENIDET. Clasificación de páginas Web : un análisis semántico.7. Procesamiento Digital de Imágenes en el dominio Wavelet.13. Evaluación de herramientas para procesos de negocio en tres niveles de abstracción. 27. Lenguaje de scrips para segmentar Imágenes. GAP: Una Herramienta para Solucionar el Problema de la Visualización de Contenidos Web en Dispositivos Pocket PC. Recuperación de Información de Páginas Web mediante una Ontología que es poblada usando Clasificación Automática de Textos . 17. 31.
  5. 5. Sumario Metodología para la generación de modelos 3D.41. Los Sistemas Híbridos Neuro-Simbólicos.35. Detección de puntos de fuga usando el teorema de Thales.45. Segmentación del color para caracterizar el andar humano.55. Un Traductor Basado en una Ontología para Comunicar Agentes de Negociación en la Internet. 49. 59. Descripción de Dos Modelos Estadísticos Aplicados a la Extracción de Rasgos Faciales: Modelo de Proyecciones Integrales y Modelo de Forma Activa. 63. Autores.
  6. 6. Clasificación de páginas Web: un análisis semántico Rocío Vargas Arroyo, Azucena Montes Rendón Centro Nacional de Investigación y Desarrollo Tecnológico {rvargas04c,amr}@cenidet.edu.mx Abstract En este artículo se presenta un análisis semántico para la clasificación de páginas Web. Un conjunto de páginas Web es categorizado mediante la desambiguación del significado del término utilizado para la búsqueda. El conjunto mencionado es resultado de una consulta simple a un buscador. El proceso de desambiguación comienza con el aislamiento de algunos párrafos sobresalientes; los marcadores lingüísticos son utilizados para realizar esta tarea. El término buscado es localizado dentro de los párrafos seleccionados y el Método de Exploración Contextual aplicado para identificar un conjunto de palabras que conlleven al descubrimiento de relaciones dentro de una Ontología. Finalmente, las relaciones descubiertas son utilizadas para asignar la página Web a una categoría. 1. Introducción El procesamiento del Lenguaje Natural es una tarea desafiante de la Inteligencia Artificial, porque tratar con el lenguaje humano no es una tarea sencilla. Con el inmensurable crecimiento de la Web, el problema de obtener la información apropiada y deseada también ha crecido. Varios grupos de investigación han obtenido resultados significativos y ligeramente buenos, pero no lo suficientemente efectivos para resolver las necesidades generales. Los resultados obtenidos son sensibles al problema de la ambigüedad, esta sensibilidad es causada principalmente por las técnicas utilizadas. La mayoría de los proyectos desarrollados [1-9] se basan en métodos estadísticos e ignoran las técnicas lingüísticas. En este trabajo, nuestra principal intención es la creación de una herramienta capaz de clasificar un conjunto de páginas HTML escritas en español. Marcadores lingüísticos, Ontologías y el Método de Exploración contextual [10] fueron integrados para completar la tarea. 2. Marcadores lingüísticos Con la finalidad de enfatizar ciertas ideas contenidas en un texto, el autor hace uso de los marcadores del discurso. Estos marcadores son unidades lingüísticas que definen el orden del discurso. Martín Zorraquino y Portolés [11] definen estos marcadores como: “Unidades lingüísticas invariables que no ejercen una función sintáctica en el marco de la predicación oracional – son pues, elementos marginales – y poseen un cometido coincidente en el discurso: el de guiar, de acuerdo con sus propiedades morfosintácticas, semánticas y pragmáticas, las inferencias que se realizan en la comunicación” [11]. Prada [12] extrajo, del análisis extensivo de estos marcadores hecho por Martín Zorraquino y Portolés [11], cinco categorías (ver tabla 1). Tabla1. Marcadores del discurso Categoría Subcategoría Comentadores Ordenadores Marcadores estructuradores de la información Disgresores Aditivos Consecutivos Marcadores conectivos Contraargumentativos Explicativos De rectificación De distanciamiento Reformuladores Recapitulativos De refuerzo argumentativoOperadores argumentativos De concreción De modalidad epistémica De modalidad deóntica Enfocadotes de la alteridad Marcadores conversacionales Metadiscursivos Cada tipo de marcador tiene un uso especial en el discurso en español, pero para este proyecto, la 7
  7. 7. atención se centra en los marcadores reformuladores recapitulativos porque con ellos se presenta una recapitulación o conclusión de lo que se expresó con anterioridad. Estos marcadores concentran una visión general de la intención del texto y permiten al lector conocer el pensamiento final del autor. Ejemplos de estos marcadores son: En suma, en conclusión, en definitiva, en fin, al fin y al cabo, resumiendo, finalmente, entre otros. 3. Método de Exploración Contextual El Método de Exploración Contextual (MEC) [10] fue desarrollado por el equipo de LaLIC de la universidad Paris-Sorbonne y dirigido por Jean Pierre Desclés. Este método proporciona un marco para la identificación de información semántica en un texto además de un conjunto de mecanismos que ayudan en la resolución de indeterminaciones semánticas o de casos ambiguos. También asume que todos los textos incluyen unidades lingüísticas que ayudan en la tarea de la construcción del sentido. El método requiere de la descripción de índices e indicadores. Los indicadores son unidades lingüísticas asociadas a un conjunto de reglas de exploración contextual. Cuando un indicador es localizado dentro de un texto una regla es disparada; el contexto del indicador es explorado con el objetivo de identificar palabras o índices que lleven en dirección al significado real del indicador. Indicadores, índices y reglas integran la base de conocimiento lingüístico. 4. Interacción con la ontología En este proyecto se utiliza una versión en español de EuroWordNet[13]. EuroWordNet es una ontología léxico-semántica de varios lenguajes, entre ellos español, holandés, italiano, francés, alemán y checo. Mantiene el modelo de WordNet pero integra algunas mejoras, tal como una mejor expresividad de la base de conocimiento, agrega nuevas definiciones de relaciones y relaciones transcategoriales. La versión utilizada en este proyecto fue transformada en una base de datos y accedida mediante peticiones SQL. El resultado de las peticiones conlleva a la construcción de las reglas de exploración contextual. Figura 1. Resultado gráfico de una petición a la ontología. Término buscado capa. 5. Analizador semántico El proceso inicia con una petición a un bien conocido y ampliamente utilizado buscador Web. Se utiliza un término simple (los términos simples son mas sensibles al problema de la ambigüedad) al realizar la búsqueda y un conjunto de hipervínculos es devuelto. Este conjunto es filtrado para obtener únicamente las páginas HTML escritas en español. Una vez que los hipervínculos son extraídos, cada página es cargada y su contenido es analizado para obtener los segmentos de texto más sobresalientes; esta selección de texto es hecha mediante la localización de algunos marcadores lingüísticos dentro del texto. El término buscado es localizado dentro de los párrafos seleccionados. El contexto a la derecha y a la izquierda del termino son evaluados con la finalidad de localizar índices que guíen hacia el descubrimiento de de relaciones dentro de la ontología. Las relaciones extraídas permiten, mas adelante, la asociación de la página Web a una categoría. El proceso completo es representado gráficamente en la figura 2. 8
  8. 8. Figura 2. Esquema de clasificación de páginas HTML. 5.1. Petición al buscador Web y extracción de hipervínculos El proceso de clasificación inicia con la petición a un buscador Web. El término de búsqueda es un término simple, es decir, una sola palabra. El buscador Web devuelve un conjunto de hipervínculos enlazados a páginas donde el término de búsqueda está presente. Los hipervínculos extraídos y sus páginas asociadas son analizados posteriormente. Se analizaron varias cadenas de petición con el objetivo de simplificar la petición al buscador Web. El idioma y el formato son especificados. Ejemplo: http://www.google.com.mx/search?num=<number of resulting links>&as_epq=<search term>&lr= <language> &as_filetype=html Se extraen dos conjuntos de hipervínculos, el primer conjunto corresponde al vinculo directo a la página Web, en tanto que el segundo corresponde a la versión en caché de la misma página. Ver figura 3. Figura 3. Interfaz sencilla para la extracción de hipervínculos. 5.2. Localización de marcadores lingüísticos y selección de párrafos Cada página Web es cargada, el contenido de su cuerpo e información representativa como los metadatos son extraídos. Ver figura 4. Figura 4. Interfaz simple para la extracción del contenido de la página Web. Algunos marcadores lingüísticos, en su mayoría recapitulativos, son localizados dentro del cuerpo de la página. Los párrafos donde estos marcadores están presentes son seleccionados para un análisis más extensivo. Considere el siguiente segmento de texto y el término buscado “capa”: “…El segundo sistema permite una elección mas amplia del copulador y del revelador, pero implica mayores dificultades en el tratamiento. El revelador que tiene el copulador debe actuar en la capa correcta, y esto se logra controlando la velocidad de difusión o aplicando exposiciones controladas. El método de la difusión controlada es anticuado. El método de exposición selectiva utiliza una película de varias capas que tiene la siguiente construcción: sobre la base se aplica la emulsión sensible al rojo y encima una emulsión sensible al verde; sobre esta, una capa de gelatina que contiene un colorante filtro amarillo, y finalmente sobre la capa filtro se aplica una capa de emulsión sensible al azul…”[14] De este segmento de texto se extrae un párrafo representativo: “El método de exposición selectiva utiliza una película de varias capas que tiene la siguiente construcción: sobre la base se aplica la emulsión sensible al rojo y encima una emulsión sensible al verde; sobre esta, una capa de gelatina que contiene un colorante filtro amarillo, y finalmente sobre la capa filtro se aplica una capa de emulsión sensible al azul”. 9
  9. 9. 5.3. Localización del término buscado y exploración del contexto Una vez que se seleccionaron los párrafos, el termino de búsqueda es localizado dentro de cada párrafo y tanto su contexto izquierdo como derecho son explorados en busca de términos clave que guíen al descubrimiento de relaciones dentro de una ontología. Se aplica el Método de Exploración Contextual [10] y tanto indicadores como índices y reglas se definen. El conjunto de indicadores se compone por el término de búsqueda, y por los sinónimos de éste. El conjunto de índices es poblado según una consulta a la ontología, y las reglas son creadas dinámicamente. Ejemplo: Indicadores = {capa, mano, baño} Índices = {pintura, emulsión, impermeabilizante, esmalte, barniz, …} Regla: Si En el contexto del conjunto I1 aparece cualquier índice perteneciente al conjunto I2 Entonces Asignar el significado “Cubrimiento aplicado a una superficie” al termino buscado en la oración seleccionada Fin si “El método de exposición selectiva utiliza una película de varias capas que tiene la siguiente construcción: sobre la base se aplica la emulsión sensible al rojo y encima una emulsión sensible al verde; sobre esta, una capa de gelatina que contiene un colorante filtro amarillo, y finalmente sobre la capa filtro se aplica una capa de emulsión sensible al azul” . 5.4. Extracción de relaciones y categorización final Para la categorización final, se debe definir un conjunto de categorías. Un primer enfoque para dar solución a esta tarea es mediante la extracción de un grupo de relaciones donde el término de búsqueda y el sentido dado estén involucrados. Ejemplo: Figura 5. Relaciones de homonimia del término de búsqueda capa. Todos los nodos presentados en la figura 5 son homónimos del termino capa, cada nodo tiene un significado distinto. El nodo 0 significa “Acción y efecto de cubrir la superficie de un cuerpo con un material” en tanto que el nodo 3 significa “Cubrimiento aplicado a una superficie”. Estas relaciones fueron encontradas en la ontología, pero no son suficientes para la creación de una categoría; por lo tanto, las relaciones de un segundo nivel deben ser descubiertas. Figura 6. Relaciones de Segundo nivel para el término de búsqueda capa. En la figura 6, se muestran las relaciones de hiponimia (para los nodos 0 y 3) del término capa. Es en este nivel donde aparecen términos índices y esto nos permite la creación de categorías para la clasificación. Por lo tanto, un primer conjunto de nombres de categorías podría ser conformado por las relaciones de primer nivel y su significado. Es aquí donde se presenta un gran problema, los datos de la ontología no están completos, algunos de los significados no están incluidos en ella. 10
  10. 10. 6. Conclusiones La manera más sencilla de obtener información de la Web es mediante buscadores Web y directorios; sin embargo, los resultados obtenidos no siempre son suficientemente buenos debido a que las técnicas de búsqueda no se preocupan por el contenido semántico de las páginas Web. Por lo tanto, se hace necesaria la implementación de una herramienta capaz de realizar una clasificación apropiada de páginas Web, según el significado real de la petición. Con una herramienta como ésta, el proceso realizado por el usuario será mejorado ya que los documentos fuera de su interés serán discriminados y como consecuencia, el número de páginas a visitar y el tiempo invertido en explorar las no relevantes será disminuido. Por otra parte, la introducción de técnicas lingüísticas en los métodos de clasificación pudiera mejorar la manera en que los Web Spiders indexan la información. 11. Referencias [1] A. Gulli and P. Ferragina, “The anatomy of a hierarchical clustering engine for web-page, news and book snippets”, Fourth IEEE International Conference on Data Mining, ICDM’04, Brighton, UK, 2004. [2] A. Gulli, “SnakeT”, http:// www.snaket.com, Pisa University, Italy. [3] Vivísimo, Inc., “How the Vivísimo clustering engine works, http://www.vivisimo.com , 2003. [4] Vivísimo, Inc.,”Clusty”, http://www.clusty.com , 2005. [5] A. Téllez-Valero, M. Montes-y-Gómez and L. Villaseñor-Pineda, “Aplicando la clasificación de texto en la extracción de información”, Encuentro Internacional de Ciencias de la Computación, ENC, Colima, México, September 2004. [6] J. M. Gómez, E. Puertas, G. Carrero, M. de Buenaga, “Categorización de texto sensible al coste para filtrado en Internet”, Procesamiento del Lenguaje Natural, SEPLN, Magazine nº 31, September 2003. [7] L. Golub, Automated subject classification of textual Web pages, for browsing, Thesis for the degree of Licenciate in Philosophy, Lund University, Switzerland, August 2005. [8] F. Sebastiani, “Machine learning in automated text categorization”, ACM computing surveys, 2002. [9] F. Sebastiani, “Text categorization”, in Zanasi A., Text Mining and its Applications, WIT Press, Southampton, UK, 2005. [10] J. P. Desclés, E. Cartier, A. Jackiewicz and J. L. Minel, “Textual Processing and Contextual Exploration Method”, Context 97, Rio de Janeiro, February 1997. [11] Martín Zorraquino, Mª Antonia y José Portolés Lázaro. Los marcadores del discurso. Bosque y Demonte. Vol. 3. 4051-4213. [12] J. Prada, G. Moncecchi, “Reconocimiento eficiente de marcadores del discurso en español”, VIII Simposio Internacional de Comunicación Social, Santiago de Cuba, Cuba, January 2003. [13] Amsterdam University, “EuroWordNet: Building a multilingual database with wordnets for several European languages”, March 2006, http://www.illc.uva.nl/EuroWordNet/ [14] “Fotografía / Fotografía en colores”, March 2006, http://www.punksunidos.com.ar/punksunidas/fotografia/foto grafia6.html 11
  11. 11. 13 Procesamiento Digital de Imágenes en el Dominio Wavelet Osslan Osiris Vergara Villegas y Raúl Pinto Elías Centro Nacional de Investigación y DesarrolloTecnológico (cenidet) Cuernavaca Morelos México. {osslan, rpinto}@cenidet.edu.mx Abstract El presente artículo da una explicación del procesamiento digital de imágenes en el dominio wavelet. Primero, una imagen es transformada con una Transformada Wavelet Discreta (TWD) después, se aplican operaciones matemáticas para destacar algunas características presentes en la imagen. La transformación puede ayudar a revelar algunas características que en el dominio original no son claras o son difíciles de detectar. En el dominio wavelet se obtiene la detección de bordes y direccionalidad, suavizado o emborronamiento, cambios en la escala, supresión de ruido, compresión y finalmente la extracción de características. 1. Introducción La transformada wavelet fue usada geofísica a principios de 1980 para el análisis de señales sísmicas [1]. Una transformada wavelet descompone una señal f en sus componentes a diferentes escalas o bandas de frecuencia. La transformación se realiza con un proceso de convolución en f usando la wavelet madre (ψ) de forma trasladada y dilatada. Según la selección de ψ la función de transformación permite por ejemplo, extraer discontinuidades o bordes de f, realizar tareas de reconocimiento de patrones o almacenar una versión compresa de f. Las wavelets son señales locales en el tiempo y generalmente tienen forma irregular. Una señal puede ser dividida en varias representaciones escaladas y trasladadas de la wavelet madre original [2]. Las wavelets ofrecen la ventaja de poder separar los detalles finos de una señal, wavelets muy pequeñas pueden ser utilizadas para separa detalles muy finos de una señal, mientras que wavelet grandes se pueden utilizar para separar detalles burdos. Además, existen diferentes familias de wavelets que se pueden seleccionar. Una wavelet en particular puede generar una representación más dispersa de una señal que otra, por lo que se deben analizar diferentes tipos de wavelets para determinar la que mejor se adecua a la aplicación que se necesita realizar en procesamiento digital de imágenes. Por ejemplo, supresión de ruido, compresión o reconocimiento de patrones. 2. Análisis Multiresolución Es el estudio de señales o procesos representados en diferentes resoluciones, proporciona un mecanismo eficiente para pasar de una resolución a otra [3]. La transformada Wavelet Discreta (TWD) es una herramienta matemática para el análisis y síntesis de señales que puede ser utilizada cuando se necesitan procesar imágenes digitales en múltiples resoluciones. La localización de las características de una señal en el dominio espacial (tiempo) y de frecuencia puede ser realizado de un manera muy eficiente usando wavelets. Dicha localización permite determinar de manera simultánea transiciones afiladas en el espectro de la señal y la posición (o tiempo) de su ocurrencia. El principio detrás del uso de la TWD para descomponer una imagen es utilizar una función wavelet Ψ para representar las frecuencias altas correspondientes a las partes detalladas de la imagen y una función de escalamiento Φ para representar las frecuencias bajas correspondientes a las partes suaves de la imagen. La figura 1 muestra el proceso de descomposición subbanda de una imagen utilizando filtros. Figura 1. Descomposición subbanda de una imagen.
  12. 12. 14 El análisis multiresolución juega un papel muy importante en el mecanismo de percepción y de toma de decisiones de los seres humanos. 3. Direccionalidad Wavelet y Detección de Bordes Con la TWD se puede obtener cierta información (detalles) acerca de la direccionalidad y bordes presentes en una imagen. En este ejemplo se utiliza la imagen de la figura 2 para explicar como obtener la direccionalidad en una wavelet y como detectar bordes. Figura 2. Imagen “Star” para el análisis de direccionalidad y bordes. Primero, se debe transformar la imagen con una TWD, para este ejemplo, la imagen se descompuso un nivel con la Symlet 4. La figura 3 muestra la imagen resultante de la descomposición. Figura 3. “Star” después de la TWD. En la figura 3 se puede observar que el borde horizontal de la imagen original es representado en la matriz de coeficientes de detalle horizontal (cuadrante superior derecho). De forma similar el borde vertical se muestra en la matriz de coeficientes de detalle verticales (cuadrante inferior izquierdo). Finalmente los bordes verticales se muestran en la matriz de coeficientes de detalle diagonales (cuadrante inferior derecho). La información de los bordes obtenida de las subbandas wavelet puede ser combinada en una sola imagen. Para lograrlo, se necesitan cambiar a cero todos los coeficientes de aproximación (cuadrante superior izquierdo) y después se debe calcular la Transformada Wavelet Discreta Inversa (TWDI). La imagen resultante se muestra en la figura 4. Figura 4. Imagen de bordes “Star”. Se puede utilizar un proceso similar para separar los bordes verticals y horizontales. La información de los bordes diagonales siempre es preservada aunque se trate de cortar los coeficientes diagonales. 4. Emborronamiento de la Imagen Las wavelets pueden ser utilizadas como una herramienta para emborronamiento o suavizado de imágenes. Para este ejemplo se utilizará la imagen que se muestra en la figura 5. Figura 5. Imagen “Tools . Para el suavizado se necesita calcular la TWD en mas de un nivel de descomposición, por ejemplo cuatro niveles con la wavelet symlet 4, la imagen de la transformación obtenida se muestra en la figura 6. Figura 6. Cuatro niveles de descomposición de “Tools”. Al convertir a cero cada uno de los niveles de detalle se pueden obtener versiones incrementalmente suavizadas de la imagen original. Por ejemplo, si se
  13. 13. 15 convierten a cero los primeros tres niveles se puede obtener una imagen como la de la figura 7a. Si se cambian a cero cuatro niveles se puede obtener un incremento en el emborronado como se muestra en la figura 7b. Figura 7. Imágenes “Tools”. a) Resultado de convertir a cero los primeros tres niveles, b) Resultado de convertir a cero todos los niveles. 5. Cambios en la Escala El cambio de escala de una imagen implica una operación matemática llamada interpolación. Con la TWD se puede cambiar el tamaño de una imagen con un factor de 2n . Este proceso se realiza al remover o añadir subbandas en el dominio wavelet. La posibilidad del cambio en la escala proporciona una reconstrucción progresiva de una imagen. Suponga que necesita enviar una imagen a dos usuarios en diferentes sitios y que dichos usuarios necesitan versiones de una imagen a diferente resolución. La imagen puede ser reconstruida por aproximaciones graduales de mayor resolución de la imagen final de más alta resolución y se puede enviar la imagen adecuada a cada usuario correspondiente a la subabanda de reconstrucción exacta. La figura 8 muestra el resultado de escalado para camman. Figura 8. Cambio de escala en “Camman”. a) Imagen original, b) Imagen con escala doble de la original, c) Imagen del inciso b al doble. El proceso de aumentar o disminuir la escala se comporta mejor con la TWD que el mismo proceso usando interpolación. 6. Eliminación de Ruido en Imágenes La eliminación de ruido en imágenes es el proceso de separar el ruido y los componentes de una imagen de una observación sencilla de una imagen degradada. La imagen puede estar contaminada con ruido ya sea por el proceso de adquisición de datos o debido a la ocurrencia de algún fenómeno natural. La técnica más simple para lograr la eliminación es la umbralización wavelet (shrinkage). Como ejemplo se usa la imagen ruidosa de la figura 9a). Primero, se aplica la TWD en cuatro niveles de resolución y después se utiliza un método llamado soft thresholding en todas las subbandas. Lo que se hace es cambiar a cero los coeficientes con valor menor que un umbral (T), después se resta T de los coeficientes no cero. Después se calcula la TWDI. La figura 9b muestra la imagen resultante de la eliminación. El problema principal en la supresión de ruido es la selección del mayor valor T para la umbralización. Figura 9. Imagen “Goldhill”, a) Imagen con ruido Gaussiano, b) Imagen procesada. 7. Compresión de Imágenes Una de las aplicaciones más populares con wavelets es la compresión de imágenes. El objetivo de la compresión es reducir el volumen de datos necesarios para representar cierta cantidad de información. Una de las ventajas obtenidas con el uso de la TWD es que la imagen es decorrelacionada, por lo que la imagen puede ser fácilmente compresa. Algunos de los coeficientes wavelet obtenidos de la TWD corresponden a los detalles en el conjunto de datos. Si los detalles son pequeños, entonces pueden se omitidos sin afectar substancialmente las principales características del conjunto de datos. El primer paso es transformar una imagen con la TWD, una de las decisiones importantes es que familia wavelet usar y que nivel de resolución usar. La selección de la familia wavelet depende mucho del uso posterior que se le dará a la imagen pero es necesario tomar en cuenta algunas propiedades como ortogonalidad, número de momentos vanishing,
  14. 14. 16 soporte compacto, simetría, etc. Por otro lado, el nivel de resolución no debe ser mayor que Log2(N). Después, se realiza la cuantificación para la cual se pueden utilizar dos estrategias. Una es cambiar a cero todos los coeficientes de subbanda que son menores a un umbral seleccionado. La otra es cambiar a cero los coeficientes de la diagonal inferior de la matriz o algún nivel de descomposición. Existen dos técnicas de cuantificación muy utilizadas Embedded zerotree wavelet coder (EZW) y Set Partitioning in Hierachical trees (SPIHT) que son muy eficientes y que se utilizan en muchas aplicaciones. Finalmente se codifican por entropía los coeficientes obtenidos, aquí no existe pérdida de información. La figura 10 muestra la imagen de Lena y las diferentes imágenes obtenidas del proceso de compresión con diferente espacio de almacenamiento usado y diferente calidad. Figura 10. Imagen “Lena” de izquierda a derecha disminuye la calidad y espacio de almacenamiento. 8. Extracción de Características La clasificación de imágenes es quizás la aplicación más importante con imágenes digitales, para describir la imagen se utiliza un vector de características. Las propiedades estadísticas de los coeficientes wavelet caracterizan una imagen y pueden ser usados para realizar la clasificación de imágenes. Algunas medidas obtenidas de los coeficientes wavelet son: Energía Norma-2: ∑= = N k kC N E 1 2 21 1 (1) Energía Norma-1: ∑= = N k kC N E 1 12 1 (2) Desviación Estándar: ∑= −= N k kC N E 1 2 23 )( 1 µ (3) Residuo Promedio: ∑= −= N k kCE 1 2 4 )( µ (4) Entropía: ∑= −= N k kk CC N E 1 22 25 log 1 (5) Donde ∑= = N k kC N 1 2 1 µ (6) µ es la media y N el tamaño de la imagen. 9. Conclusiones En este artículo se mostraron algunas aplicaciones de la transformada wavelet para el procesamiento digital de imágenes, con el objetivo de demostrar que una imagen puede ser manipulada incluso en el dominio wavelt. La investigación continua buscando familias de wavelets más complicadas que se adecuen a una aplicación en particular, por ejemplo para tratar de describir una característica muy importante de las imágenes conocida como geometría. 10. Referencias [1] Morlet, J., G. Arens, E. Fourgeau, and D. Giard, “Wave propogation and sampling theory part 1: Complex signal and scattering in multilayered media”, Geophysics, Vol. 47, No. 2, pp. 203 -221, febrero 1982. [2] Maryhelen S., “Image compression using wavelets”, Thesis proposal, Department of electrical and computer engineering, University of New Brunswick, Canada, 1997. [3] Mallat, S., “A theory for multiresolution signal decomposition: The wavelet representation”, IEEE Transactions on Pattern Analysis and Machine Intelligence (PAMI), Vol. 11, No. 7, pp. 674 – 693, julio 1989. [4] Gonzalez Rafael C., Woods Richard E. and Eddins Steven L., Digital image processing using Matlab, Pearson Prentice Hall, 2004.
  15. 15. 17 GAP: Una Herramienta para Solucionar el Problema de la Visualización de Contenidos Web en Dispositivos Pocket PC. J. Carlos Olivares R., J. Gabriel González S., Azucena Montes R.,Víctor J. Sosa S. e I. Rafael Ponce M. Centro Nacional de Investigación y Desarrollo Tecnológico (cenidet) {jcolivares04c, gabriel, amr, vjsosa, rafaxzero04c}@cenidet.edu.mx Abstract Esta herramienta trata de llenar el “hueco” presente en la visualización de sitios Web en dispositivos móviles PDA, caso concreto Pocket PC. Para garantizar que los usuarios puedan visualizar correctamente los recursos de Web, se necesitan dos cosas: un mecanismo que controle desconexiones y permita visualizar contenido Web sin importar el estado de conexión del dispositivo (acaparamiento), y un mecanismo que adapte el contenido de la Web a las características propias del dispositivo móvil específico (transcodificación). GAP es una herramienta que integra estos dos mecanismos y permite mejorar la experiencia de navegación de los usuarios en la Web Móvil. Palabras clave: Pocket PC, Visualización de Contenidos Web, Acaparamiento, Transcodificación. 1. Introducción Los dispositivos móviles están más cerca de lo que parecen estar, de acuerdo con [1]: “Para el año 2009, más de la mitad de los microprocesadores fabricados en el mundo estarán destinados a dispositivos móviles. El software que hará realmente útiles a los dispositivos móviles todavía no es desarrollado.” Estas estadísticas reflejan que el uso de dispositivos móviles va en creciente aumento debido principalmente a su diminuto tamaño y a que su poder de procesamiento y versatilidad van creciendo día con día. El problema de la visualización de recursos de Web en dispositivos móviles, radica en el hecho de que la gran mayoría de los sitios Web en Internet no han sido diseñados para esta clase de dispositivos. Los cuales cuentan con recursos de cómputo limitado (pantallas pequeñas, poca memoria, velocidades bajas de procesamiento, etc.) si se comparan con un equipo de cómputo tradicional. Por otra parte, la Web y el protocolo que lo gestiona: HTTP, son orientados a conexión (se basan en TCP) lo cual da como resultado de que si el usuario por algún motivo se desconecta de la red, la transacción falle. En este caso, no se podría visualizar los recursos de la Web en el cliente móvil. Las desconexiones son frecuentes en esta clase de dispositivos, debido en gran medida a una de sus principales ventajas: la movilidad. En este trabajo se describe un sistema cuyo trabajo está en progreso y que se enfoca a atacar el problema de la visualización de recursos de Web en dispositivos móviles. La característica principal de este trabajo, radica en que gran parte del sistema se ejecuta en esta clase de dispositivos, en comparación a la gran mayoría de las soluciones existentes que se ejecutan en plataformas de cómputo tradicional. 2. Alternativas de solución Para solucionar este problema se han propuesto varias alternativas: diseñar nuevos protocolos, modificar protocolos o implementar servicios intermediarios que resuelvan el problema. 2.1 Nuevos protocolos En este esquema se puede citar al protocolo WAP y al lenguaje de marcado WML, los cuales funcionan de manera análoga a HTTP-HTML en la Web tradicional. El problema radica en que WAP sólo trabaja con equipos móviles y traería consigo la misma fragmentación de la Web que se vive actualmente (páginas especiales para toda clase de dispositivos). Además, WAP se diseñó originalmente para dispositivos con capacidades de cómputo limitada (pantallas monocromáticas, bajo ancho de banda, etc.) lo que para en estos momentos se está solucionando día con día por medio de conexiones de banda ancha inalámbrica (WCDMA, UTMS, 802.11g, WiMax, etc.) y equipos cada vez más potentes. La mejor solución sería crear un nuevo protocolo. El problema es que éste debe de ser totalmente compatible con los existente por que sino, dejaría
  16. 16. 18 inservible miles de recursos ya existentes (se deberían de modificar tanto clientes como servidores Web). 2.2 Modificación de protocolos Dentro de esta alternativa se tiene el caso de un nuevo esquema de petición de los recursos Web. Este nuevo esquema recibe el nombre de Push, mientras que el esquema tradicional recibe el nombre de Pull[2]. El esquema Pull recibe el nombre de ‘sobre demanda’. Bajo este esquema, es el cliente (usuario) que de manera explícita visualiza un recurso. En nuestro caso, si un usuario quiere ver la página del cenidet, tiene que escribir en su navegador la URL: http://www.cenidet.edu.mx/. El esquema Push también recibe el nombre de ‘subscripción-notificación’. En este esquema, el usuario se subscribe a un servicio y cada vez que haya ocurrido algún evento de interés para el usuario se le envía una notificación alertándolo sobre el evento. Generalmente estos dos esquemas no viven de manera aislada. Esquemas híbridos (Pull&Push) se han aplicado en diversos servicios existentes, tal es el caso de la recepción de mensajes SMS/MMS, en donde el envío de mensajes es Pull y la recepción es Push, ya que se le notifica a los usuarios de la existencia de nuevos mensajes. Otro servicio que ha tenido gran éxito y que ha hecho famoso a dispositivos como los Blackberry es el Push-mail[3]. Bajo el esquema tradicional del correo electrónico, un usuario para consultar su correo debe de estar conectado todo el tiempo para recibir correo. Esto con lleva a grandes gastos si la conexión a la red se factura por tiempo. Con este nuevo esquema, el usuario no está conectado al servidor de correo. Cuando se recibe un nuevo correo en el servidor, éste notifica al cliente de la existencia del nuevo correo y lo envía al cliente móvil. Para este tipo de esquemas, se han propuesto protocolos como HTTPU (HTTP over UDP) o HTTPMU (HTTP over Multicast UDP) que básicamente funciona similar al HTTP pero utilizando datagramas, los cuales no están orientados a conexión. Con esto se logra una mejor calidad de servicio en la Web móvil[4]. 2.3 Servicios intermediarios Esta es la solución más extendida para solucionar el problema de la visualización de recursos Web y muchos otros problemas que presenta la Web, tal es el caso de los muros de fuego que solucionan alguno de los problemas de seguridad de la Web como el control de acceso o los proxys caché, que tratan de reducir la latencia de acceso a la información. El esquema de intermediarios es ampliamente usado por que no necesita modificar ni los clientes ni los servidores; de hecho, los procesos cliente y servidor no notan la existencia de dichos servicios intermediarios. Estos servicios se encargan del trabajo pesado y son transparentes hacia los usuarios. La herramienta que se describe en este artículo, funciona bajo el esquema de servicios intermediarios. 3. Propuesta de solución El proceso de acaparamiento soluciona el problema de la visualización de recursos Web sin importar el estado de la conexión del dispositivo móvil. Para ello, se hace necesario que el usuario tenga almacenados de manera local en su dispositivo los recursos que usará. Como se puede observar, la cantidad de recursos a ocupar puede ser inmensa, mientras que la capacidad de almacenamiento de los dispositivos es limitada. Para dar solución a este nuevo problema, es necesario tener una manera efectiva de conocer los recursos que un usuario podría utilizar. Con el acaparamiento se logra reducir esto, ya que a través de algoritmos de reglas de asociación aplicados sobre bitácoras Web, determina el conjunto óptimo de recursos que deberán replicarse a los clientes móviles[5]. Para solucionar el problema de la adaptación de los recursos Web a las capacidades de despliegue de los dispositivos móviles, se necesita de la transcodificación (transformación) de los recursos, destilando y procesando todas aquellas características que no estén disponibles en el dispositivo. El mecanismo utilizado de transcodificación utiliza un transformador de HTML a un subconjunto de HTML utilizando XML. El sistema se basa en una arquitectura cliente- servidor con una capa intermedia tanto del lado servidor como del lado cliente, tal y como se muestra en la Figura 1. El sistema en general ha sido denominado GASWT (Gestor de Acaparamiento de Sitios Web Transcodificados). Al intermediario en el lado cliente se denomina GAP (Gestor de Acaparamiento para Pocket PC), mientras que en el lado servidor se denomina GAT (Gestor de Acaparamiento y Transcodificación). El GAT se compone a su vez del MA (Mecanismo Acaparador) y del MT (Mecanismo Transformador). La comunicación entre los procesos se realiza a través de un esquema de petición-respuesta en HTTP. Tanto el MA como el MT son tomados de otros proyectos que en conjunto con éste, forman parte del
  17. 17. 19 proyecto Moviware[6], cuya función principal es brindar una serie de servicios a clientes móviles propensos a desconexiones frecuentes. Figura 1. Arquitectura general propuesta. El funcionamiento general del sistema es el siguiente. El usuario introduce una URL desde su navegador (que previamente ha sido configurado para redireccionar su salida hacia el GAP). El GAP recibe la petición y determina si se encuentra en la caché local del dispositivo, si la encuentra, envía el recurso acaparado al navegador. Cuando el recurso no se encuentra acaparado, se valida que exista conexión y se trata de obtener el recurso en línea. Si por alguna razón el recurso no se puede mostrar, (ya sea que no exista o se hay detectado un error en la conexión) se notifica al usuario enviando un mensaje de error. Por otra parte, si el recurso Web no se encuentra acaparado y no existe un patrón del sitio en el dispositivo local, el MA envía los recursos Web si es que existe el patrón para dicho sitio. Si existe el patrón pero no se tienen los recursos acaparados en el MA, éste los obtiene pidiéndolos al MT y luego los comprime en formato .zip para optimizar el proceso. Una vez que el MA ha enviado el sitio Web acaparado, el dispositivo móvil debe descomprimir el sitio Web y actualizar su lista de patrones. Este proceso ocurre de manera transparente sin que el usuario lo perciba. El MT se encarga de recolectar los documentos y en caso de ser recursos HTML, los transforma si es que los parámetros de configuración así lo indican. La transcodificación se realiza en línea, por lo que el proceso se ve ralentizado si el documento es demasiado grande. Las acciones que el usuario puede realizar sobre el sistema consisten en visualizar sitios Web en línea, visualizar sitios Web en desconexión, Visualizar mensajes de error, visualización del estado de las peticiones y por último, configurar el sistema. El GAP está conformado básicamente de tres módulos principales y varios secundarios. Los módulos principales son: Observador, Gestor de Acaparamiento Local (GAL) y Gestor de Desconexión Local (GDL). El Observador se encarga de procesar cada petición y devolver el resultado al navegador. El GAL se encarga de la manipulación y control de la caché en el dispositivo. Es el usuario quien decide que recursos se desean acaparar, así como limitar el espacio de almacenamiento. El GDL se encarga de determinar el estado de la conexión. Para éste último punto, se ha utilizado el control de las desconexiones sondeando la red durante tres segundos. En base a Observaciones de la calidad de los resultados, se fijó un umbral de 30% de conexiones aceptadas para determinar si el cliente se encuentra conectado (si se supera o iguala el umbral) o en modo desconexión (si se encuentra por debajo del umbral)[7]. Para la implementación de esta herramienta, se está utilizando la plataforma .NET Compact Framework 1.0 con lenguaje C#, por ser por mucho la mejor opción para programar en esta plataforma[8]. Las modificaciones del MA y del MT se están realizando en Java por que es lenguaje en el cual están hechos estos módulos. 4. Resultados La herramienta descrita en el presente documento se ha probado en diversos equipos como Pocket PC 2000 (Compaq ipaq h3630), Pocket PC 2002 (HP Jornada 5500), Pocket PC 2003 (HP rx3115), emuladores de Windows CE, PC convencionales (Compaq Presario Pentium 4 1.4 Ghz 512Mb de RAM). El primer escenario de prueba consistió en acceder a los recursos Web en modo conexión. Obteniendo resultados satisfactorios (ver Figura 2). En el escenario de prueba número 2, el GAP se ejecutó sin estar conectado a la red. Adicionalmente se contaba con un patrón de un sitio Web (http://www.cenidet.edu.mx/) y recursos acaparados. En este caso se utilizaron imágenes no existentes en el sitio original, por lo que se pudo comprobar que los recursos acaparados se muestran correctamente (Figura 3). El escenario de prueba número 3 (ver Figura 4), demuestra que es posible transcodificar los recursos en el dispositivo así como de mostrarlos de manera local si se encuentran acaparados como en el caso anterior. También es posible ejecutar el GAP en otras plataformas como Smartphones (SmartGAP) y PC tradicionales (WinGAP). Cabe hacer mención que GAP MA MT Navegador Squid Web GAT Dispositivo móvil Pocket PC Petición - Respuesta HTTP Si el recurso no está en la caché Petición - Respuesta HTTP Petición - Respuesta HTTP Petición - Respuesta HTTP
  18. 18. 20 tanto GAP, WinGAP y SmartGAP son el mismo programa pero con nombre distinto, para diferenciar la plataforma en la cual se ejecutan. Figura 2. Visualización de recursos Web en modo conexión. Figura 3. Visualización de sitios Web en modo desconexión con recursos Web acaparados y sin transcodificación. 5 Conclusiones Con la presente herramienta se está demostrando que es posible ejecutar servicios complejos en dispositivos Pocket PC, tal es el caso de un servicio intermediario que permite visualizar recursos de Web cuando exista o no conexión. Hasta el momento se han podido comprobar de manera aislada la mayoría de las funciones del sistema (falta los métodos de descompresión del sitio Acaparado), ya simplemente solo haría falta la integración de componentes y las pruebas respectivas al sistema en su totalidad. Los beneficios que se esperan obtener al concluir este trabajo de investigación son los siguientes: 1. Visualización de sitios Web sin importar si los dispositivos están conectados o no. 2. Reducción de latencia en el acceso a la información, si es que el recurso se encuentra acaparado localmente. 3. Ahorro de energía por el hecho de trabajar en modo desconexión 4. Ahorro de dinero si es que el usuario decide no conectarse a una red que cobra el servicio por el tiempo de acceso. 5. Facilidad de administración de sitios Web al no disponer de diferentes versiones para cada dispositivo. Figura 4. Visualización de sitios Web en modo conexión, con recursos acaparados y transcodificados. 6. Referencias [1] Revista SG, http://www.softwareguru.com.mx [consultado marzo de 2006] [2] Purushottam Kuikarni, et al., “Handling Client Mobility and Intermittent Connectivity in Mobile Web Accesses”, Department of Computer Science, University of Massachussets. [3] Blackberry’s push technology, http://www.blackberry.com/products/software/integrations/p ush_email.shtml [consultado marzo de 2006] [4] UPnP Forum, http://www.upnp.org/, [consultado marzo de 2006] [5] David Valenzuela, “Mecanismos para predicción de acaparamiento de datos en sistemas clientes/servidor móviles”, tesis de maestría, cenidet, agosto de 2002. [6] Gabriel González. “Plataforma middleware reflexiva para aplicaciones de cómputo móvil en Internet (Movirware)”, cenidet. [7] J. Carlos Olivares, et al, “Control de desconexiones en la visualización de páginas Web en dispositivos móviles Windows CE”, XVI CIECE’06 a 5, 6 y 7 de abril de 2006 en Cd. Obregón, Sonora, México. [8] Gabriel González, Azucena Montes, J. Carlos Olivares, “Comparativa y evaluación de las herramientas de programación para desarrollar aplicaciones en plataforma Pocket PC”. 6to. CICC’05, Colima, Colima, México, septiembre de 2005.
  19. 19. 21 Evaluación de herramientas para procesos de negocio en tres niveles de abstracción Erika M. Nieto Ariza1 , Javier Ortiz Hernández1 , Guillermo Rodríguez Ortiz2 1 Centro Nacional de Investigación y Desarrollo Tecnológico Interior internado Palmira s/n, Cuernavaca, Morelos, 62490 México {erika, ortiz}@cenidet.edu.mx, 2 Instituto de Investigaciones Eléctricas Reforma 113. Palmira, Cuernavaca, Morelos, 62490 México gro@iie.org.mx Resumen Cada vez mas las organizaciones eligen utilizar la Web para proveer sus servicio, los cuales son la sistematización de sus procesos de negocio. Debido a que existe un gran número de métodos de modelado y al rápido incremento en el uso de la Web, es necesario identificar el tipo de información que los distintos métodos permiten especificar. En este artículo proponemos un conjunto de conceptos para evaluar métodos de modelado para procesos de negocio utilizando tres niveles de abstracción –organizacional, de integración y Web. 1. Introducción Las organizaciones deben deciden la manera en la cual los sistemas de información apoyaran al negocio, considerando que esta tecnología se convertirá de manera incremental en una parte integral de los procesos de negocio [1, 2]. Los modelos son utilizados comúnmente para representar la complejidad de los sistemas y para observar el desempeño de un proceso de negocio cuando se integra a ella una nueva tecnología [3, 4, 5]. Un modelo de negocio es una abstracción de la funcionalidad del negocio, este provee de una vista simplificada de la estructura del negocio que actúa como base para la comunicación, mejora o innovaciones y define los requerimientos del sistema de información necesarios para apoyar al negocio. Un modelo debe capturar el dominio del problema sin hacer referencia a un sistema, implementación o tecnología particular. Uno de los problemas que se presenta durante el modelado de procesos de negocio es la gran cantidad de técnicas, herramientas y métodos existente, cada una de estas con sus propios elementos de modelado lo que las hace complejas para comparar y aun mas para seleccionar la más apropiada para modelar un sistema en un nivel especifico de representación. Proponemos tres niveles los cuales integran un conjunto de conceptos para construir modelos de aplicaciones web: a) Organizacional, describe como trabaja la organización y el proceso de negocio que se sistematizara a través de una aplicación web; b) Integración, describe el rol del sistema de información y su integración dentro de un ambiente organización particular; c) Web, describe la semántica de la aplicación web [5,6]. Nuestra contribución consiste en la identificación y clasificación de un conjunto de conceptos los cuales son utilizados para identificar los conceptos que se modelan en cada nivel de abstracción y para desarrollar un método de evaluación que ayude a distinguir que capacidades de modelado tiene un método particular en los tres niveles de abstracción. Existen algunos métodos y metodologías para evaluar el modelado de procesos de negocio; sin embargo, éstos no evalúan las capacidades sino la funcionalidad de la aplicación o de los métodos de modelado. Rosemman propone una ontología para evaluar las gramáticas del modelado organizacional, identificando sus fortalezas y debilidades [7]. Luis Olsina [8] and Devanshu Dhyani [9], proponen una metodología para evaluar las características funcionales de una aplicación Web. La estructura de este artículo es como sigue: en la sección 2 se presenta brevemente los conceptos de modelado, en la sección 3 se presenta la metodología de evaluación, en la sección 4 se presentan los resultados obtenidos al aplicar la metodología, en la sección 5 se presentan las conclusiones.
  20. 20. 22 2. Conceptos de modelado Un modelo de proceso de negocio puede ser visto en distintos niveles de abstracción, estas vistas pueden ser combinadas para dar una vista mas completa del sistema a construir [3]. Este enfoque establece tres niveles de abstracción, cada uno de ellos incluye ciertos conceptos de modelado como se muestra en la tabla 1. En cada uno de estos niveles, los conceptos son propiedades o características que definen los elementos clave en un proceso de negocio. Los conceptos en cada nivel de abstracción fueron seleccionados basándose en el análisis de varias técnicas y métodos para el modelado de procesos de negocio en los tres niveles. Table 1: Conceptos de modelado en cada nivel de abstracción Nivel organizaciona l Nivel conceptual Nivel Web Proceso de negocio Navegación pura Actor Actor --- Página de navegación – relación Perfil de usuario (rol) Perfil de usuario (rol) Clase (objeto) --- Recurso Artefacto Artefacto Artefacto Meta Meta --- Meta Tarea Función Servicio Servicio Acitivdad Evento Evento --- Regla de negocio Restricción Pre y post condiciónon --- Calidad Requerimient o no funcional Requerimient o no funcional --- Los conceptos del nivel organizacional son los siguientes: - Actor, describe una entidad que tiene una meta específica en el proceso de negocio. - Recurso, describe una entidad física o de información que es transferida entre los acotes. - Meta, describe el estado deseado del proceso de negocio. - Tarea, describe una actividad orientada a alcanzar una meta. - Actividad, describe un conjunto de acciones para llevar a cabo una tarea. - Calidad, describe las características deseadas en el proceso de negocio. - Regla de negocio, describe las acciones y criterios que gobiernan la ejecución del proceso de negocio. Los conceptos del nivel de integración son los siguientes: - Actor, describe una entidad que interactúa con el sistema de información, puede jugar diferentes roles. - Artefacto, describe una entidad que es transferida entre un actor y el sistema de información. - Meta, describe el propósito, límites y restricciones del sistema de información. - Función, describe los servicios que debe proveer el sistema de información. - Evento, describe un cambio en el proceso de negocio en un instante de tiempo específico. - Restricción, describe una condición para la ejecución de un servicio provisto por el sistema de información. - No funcional, describe una cualidad deseada para el sistema de información. Los conceptos del nivel Web son los siguientes: - Relaciones de navegación, describe una visión global de la aplicación web de acuerdo a un perfil de usuario. - Perfil de usuario, describe al usuario de la aplicación. - Clase, describe un tipo de objeto para modelar las entidades que integran la aplicación. - Artefacto, describe un objeto de abstracción que es transferido entre la aplicación web y un usuario. - Meta, describe el propósito de una aplicación web. - Servicio, describe una actividad o acción que tiene una aplicación web. - Evento, describe el inicio de una actividad o acción que debe realizarse. - Pre y pos condición, describe el desarrollo de un evento en ejecución. - Requerimiento no funcional, describe la calidad o restricciones deseadas para una aplicación web. Los conceptos utilizados para el modelado de procesos de negocio están relacionados entre ellos. 3. Los conceptos y el método de evaluación En la sección anterior se presentaron los conceptos de modelado utilizados en los diferentes niveles de abstracción. En esta sección lo conceptos son ligados a aspectos que los hacen mas poderosos para modelar una determinada vista. Estos aspectos son utilizados como escalas para evaluar los métodos de modelado y representan capacidades de cada uno de los conceptos presentados. Las capacidades deseadas mencionadas en la literatura pueden ser utilizadas también como escalas de definición. El principio de la evaluación de las capacidades de las herramientas inicia con la definición de una serie de conceptos que facilitan la comparación y evaluación de las herramientas de modelado. Posteriormente en una escala de 0 a 5 se asignan valores a cada concepto, lo cual representa la capacidad de la herramienta para describir ese concepto [10]. Cada concepto tiene asociado un valor ei. Con base en cada concepto y a las calificaciones asignadas, se
  21. 21. 23 realiza el análisis y evaluación de las herramientas de modelado. La calificación correspondiente a cada concepto de la herramienta toma un valor numérico, con relación a lo que permite describir, que proviene de las calificaciones propuestas en este trabajo (ver tablas 2, 3 y 4). Tabla 2: Conceptos y escalas de evaluación para el nivel organizacional Para la evaluación de cada herramienta se considera la siguiente expresión: Σei La expresión representa la sumatoria de todos los valores obtenidos asignados a cada concepto en un determinado nivel de abstracción. Posteriormente se crea una tabla comparativa de todas las herramientas evaluadas, integrando los resultados obtenidos y comparándolos entre sí para determinar el grado de satisfacción de una herramienta en un nivel de abstracción determinado. La herramienta que obtiene el valor más alto es considerada como aquella que proporciona mayores capacidades de modelado de un proceso de negocio. Tabla 3: Aspectos y escalas de evaluación para el nivel de integración La evaluación consiste en asignar un valor a cada concepto del método. Por ejemplo, el concepto no funcional en el nivel web; si el método tiene el concepto; el método debe tener 1 punto. Si el método en el concepto no funcional dice quién propone esto y a quién es aplicado, el método debe tener 2. Si el método tiene el concepto de no funcional, quién propone estoy, a quién se aplica y además el tipo de requerimiento del que se trata, el método debe tener 3. Si el método tiene el concepto de no funcional, quién propone estoy, a quién se aplica, el tipo de requerimiento del que se trata y además la medida para verificar su cumplimiento, el método debe tener 4 puntos. El método debe tener 5 puntos si tiene el Si el método tiene el concepto de no funcional, quién propone estoy, a quién se aplica, el tipo de requerimiento del que se trata, la medida para verificar su cumplimiento y además dice que sucede si este no se cumple. Tabla 4: Conceptos y escalas de evaluación en el nivel web 4. Resultados del método de evaluación Para probar el método, se evaluaron los siguientes métodos utilizando las escalas presentadas: i*, Tropos, EKD, BPM-UML, OO-Method/OOWS, OOWS [5, 7, 4, 8, 9, 11 y 12] (tables 5, 6 and 7). Tabla 5: Evaluación a nivel organizacional Nivel organizacional Valor máximo I* Tropos EKD BPM- UML Actor 5 5 5 5 5 Recurso 5 5 5 2 5 Meta 5 1 3 4 3 Tarea 5 2 4 3 2 Actividad 5 0 2 0 4 Regla de negocio 5 2 0 5 4 Cualidad 5 3 4 4 4 Total 35 18 23 23 27 Escala Concepto 1 2 3 4 5 Actor Actor --- Rol Tipo Responsabilidad Artefacto Artefacto Actor o function lo prove --- Actor o function que lo requiere Estado del artefacto Meta Meta Quién lo establece, Función asociada Prioridad asignada Medida, Causa de falla Oportunidad para resolver el problema Función Función Quién lo inicia Quién lo utilize Jerarquía Producto Evento Evento Quien lo genera, que lo inicia Quién lo produce, Jerarquía Quien recibe el producto, Propietario de la función Estado final Restricción Restric. Tipo Quién lo define A quién se aplica Quien o quienes lo originan Requerimient o no functional Restric. Quién lo propone, a quién se aplica Tipo de requerimient o Medición par aver si se cumple Que sucede si no se cumple Escala Concepto 1 2 3 4 5 Actor Actor --- Rol Tipo Responsabilidad Recurso Recurso Tipo Actor que lo utilize --- Actor que lo prove Meta Meta Prioridad Problema Oportunidad Verificación Tarea Tarea Quién solicita Quién ejecuta Jerarquia Meta asociada Actividad Actividad Tarea que apoya Jerarquía Quién la active Cuándo se termina Regla de negocio Regla de necocio Concepto asociado Origen Tipo Jerarquía Cualidad Cualidad Concepto asociado --- Origen Medida Escala Concepto 1 2 3 4 5 Pagina de navegación Página de navegación Página de navegac. Perfil de usuario Ayuda de navegación Restric. de acceso Perfil de usuario (rol) Perfil de usuario Rol Cambios de rol permitidos Servicios por usuarios Edo. del proceso de negoc. Clase (objeto) Clase (objeto) Atributos Relaciones Métodos Tipo de relaciones Artefacto Artefacto --- Tipo Proveedor Usuario Meta Quién define esta Servicio asociado Prioridad Medida Causa de fallo, oport. de resolverlo Servicio Evento relacionado Jerarquia, usuario que solicita Agente que ejecuta. Resultado. Usario del resultado final Propietari o de la página Evento Evento Propietari o del servicio, Jerarquía Clase que implementa Quién solicita Se comparte o no Pre y pos condición Poscondición Precondic. --- --- Evento asociado Requerimient o no funcional Requerimient o no funcional Quién propone este, quién lo provee Tipo de requerimient o Medida para verificar su cumplimient o Qué sucede si no se cumple
  22. 22. 24 Tabla 6: Evaluación a nivel de integración Nivel de integración Valor Máx. I* Tropos EKD BPM- UML OO- Method Actor 5 5 5 5 5 1 Artefacto 5 5 5 4 5 4 Meta 5 1 3 4 3 1 Función 5 2 2 5 5 2 Evento 5 0 1 0 4 3 Restricción 5 2 0 5 4 5 No functional 5 3 4 4 4 0 Total 35 17 20 27 30 16 Tabla 7 (a): Evaluación a nivel web (proceso de negocio) Nivel web Valor Max. Tropos OO-Method / OOWS OOWS Perfil de usuario 5 3 4 4 Clase 5 0 5 5 Artefacto 5 4 4 4 Servicio 5 3 3 3 Evento 5 1 3 2 Pre y pos condición 5 2 5 3 No functional 5 3 0 0 Total 35 16 24 21 Tabla 7 (b): Evaluación a nivel web (navegación pura) Nivel web Valor Max. Tropos OO-Method / OOWS OOWS Pág. de navegación - relación 5 1 5 5 Perfil de usuario 5 3 4 4 Meta 5 3 0 0 Artefacto 5 4 4 4 Servicio 5 3 3 3 Total 25 14 16 16 En el nivel organizacional la herramienta BPM- UML obtuvo la mejor calificación para este nivel de abstracción e i* obtuvo el mas bajo. Los métodos fueron evaluados con respecto a los parámetros definidos para el enfoque presentado aquí. Durante la evaluación de los métodos, cada uno de ellos mostró sus propias características, por ejemplo, el concepto de calidad de un proceso de negocio se modela como una meta de cualidad utilizando BPM-UML. En el nivel de integración, el resultado muestra las capacidades de cada método, por ejemplo, BPM-UML obtuvo la mejor calificación, pero OO-Method obtuvo la menor. 5. Conclusiones Existen varias propuestas para modelar los requerimientos de la organización, de la integración y web, sin embargo cada propuesta tiene sus propios elementos. Algunos métodos usan los mismos conceptos pero con nombres diferentes, lo cual los hace complejos y laboriosos de comparar. El enfoque presentado aquí unifica la terminología, incrementando el conocimiento acerca de los conceptos de modelado. Además propone un enfoque de evaluación par alas capacidades de modelado de las técnicas y métodos. Esto ayuda a seleccionar el método o herramienta mas apropiada a las necesidades de un dominio del problema. El enfoque ha sido utilizado para evaluar sistemas de e-learning. Además ha sido aplicado en el desarrollo de varios casos de estudio para evaluar métodos de realidad virtual [13] y para apreciar los conceptos que estos métodos permiten modelar. 6. Referencias [1] James Pasley,: “How BPEKL and SOA are changing web services development”, IEEE Internet Computing. May – June 2005. [2] Peter F. Green, Michael Rosemann y Marta Indulska,: “Ontological Evaluation of Enterprise systems Interoperability Using ebXML”, IEEE Transactions on Knowledge and Data Engineering, Vol 17, No. 5, IEEE Computer Society, may 2005. [3] Mersevy T. and Fenstermacher K.,: “Transforming software development: and MDA road map”, IEEE Computer Society, September 2005. [4] H. E. Eriksson and M. Penker, Bussiness process modeling with UML, Chichester, UK, Wiley Editorial, 2000. [5] E. Yu,: Modelling Strategic Relation for Process Reengineering, Universidad de Toronto, Canada, 1995. Thesis submitted for the degree of Doctor of Philosophy. [6] A. Ginige and S. Murugesan,: “Web Engineering: An Introduction” IEEE Multimedia, pp 1-5, Jan-Mar 2001. [7] Peter F. Green, Michael Rosemann y Marta Indulska, “Ontological Evaluation of Enterprise systems Interoperability Using ebXML”, IEEE Transactions on Knowledge and Data Engineering, Vol 17, No. 5, IEEE Computer Society, may 2005. [8] Olsina, Luis A., Metodología cuantitativa para la evaluación y comparación de la calidad de sitios web. Tesis doctoral. Facultad de Ciencias Exactas, Universidad Nacional de La Plata, noviembre de 1999. [9] Devanshu Dhyani, Wee Keong Ng, and Sourav S. Bhowmick,: A survey of web metrics, ACM computer survey, Vol 34, No. 4. December 2002, pp. 469-503. [10] William L. Carloson and Betty Thorne, Applied Statistical Methods for business, Economics, and the Social Sciences. Prentice Hall, 1997. [11] Bubenko J., Brash D. y Stirna J.: EKD User Guide, Royal Institute of technology (KTH) and Stockholm University, Stockholm, Sweden, Dept. of Computer and Systems Sciences, 1998. [12] E. Insfrán, O.Pastor and R. Wieringa: “Requirements Engineering-Based conceptual Modelling”, Requirements Engineering Springer-Verlang, vol. 2, pp. 7:61-72, 2002. [13] Eduardo Islas P., Eric Zabre B. y Miguel Pérez R.: “Evaluación de herramientas de software y hardware para el desarrollo de aplicaciones de realidad virtual”, http://www.iie.org.mx/boletin022004/tenden2.pdf (2005).
  23. 23. 27 Lenguaje de scripts para segmentación de imágenes Francisco Cervantes, Raúl Pinto Centro Nacional de Investigación y Desarrollo Tecnológico (cenidet) Interior Internado Palmira s/n, Cuernavaca, Morelos, México. {cervantes04c,rpinto}@cenidet.edu.mx Abstract En este artículo se propone el uso de un lenguaje de scripts para la etapa de segmentación de imágenes en la visión artificial. Se describe el lenguaje propuesto, la arquitectura del sistema para interpretar los scripts y la estructura general de los programas que integran a la librería de operadores. Finalmente, se muestran algunas pruebas y resultados del uso del lenguaje de scripts que se propone. 1. Introducción En este artículo se propone la utilización de un lenguaje de scripts para la segmentación de imágenes. Hoy en día, los lenguajes de scripts son cada vez más utilizados en la programación de gráficos, ya que permiten probar ideas de forma fácil [1]. Además los lenguajes de script permiten reutilizar código de manera sencilla [2]. Sin embargo en el área de la visión artificial existen pocos trabajos enfocados al procesamiento digital de imágenes mediante el uso de scripts, un ejemplo se muestra en [3], en el cual el usuario crea un script mediante objetos gráficos y que posteriormente ejecuta para realizar el procesamiento sobre una imagen dada. Un ejemplo de lenguaje de script comercial es MATLAB [4]. El lenguaje de scripts que se propone además de permitir probar ideas de segmentación de imágenes de forma fácil y sin necesidad de que el usuario conozca cómo realizan el procesamiento los algoritmos de segmentación, también induce a la reutilización de código, esto mediante la existencia de una biblioteca de operadores, que son independientes entre ellos, y la implementación de un interprete de scripts. Lo anterior permite que el lenguaje pueda crecer de forma modular y sin necesidad de modificar el código ya existente. Este trabajo está estructurado de la siguiente manera. En la segunda sección se describen los elementos básicos del lenguaje de scripts que se está proponiendo. La tercera sección muestra la estructura básica que deben tener los operadores de la biblioteca. En la sección cuarta se describe el esquema general del intérprete del lenguaje de scripts. Finalmente en la sección quinta se muestran algunas pruebas y resultados. Por último se presentan algunas conclusiones y se comentan trabajos futuros. 2. Elementos básicos del lenguaje de scripts El lenguaje consta de la definición de los siguientes tipos de datos: Entero, Real, Cadena, ImagenGris, Mascara y Contorno. De igual forma se definen las operaciones de asignación, suma, resta, multiplicación y división. El lenguaje posee las siguientes estructuras básicas: • Declaración. • Asignación. • Llamada de un operador. Las sintaxis correspondientes de estas estructuras se presentan a continuación. Declaración: tipo_dato nombre_variable_1,..., nombre_variable_N Asignación: nombre_variable = nombre_variable_N nombre_variable = expresión_aritmetica nombre_variable = nombre_operador (argumentos) Llamada de un operador: nombre_operador (argumentos) Lo anterior forma una estructura general, y el resto depende de los operadores que sean registrados en la biblioteca de operadores. A lo anterior se le denomina núcleo del lenguaje. Es por esta razón que el intérprete del lenguaje de scripts es tan importante. Esta forma de definir el lenguaje en donde sólo se establecen las estructuras pero no se definen los elementos del lenguaje ofrece la ventaja de permitir agregar elementos o comandos nuevos de forma dinámica, sin
  24. 24. 28 la necesidad de modificar el código del núcleo, además cada operador es independiente entre ellos. La única restricción para agregar un operador a la biblioteca es seguir la especificación de una estructura básica para la interacción entre el núcleo y los operadores. 3. Estructura básica de los operadores Para que un operador pueda ser utilizado como parte de la biblioteca debe de poseer la estructura general que se muestra en la figura 1. Librerias del núcleo para el manejo de datos (números, cadenas, imágenes y mascaras). Recepción de argumentos (rutas de archivos donde se encuentra el contenido de los argumento). Cuerpo del operador (procedimientos del algoritmo de PDI). Retornar resultado (se hace almacenando el contenido en la ruta indicada por el último argumento del programa). Figura 1 Estructura general de un operador En la figura 1 se muestra de manera general la estructura que debe poseer un operador para que pueda formar parte de la biblioteca y pueda interactuar con el núcleo del lenguaje. Algunos elementos de la estructura pueden omitirse, por ejemplo, en la cabecera sólo se deben incluir aquellas librerías del núcleo que se necesiten. No es necesario que un operador retorne algún resultado, por ejemplo el operador para mostrar una imagen sólo muestra la imagen en pantalla sin necesidad de retornar datos al núcleo. Por defecto es necesario que un operador reciba al menos un argumento. Se puede ver claramente que el requerimiento para que un operador pueda ser utilizado como parte de la biblioteca es que utilice los tipos de datos definidos en el núcleo del intérprete y que los parámetros que necesite para su ejecución se reciban mediante la especificación de las rutas de archivos en donde se encuentra el contenido. Finalmente también es necesario que los datos de salida se almacenen en un archivo especificado por el último argumento que recibe el programa. En seguida se muestra el ejemplo de un operador para obtener el negativo de una imagen. Figura 2 Ejemplo de un operador para calcular el negativo de una imagen Cabe aclarar que por el momento el núcleo del intérprete sólo soporta imágenes en formato BMP de 24 bits. 4. Esquema general del intérprete de scripts Ya que se ha presentado la estructura general que deben de tener los operadores de la biblioteca, se muestra ahora el esquema general del intérprete de scripts. En la figura 2 se observa cada uno de los componentes del intérprete y las relaciones entre ellos y la biblioteca de operadores. Figura 3 Esquema general del intérprete de scripts Biblioteca de operadores Interprete Módulo de procesos Módulo de memoria Tipos de datos Núcleo del intérprete script Resultado del procesamiento //Tipo de dato del núcleo #include "CImagGris.h" AnsiString CharToAnsiString(char *arreglo); int main(int argc, char* argv[]) { //Argumentos: Imagen a procesar, ruta donde //se guardará la imagen resultante. if ( argc < 3 ) exit ( ERR_NUM_PARAM ) ; char * a_entrada = argv [ 1 ]; //parámetro 1 char * a_salida = argv [ 2 ]; //parámetro 2 AnsiString entrada,salida; CImagGris Imagen; entrada=CharToAnsiString(a_entrada); salida=CharToAnsiString(a_salida); if(Imagen.leerArchivo(entrada)==false) exit(ERR_IMAG_EN); //Algoritmo para negativo de esta imagen int x,y,h,w; Byte pixel; h=Imagen.Alto(); w=Imagen.Ancho(); for(x=0;x<w;x++) {for(y=0;y<h;y++) { pixel=Imagen.getPixel(x,y); Imagen.setPixel(x,y,255-pixel); } } //Se almacena la imagen resultante if(Imagen.escribirArchivo(salida)==false) exit(ERR_NO_MEMO); exit ( BIEN ) ; }
  25. 25. 29 Mediante esta estructura lo primero que hace el sistema es explorar la biblioteca de operadores para generar las estructuras correspondientes a cada operador (sintaxis, semántica), para posteriormente comenzar a analizar el script de entrada y ejecutar los operadores. 5. Pruebas y pruebas Se han realizado distintas pruebas con el fin de mostrar las ventajas que brinda el utilizar un lenguaje de scripts para segmentar imágenes. Por ejemplo, el hecho de que un usuario final puede utilizar el lenguaje sin que el usuario interactúe con los algoritmos. La primera prueba que se presenta aquí, consiste en mostrar cómo crear un operador nuevo para binarizar imágenes. Primero cabe aclarar que es necesario utilizar un compilar de C++ Builder. En la figura 4 se presenta el código del operador. Figura 4 Operador para binarizar. Se puede observar en la figura anterior que crear un nuevo operador es bastante sencillo, únicamente hay que respetar la estructura general que se ha especificado. Ahora sólo hay que compilar el operador para generar el ejecutable. En este momento ya se tiene creado el nuevo operador, ahora sólo hay que registrarlo en la biblioteca, y en esto consiste la prueba número dos. Para registrar un nuevo operador se utiliza la opción Métodos del menú Herramientas, del sistema para interpretar scripts. En la figura 5 se muestra este menú. Figura 5 Interfaz del intérprete de scripts Al dar click en este menú se accede a una ventana en donde se registra el nuevo operador, esto se observa en la figura 6. Lo único que hay que hacer es indicar en donde se encuentra el archivo ejecutable, asignarle un alias; con el cual será utilizado desde el lenguaje de scripts, después se especifican los parámetros de entrada y salida. Figura 6 Ventana para registrar operador Una vez que se registra el operador, esta listo para utilizarse como parte del lenguaje, tal y como se observa en la figura 7. En donde se crea un script para binarizar una imagen y se muestran la imagen inicial y la imagen final. Con estas pruebas se observan las ventajas que proporciona utilizar un lenguaje de scripts. Mediante la capacidad de registro de nuevos operadores se mantiene el lenguaje abierto a incrementar su tamaño el cual actualmente consta de 25 operadores de segmentación y 5 para descripción de imágenes. Se puede observar en la prueba tres cómo interactúan los #include "CBMP24.h" #include "CNumero.h" int main(int argc, char* argv[]) { if ( argc < 4 ) exit ( ERR_NUM_PARAM ) ; char * a_imag = argv [ 1 ]; // parámetro 1 char * a_umbral = argv [ 2 ]; // parámetro 2 char * a_salida = argv [ 3 ]; // parámetro 3 int valorUmbral; AnsiString imag,umbral,salida; CIMAGEN_BMP24 Imagen; CNumeroMemoria UmbralBinario; imag=CharToAnsiString(a_imag); umbral=CharToAnsiString(a_umbral); salida=CharToAnsiString(a_salida); if(Imagen.leerArchivo(imag,GRIS)==false) exit(ERR_IMG_EN); if(UmbralBinario.leerArchivo(umbral)==false) exit(ERR_UMB_EN); valorUmbral=(int)UmbralBinario.Valor(); int x,y,h,w; Byte pixel; h=Imagen.Alto(); w=Imagen.Ancho(); for(x=0;x<w;x++) { for(y=0;y<h;y++) { pixel=Imagen.getPixelGrey(x,y); if(pixel>=(Byte)valorUmbral) Imagen.setPixelGrey(x,y,255); else Imagen.setPixelGrey(x,y,0); } } if(Imagen.escribirArchivo(salida)==false) exit(ERR_NO_MEMO); exit ( BIEN ) ; } Figura 7 Script para binarizar imágenes
  26. 26. 30 operadores; BinarizarImagen y VerImagenGris. Estos scripts pueden ser almacenados para ser reutilizados posteriormente. Finalmente la administración de la biblioteca de operadores es bastante fácil ya que al igual que la ventana para registrar nuevos operadores, también el sistema permite modificar e incluso eliminar operadores existentes. 6. Conclusiones Con este trabajo se concluye que el uso de un lenguaje de scripts para la segmentación de imágenes es viable. Se observó que mediante el uso de scripts se puede abstraer la funcionalidad de los algoritmos de segmentación, con lo que el usuario final no necesita conocer los algoritmos. Finalmente se presume que los lenguajes de scripts pueden ser usados en otras etapas de la visión artificial como preprocesamiento, descripción, etc. La biblioteca de operadores que utiliza el intérprete está ideada para que pueda crecer de forma modular, esto es, la biblioteca crece con cada operador que se registra en ella, con lo cual muestra una flexibilidad del lenguaje para crecer. Por otro lado los operadores no pierden la independencia entre ellos. Por último se propone en un futuro eliminar la necesidad de que los operadores, que integran la biblioteca, se encuentren en una sola computadora. Es decir se observa la posibilidad de tener la biblioteca de operadores distribuida en distintas computadoras. 7. Referencias [1] M. Villar, “Guía de lenguajes de script para prototipazo rápido”, http://www.codepixel.com/tutoriales/prototipado/, 2006. [2] K. Muehler, “Adaptive script based animations for medical education and intervention planning”, Department of Simulation and Graphics, University of Magdeburg, Germany. [3] “Sistema interactivo para la enseñanza de la visión artificial”, Depto. de Sistemas Inteligentes Aplicados, Escuela Universitaria de Informática, Universidad Politécnica de Madrid, 2006. [4] “MathLab”, http://www.mathworks.com/, 2006.
  27. 27. 31 Recuperación de Información de Páginas Web mediante una Ontología que es poblada usando Clasificación Automática de Textos. Ismael R. Ponce M., José A. Zárate M., Juan C. Olivares R. Centro Nacional de Investigación y Desarrollo Tecnológico {rafaxzero04c, jazarate, jcolivares04c}@cenidet.edu.mx Resumen En este artículo se describe una propuesta para ayudar al usuario en la ardua tarea que significa el recuperar información de la Web, especialmente cuando las consultas se refieren a un tema o enfoque específico. Para ello se sugiere la utilización de una ontología cuyos ejemplares sean enlaces a páginas Web del dominio sobre el cuál fue construida, aprovechando el orden y categorización que brindan para guiar al usuario a través de los conceptos que la integran y pueda encontrar información relacionada a ellos. Se describen los pasos seguidos para la creación de una ontología sobre un dominio particular y las actividades necesarias para realizar una clasificación automática de páginas Web, cuyos enlaces serán sus ejemplares. Palabras clave: Ontología, métodos de clasificación automática, modelo del espacio vectorial. 1. Introducción Hoy en día conforme ha ido progresando la evolución tecnológica, la cantidad de información que se genera a cada segundo es inconmensurable, pero no solo eso, si no que la importancia de disponer de ella a tomado tal importancia, que se está viviendo en una era donde la información rige al mundo y sus decisiones. Internet se ha convertido en una gran fuente de información, pero mientras más grande es más difícil es encontrar el contenido deseado. Se han tratado diversas maneras de recuperar información, para ejemplo basta con ver los motores de búsqueda y las distintas técnicas que siguen para brindarla (como los buscadores Google, Yahoo!, Ask, Vivisimo, entre muchos otros); sin embargo pese a que de alguna manera son de ayuda al momento de realizar consultas, se debe lidiar con resultados no del todo deseados. Así pues, se están tratando diversas maneras para ayudar a la búsqueda de recursos en Internet, que van desde la concordancia de palabras a técnicas basadas en la popularidad de los sitios, desgraciadamente a muchos usuarios ya no les basta este tipo de resultados si no que requieren soluciones más específicas. La alternativa propuesta para este problema, es utilizar el paradigma de las ontologías para la búsqueda de recursos sobre un tema particular. Al trabajar sobre un dominio concreto, se espera una búsqueda especializada, además, gracias al uso de las ontologías y el orden que proveen sobre los conceptos que la conforman, suponen una gran ayuda para que el usuario pueda encontrar la información que desea. En este documento nos centramos en la manera de poder poblar la ontología con enlaces a páginas Web, haciendo uso de técnicas de clasificación automática. En nuestro experimento se logró reportar un 86% de elementos bien clasificados. En el artículo se describen brevemente las etapas consideradas para llevar a la práctica la idea propuesta. Se menciona primero un breve panorama de la manera que tienen de recuperar información algunos motores de búsqueda, después se abarca el desarrollo de una ontología afín al uso que se le espera dar, concluyendo con los pasos para la utilización de un método de clasificación automática que será usado para poblar la ontología y las pruebas efectuadas considerando los métodos Naive Bayes, k vecinos más cercanos y máquinas de soporte vectorial. 2. Motores de búsqueda En un motor de búsqueda tradicional las consultas generalmente se realizan a partir de palabras clave, obteniendo por resultado un listado de direcciones Web que traten sobre las palabras solicitadas. Algunos de los motores más conocidos son Google, Yahoo!, MSN Search entre otros. El caso de Google destaca por la utilización de su tecnología denominada PageRank [1], en la cuál se utiliza una fórmula que calcula el peso de cada página que almacena en su base de datos, de acuerdo a la
  28. 28. 32 cantidad de enlaces que le hagan referencia. A mayor cantidad de enlaces a una página, mayor su puntuación, convirtiéndose así en un concurso de popularidad [2]. Desgraciadamente se ha mostrado que los resultados pueden ser manipulados mediante el conocido Google bombing [3]. Otra manera de recuperar información es mediante los directorios Web, que consisten en una organización y clasificación manual de direcciones Web por temas o categorías. Uno de los directorios más representativos es el Open Directory Project [4], en el cuál un conjunto de editores voluntarios son quienes se encargan de listar los enlaces a páginas Web dentro de una ontología, donde enlaces con temas semejantes son agrupados en categorías. El inconveniente que se puede apreciar es que requiere demasiada intervención humana para poder dar de alta los enlaces a una página. Un tipo especial de motores de búsqueda son aquellos que incorporan agrupamiento (clustering); el agrupamiento consiste en particionar un conjunto de objetos similares en otros subconjuntos, donde los elementos que los conforman compartan características comunes. Este tipo de motores de búsqueda devuelven los resultados que encuentran para una consulta acomodados en grupos; ejemplos de ellos son Clusty.com y Vivisimo.com. Por último, encontramos los buscadores especializados, los cuáles se centran en recuperar enlaces a documentos técnicos y científicos. Por ejemplo Citeseer, que es un buscador de documentos enfocados a la computación, sirviéndose de las citas bibliográficas para considerar la importancia de los documentos que son consultados. Pese a que se han desarrollado estas y otras técnicas para recuperar información de la Web, esta área aún tiene mucho que ofrecer, por lo que se siguen buscando nuevas alternativas para ayudar al usuario, como lo es nuestro caso. 3. Fase de desarrollo de una ontología Gruber [5] define a una ontología como la especificación explícita de una conceptualización, lo que quiere decir identificar los conceptos que integran a un dominio y las interrelaciones que existen entre ellos, en una representación formal, de manera que se pueda compartir y reutilizar. El lenguaje estándar establecido por el W3C para realizar este tipo de formalizaciones es el OWL (Web Ontology Language). La utilización de este estándar además de las ventajas que permite su reutilización por otros, recae en que muchas herramientas relacionadas con el diseño y uso de ontologías se apegan a éste, ya sea editores, razonadores, etc. La ontología desarrollada partió considerando tales pasos, junto con la metodología propuesta por Uschold y King [6]. El dominio sobre el cuál se desarrollo la ontología fue sobre el tema del procesamiento del lenguaje natural (PLN). Para llevarla a cabo, se utilizó el editor de ontologías Protégé 3.1.1, el plug-in Protégé-OWL 2.1 junto con el plug-in OWL Wizards, además de los razonadores FaCT++ 0.99.6 y RacerPro 1.9.0, usados para comprobar su consistencia. Las clases se componen de conceptos relacionados con el área del PLN, abarcando desde investigadores, escuelas, herramientas y áreas de aplicación, principalmente. 4. Aprendizaje supervisado para clasificación automática de textos Una vez desarrollada la ontología continúa la fase de poblarla con ejemplares. Dada la bastedad de páginas que existen en la red, una clasificación manual de éstas en las clases establecidas dentro de la ontología sería una tarea sumamente costosa, y que en gran medida es lo que ya realizan los directorios Web. Por lo tanto se buscó una manera de poder automatizar este proceso, recurriendo al aprendizaje supervisado, en el que mediante técnicas estadísticas y matemáticas se puede conseguir una clasificación automática de textos. Este enfoque se centra en tener un conjunto de documentos de entrenamiento previamente clasificados, que se usarán para aprender a clasificar a nuevos documentos. Para ello, se deben trasformar los documentos de su formato inicial a una representación que pueda ser usada por un algoritmo de aprendizaje para la clasificación. Para fines de prueba solamente se trabajó con páginas en HTML. A continuación se mencionan los pasos necesarios que conllevan a este proceso. La colección de entrenamiento utilizada consistió de 1624 documentos, previamente clasificados en 26 clases tomadas de la ontología desarrollada, además de una clase denominada nula en la que se clasifican los documentos no relevantes para el tema del que trata la ontología. Las 26 clases consideradas son solamente una muestra representativa de las existentes en la ontología y fueron tomadas con fines de prueba. 4.1. Preprocesamiento de los documentos No todos los elementos que aparecen en los documentos son útiles para su clasificación, es decir hay elementos que por sí mismos no dicen nada del contenido del documento en el que se encuentran y que por lo tanto pueden ser eliminados; entre ellos se
  29. 29. 33 incluyen a los signos de puntuación y a las etiquetas de HTML; también aparecen palabras de uso muy frecuente, palabras que aparecen en una gran cantidad de documentos, lo que hace que su poder discriminatorio sea muy bajo; este tipo de palabras se les conoce como palabras vacías (stopwords), ejemplos de ellas son los artículos, pronombres, preposiciones, conjunciones, entre otras semejantes. Para definir la palabras vacías a eliminar se recurrió a listas disponibles en DOCUM [7], en SMART [8] y en el Institut interfacultaire d'informatique de la Universidad de Neuchatel [9], así como otras palabras identificadas durante el proceso de pruebas. Al estar trabajando sobre un dominio específico, existe cierto control sobre los términos que le pertenecen, por lo que se sugirió un emparejamiento entre distintas acepciones que puede tener un mismo concepto a una sola representación, es decir, si a un concepto se le puede llamar de distintas formas, consideramos unificarlas y dentro del proceso de clasificación considerarlas bajo una forma única. Para ello se tomo como punto de partida los conceptos que integran la ontología. Por último, muchas palabras aunque diferentes, tienen la misma raíz léxica; se siguió un proceso de lematización básica a partir del Algoritmo de Porter [10], con el cuál se busca reducir palabras a su raíz. Todos los pasos anteriormente mencionados tienen como fin disminuir el tamaño de la colección de entrenamiento y hacerla más manejable, eliminando las partes no relevantes para continuar el proceso de clasificación automática. En nuestro ejercicio, en promedio se redujo hasta en un 70% el tamaño original de los documentos. 4.2. Modelado del espacio vectorial El modelo del espacio vectorial (MEV) fue propuesto por Salton en 1975. La idea básica detrás de este modelo es hacer una tabla donde se manejan los documentos y las palabras que estos contienen, asignándoles un peso a cada una de ellas. Cada vector que conforma la matriz representa un documento y la distribución de las palabras que en él aparecen. Se trata de una matriz de m x n, donde m son los documentos y n las palabras registradas. Existen distintos tipos de ponderaciones para las palabras dentro del MEV, las que consideramos en nuestras pruebas fueron la ponderación boleana (el peso de la palabra es 0 si no aparece en el documento, y 1 si aparece), el ponderado por frecuencia de aparición (el peso del término depende de la cantidad de ocurrencias que tenga dentro del documento) y por último el ponderado tf-idf (que se calcula considerando el promedio de la frecuencia de un término contra la frecuencia documental inversa del mismo [11]). 4.3. Reducción de la dimensionalidad en el MEV No se pueden considerar todas las palabras que integran la colección de entrenamiento dentro del MEV, ya que la dimensión que tendría sería enorme. Existen distintas técnicas para reducir la dimensionalidad, como la frecuencia documental, que considera un valor mínimo de apariciones que debe tener cada palabra dentro del total de documentos, para discriminar aquellas cuya aparición sea muy pequeña y dejar las que presenten mayor frecuencia documental. Otra técnica que se consideró fue la ganancia en la información (GI), en la cuál se calcula la diferencia en la entropía del sistema contra la entropía de cada palabra. Esta diferencia, medida en bits, indica que tan relevante y cuanta información aporta la palabra como factor determinante para llevar a cabo la clasificación. La cantidad de palabras totales que conforman la colección de entrenamiento ya procesada es de 2552196 palabras, siendo entre estas 125891 palabras diferentes. Como se puede apreciar, la cantidad de palabras diferentes es demasiado grande para ser manejada en el MEV, por lo que se consideraron aquellas palabras que pasaran la frecuencia documental con un valor mayor o igual a 15, pasando un total de 8966 palabras, lo que representa un 7.12% del total original, sin embargo aún es una cantidad muy grande, por lo que se aplicó la GI sobre estas palabras. La entropía calculada de la colección total es de 3.97; se consideraron aquellas palabras cuya GI fuera igual o superior a 0.1, resultando en 527 palabras diferentes, un 0.42% del tamaño original. Las palabras (ya lematizadas y normalizadas) que mayor GI presentaron, fueron: nlp (0.552), natural_language (0.479), knowledge (0.424) y data_min (0.335). 4.4. Algoritmos de clasificación automática Una vez obtenida la representación MEV de la colección de documentos de entrenamiento, se puede aplicar un método de clasificación automática para clasificar nuevos elementos. Se consideraron los métodos de clasificación automática de Naive Bayes, k-vecinos más cercanos y máquinas de soporte vectorial para realizar una serie de pruebas y encontrar el método que mejor resultados dé, considerando además las ponderaciones mencionadas en la sección 4.2. Se utilizó WEKA para llevar a cabo las pruebas; los resultados mostrados en la Tabla 1 corresponden con la utilización de la validación cruzada de diez
  30. 30. 34 corridas, mostrando el porcentaje de elementos bien clasificados. Tabla 1. Porcentajes de elementos bien clasificados. booleano tf tf-idf NaiveBayes 62.7463 55.8498 81.2192 kNN 84.5443 85.0369 84.4212 SVM 86.2685 66.7488 82.0813 0 10 20 30 40 50 60 70 80 90 100 NaiveBayes kNN SVM Algoritm o de clasificación boleano tf tfidf Figura 1. Resultados de las pruebas sobre la clasificación. El mejor resultado se obtuvo con el ponderado booleano utilizando máquinas de soporte vectorial, los detalles de esta clasificación se muestran en la Tabla 2. Utilizando el entrenamiento que mejor resultado brindó se puede comenzar a clasificar nuevos documentos que se obtengan en la Web, siguiendo los pasos del preprocesamiento y representación del MEV; una vez obtenida la clase a la que pertenece, se guarda la dirección de la página como ejemplar de la ontología. Tabla 2. Resultados de SVM con ponderación boleana Elementos bien clasificados 1401 86.27% Elementos mal clasificados 223 13.73% Raíz del error medio cuadrático 0.1829 5. Conclusiones A partir los resultados obtenidos, se optó por la utilización del ponderado booleano junto con el método de clasificación de máquinas de soporte vectorial; el uso del ponderado booleano se justifica debido a que se puede considerar que la mera aparición de una palabra dentro de un documento es un buen indicador de su valor de discriminación, especialmente al considerar palabras no tan comunes en el habla ordinaria, pero que si son relevantes para el dominio sobre el que se trabaja, como lo demuestra el hecho que gran parte de las palabras con mayor ganancia en la información pertenecían al dominio del PLN, sobre el cuál se realizó el trabajo. Con los resultados obtenidos de las palabras con mayor GI y de la exactitud obtenida en el mejor caso por el método de clasificación seleccionado, es un buen aliciente para considerar el uso de la clasificación automática para poblar la ontología. Con respecto al trabajo futuro, una vez poblada la ontología, continua el proceso de guiar al usuario a través de la ontología para que encuentre enlaces relacionados a las consultas que efectué sobre el dominio del PLN. Al concluir este trabajo, entre los beneficios esperados se encuentran el guiar al usuario a través de la clasificación de la ontología y sus distintas relaciones, haciendo uso de la técnica del lenguaje natural acotado, comprobar la hipótesis de que si existen elementos ordenados es más sencillo encontrar los deseados y ahorrar trabajo al usuario al mostrarle solamente documentos temáticos relacionados con los conceptos sobre los cuáles consulte. 6. Referencias [1] S. Brin, L. Page, “The Anatomy of a Large-Scale Hypertextual Web Search Engine”, Computer Science Department, Stanford University, Stanford, disponible en línea: http://www.db.stanford.edu/~backrub/google.html, visitado en diciembre de 2005. [2] M. Miller, 501 Web Site Secrets: Unleashed the Power of Google, Amazon, eBay and More, Whiley Publishing, Inc., EUA, 2004. [3] Google bomb, Wikipedia, the free encyclopedia, disponible en línea: http://en.wikipedia.org/wiki/ Google_bomb, visitado en marzo de 2006. [4] ODP – Open Directory Project, http://dmoz.org/, visitado en abril de 2006. [5] T. Gruber, A Translation Approach to Portable Ontology Specifications, Knowledge Acquisition, 1993. [6] M. Uschold y M. King, Towards a Methodology for Building Ontologies, Workshop on Basic Ontological Issues in Knowledge Sharing, 1995. [7] DOCUM, a multilingual stopword file for CDS-ISIS, http://library/wur.nl/isis/docum.html, visitado en noviembre de 2005. [8] ftp://ftp.cs.cornell.edu/pub/smart/, visitado en noviembre de 2005. [9] J. Savoy, CLEF and multilingual information retrieval, Institut interfacultaire d'informatique, Universidad de Neuchatel, Suiza, 2005, http://www.unine.ch/info/clef/, visitado en noviembre de 2005. [10] The English (Porter2) stemming algorithm, http://snowball.tartarus.org/algorithms/english/stemmer.html, visitado en diciembre de 2005. [11] G. Salton y M. J. McGill, Introduction to modern information retrieval. McGraw-Hill, 1983, EUA.
  31. 31. 35 Sistemas Híbridos Neuro-Simbólicos Vianey Guadalupe Cruz Sánchez, Gerardo Reyes Salgado, Osslan Osiris Vergara Villegas Centro Nacional de Investigación y Desarrollo tecnológico (cenidet) Interior Internado Palmira S/N, Col. Palmira. C.P. 62490. Cuernavaca Morelos México. {vianey,osslan}@cenidet.edu.mx Resumen Actualmente el enfoque de los Sistemas Híbridos (SH) es muy utilizado para resolver problemas donde se involucran diferentes tipos de representación del conocimiento en un solo sistema. Esta integración ofrece la ventaja de poder compensar las debilidades de cada uno de los sistemas complementando sus fortalezas. Los Sistemas Híbridos Neuro-Simbólicos (SHNS) surgen de los SH como un enfoque que brinda la posibilidad de implementar sistemas robustos donde la naturaleza conexionista y simbólica se encuentran presentes en su ambiente. La razón del estudio de SHNS es implementarlos en el proceso del sistema de visión artificial, de tal forma que se puedan proponer diferentes estrategias de solución entre los diferentes tipos de representaciones involucrados en este proceso, para ello el ciclo de desarrollo de los SH y los criterios de clasificación de los SHNS juegan un papel muy importante en la definición de estas estrategias. 1. Introducción En décadas pasadas, era muy común trabajar con un solo tipo de representación del conocimiento. Incluso, existía una competencia por demostrar que la representación utilizada era mejor con respecto a otra que resolvía el mismo problema. Sin embargo, con el paso del tiempo y al observar las debilidades de cada una de las representaciones y las propiedades complementarias que existían entre ellas, se decidió probar sus capacidades integrando estas representaciones en un solo sistema (Híbrido), en el cual se obtuvieron mejores resultados que los obtenidos de forma individual. El enfoque híbrido se inspira en los mecanismos de la propia naturaleza, donde: según [1], los humanos somos máquinas de procesamiento de información híbrido, nuestras acciones están gobernadas mediante la combinación de la información genética y de la información adquirida a través del aprendizaje. Gracias a esta combinación se tiene la posibilidad de utilizar con éxito diferentes métodos de procesamiento en ambientes cambiantes y complejos. Bajo este esquema natural, los sistemas híbridos han emergido como una nueva forma de dar solución a problemas complejos donde se requieren de varias representaciones del conocimiento para utilizar la información proveniente del ambiente, la cual determina las estrategias que se deben utilizar para poder incrementar el conocimiento y desarrollar sistemas más robustos [2]. Sin embargo, el diseño y desarrollo de estos sistemas es difícil debido al gran número de partes, o componentes, que se encuentran involucrados y a las diferentes interacciones que existe entre ellos [3]. La tendencia continúa en el estudio y la construcción de sistemas híbridos cuyas estrategias de solución sean las que mejor se adapten al problema a resolver. Por ello, en este artículo se presenta un estudio del proceso que implica el diseño y desarrollo de un sistema híbrido así como de los criterios considerados para la clasificación de un tipo particular de Sistema Híbrido (SH) el Sistema Híbrido Neuro- Simbólico (SHNS), el cual ha sido utilizado en aplicaciones tales como: el reconocimiento de objetos. 2. Diseño y desarrollo de un sistema híbrido En [1] se propone un ciclo de desarrollo de un SH, en el cual se presenta el proceso para la construcción de dicho sistema. La importancia de este modelo son las bases sobre las cuales un SHNS puede apoyarse para su diseño.

×