martes, 27 de mayo de 2014

[Tesis] Semana 16: Finalización de tesis


Notas de la semana


La reunión inicial correspondiente a esta semana se llevó a cabo el día 20 de mayo de 2014.


Evidencia de la semana:
  • Redactar una entrada en el blog con los avances realizados durante la semana. (1 punto)
  • El avance en código. (4 puntos)
  • El avance de ésta semana en redacción de tesis consistió en redactar el borrador la tesis de tal manera que estuviera listo para una la revisión. (4 puntos)
  • Reunión final agendada para el día 27 de mayo de 2014 (1 punto)


Avances de la redacción tesis

Ésta semana se trabajó principalmente en la corrección y observaciones hechas a la redacción de la tesis, los avances realizados a la redacción fueron:
  • Se complementó el capítulo 2 de antecedentes con algunos conceptos nuevos.
  • Se complementó el capítulo 4 de solución propuesta con los avances realizados al proyecto las últimos días, se agregaron algunas imágenes y diagramas de flujo para ilustrar los procesos.
  • Se corrigieron detalles con imágenes de otros capítulos.


Avances en código

Se han realizado pruebas con las lentes, la integración de la cámara en lugar de utilizar la cámara web de una laptop, se hicieron pruebas para correr la aplicación a pantalla completa.
Se ha investigado la integración de un módulo para generar peticiones HTTP para recuperar la información relacionada a cada marca y logotipo detectado desde un servicio web.

Avances para la siguiente semana


Continuar con la redacción de la tesis y la redacción del artículo para su revisión final.

Los avances en código a realizar son:
  • Generar peticiones HTTP para recuperar la información de los logotipos.


martes, 20 de mayo de 2014

[Tesis] Semana 15: Finalización de tesis


Notas de la semana


La reunión inicial correspondiente a esta semana se llevó a cabo el día 16 de mayo de 2014.

Las observaciones realizadas a los avances de la semana anterior fueron principalmente hacia el póster y la presentación que se realizaron.

Evidencia de la semana:
  • Redactar una entrada en el blog con los avances realizados durante la semana. (1 punto)
  • El avance en código. (4 puntos)
  • El avance de ésta semana en redacción de tesis consistió en redactar el borrador la tesis de tal manera que estuviera listo para una la revisión. (4 puntos)
  • Reunión final agendada para el día 20 de mayo de 2014 (1 punto)


Avances de la redacción tesis

Ésta semana se trabajó principalmente en la corrección y observaciones hechas al póster y al artículo las dos semanas anteriores.
En el póster se expone todo el diseño del proyecto y se presentará el concepto del mismo.

Avances para la siguiente semana


Continuar con la redacción de la tesis y la redacción del artículo para su revisión final.

Los avances en código a realizar son:
  • Integración de los lentes de realidad aumentada con el proyecto.
  • Investigar medios alternos a Windows para el desarrollo de aplicaciones para los lentes.


viernes, 16 de mayo de 2014

[Tesis] Semana 14: Preparación de un articulo

Notas de la semana


La reunión inicial correspondiente a esta semana se llevó a cabo el día 09 de mayo de 2014.

Las observaciones realizadas a los avances de la semana anterior fueron principalmente hacia el póster y la presentación que se realizaron.

Evidencia de la semana:
  • Redactar una entrada en el blog con los avances realizados durante la semana. (1 punto)
  • El avance en código. (4 puntos)
  • El avance de ésta semana en redacción de tesis consistió en redactar el borrador de un artículo que será enviado a alguna revista científica para su publicación. (4 puntos)
  • Reunión final agendada para el día 16 de mayo de 2014 (1 punto)


Avances de la redacción tesis

Para ésta semana se comenzó la redacción de un artículo para su publicación en una revista científica; se comenzó con una plantilla descargada del sitio http://www.latextemplates.com/cat/articles.
Un artículo es una descripción completa de una investigación que se está llevando a cabo, en este caso, el contenido del artículo son extractos de las secciones de la tesis que se esta desarrollando.

Algunas revistas científicas en español que se han considerado para la publicación del artículo son las siguientes:

  • Revista Ingeniería, Investigación y Tecnología.
  • Revista Ingeniería Mecánica, Tecnología y Desarrollo.
La redacción del artículo se realizó en Microsoft Word.


Avances de código


Esta semana pause un poco el desarrollo del código en Python para centrarme en probar los lentes de realidad aumentada, se trata de unos lentes Vuzix STAR 1200XLD, cuyas especificaciones se encuentran descritas en el sitio http://www.vuzix.com/augmented-reality/products_star1200xld/.


Imagen tomada de http://www.vuzix.com/augmented-reality/products_star1200xld/

Para probar las lentes se trabajó en el sistema operativo Windows 8.1; para ello fue necesario descargar e instalar algunas herramientas, la primera de ellas llamada VR Manager 4.1 que permite calibrar el Warp Tracker que es un giroscopio capaz de detectar el movimiento de la cabeza, utiliza 9 sensores (3 acelerometros, 3 giroscopios y 3 sensores de campo magnetico) para detectar el movimiento de la cabeza, el ángulo de visión y la dirección. La aplicación VR Manager 4.1 incluye las opciones necesarias para calibrar dichos sensores.

El siguiente paso fue descargar el kit de desarrollo, para ello se seleccionó el SDK para Windows en este sitio http://www.vuzix.com/support/developer_program/.
La programación de los lentes se realiza en los lenguajes C# y C++, ell SDK consiste en una serie de drivers y librerías que se importan en el código y proporcionan la funcionalidad de conectarse y leer los valores del Warp Tracker.
El SDK no incluye ningún editor de código o algo parecido, para el desarrollo de proyectos en C# y C++ de instaló Visual Studio 2012.

Como parte de la pruebas se configuraron las herramientas anteriores, sin embargo, se detectaron algunos problemas, el principal problema fue que algunas librerías utilizadas requieren de complementos para Windows que están desactualizados por lo que no están disponibles, eso hizo que los ejemplos incluidos en el SDK no fueran funcionales. Se espera seguir realizando más pruebas con las lentes para futuras entregas.

Por el lado de desarrollo de en Python, solo se configuró el código para trabajar con la cámara incluida en los lentes:

Avances para la siguiente semana


Realizar correcciones al póster y los errores que puedan surgir en el paper.

Los avances en código a realizar son:
  • Integración de los lentes de realidad aumentada con el proyecto.
  • Investigar medios alternos a Windows para el desarrollo de aplicaciones para los lentes.


viernes, 9 de mayo de 2014

[Tesis] Semana 13: Preparación de un póster

Notas de la semana


La reunión inicial correspondiente a esta semana se llevó a cabo el día 29 de abril de 2014.

Las observaciones realizadas a los avances de la semana anterior fueron:

  • Utilizar imágenes propias o bajo licencia Creative Commons.
  • Ortografía:
    • Cuidar los acentos y correcta escritura de las palabras.
    • Corregir las observaciones realizadas a la ortografía (errores de ortografía, redacción y sintaxis).
  • Corregir las observaciones hechas a la bibliografía.
  • En la tabla comparativa del capítulo 3, evitar desperdiciar espacio en blanco.
  • Mejorar la calidad de las imágenes.

Evidencia de la semana:
  • Redactar una entrada en el blog con los avances realizados durante la semana. (1 punto)
  • El avance en código. (4 puntos)
  • El avance de ésta semana en redacción de tesis consistió en realizar un poster utilizando plantillas de Latex. (4 puntos)
  • Reunión final agendada para el día 09 de mayo de 2014 (1 punto)


Avances de la redacción tesis

Se realizaron las observaciones de la semana anterior.

Se complementó la información de la presentación elaborada en la semana pasada, la presentación se irá ampliando y complementando conforme se vaya concluyendo la tesis, se realicen los experimentos y se tengan los resultados.

Se realizó un poster con el contenido de la tesis para su presentación.

Avances de código


Esta semana se trabajo en el desarrollo de una base de datos que almacenará la información de los logotipos y diferentes productos a ser detectados, se utilizó MongoDB como base de datos y la estructura de cada colección es de la siguiente forma:

[
  {
    "id": "lala",
    "name": "Lala",
    "product": "Milk",
    "barcode": "7501020515398",
    "madein": "Gomez Palacio, Durango, Mexico"
  },
  {
    "id": "quaker",
    "name": "Quaker Oats",
    "product": "Oats flakes",
    "barcode": "038527132577",
    "madein": "Estados Unidos"
  },
  {
    "id": "kellogs",
    "name": "Kellogs",
    "product": "Corn flakes",
    "barcode": "none",
    "madein": "none"
  }
]

En etapas anteriores se utilizaba como base de datos un archivo almacenado directamente en el disco duro y era accesado como cualquier otro archivo.
Entonces se implementó un script para conectar la base de datos con el código de detección de logotipos en el lado del servidor, con ello es posible realizar una búsqueda en la base de datos cuando un logotipo es detectado, recuperar la información disponible en la base de datos y enviarla al cliente.

Se estuvo trabajando con la interfaz y haciendo pruebas para correrla a pantalla completa, así como cambios menores en las funciones que procesan del lado del cliente la información recibida desde el servidor para que sea desplegada al usuario.

Avances para la siguiente semana


Comenzar a redactar un artículo sobre el tema de tesis para su posterior publicación en una revista científica..

Los avances en código a realizar son:
  • Cambios y actualizaciones al driver de la base de datos
  • Trabajar en la interfaz gráfica para mostrar a los usuarios la información utilizando los lentes de realidad aumentada.
  • Investigar sobre OpenGL para Python y analizar su posible integración.


lunes, 5 de mayo de 2014

[Tesis] Semana 12: Preparación de una presentación

Notas de la semana


La reunión inicial correspondiente a esta semana se llevó a cabo el día 08 de abril de 2014.

Las observaciones realizadas a los avances de la semana anterior fueron:

  • Utilizar imágenes propias o bajo licencia Creative Commons.
  • Ortografía:
    • Verificar la redacción de los párrafos, evitar palabras en futuro y primera persona del plural.
    • Cuidar los acentos y correcta escritura de las palabras.
    • Corregir las observaciones realizadas a la ortografía (errores de ortografía, redacción y sintaxis).
  • Corregir las observaciones hechas a la bibliografía.
  • En la tabla comparativa del capítulo 3, alinear símbolos al centro
  • Concluir el diseño experimental, qué se evalúa, cómo, en qué unidades se mide y la finalidad.
  • Agregar redacción sobre trabajo a futuro.

Evidencia de la semana:
  • Redactar una entrada en el blog con los avances realizados durante la semana. (1 punto)
  • El avance en código. (4 puntos)
  • El avance de ésta semana en redacción de tesis consistió en realizar una presentación utilizando la clase beamer en Latex. (4 puntos)
  • Reunión final agendada para el día 29 de abril de 2014 (1 punto)

Avances de la redacción tesis

Se realizaron las observaciones de la semana anterior, se complementó el capítulo dos con nuevos antecedentes y se agregaron las imágenes correspondientes al capítulo. Se complementó la redacción de la solución propuesta hasta abarcar los avances en código que se tienen hasta la fecha. Se agregó la redacción de trabajo a futuro en el capítulo de conclusiones.

Se realizo una presentación utilizando la clase beamer en latex, la presentación es necesaria para la defensa del tema de tesis. Se eligió el tema CambridgeUS con el esquema de colores seahorse.

Avances para la siguiente semana


Los avances en la redacción de la tesis será complementar los capítulos 5 y 6, agregar contenido al capítulo 2 mientras siga avanzando la solución propuesta.
Comenzar a redactar un poster sobre el tema de tesis.

Los avances en código a realizar son:
  • Desarrollar el módulo de comunicación con la base de datos, complementar con una API para realizar peticiones y guardar contenido en la misma.
  • Continuar mejorando el proceso de detección.
  • Complementar la interfaz de realidad aumentada, mejorar la retroalimentación y el dibujo de los elementos en el campo de visión del usuario.


lunes, 7 de abril de 2014

[Tesis] Semana 11: Conclusiones y trabajo a futuro

Notas de la semana


La reunión inicial correspondiente a esta semana se llevó a cabo el día 28 de marzo de 2014.

Las observaciones realizadas a los avances de la semana anterior fueron:

  • Utilizar imágenes propias o bajo licencia Creative Commons.
  • En los \caption, utilizar descripciones más variadas.
  • Cambiar aquellas imágenes que puedan representarse mediante cuadros e incluir otros más.
  • Complementar las introducciones a las secciones del capítulo 4.
  • Describir para qué se utilizan cada una de las librerías en la lista de la sección 4.2.1.
  • Ortografía:
    • Verificar la redacción de los párrafos, evitar palabras en futuro y primera persona del plural.
    • Cuidar los acentos y correcta escritura de las palabras.
    • Corregir las observaciones realizadas a la ortografía (errores de ortografía, redacción y sintaxis).
  • Corregir las observaciones hechas a la bibliografía.

Evidencia de la semana:
  • Redactar una entrada en el blog con los avances realizados durante la semana. (1 punto)
  • El avance de esta semana en código consistió en agregar retroalimentación de los productos al usuario. (4 puntos)
  • El avance de ésta semana en redacción de tesis consistió en comenzar la redacción del capítulo de conclusiones y trabajo futuro. (4 puntos)
  • Reunión final agendada para el día 08 de abril de 2014 (1 punto)


Avance en código

Los avances pueden encontrarse en el repositorio: https://github.com/jcespinosa/EcoGlasses

Para esta semana se trabajo sobre el panel lateral para mostrar la información al usuario, en este caso se agregó algo de información simple cuando un producto es detectado, por ahora se esta trabajando con una "base de datos" que es un archivo JSON y que es leído por el proceso de detección del lado del servidor.

Se estuvo trabajando en un módulo para recuperar información desde una base de datos desarrollada en MongoDB, sin embargo, no se espera que sea parte de la implementación final ya que estos métodos dependen de las especificaciones para los servicios del backend, pero ayudará a preparar el código para que sea menos complicado adaptarlo cuando los servicios estén listos.

Se realizaron algunas optimizaciones menores al código de detección del lado del servidor.

Avances para la siguiente semana


Los avances en la redacción de la tesis será complementar los capítulos 2, 4, 5 y 6, agregar los contenidos faltantes, imágenes y preparar un primer borrador de la tesis.

Los avances en código a realizar son:
  • Continuar trabajando con la retroalimentación al usuario.
  • Proceso para detectar 2 o más logotipos y/o marcas.
  • Realizar los cambios necesarios y corregir los errores en el código.


lunes, 31 de marzo de 2014

[Tesis] Semana 10: Análisis de experimentos y agregaciones pendientes

Notas de la semana


La reunión inicial correspondiente a esta semana se llevó a cabo el día 18 de marzo de 2014.

Las observaciones realizadas a los avances de la semana anterior fueron:

  • Complementar los agradecimientos.
  • Usar algunos cuadros en lugar de solo imágenes.
  • Citar el contenido de la seguridad de la información y telecomunicaciones.
  • Arreglar la tabla del capítulo 3.
  • Complementar la redacción del capítulo 5, la introducción a cada sección.
  • Ortografía:
    • Verificar la redacción de los párrafos.
    • Cuidar los acentos y correcta escritura de las palabras.
  • Corregir bibliografía.

Evidencia de la semana:
  • Redactar una entrada en el blog con los avances realizados durante la semana. (1 punto)
  • El avance de esta semana en código consistió en corregir algunos errores en el proceso de cifrado de la comunicación entre sockets. (4 puntos)
  • El avance de ésta semana en redacción de tesis consistió en complementar los capítulos 5 y 6 con las agregaciones pendientes (redacción, tablas, gráficas o  imágenes) (4 puntos)
  • Reunión final agendada para el día 28 de marzo de 2014 (1 punto)


Avance en código

Los avances pueden encontrarse en el repositorio: https://github.com/jcespinosa/EcoGlasses

Para esta semana se corrigió el módulo de encriptación de la comunicación, el procedimiento funcional quedo de la siguiente manera:

  • Codificación en base64.
  • Compresión con zlib.
  • Segmentación del mensaje.
  • Cifrado de cada segmento utilizando RSA.
  • Unión de los segmentos en un nuevo mensaje completo.

Los procedimiento es correcto, sin embargo, se encontró un problema más crítico: mientras que el proceso de cifrado del lado del cliente funciona de la manera esperada, el proceso de descrifrado del lado del servidor tarda mucho lo que vuelve muy lento el proceso de detección, por ahora se desactivo la parte del cifrado, posiblemente se deba a que la longitud de la llave para cifrar y descifrar es de 2048 bits, de probarán con llaves más pequeñas ya que la codificación base64 y la compresión agregan seguridad adicional al proceso.

De la misma manera, se corrigió la pérdida de mensajes en la comunicación del socket, éste sucedía porque el mensaje se enviaba segmentado, por ello se agregó un último paso que consiste en juntar todos los segmentos y enviarlos en un solo mensaje.

Se realizaron cambios a la interfaz diseñada, en una primera etapa la detección ocurría en tiempo real y cada segundo, sin embargo, se decidió agregar interactividad. Ahora es posible realizar una detección en tiempo real mientras que la interfaz espera a que suceda, cuando un logotipo es detectado la interfaz espera a que el usuario realice alguna acción, se irán agregando más interacciones en etapas posteriores, por ahora solo se agregó un panel lateral donde se mostrará la información del logotipo encontrado y un botón de reseteo de la detección, esto sirve para que el proceso de detección no se quede enviando peticiones al servidor sino que espere a que el usuario elija qué hacer cuando un logotipo de ha detectado dándole tiempo de analizar la información disponible del producto.

Avances para la siguiente semana


Los avances en la redacción de la tesis será redactar la el análisis de los experimentos.

Los avances en código a realizar son:
  • Implementar un módulo que permita recuperar la información de los logotipos, terminar el panel lateral para mostrar la información.
  • Proceso para detectar 2 o más logotipos y/o marcas.


viernes, 21 de marzo de 2014

[Tesis] Semana 9: Reportaje de resultados experimentales

Notas de la semana


La reunión inicial correspondiente a esta semana se llevó a cabo el día 11 de marzo de 2014.

Las observaciones realizadas a los avances de la semana anterior fueron:

  • Complementar la redacción del capítulo 2 y citar los conceptos faltantes.
  • Ortografía:
    • Verificar la redacción de los párrafos.
    • Quitar palabras o frases innecesarias.
    • Cuidar los acentos y correcta escritura de las palabras
  • Agregar footnotes a los conceptos que sólo se usan una vez.
  • Redacción del capítulo 4.
  • Redacción del capítulo 5.
  • Colocar imágenes.
  • Corregir bibliografía.

Evidencia de la semana:
  • Redactar una entrada en el blog con los avances realizados durante la semana. (1 punto)
  • El avance de esta semana en código consistió en corregir algunos errores en el proceso de cifrado de la comunicación entre sockets. (4 puntos)
  • El avance de ésta semana en redacción de tesis consistió en colocar las imágenes, tablas o gráficas que representarán los resultados de los experimentos diseñados (4 puntos)
  • Reunión final agendada para el día 18 de marzo de 2014 (1 punto)


Avances de la redacción tesis


Para esta semana se complementó la redacción de la solución propuesta, se agregaron algunas imágenes al capítulo 2 y se corrigieron errores de ortografía y redacción.

Se comenzó con la redacción del capítulo 5, que contiene el diseño de los experimentos a realizar.

En el capítulo 6 se agregaron las descripciones de las tablas y gráficas donde se mostrarán los resultados del análisis de los experimentos.

Finalmente se corrigieron las observaciones realizadas en la reunion de la semana anterior.


Avance en código


Los avances pueden encontrarse en el repositorio: https://github.com/jcespinosa/EcoGlasses

Para esta semana se siguió trabajando en la integración de métodos de seguridad de la información dentro de la solución propuesta, se dió orden a la implementación quedando de la siguiente forma:

  • Codificación en base64
  • Compresión con zlib
  • Segmentación del mensaje
  • Cifrado de cada segmento utilizando RSA.
Hasta ahora los primeros tres pasos funcionan correctamente pero al agregar el cifrado se sigue obteniendo un error en la longitud del texto cifrado al intentar decifrar:

Se intentará corregir dicho error.

También se tiene un bug al momento de recibir y enviar los mensajes, por alguna razón el socket deja de hacerlo. Es un bug que sucede sólo cuando el proceso dura mucho tiempo ejecutándose y no lanza ninguna excepción o mensaje de error. Se realizarán las pruebas necesarias para encontrar la raíz de dicho error.

Se estuvo trabajando también con el mejoramiento de la detección, para ello se implemento otro tipo de algoritmo de clasificación utilizando fuerza bruta. En la siguiente entrega se mostrarán los resultados obtenidos.

Avances para la siguiente semana


Los avances en la redacción de la tesis será redactar la el análisis de los experimentos.

Los avances en código a realizar son:
  • Arreglar el módulo de cifrado.
  • Mejorar el proceso de detección.
  • Realizar pruebas de ejecución tratando de encontrar otro tipo de errores hasta ahora desconocidos.


martes, 11 de marzo de 2014

[Tesis] Semana 8: Desarrollo experimental

Notas de la semana


La reunión inicial correspondiente a esta semana se llevó a cabo el día 04 de marzo de 2014.

Las observaciones realizadas a los avances de la semana anterior fueron:

  • Complementar resumen con contribuciones y los agradecimientos.
  • Ortografía:
    • Usar punto y coma.
    • Verificar la redacción de los párrafos.
    • Quitar palabras o frases innecesarias.
  • Quitar frases en 1era persona plural.
  • Redacción del capítulo 3.
    • Modificar redacción del capítulo 3.1
    • Complementar inicio del capitulo y de la sección 3.2 de como fueron seleccionadas las características a evaluar.
    • Redactar 3.3.
  • Colocar imágenes.
  • Corregir bibliografía.

Evidencia de la semana:
  • Redactar una entrada en el blog con los avances realizados durante la semana. (1 punto)
  • El avance de ésta semana en código consistió cifrar la comunicación entre sockets y en mejorar el de retroalimentación para el usuario cuando un logotipo es detectado. (4 puntos)
  • El avance de ésta semana en redacción de tesis consistió en diseñar y redactar la etapa experimental (4 puntos)
  • Reunión final agendada para el día 11 de marzo de 2014 (1 punto)


Avances de la redacción tesis


Para esta semana se complementó la redacción de la solución propuesta para comprobar la hipótesis del proyecto de tesis; se agregaron algunas imágenes al capítulo 2 y se corrigieron errores de ortografía y redacción.

Se agregaron definiciones al pie de página utilizando el comando \footnote{}, con ellas se definen conceptos cuando éstos son utilizados solo en algunas páginas.

Se comenzó con la redacción de la solución propuesta

Se corrigieron las observaciones realizadas.


Avance en código


Los avances pueden encontrarse en el repositorio: https://github.com/jcespinosa/EcoGlasses

Para esta semana se propuso como incorporar seguridad a la comunicación entre los sockets cliente y servidor, para ello se utilizan 3 métodos en conjunto:

  • Primeramente se comprimen los datos utilizando la librería zlib, esta librería ofrece compresión de datos compatible con gzip.
  • La cadena comprimida se procede a codificarla utilizando la librería base64 para producir una cadena de texto segura.
  • Con los datos comprimidos, se procede a dividirlos en trozos de aproximadamente 100 bytes.
  • Cada trozo de se encripta utilizando el algoritmo RSA con una llave de largo 2048 bits.
  • En este punto la información ya esta lista para enviarse a través del socket.
Seguir este método de compresión ayuda en dos cosas: en ahorrar ancho de banda al enviar menos datos a través del socket y en establecer una conexión segura entre los sockets.

Se tiene un error al reconstruir los datos del lado del servidor, al parecer no se obtiene el trozo completo de información por lo que el decifrado falla, se estará trabajando en mejorar el proceso de compresión y encriptación.


Avances para la siguiente semana


Los avances en la redacción de la tesis será redactar la ejecución de los experimentos diseñados.

Los avances en código a realizar son:
  • Arreglar el módulo de encriptación.
  • Complementar el módulo de retroalimentación al usuario.


lunes, 3 de marzo de 2014

[Tesis] Semana 7: Implementación de la solución propuesta

Notas de la semana


La reunión inicial correspondiente a esta semana se llevó a cabo el día 28 de febrero de 2014.

Las observaciones realizadas a los avances de la semana anterior fueron:

  • Ortografía.
    • Acentos y redacción.
  • Reacomodar subsecciones huérfanas .
  • Agregar referencias al capítulo uno.
  • Agregar un framebox a las imágenes pendientes.
  • Imágenes para explicar los algoritmos de extracción de características, hacer una tabla comparativa y finalmente explicar los que se usen en el proyecto.
  • Agregar imagen para la información generada usando realidad aumentada.
  • Agregar imagen para definir qué son las características (keypoints y descriptors).



Evidencia de la sexta semana:
  • Redactar una entrada en el blog con los avances realizados durante la semana. (1 punto)
  • El séptimo avance de código consistió en mejorar el de retroalimentación para el usuario cuando un logotipo es detectado. (4 puntos)
  • El séptimo avance de redacción de tesis consistió en comenzar a continuar redactando la solución propuesta (4 puntos)
  • Reunión final agendada para el día 04 de marzo de 2014 (1 punto)

Avances de la redacción tesis


Para esta semana se continuó con la redacción de la solución propuesta para comprobar la hipótesis del proyecto de tesis.

Para el diseño de la solución propuesta de debieron establecer todas las herramientas, métodos y procesos que la conforman.

En la subsección Implementación se hablará de manera más especifica de los procesos establecidos, se especificarán los algoritmos utilizados y la forma en la que se implementarán en la solución propuesta, se hablará de los datos específicos del proyecto, cómo son, cómo se procesarán, cómo se modificarán

Se corrigieron las observaciones realizadas.

Avance en código


Los avances pueden encontrarse en el repositorio: https://github.com/jcespinosa/EcoGlasses

Para esta semana se propuso como avance mejorar la retroalimentación para el usuario, para ello se agregó una respuesta visual dependiendo si un logotipo es detectado o no.

Para ello el servidor recupera algo de información del logotipo y la envía en formato JSON, posteriormente el cliente recibe la información y realiza los cambios en la interfaz.


Para una siguiente etapa puede resultar atractivo agregar algún tipo de cifrado entre la comunicación con los sockets, mejorar el proceso de detección y la retroalimentación para el usuario.


Avances para la siguiente semana


Los avances en la redacción de la tesis será redactar el diseño experimental.

Los avances en código a realizar son:
  • Mejorar el módulo de retroalimentación para el usuario.
  • Cifrar la comunicación.


viernes, 28 de febrero de 2014

[Tesis] Semana 6: Diseño de la solución propuesta

Notas de la semana


La reunión inicial correspondiente a esta semana se llevó a cabo el día 21 de febrero de 2014.

Las observaciones realizadas a los avances de la semana anterior fueron:
  • Ortografía
    • Espacios alrededor de puntuación
    • Usar punto y coma
  • Cuidar redacción de párrafos, no hablar en tercera persona del plural (no dialogar con el lector)
  • Concluir sección 1.4 
  • Corregir tabla de la sección 3.2, usar \scalebox en lugar de \scriptsize, doble linea en el último renglón de la tabla
  • Buscar nombres de autores con puras iniciales
  • Arreglar .bst para que la bibliografía quede en español
  • Escribir autobiografía


Evidencia de la sexta semana:
  • Redactar una entrada en el blog con los avances realizados durante la semana. (1 punto)
  • El sexto avance de código consistió en mejorar el proceso de detección, en éste caso, se separó completamente el modulo de detección y se agrego comunicación vía sockets. (4 puntos)
  • El sexto avance de redacción de tesis consistió en comenzar a diseñar la solución propuesta y escribir los puntos que se estén listos (4 puntos)
  • Reunión final agendada para el día 28 de febrero de 2014 (1 punto)

Avances de la redacción tesis


Para esta semana se realizó la redacción de la solución propuesta para comprobar la hipótesis del proyecto de tesis.

Para el diseño de la solución propuesta de debieron establecer todas las herramientas, métodos y procesos que la conforman.

Para darle estructura, se divide en dos partes:

  • Herramientas de software: En esta subsección se habla de los lenguajes y librerías a utilizar, asimismo se habla de los procesos que conforman la implementación; se habla de la manera en la que se comunican entre sí y se presentan algunos diagramas para facilitar la comprensión
  • Componentes de hardware: Se habla de los dispositivos que conforman la parte del hardware y la manera en la que se comunican entre si.

También se hablará de la manera en la que se comunican ambas capas

En la subsección Implementación se hablará de manera más especifica de los procesos establecidos, se especificarán los algoritmos utilizados y la forma en la que se implementarán en la solución propuesta, se hablará de los datos específicos del proyecto, cómo son, cómo se procesarán, cómo se modificarán

También se agregó la autobiografía al final de la tesis.

Avance en código


Los avances pueden encontrarse en el repositorio: https://github.com/jcespinosa/EcoGlasses

Para esta semana se propuso como avance mejorar el proceso de detección y la retroalimentación para el usuario, sin embargo, se decidió completar un módulo pendiente del proyecto.

La implementación debe ser distribuída, esto quiere decir que el proyecto se divide en dos partes:
  • Un cliente
  • Un servidor

La parte del cliente es el usuario y se encarga de capturar lo que el usuario esta observando y de mostrar la información que el usuario necesita. El servidor se encarga de procesar las capturas para identificar logotipos, etiquetas o marcas y asi enviar al cliente la información necesaria.

En este caso, el cliente es cliente es la parte que corre la interfaz, contiene 3 hilos diferentes:
  • App: Se encarga de dibujar la ventana y mostrar lo que se captura desde la cámara web.
  • Capture: Se encarga de obtener las capturas de la webcam y enviarlas al hilo App, asimismo le envía cada cierto tiempo una captura al hilo Detection.
  • Detection: Recibe la captura del hilo Capture, la codifica en forma de un string de bytes y la manda a traves del socket. Recibe la respuesta del servidor.

El servidor es secuencial y no hace uso de ningún hilo, primero carga los logotipos que se pueden reconocer, y espera hasta que recibe el mensaje del cliente y lo decodifica para obtener una captura , posteriormente preprocesa la captura utilizando algunos filtros, después obtiene los keypoints y descriptors utilizando el algoritmo ORB, finalmente envía la información al matcher (FLANN) que se encarga de comparar la captura obtenida para encontrar algún logotipo.

Por ahora no hay retroalimentación, pero se espera para la siguiente semana que ya sea posible. Este paso ayudará en etapas posteriores cuando ya exista una base de datos con la información de los logotipos y ésta pueda enviarse al usuario desde un servidor remoto.




Avances para la siguiente semana


Los avances en la redacción de la tesis será redactar la implementación de la solución propuesta.

Los avances en código a realizar son:
  • Implementar un módulo de retroalimentación para el usuario cuando un logotipo es reconocido.


viernes, 21 de febrero de 2014

[Tesis] Semana 5: Resumen de trabajos relacionados relevantes

Notas de la semana


La reunión inicial correspondiente a esta semana se llevó a cabo el día 13 de febrero de 2014.

Las observaciones realizadas a los avances realizados fueron:
  • Quitar \sc de addcontentsline de la bibliografía
  • Revisar el capítulo de introducción a un formato semi final y redactar objetivos específicos.
  • Verificar ortografía, formato de párrafos.
  • Cuidar las referencias a los capítulos, utilizar \label + \ref y/o \pageref
  • Revisar las referencias bibliográficas y citas.
  • Cuidar la redacción científica

Evidencia de la quinta semana:
  • Redactar una entrada en el blog con los avances realizados durante la semana. (1 punto)
  • El quinto avance de código consistió en implementar BoW (Bag of Words) en el proyecto, sin embargo se realizó una implementación distinta. (4 puntos)
  • El quinto avance de redacción de tesis consistió en realizar un cuadro comparativo de los trabajos relacionados, algo conocido como tabla de estado de arte (4 puntos)
  • Reunión final agendada para el día 21 de febrero de 2014 (1 punto)

Avances de la redacción tesis


Para esta semana, con los trabajos y proyectos relacionados que se encontraron, se procedió a fabricar una tabla de estado de arte. En esta tabla se comparan las características de los proyectos entre si y las características del proyecto de tesis que se esta realizando.

Las caracteristicas a comparar fueron:
  1. Interfaz de realidad aumentada: El proyecto utiliza una o más técnicas de realidad aumentada.
  2. Asistente de compras: El proyecto es capaz de asistir a los consumidores al momento de adquirir sus productos.
  3. Detección de logotipos, marcas o etiquetas: El proyecto es capaz de reconocer algún producto, etiqueta, marca; utilizando alguna técnica de detección.
  4. Base de datos con información sobre productos: Se cuenta con una base de datos que almacena toda la información requerida.
  5. Recomendaciones de compra: Indica que el proyecto es capaz de recomendar a los usarios que artículos comprar de acuerdo a ciertos criterios.
  6. Despliegue de información sobre los productos: El proyecto puede mostrar a los usuarios información sobre los productos tales como nombre, precios, ingredientes, etcétera.
  7. Despliegue de información cualitativa de los productos: Se puede mostrar información complementaria como comentarios, calificaciones, opiniones o recomendaciones hechas por otros usuarios.
  8. Orientado al cuidado del medio ambiente: Se centra en el cuidado del medio ambiente.
  9. Influencia sobre las decisiones de compra: Uno se sus objetivos es afectar o modificar las decisiones de compra de los consumidores.
  10. Perfiles de compras: Aprende o almacena el historial de compras de los consumidores.

Los proyectos elegidos para la comparación fueron:

La tabla comparativa resultante es la siguiente:

C1C2C3C4C5C6C7C8C9C10
P1NoSiNoSiSiSiNoNoNoSi
P2SiSiSiSiNoSiNoNoNoNo
P3NoSiNoSiNoSiNoSiNoNo
P4NoSiNoSiNoSiSiNoNoNo
P5NoSiNoNoSiNoSiNoNoSi
P6SiSiNoSiSiSiNoNoSiNo
P7SiSiNoSiSiSiNoNoSiNo
P8SiNoNoSiSiSiNoNoNoNo


También se complemento la redacción del capítulo uno (introducción) para dejarla en estado casi final.


Avance en código


Los avances pueden encontrarse en el repositorio: https://github.com/jcespinosa/EcoGlasses

Para esta semana se busco investigar e implementar el concepto BoW (Bag of Words) al proyecto, sin embargo, los módulos no están disponibles en la version para Python de OpenCV y solo existe la implementación para C++.
Como segundo punto, se decidió realizar pruebas de extracción/detección de características utilizando método ORB (Oriented FAST and rotated BRIEF) que como su nombre lo indica hace uso de los algoritmos FAST (Features and Accelerated Segment Test) y BRIEF (Binary Robust Independent Elementary Features), se tomó esta decision ya que los algoritmos SURF y SIFT se encuentran patentados y se debe pagar licencia de uso para aplicaciones comerciales.

Dado que no fue posible implementar BoW en el proyecto, se optó por probar otras implementaciones, la primera hacia uso del método K-Nearest Neighbour, que es un clasificador de clases sencillo, sin embargo, tenía algunos problemas.

El siguiente método a probar fue un detector de patrones. Los beneficios de detectar patrones es que son bastante precisos, pues comparan todas las características del patrón, el fallo es que no son muy confiables cuando las imágenes se encuentran giradas o su tamaño cambia.

 1. Patron con giro

 2. Patron con cambio de tamaño

3. Patron exacto

La tercer implementación hace uso del algoritmo ORB para la extracción de características (keypoints y descriptors). En éste caso el proceso de detección mejoro mucho ya que se obtuvieron buenos resultados incluso ante el cambio de tamaño, rotación y cambios sutiles de iluminación.

 1. Cambio de tamaño

 2. Tamaño normal

 3. Tamaño normal y rotación

4. Tamaño pequeño y rotación


Dado la velocidad con la que tomaba la captura de la ventana, da la impresión que solo se detectan pocas características, pero en realidad la detección es constante y con muy poco ruido.

Se continuará haciendo pruebas con la implementación de ORB y se trabajará en el módulo de retroalimentación para los usuarios.

Avances para la siguiente semana


Los avances en la redacción de la tesis será redactar el diseño de la solución propuesta.

Los avances en código a realizar son:
  • Perfeccionar el proceso de detección.
  • Mejorar la retroalimentación para el usuario cuando un logotipo es reconocido.


jueves, 13 de febrero de 2014

[Tesis] Semana 4: Trabajos relacionados

Notas de la semana


La reunión inicial correspondiente a esta semana se llevó a cabo el día 07 de febrero de 2014.

Las observaciones realizadas a los avances realizados fueron:
  • Verificar la ortografía, cuidar nombres cortos de cifras con letra
  • Seleccionar los revisores de la tesis
  • Agregar la bibliografía al índice
  • Revisare el formato de las cifras bibliográficas
  • Quitar el nombre del proyecto del título para mayor formalidad

Evidencia de la cuarta semana:
  • Redactar una entrada en el blog con los avances realizados durante la semana. (1 punto)
  • El cuarto avance de código consistió en tomar solo una región de interés del todo el frame para reducir la zona de procesamiento, así como investigar un poco sobre el concepto Bag of Words (BoW). (4 puntos)
  • El cuarto avance de redacción de tesis consistió en buscar trabajos relacionados con el proyecto de tesis y redactar de qué trata y qué relación tiene con el proyecto (4 puntos)
  • Reunión final agendada para el día 13 de febrero de 2014 (1 punto)



Avances de la redacción tesis


Para esta semana se comenzaron a buscar algunos trabajos relacionados con el proyecto que se esta desarrollando. Para ello se busco en diversos repositorios de publicaciones científicas.

En la siguiente tabla se muestran los trabajos relacionados encontrados, las palabras clave con las que se encontraron y el repositorio donde se ubica.

Nombre del trabajoRepositorioPalabras clave
IntelliShopper: A Proactive, Personal, Private Shopping Assistant Google Scholar shopping assistant
Personalized In-store E-Commerce with the PromoPad: an Augmented Reality Shopping Assistant Google Scholar augmented reality shopping assistant
Enhancing user experience through pervasive information systems: The case of pervasive retailing Google Scholar shopping assistant pervasive computing
Evaluative shopping assistant system Google Patents shopping assistant
Personalized shopping assistant Google Patents shopping assistant
Method and apparatus for augmented reality shopping assistant Google Patents augmented reality shopping assistant
Augmented reality system for product selection Google Patents augmented reality shopping assistant
Exploring the Subtle Relationships between Environmental Concern and Ecologically Conscious Consumer Behavior Google Scholar ecological consumer behavior
Positive cueing: Promoting sustainable consumer behavior by cueing common environmental behaviors as environmental Google Scholar ecological consumer behavior
Emotions in consumer behavior: a hierarchical approach Google Scholar ecological consumer behavior
Green consumption or sustainable lifestyles? Identifying the sustainable consumer Google Scholar green consumer
A green paradox: Validating green choices has ironic effects on behavior, cognition, and perception Google Scholar green shopping
Augmented Reality E-Commerce: How the Technology Benefits People's Lives Google Scholar augmented commerce



Avance en código

Los avances pueden encontrarse en el repositorio: https://github.com/jcespinosa/EcoGlasses

Para mejorar el desempeño y reducir el ruido durante la detección, esta semana se trabajo en agregar una zona de detección. La zona de detección tiene un tamaño de 400 x 400 pixeles y se encuentra en el centro del frame que se captura. Anteriormente se tenia que procesar toda la captura de la cámara la cual es de 1280 x 720 pixeles.

OriginalGaussian filterHSV color space

La ventana solo muestra un área de 640 x 480 pixeles y el área efectiva de detección es el cuadro de 400 x 400 en el centro.

Con ello la detección solo ocurre en dicha región de interés.



Se estuvo trabajando con la detección porque se encontró un error en el proceso de detección, parece ser que aún no me es posible encontrar el formato correcto para entrenar el matcher. Un problema con el formato de los arreglos para el entrenamiento ocasiona que todo el programa se detenga.



Como trabajo pendiente quedo comenzar a investigar, analizar e implementar BoW (Bag of Words) en el código. Se dejará como avance para la siguiente semana.

Avances para la siguiente semana


Los avances en la redacción de la tesis será redactar un resumen sobre los trabajos relacionados.

Los avances en código a realizar son:
  • Investigación y análisis del concepto BoW (Bag of Words) y comenzar con su implementación.
  • Perfeccionar el proceso de detección.


jueves, 6 de febrero de 2014

[Tesis] Semana 3: Antecedentes

Notas de la semana


La reunión inicial correspondiente a esta semana se llevó a cabo el día 30 de enero de 2014.

Las observaciones realizadas a los avances realizados fueron:
  • Poner en rojo o dar algún otro formato a las partes que se están redactando
  • Reordenar las secciones del capítulo 2
  • Agregar la bibliografía
  • Dar formato a la redacción (negritas, cursivas, preguntas y listas)
  • Revisar la hipótesis y objetivos, la redacción debe ser mas breve y clara
  • Verificar ortografía

Evidencia de la tercer semana:
  • Redactar una entrada en el blog con los avances realizados durante la semana. (1 punto)
  • El tercer avance de código consistió en separar el hilo de la interfaz de los procesos de detección para mejorar el desempeño del sistema. (4 puntos)
  • El tercer avance de redacción de tesis consistió en redactar los antecedentes de la tesis (4 puntos)
  • Reunión final agendada para el día 07 de febrero de 2014 (1 punto)



Avances de la redacción tesis


Para esta semana se comenzaron a redactar los antecedentes de la tesis.
En la sección de antecedentes se introduce a los lectores todos aquellos conceptos y términos que le permitirán comprender mejor de lo que se esta hablando en el proyecto de tesis.

Para la redacción de la tesis consideré los siguientes antecedentes:


  • Realidad Aumentada
    • Lentes de realidad aumentada
  • Visión computacional
    • Reconocimiento de características y patrones (Feature detection)
    • Puntos clave y descriptores (keypoints, descriptors) 
    • Algoritmos de reconocimiento de características 
      • SURF
      • SIFT 
  • Programación de software
    • Python
    • Numpy
    • OpenCV

Avance en código

Los avances pueden encontrarse en el repositorio: https://github.com/jcespinosa/EcoGlasses

Conforme de avanzó en la detección y clasificación de logotipos se detectaron problemas con la interfaz.
El problema encontrado fue que tanto la interfaz como el proceso de detección/clasificación corrían en el hilo principal por lo que cuando la detección/clasificación tomaba mucho tiempo o recursos todo el sistema se trababa o en el peor caso finalizaba.

La solución implementada fue modelar el sistema en dos hilos separados, un hilo para la interfaz y un hilo para la detección. A pesar que la solución suena simple en realidad hay que reestructurar algunas partes del código y agregar un poco más de complejidad.

Primero se separó el código en dos partes, todo el proceso de preparar y dibujar la interfaz de un lado, y el proceso de detectar y clasificar en otro.
El proceso de detección/clasificación abarca los siguientes puntos:

  • Comunicar la webcam y detectar errores con la comunicación con el hardware
  • Tomar las capturas de la webcam
  • Preprocesar las capturas y pasarlas al proceso de clasificación
  • Realizar una copia de la captura y dibujar en ella puntos o algún otro indicador de que se ha encontrado algo relevante.
  • Si se detecto algo entonces regresar la copia de la captura, si no entonces se regresa la captura original.

El objetivo fue comunicar ambos hilos, para ello se utilizó la librería Queue en python.

Se dejó que la interfaz corriera en su propio hilo (mainloop), retirando cualquier componente que la comunicara directamente con el proceso de detección. Posteriormente al hilo se le agrego una cola de peticiones (queue) y una función processQueue que imita un escuchador de eventos (event listener). La función verifica cada cierto tiempo si hay algun elemento en la cola de peticiones, si no lo hay entonces espera hasta la siguiente oportunidad, si hay algún elemento lo extrae y lo procesa. Los elementos en la cola son eventos representados por un diccionario con el siguiente formato:

{
    event: "update_frame"
    args: [frame_object]
}

Donde se especifica lo que la interfaz debe realizar y los argumentos necesarios para llevarlo acabo, en este caso, el evento le indica que debe actualizar la captura (frame) de la vista y el único argumento necesario es la captura misma que es regresada por el hilo de detección.

El hilo de detección lo que hace es procesar la captura y colocar esa captura en forma de un evento en la cola de peticiones y la interfaz se encargará de procesar ese evento después.

Esto es una muy buena aproximación que en un futuro permitirá agregar otro tipo de componentes en la interfaz que podrán ser modificados de esta forma, agregando otros hilos y funciones adicionales.

Como siguiente punto también se trabajó con las eco-etiquetas compartidas en la carpeta del proyecto en Dropbox, se extrajeron sus descriptores y keypoints.

La semana pasada se estuvo analizando el efecto de girar los logotipos para ver si el clasificador seguía dando resultados, sin embargo, se siguen teniendo problemas con la detección. La idea es abordar mejores opciones que un matcher o clasificador ya que cuando la cantidad de datos a utilizar es muy grande estas opciones tienden a consumir mucho tiempo y recursos de procesamiento y los resultados no siempre son los esperados.

Avances para la siguiente semana


Los avances en la redacción de la tesis serán buscar algunos trabajos relacionados con el proyecto.

Los avances en código a realizar son:
  • En lugar de procesar todo el frame de la cámara, se procesará solo una parte del mismo. Se deberá alinear el logotipo que se desea detectar con una zona marcada en la interfaz, esto con el fin de optimizar la detección y disminuir en gran medida el ruido.
  • Se investigara sobre el concepto BoW (Bag of Words), un método utilizado en la detección de palabras clave en texto, la variante Visual BoW es una variante aplicada a la detección y búsqueda de patrones en grandes cantidades de imágenes. 

jueves, 30 de enero de 2014

[Tesis] Semana 2: Introducción

Notas de la semana

La reunión correspondiente a esta semana se llevó a cabo el día 20 de enero de 2014.
Durante la reunión se corrigieron algunos de los errores cometidos en los entregables de la primera semana y se establecieron los requisitos para la siguiente entrega.


Evidencia de la segunda semana:
  • Redactar una entrada en el blog con los avances realizados durante la semana. (1 punto)
  • El segundo avance de código abarca la capacidad del programa para reconocer logotipos en diferentes posiciones, ya sea con rotación o a escala. (4 puntos)
  • El segundo avance de redacción de tesis abarca definir los objetivos y la hipotesis de la tesis (4 puntos)
  • Reunión final agendada para el día 20 de enero de 2014 (1 punto)

Avances de la redacción tesis


Para la primera semana se estableció la estructura de la tesis, después de corregir algunos errores señalados en la reunión final de la semana pasada el esqueleto de la tesis quedó de la siguiente forma

Cabe mencionar que las secciones y subsecciones pueden modificarse conforme avance el proyecto.

Para esta semana se comenzó a redactar la sección de Introducción, pero con más en énfasis en los objetivos y la hipótesis.

En resumen, estas son las subsecciones:

  • Objetivos:
El objetivo es diseñar, desarrollar e implementar una interfaz de realidad aumentada utilizando unos lentes de realidad aumentada, que permita desplegar en el campo de visión del usuario información relevante acerca de las marcas y los productos que consume comúnmente así como aquellos otros productos disponibles y que pueda adquirir en un futuro.

La información que el usuario podrá visualizar en la interfaz será principalmente información ecológica de los productos. Se busca informar a los usuarios acerca de qué tan ecológico es un producto en distintos niveles.

  • Hipótesis
La hipótesis se centra en una pregunta clave:

¿Es posible modificar o influir en las decisiones de compra de los usuarios utilizando nuevas tecnologías como la visión computacional y la realidad aumentada?

En éste caso, el proyecto de tesis hace énfasis en las características ecológicas de un producto

Aprovechando el aumento en la conciencia de las personas acerca del cuidado del medio ambiente y por la ecología, ¿será posible que la información ecológica de los productos tenga el impacto necesario para influir en la decisión de comprar o no un producto?


Avance en código


Como primer avance se logró crear un matcher sencillo de logotipos utilizando Python y OpenCV, y el método SURF para la detección de caracteristicas. El matcher lograba reconocer exitosamente los logotipos con los que fue entrenado pero su capacidad de reconocimiento estaba limitada y si los logotipos estaban girados o a diferente escala los resultados ya no eran los esperados.
Para esta semana se decidió abordar esa problemática y se decidió entrenar el matcher con los logotipos, pero en diferentes posiciones y ver el grado de mejoría

El código se encarga de tomar el logotipo en 4 diferentes posiciones (0, 90, 180 y 270 grados), despues de cada una de estas posiciones se extraen los keypoints, los descriptors y la imágen en escala de grises en forma de arreglo Numpy. Ésta información se almacena en el disco duro para el posterior entrenamiento del matcher.

90°
180°
270°

El problema que se tiene es en la etapa de entrenamiento, actualmente se utiliza el método KNN (K-nearest neighbors), es un método sencillo que permite hacer match entre pares equivalentes de elementos. Parecido a una red neuronal, se debe entrenar con muestras de lo que se quiere reconocer o clasificar. Sin embargo, tengo problemas al momento de presentarle las muestras al algoritmo.
Los samples deben tener un formato especial, los samples estan compuestos por los descriptors de los keypoints, sin embargo tengo problemas al momento de formatear todos los samples ya que las imágenes difieren en tamaño al momento de girarse, es decir, a 0 y 180 grados el logotipo aparece horizontal mientras que a 90 y 270 grados el logotipo aparece vertical.

Sin embargo, a pesar que las muestras son aceptadas por el algoritmo, no tienen el formato adecuado porque no hace match de ningún logotipo, puede ser problema al momento de modificar la forma y tamaño de los arreglos Numpy de los elementos. Se espera corregir el problema en entregas posteriores.

Los avances de código pueden encontrarse en el repositorio.

Liga al repositorio: https://github.com/jcespinosa/EcoGlasses

martes, 14 de enero de 2014

[Tesis] Semana 1: Planteamiento


Para acreditar el 10mo semestre de la carrera de Ingeniería en Tecnología de Software se optó por cursar el módulo de investigación.
El requisito para acreditar el semestre es realizar un trabajo de investigación sobre algún proyecto tecnológico cuyo resultado es la redacción de un trabajo de tesis de licenciatura.

El trabajo de tesis estará bajo supervisión de la Dra. Satu Elisa Schaeffer.


Notas de la semana


La reunión inicial se llevó a cabo el día 13 de enero de 2014.
Durante la reunión se establecieron los requisitos inciales del trabajo de tesis y se abordaron de manera general las demás actividades que se desarrollarán durante el semestre.

Para el trabajo de tesis se tomarán en cuenta 3 aspectos:
  • Blog personal donde se documentarán las notas y actividades de cada semana
  • Carpeta compartida en dropbox que contendrá los archivos de LaTeX para generar la tesis.
  • Repositorio con el código generado durante el proyecto.

Evidencia de la primera semana:
  • Crear el blog, la carpeta en dropbox y el repositorio en línea. (1 punto)
  • Programar el primer avance de código del proyecto y colocarlo en el repositorio. (4 puntos)
  • Primer avance de redacción de la tesis que consiste en el esqueleto de la tesis (cápitulos, secciones y subsecciones) (4 puntos)
  • Reunión final agendada para el día 20 de enero de 2014 (1 punto)


Acerca del proyecto de tesis


Título tentativo:

"EcoGlasses: Interfaz de realidad aumentada para asistente adaptativo de compras para consumo verde inteligente"

¿De qué trata el proyecto?

El proyecto de tesis consiste en el desarrollo de una interfaz de realidad aumentada haciendo uso de unos lentes AR que permitirá visualizar, en el campo de visión del consumidor, información relevante de un producto mientras el usuario lo sostiene en frente de si mismo.
La información que se quiere mostrar se centra principalmente en qué tan ecológico es un producto, es decir:

  • ¿qué tan reciclable es el empaque utilizado?
  • ¿qué tan verde es el proceso de manufactura?
  • ¿se trata de un producto elaborado de manera local o tuvo que ser importado?
  • ¿la empresa tiene prestigio de ser una empresa verde?

Entre otros puntos.

El software estará desarrollado utilizando el lenguaje de programación Python y la libreria OpenCV 2.7. Así mismo no se excluyen algunas otras librerias de interés como Numpy y Tkinter.
Para el hardware se estarán utilizando unos lentes Vuzix STAR 1200XLD y un equipo de computo para ejecutar el backend de la interfaz.

En una primera etapa se desarrollará un script que se encarga de procesar cada frame del video capturado con los lentes AR.

El procesamiento de cada frame consiste en extraer del mismo los logotipos del empaque que se encuentre dentro del campo de visión del usuario (y de los lentes principalmente), utilizando técnicas de visión computacional, para ello se pensaron en distintas técnicas y en éste caso se opto por el reconocimiento de patrones y caracteristicas (features) utilizando el algoritmo SURF.
Posteriormente con esa información se procede a reconocer el logotipo y/o empaque dentro de una base de datos.
Una vez extraída la información del logotipo/empaque de la base de datos se procede a consultar toda la información ecológica del producto/marca.
Finalmente la información disponible es dibujada en el campo de visión del usuario.

Será necesario crear un midware que permita comunicar de manera segura a los lentes AR con las bases de datos, que se espera se encuentren de manera remota. Para ello puede ser necesario aplicar algunas técnicas criptográficas.
Así mismo se debe incluir un servicio de almacenamiento que contenga toda la información de los productos y marcas, debe ser un servicio independiente que se pueda actualizar constantemente. Las fuentes de información serán las mismas empresas que se encargarán de ponerla a disposición de los usuarios.


Trabajos relacionados

El objetivo de esta plataforma es ofrecer a las empresas una experiencia de compras digital.
Con el software de comercio electronico, la empresa IBM ayuda a las empresas a ofrecer a sus clientes y socios una experiencia de compras personalizada mediante la cual logran interactuar con la marca a traves de la web, teléfonos móviles o las redes sociales. Esto significa que toda la información se sus productos, asi como promociones y descuentos se pueden enviar a traves de estos canales y lograr que los clientes y la marca se encuentren constantemente en contacto.

Otras capacidades de este sistema es la posibilidad de crear catálogos digitales y en línea con los cuales los usuarios pueden comparar las caracteristicas de diversos productos, la ubicación de las tiendas, capacidad de visualizar los pedidos y la disponibilidad de los productos en el inventario.

Esta iniciativa de la empresa McDonalds tiene como objetivo educar a los clientes acerca de la sustentabilidad de la empresa y sus diversas practicas ecológicas.
La aplicación cuenta con una interfaz de realidad aumentada y algunos minijuegos mediante los cuales los visitantes pueden aprender sobre las diversas iniciativas sociales y ambientales de la empresa y sus franquicias.

Las aplicaciones son iniciadas despues de escanear una serie de códigos impresos en los productos de la empresa tales como papas fritas, cajas, etcétera.
Así mismo se tiene la opción de compartir los avances de los juegos o puntuaciones a través de redes sociales.

El catálago electrónico de la empresa IKEA permite a los usuarios navegar a través de los diversos productos que la empresa pone a disposición de los usuarios. Y no solo eso, también la empresa permite visualizar cómo se verán sus productos en el hogar.
Esto permite a los usuarios conocer los productos que la empresa se encarga de distribuir y así mismo saber cómo se verán exactamente los mismos una vez que sean instalados en el hogar,

Se trata de una aplicación que puede ser utilizada a traves de una tableta o télefono celular.


Liga al repositorio: https://github.com/jcespinosa/EcoGlasses