tag:blogger.com,1999:blog-14920327978165881662024-02-20T13:14:55.692-06:00Juan Carlos Espinosa CenicerosIngeniero en Tecnologías de Software - FIME - UANLJuan Carlos Espinosa Ceniceroshttp://www.blogger.com/profile/10122977539877115129noreply@blogger.comBlogger190125tag:blogger.com,1999:blog-1492032797816588166.post-21514660633826985562014-05-27T01:47:00.001-05:002014-05-27T01:47:11.657-05:00[Tesis] Semana 16: Finalización de tesis<br />
<div style="text-align: justify;">
<h3>
</h3>
<h3>
Notas de la semana</h3>
</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
La reunión inicial correspondiente a esta semana se llevó a cabo el día 20 de mayo de 2014.</div>
<div style="text-align: justify;">
<br />
<br /></div>
<div style="text-align: justify;">
<b>Evidencia de la semana:</b>
</div>
<ul>
<li style="text-align: justify;">Redactar una entrada en el blog con los avances realizados durante la semana. (1 punto)</li>
<li style="text-align: justify;">El avance en código. (4 puntos)</li>
<li style="text-align: justify;">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)</li>
<li style="text-align: justify;">Reunión final agendada para el día 27 de mayo de 2014 (1 punto)</li>
</ul>
<div style="text-align: justify;">
<h3>
</h3>
<h3>
<b><br /></b></h3>
<h3>
<b>Avances de la redacción tesis</b></h3>
<div style="text-align: start;">
<div style="text-align: justify;">
</div>
</div>
É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:<br />
<ul>
<li>Se complementó el capítulo 2 de antecedentes con algunos conceptos nuevos.</li>
<li>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.</li>
<li>Se corrigieron detalles con imágenes de otros capítulos.</li>
</ul>
<br />
<br />
<h3>
<b>Avances en código</b></h3>
<div>
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.</div>
<div>
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.</div>
<div>
<br /></div>
<div style="text-align: justify;">
<div style="text-align: justify;">
<h3>
Avances para la siguiente semana</h3>
<div>
<br />
Continuar con la redacción de la tesis y la redacción del artículo para su revisión final.<br />
<br /></div>
</div>
</div>
<div>
Los avances en código a realizar son:<br />
<ul>
<li style="text-align: justify;">Generar peticiones HTTP para recuperar la información de los logotipos.</li>
</ul>
<br />
<div>
<br /></div>
</div>
</div>
Juan Carlos Espinosa Ceniceroshttp://www.blogger.com/profile/10122977539877115129noreply@blogger.com1tag:blogger.com,1999:blog-1492032797816588166.post-81505306680350167712014-05-20T01:59:00.001-05:002014-05-25T16:48:34.872-05:00[Tesis] Semana 15: Finalización de tesis<br />
<div style="text-align: justify;">
<h3>
</h3>
<h3>
Notas de la semana</h3>
</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
La reunión inicial correspondiente a esta semana se llevó a cabo el día 16 de mayo de 2014.</div>
<div style="text-align: justify;">
<br />
Las observaciones realizadas a los avances de la semana anterior fueron principalmente hacia el póster y la presentación que se realizaron.<br />
<ul>
</ul>
</div>
<div style="text-align: justify;">
<b><br /></b>
<b>Evidencia de la semana:</b>
</div>
<ul>
<li style="text-align: justify;">Redactar una entrada en el blog con los avances realizados durante la semana. (1 punto)</li>
<li style="text-align: justify;">El avance en código. (4 puntos)</li>
<li style="text-align: justify;">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)</li>
<li style="text-align: justify;">Reunión final agendada para el día 20 de mayo de 2014 (1 punto)</li>
</ul>
<div style="text-align: justify;">
<h3>
</h3>
<h3>
<b><br /></b></h3>
<h3>
<b>Avances de la redacción tesis</b></h3>
<div style="text-align: start;">
<div style="text-align: justify;">
</div>
</div>
Ésta semana se trabajó principalmente en la corrección y observaciones hechas al póster y al artículo las dos semanas anteriores.<br />
En el póster se expone todo el diseño del proyecto y se presentará el concepto del mismo.<br />
<br />
<div style="text-align: justify;">
<div style="text-align: justify;">
<h3>
Avances para la siguiente semana</h3>
<div>
<br />
Continuar con la redacción de la tesis y la redacción del artículo para su revisión final.<br />
<br /></div>
</div>
</div>
<div>
Los avances en código a realizar son:<br />
<ul>
<li style="text-align: justify;">Integración de los lentes de realidad aumentada con el proyecto.</li>
<li style="text-align: justify;">Investigar medios alternos a Windows para el desarrollo de aplicaciones para los lentes.</li>
</ul>
<br />
<div>
<br /></div>
</div>
</div>
Juan Carlos Espinosa Ceniceroshttp://www.blogger.com/profile/10122977539877115129noreply@blogger.com0tag:blogger.com,1999:blog-1492032797816588166.post-61675985937141192192014-05-16T02:40:00.000-05:002014-05-20T01:56:23.157-05:00[Tesis] Semana 14: Preparación de un articulo<div style="text-align: justify;">
<h3>
</h3>
<h3>
Notas de la semana</h3>
</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
La reunión inicial correspondiente a esta semana se llevó a cabo el día 09 de mayo de 2014.</div>
<div style="text-align: justify;">
<br />
Las observaciones realizadas a los avances de la semana anterior fueron principalmente hacia el póster y la presentación que se realizaron.<br />
<ul>
</ul>
</div>
<div style="text-align: justify;">
<b><br /></b>
<b>Evidencia de la semana:</b>
</div>
<ul>
<li style="text-align: justify;">Redactar una entrada en el blog con los avances realizados durante la semana. (1 punto)</li>
<li style="text-align: justify;">El avance en código. (4 puntos)</li>
<li style="text-align: justify;">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)</li>
<li style="text-align: justify;">Reunión final agendada para el día 16 de mayo de 2014 (1 punto)</li>
</ul>
<div style="text-align: justify;">
<h3>
</h3>
<h3>
<b><br /></b></h3>
<h3>
<b>Avances de la redacción tesis</b></h3>
<div style="text-align: start;">
<div style="text-align: justify;">
</div>
</div>
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 <a href="http://www.latextemplates.com/cat/articles">http://www.latextemplates.com/cat/articles</a>.<br />
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.<br />
<br />
Algunas revistas científicas en español que se han considerado para la publicación del artículo son las siguientes:<br />
<br />
<ul>
<li><b>Revista Ingeniería, Investigación y Tecnología.</b></li>
<li><b>Revista Ingeniería Mecánica, Tecnología y Desarrollo.</b></li>
</ul>
La redacción del artículo se realizó en Microsoft Word.<br />
<br />
<br />
<div style="text-align: justify;">
<div style="text-align: justify;">
<h3>
<b>Avances de código</b></h3>
<br />
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 <b>Vuzix STAR 1200XLD</b>, cuyas especificaciones se encuentran descritas en el sitio <a href="http://www.vuzix.com/augmented-reality/products_star1200xld/">http://www.vuzix.com/augmented-reality/products_star1200xld/</a>.<br />
<b><br /></b>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-_0IdbF3wNcA/U3WSOhfX4xI/AAAAAAAAFE4/urEj0txfGuc/s1600/vuzix1200xld.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/-_0IdbF3wNcA/U3WSOhfX4xI/AAAAAAAAFE4/urEj0txfGuc/s1600/vuzix1200xld.png" height="123" width="320" /></a></div>
<div style="text-align: center;">
<span style="text-align: justify;"><span style="font-size: x-small;">Imagen</span></span><span style="font-size: x-small;"> tomada de </span><span style="text-align: justify;"><span style="font-size: x-small;">http://www.vuzix.com/augmented-reality/products_star1200xld/</span></span></div>
<br />
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 <b>VR Manager 4.1 </b>que permite calibrar el <i>Warp Tracker </i>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 <b>VR Manager 4.1 </b>incluye las opciones necesarias para calibrar dichos sensores.<br />
<br />
El siguiente paso fue descargar el kit de desarrollo, para ello se seleccionó el SDK para Windows en este sitio <a href="http://www.vuzix.com/support/developer_program/">http://www.vuzix.com/support/developer_program/</a>.<br />
La programación de los lentes se realiza en los lenguajes C# y C++, ell SDK consiste en una serie de <i>drivers </i>y librerías que se importan en el código y proporcionan la funcionalidad de conectarse y leer los valores del <i>Warp Tracker.</i><br />
El SDK no incluye ningún editor de código o algo parecido, para el desarrollo de proyectos en C# y C++ de instaló <b>Visual Studio 2012.</b><br />
<b><br /></b>
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.<br />
<br />
Por el lado de desarrollo de en Python, solo se configuró el código para trabajar con la cámara incluida en los lentes:<br />
<br />
<h3>
Avances para la siguiente semana</h3>
<div>
<br />
Realizar correcciones al póster y los errores que puedan surgir en el paper.<br />
<br /></div>
</div>
</div>
<div>
Los avances en código a realizar son:<br />
<ul>
<li style="text-align: justify;">Integración de los lentes de realidad aumentada con el proyecto.</li>
<li style="text-align: justify;">Investigar medios alternos a Windows para el desarrollo de aplicaciones para los lentes.</li>
</ul>
<br />
<div>
<br /></div>
</div>
</div>
Juan Carlos Espinosa Ceniceroshttp://www.blogger.com/profile/10122977539877115129noreply@blogger.com0tag:blogger.com,1999:blog-1492032797816588166.post-58898186079934648352014-05-09T01:42:00.000-05:002014-05-09T10:18:19.528-05:00[Tesis] Semana 13: Preparación de un póster<div style="text-align: justify;">
<h3>
</h3>
<h3>
Notas de la semana</h3>
</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
La reunión inicial correspondiente a esta semana se llevó a cabo el día 29 de abril de 2014.</div>
<div style="text-align: justify;">
<br />
Las observaciones realizadas a los avances de la semana anterior fueron:<br />
<br />
<ul>
<li>Utilizar imágenes propias o bajo licencia <i>Creative Commons</i>.</li>
<li>Ortografía:</li>
<ul>
<li>Cuidar los acentos y correcta escritura de las palabras.</li>
<li>Corregir las observaciones realizadas a la ortografía (errores de ortografía, redacción y sintaxis).</li>
</ul>
<li>Corregir las observaciones hechas a la bibliografía.</li>
<li>En la tabla comparativa del capítulo 3, evitar desperdiciar espacio en blanco.</li>
<li>Mejorar la calidad de las imágenes.</li>
</ul>
</div>
<div style="text-align: justify;">
<b><br /></b>
<b>Evidencia de la semana:</b>
</div>
<ul>
<li style="text-align: justify;">Redactar una entrada en el blog con los avances realizados durante la semana. (1 punto)</li>
<li style="text-align: justify;">El avance en código. (4 puntos)</li>
<li style="text-align: justify;">El avance de ésta semana en redacción de tesis consistió en realizar un poster utilizando plantillas de Latex. (4 puntos)</li>
<li style="text-align: justify;">Reunión final agendada para el día 09 de mayo de 2014 (1 punto)</li>
</ul>
<div style="text-align: justify;">
<h3>
</h3>
<h3>
<b><br /></b></h3>
<h3>
<b>Avances de la redacción tesis</b></h3>
<div style="text-align: start;">
<div style="text-align: justify;">
</div>
</div>
Se realizaron las observaciones de la semana anterior.<br />
<br />
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.<br />
<br />
Se realizó un poster con el contenido de la tesis para su presentación.<br />
<br /></div>
<div style="text-align: left;">
<div style="text-align: justify;">
<div style="text-align: justify;">
<h3>
<b>Avances de código</b></h3>
<br />
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:<br />
<br />
<pre>[
{
"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"
}
]
</pre>
<br />
En etapas anteriores se utilizaba como base de datos un archivo almacenado directamente en el disco duro y era accesado como cualquier otro archivo.<br />
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.<br />
<br />
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.<br />
<br />
<h3>
Avances para la siguiente semana</h3>
<div>
<br /></div>
</div>
</div>
<div>
Comenzar a redactar un artículo sobre el tema de tesis para su posterior publicación en una revista científica..<br />
<br />
Los avances en código a realizar son:<br />
<ul>
<li style="text-align: justify;">Cambios y actualizaciones al driver de la base de datos</li>
<li style="text-align: justify;">Trabajar en la interfaz gráfica para mostrar a los usuarios la información utilizando los lentes de realidad aumentada.</li>
<li style="text-align: justify;">Investigar sobre OpenGL para Python y analizar su posible integración.</li>
</ul>
<br />
<div>
<br /></div>
</div>
</div>
Juan Carlos Espinosa Ceniceroshttp://www.blogger.com/profile/10122977539877115129noreply@blogger.com0tag:blogger.com,1999:blog-1492032797816588166.post-44430229015937562432014-05-05T13:54:00.000-05:002014-05-05T15:55:11.063-05:00[Tesis] Semana 12: Preparación de una presentación<div style="text-align: justify;">
<h3>
</h3>
<h3>
Notas de la semana</h3>
</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
La reunión inicial correspondiente a esta semana se llevó a cabo el día 08 de abril de 2014.</div>
<div style="text-align: justify;">
<br />
Las observaciones realizadas a los avances de la semana anterior fueron:<br />
<br />
<ul>
<li>Utilizar imágenes propias o bajo licencia <i>Creative Commons</i>.</li>
<li>Ortografía:</li>
<ul>
<li>Verificar la redacción de los párrafos, evitar palabras en futuro y primera persona del plural.</li>
<li>Cuidar los acentos y correcta escritura de las palabras.</li>
<li>Corregir las observaciones realizadas a la ortografía (errores de ortografía, redacción y sintaxis).</li>
</ul>
<li>Corregir las observaciones hechas a la bibliografía.</li>
<li>En la tabla comparativa del capítulo 3, alinear símbolos al centro</li>
<li>Concluir el diseño experimental, qué se evalúa, cómo, en qué unidades se mide y la finalidad.</li>
<li>Agregar redacción sobre trabajo a futuro.</li>
</ul>
</div>
<div style="text-align: justify;">
<b><br /></b>
<b>Evidencia de la semana:</b>
</div>
<ul>
<li style="text-align: justify;">Redactar una entrada en el blog con los avances realizados durante la semana. (1 punto)</li>
<li style="text-align: justify;">El avance en código. (4 puntos)</li>
<li style="text-align: justify;">El avance de ésta semana en redacción de tesis consistió en realizar una presentación utilizando la clase <a href="http://texdoc.net/texmf-dist/doc/latex/beamer/doc/beameruserguide.pdf">beamer</a> en Latex. (4 puntos)</li>
<li style="text-align: justify;">Reunión final agendada para el día 29 de abril de 2014 (1 punto)</li>
</ul>
<div style="text-align: justify;">
<h3>
</h3>
<h3>
<b>Avances de la redacción tesis</b></h3>
<div style="text-align: start;">
<div style="text-align: justify;">
</div>
</div>
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.<br />
<br />
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 <i>CambridgeUS</i> con el esquema de colores <i>seahorse.</i><br />
<br /></div>
<div style="text-align: left;">
<div style="text-align: justify;">
<div style="text-align: justify;">
<h3>
Avances para la siguiente semana</h3>
<div>
<br /></div>
</div>
</div>
<div>
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.<br />
Comenzar a redactar un poster sobre el tema de tesis.<br />
<br />
Los avances en código a realizar son:<br />
<ul>
<li style="text-align: justify;">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.</li>
<li style="text-align: justify;">Continuar mejorando el proceso de detección.</li>
<li style="text-align: justify;">Complementar la interfaz de realidad aumentada, mejorar la retroalimentación y el dibujo de los elementos en el campo de visión del usuario.</li>
</ul>
<br />
<div>
<br /></div>
</div>
</div>
Juan Carlos Espinosa Ceniceroshttp://www.blogger.com/profile/10122977539877115129noreply@blogger.com0tag:blogger.com,1999:blog-1492032797816588166.post-520896437894956422014-04-07T23:25:00.001-05:002014-04-28T23:58:27.718-05:00[Tesis] Semana 11: Conclusiones y trabajo a futuro<div style="text-align: justify;">
<h3>
</h3>
<h3>
Notas de la semana</h3>
</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
La reunión inicial correspondiente a esta semana se llevó a cabo el día 28 de marzo de 2014.</div>
<div style="text-align: justify;">
<br />
Las observaciones realizadas a los avances de la semana anterior fueron:<br />
<br />
<ul>
<li>Utilizar imágenes propias o bajo licencia <i>Creative Commons</i>.</li>
<li>En los <i>\caption</i>, utilizar descripciones más variadas.</li>
<li>Cambiar aquellas imágenes que puedan representarse mediante cuadros e incluir otros más.</li>
<li>Complementar las introducciones a las secciones del capítulo 4.</li>
<li>Describir para qué se utilizan cada una de las librerías en la lista de la sección 4.2.1.</li>
<li>Ortografía:</li>
<ul>
<li>Verificar la redacción de los párrafos, evitar palabras en futuro y primera persona del plural.</li>
<li>Cuidar los acentos y correcta escritura de las palabras.</li>
<li>Corregir las observaciones realizadas a la ortografía (errores de ortografía, redacción y sintaxis).</li>
</ul>
<li>Corregir las observaciones hechas a la bibliografía.</li>
</ul>
</div>
<div style="text-align: justify;">
<b><br /></b>
<b>Evidencia de la semana:</b>
</div>
<ul>
<li style="text-align: justify;">Redactar una entrada en el blog con los avances realizados durante la semana. (1 punto)</li>
<li style="text-align: justify;">El avance de esta semana en código consistió en agregar retroalimentación de los productos al usuario. (4 puntos)</li>
<li style="text-align: justify;">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)</li>
<li style="text-align: justify;">Reunión final agendada para el día 08 de abril de 2014 (1 punto)</li>
</ul>
<div style="text-align: justify;">
<br />
<b><br /></b>
<b>Avance en código</b></div>
<div style="text-align: left;">
<div>
<b><br /></b></div>
<div style="text-align: justify;">
Los avances pueden encontrarse en el repositorio:<span style="text-align: start;"> </span><a href="https://github.com/jcespinosa/EcoGlasses" style="text-align: start;">https://github.com/jcespinosa/EcoGlasses</a><br />
<br />
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.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-fJuvSqz8LT8/U0N2-SqFnYI/AAAAAAAAFCc/v9oaQ2GR5FQ/s1600/Screen+Shot+2014-04-07+at+23.02.03.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/-fJuvSqz8LT8/U0N2-SqFnYI/AAAAAAAAFCc/v9oaQ2GR5FQ/s1600/Screen+Shot+2014-04-07+at+23.02.03.png" height="360" width="640" /></a></div>
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.<br />
<br />
Se realizaron algunas optimizaciones menores al código de detección del lado del servidor.<br />
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div style="text-align: justify;">
<h3>
Avances para la siguiente semana</h3>
<div>
<br /></div>
</div>
</div>
<div>
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.<br />
<br />
Los avances en código a realizar son:<br />
<ul>
<li style="text-align: justify;">Continuar trabajando con la retroalimentación al usuario.</li>
<li style="text-align: justify;">Proceso para detectar 2 o más logotipos y/o marcas.</li>
<li style="text-align: justify;">Realizar los cambios necesarios y corregir los errores en el código.</li>
</ul>
<br />
<div>
<br /></div>
</div>
</div>
Juan Carlos Espinosa Ceniceroshttp://www.blogger.com/profile/10122977539877115129noreply@blogger.com0tag:blogger.com,1999:blog-1492032797816588166.post-37083200898970825842014-03-31T23:00:00.001-06:002014-04-07T12:12:59.346-05:00[Tesis] Semana 10: Análisis de experimentos y agregaciones pendientes<div style="text-align: justify;">
<h3>
</h3>
<h3>
Notas de la semana</h3>
</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
La reunión inicial correspondiente a esta semana se llevó a cabo el día 18 de marzo de 2014.</div>
<div style="text-align: justify;">
<br />
Las observaciones realizadas a los avances de la semana anterior fueron:<br />
<br />
<ul>
<li>Complementar los agradecimientos.</li>
<li>Usar algunos cuadros en lugar de solo imágenes.</li>
<li>Citar el contenido de la seguridad de la información y telecomunicaciones.</li>
<li>Arreglar la tabla del capítulo 3.</li>
<li>Complementar la redacción del capítulo 5, la introducción a cada sección.</li>
<li>Ortografía:</li>
<ul>
<li>Verificar la redacción de los párrafos.</li>
<li>Cuidar los acentos y correcta escritura de las palabras.</li>
</ul>
<li>Corregir bibliografía.</li>
</ul>
</div>
<div style="text-align: justify;">
<b><br /></b>
<b>Evidencia de la semana:</b>
</div>
<ul>
<li style="text-align: justify;">Redactar una entrada en el blog con los avances realizados durante la semana. (1 punto)</li>
<li style="text-align: justify;">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)</li>
<li style="text-align: justify;">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)</li>
<li style="text-align: justify;">Reunión final agendada para el día 28 de marzo de 2014 (1 punto)</li>
</ul>
<div style="text-align: justify;">
<br />
<b><br /></b>
<b>Avance en código</b></div>
<div style="text-align: left;">
<div>
<b><br /></b></div>
<div style="text-align: justify;">
Los avances pueden encontrarse en el repositorio:<span style="text-align: start;"> </span><a href="https://github.com/jcespinosa/EcoGlasses" style="text-align: start;">https://github.com/jcespinosa/EcoGlasses</a><br />
<br />
Para esta semana se corrigió el módulo de encriptación de la comunicación, el procedimiento funcional quedo de la siguiente manera:<br />
<br />
<ul>
<li>Codificación en base64.</li>
<li>Compresión con zlib.</li>
<li>Segmentación del mensaje.</li>
<li>Cifrado de cada segmento utilizando RSA.</li>
<li>Unión de los segmentos en un nuevo mensaje completo.</li>
</ul>
<div>
<br /></div>
<div>
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.</div>
<br />
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.<br />
<br />
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.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-YcIIpePRUpU/UzpHHKT6h9I/AAAAAAAAFCI/xUhB-lfynzo/s1600/Screen+Shot+2014-03-31+at+22.56.09.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/-YcIIpePRUpU/UzpHHKT6h9I/AAAAAAAAFCI/xUhB-lfynzo/s1600/Screen+Shot+2014-03-31+at+22.56.09.png" height="378" width="640" /></a></div>
</div>
<div>
<div style="text-align: justify;">
<h3>
Avances para la siguiente semana</h3>
<div>
<br /></div>
</div>
</div>
<div>
Los avances en la redacción de la tesis será redactar la el análisis de los experimentos.<br />
<br />
Los avances en código a realizar son:<br />
<ul>
<li style="text-align: justify;">Implementar un módulo que permita recuperar la información de los logotipos, terminar el panel lateral para mostrar la información.</li>
<li style="text-align: justify;">Proceso para detectar 2 o más logotipos y/o marcas.</li>
</ul>
<br />
<div>
<br /></div>
</div>
</div>
Juan Carlos Espinosa Ceniceroshttp://www.blogger.com/profile/10122977539877115129noreply@blogger.com0tag:blogger.com,1999:blog-1492032797816588166.post-74291193568468890192014-03-21T00:49:00.002-06:002014-04-07T12:14:06.755-05:00[Tesis] Semana 9: Reportaje de resultados experimentales<div style="text-align: justify;">
<h3>
</h3>
<h3>
Notas de la semana</h3>
</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
La reunión inicial correspondiente a esta semana se llevó a cabo el día 11 de marzo de 2014.</div>
<div style="text-align: justify;">
<br />
Las observaciones realizadas a los avances de la semana anterior fueron:<br />
<br />
<ul>
<li>Complementar la redacción del capítulo 2 y citar los conceptos faltantes.</li>
<li>Ortografía:</li>
<ul>
<li>Verificar la redacción de los párrafos.</li>
<li>Quitar palabras o frases innecesarias.</li>
<li>Cuidar los acentos y correcta escritura de las palabras</li>
</ul>
<li>Agregar <i>footnotes</i> a los conceptos que sólo se usan una vez.</li>
<li>Redacción del capítulo 4.</li>
<li>Redacción del capítulo 5.</li>
<ul>
</ul>
<li>Colocar imágenes.</li>
<li>Corregir bibliografía.</li>
</ul>
</div>
<div style="text-align: justify;">
<b><br /></b>
<b>Evidencia de la semana:</b>
</div>
<ul>
<li style="text-align: justify;">Redactar una entrada en el blog con los avances realizados durante la semana. (1 punto)</li>
<li style="text-align: justify;">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)</li>
<li style="text-align: justify;">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)</li>
<li style="text-align: justify;">Reunión final agendada para el día 18 de marzo de 2014 (1 punto)</li>
</ul>
<div style="text-align: justify;">
<br />
<br /></div>
<h3 style="text-align: justify;">
<b>Avances de la redacción tesis</b></h3>
<div>
<div style="text-align: justify;">
<br /></div>
</div>
<div>
<div style="text-align: justify;">
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.<br />
<br />
Se comenzó con la redacción del capítulo 5, que contiene el diseño de los experimentos a realizar.<br />
<br />
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.<br />
<div style="text-align: center;">
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
Finalmente se corrigieron las observaciones realizadas en la reunion de la semana anterior.<br />
<br /></div>
</div>
</div>
</div>
<div style="text-align: left;">
<h3 style="text-align: justify;">
<b><br /></b></h3>
<h3 style="text-align: justify;">
<b>Avance en código</b></h3>
<div>
<b><br /></b></div>
<div style="text-align: justify;">
Los avances pueden encontrarse en el repositorio:<span style="text-align: start;"> </span><a href="https://github.com/jcespinosa/EcoGlasses" style="text-align: start;">https://github.com/jcespinosa/EcoGlasses</a><br />
<br />
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:<br />
<br />
<ul>
<li>Codificación en base64</li>
<li>Compresión con zlib</li>
<li>Segmentación del mensaje</li>
<li>Cifrado de cada segmento utilizando RSA.</li>
</ul>
<div>
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:</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-mvO1_4Z7s6E/Ux5pc4iEFWI/AAAAAAAAFBY/Z0zhkkFY4pk/s1600/Screen+Shot+2014-03-10+at+19.13.12.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/-mvO1_4Z7s6E/Ux5pc4iEFWI/AAAAAAAAFBY/Z0zhkkFY4pk/s1600/Screen+Shot+2014-03-10+at+19.13.12.png" height="438" width="640" /></a></div>
Se intentará corregir dicho error.<br />
<br />
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.<br />
<br />
Se estuvo trabajando también con el mejoramiento de la detección, para ello se implemento otro tipo de algoritmo de clasificación utilizando <a href="http://docs.opencv.org/trunk/doc/py_tutorials/py_feature2d/py_matcher/py_matcher.html">fuerza bruta</a>. En la siguiente entrega se mostrarán los resultados obtenidos.<br />
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
</div>
<div>
<div style="text-align: justify;">
<h3>
Avances para la siguiente semana</h3>
<div>
<br /></div>
</div>
</div>
<div>
Los avances en la redacción de la tesis será redactar la el análisis de los experimentos.<br />
<br />
Los avances en código a realizar son:<br />
<ul>
<li><span style="text-align: justify;">Arreglar el módulo de cifrado.</span></li>
<li><span style="text-align: justify;">Mejorar el proceso de detección.</span></li>
<li><span style="text-align: justify;">Realizar pruebas de ejecución tratando de encontrar otro tipo de errores hasta ahora desconocidos.</span></li>
</ul>
<br />
<div>
<br /></div>
</div>
</div>
Juan Carlos Espinosa Ceniceroshttp://www.blogger.com/profile/10122977539877115129noreply@blogger.com0tag:blogger.com,1999:blog-1492032797816588166.post-52130431669939737902014-03-11T08:03:00.001-06:002014-03-11T08:55:01.264-06:00[Tesis] Semana 8: Desarrollo experimental<div style="text-align: justify;">
<h3>
</h3>
<h3>
Notas de la semana</h3>
</div>
<div style="text-align: justify;">
<br></div>
<div style="text-align: justify;">
La reunión inicial correspondiente a esta semana se llevó a cabo el día 04 de marzo de 2014.</div>
<div style="text-align: justify;">
<br>
Las observaciones realizadas a los avances de la semana anterior fueron:<br>
<br>
<ul>
<li>Complementar resumen con contribuciones y los agradecimientos.</li>
<li>Ortografía:</li>
<ul>
<li>Usar punto y coma.</li>
<li>Verificar la redacción de los párrafos.</li>
<li>Quitar palabras o frases innecesarias.</li>
</ul>
<li>Quitar frases en 1era persona plural.</li>
<li>Redacción del capítulo 3.</li>
<ul>
<li>Modificar redacción del capítulo 3.1</li>
<li>Complementar inicio del capitulo y de la sección 3.2 de como fueron seleccionadas las características a evaluar.</li>
<li>Redactar 3.3.</li>
</ul>
<li>Colocar imágenes.</li>
<li>Corregir bibliografía.</li>
</ul>
</div>
<div style="text-align: justify;">
<b><br></b>
<b>Evidencia de la semana:</b>
</div>
<ul>
<li style="text-align: justify;">Redactar una entrada en el blog con los avances realizados durante la semana. (1 punto)</li>
<li style="text-align: justify;">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)</li>
<li style="text-align: justify;">El avance de ésta semana en redacción de tesis consistió en diseñar y redactar la etapa experimental (4 puntos)</li>
<li style="text-align: justify;">Reunión final agendada para el día 11 de marzo de 2014 (1 punto)</li>
</ul>
<div style="text-align: justify;">
<br>
<br></div>
<h3 style="text-align: justify;">
<b>Avances de la redacción tesis</b></h3>
<div>
<div style="text-align: justify;">
<br></div>
</div>
<div>
<div style="text-align: justify;">
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.<br>
<br>
Se agregaron definiciones al pie de página utilizando el comando <i>\footnote{}, </i>con ellas se definen conceptos cuando éstos son utilizados solo en algunas páginas.<br>
<br>
Se comenzó con la redacción de la solución propuesta<br>
<div style="text-align: center;">
<div style="text-align: left;">
<br></div>
<div style="text-align: left;">
Se corrigieron las observaciones realizadas.<br>
<br></div>
</div>
</div>
</div>
<div style="text-align: left;">
<h3 style="text-align: justify;">
<b><br></b></h3>
<h3 style="text-align: justify;">
<b>Avance en código</b></h3>
<div>
<b><br></b></div>
<div style="text-align: justify;">
Los avances pueden encontrarse en el repositorio:<span style="text-align: start;"> </span><a href="https://github.com/jcespinosa/EcoGlasses" style="text-align: start;">https://github.com/jcespinosa/EcoGlasses</a><br>
<br>
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:<br>
<br>
<ul>
<li>Primeramente se comprimen los datos utilizando la librería <i>zlib, </i>esta librería ofrece compresión de datos compatible con <i>gzip</i>.</li>
<li>La cadena comprimida se procede a codificarla utilizando la librería <i>base64 </i>para producir una cadena de texto segura.</li>
<li>Con los datos comprimidos, se procede a dividirlos en trozos de aproximadamente 100 bytes.</li>
<li>Cada trozo de se encripta utilizando el algoritmo RSA con una llave de largo 2048 bits.</li>
<li>En este punto la información ya esta lista para enviarse a través del socket.</li>
</ul>
<div>
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.</div>
<div>
<br></div>
<div>
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.</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-mvO1_4Z7s6E/Ux5pc4iEFWI/AAAAAAAAFBY/Z0zhkkFY4pk/s1600/Screen+Shot+2014-03-10+at+19.13.12.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/-mvO1_4Z7s6E/Ux5pc4iEFWI/AAAAAAAAFBY/Z0zhkkFY4pk/s1600/Screen+Shot+2014-03-10+at+19.13.12.png" height="438" width="640"></a></div>
<br>
<div class="separator" style="clear: both; text-align: center;">
<br></div>
</div>
<div>
<div style="text-align: justify;">
<h3>
Avances para la siguiente semana</h3>
<div>
<br></div>
</div>
</div>
<div>
Los avances en la redacción de la tesis será redactar la ejecución de los experimentos diseñados.<br>
<br>
Los avances en código a realizar son:<br>
<ul>
<li><span style="text-align: justify;">Arreglar el módulo de encriptación.</span></li>
<li><span style="text-align: justify;">Complementar el módulo de retroalimentación al usuario.</span></li>
</ul>
<br>
<div>
<br></div>
</div>
</div>
Juan Carlos Espinosa Ceniceroshttp://www.blogger.com/profile/10122977539877115129noreply@blogger.com0tag:blogger.com,1999:blog-1492032797816588166.post-29994518187282322852014-03-03T22:55:00.002-06:002014-03-03T22:58:50.859-06:00[Tesis] Semana 7: Implementación de la solución propuesta<div style="text-align: justify;">
<h3>
</h3>
<h3>
Notas de la semana</h3>
</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
La reunión inicial correspondiente a esta semana se llevó a cabo el día 28 de febrero de 2014.</div>
<div style="text-align: justify;">
<br />
Las observaciones realizadas a los avances de la semana anterior fueron:<br />
<br />
<ul>
<li>Ortografía.</li>
<ul>
<li>Acentos y redacción.</li>
</ul>
<li>Reacomodar subsecciones huérfanas .</li>
<li>Agregar referencias al capítulo uno.</li>
<li>Agregar un <i>framebox</i> a las imágenes pendientes.</li>
<li>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.</li>
<li>Agregar imagen para la información generada usando realidad aumentada.</li>
<li>Agregar imagen para definir qué son las características (<i>keypoints</i> y <i>descriptors</i>).</li>
</ul>
<br />
<br />
<div>
<br /></div>
</div>
<div style="text-align: justify;">
<b>Evidencia de la sexta semana:</b>
</div>
<ul>
<li style="text-align: justify;">Redactar una entrada en el blog con los avances realizados durante la semana. (1 punto)</li>
<li style="text-align: justify;">El séptimo avance de código consistió en mejorar el de retroalimentación para el usuario cuando un logotipo es detectado. (4 puntos)</li>
<li style="text-align: justify;">El séptimo avance de redacción de tesis consistió en comenzar a continuar redactando la solución propuesta (4 puntos)</li>
<li style="text-align: justify;">Reunión final agendada para el día 04 de marzo de 2014 (1 punto)</li>
</ul>
<div style="text-align: justify;">
<br /></div>
<h3 style="text-align: justify;">
<b>Avances de la redacción tesis</b></h3>
<div>
<div style="text-align: justify;">
<br /></div>
</div>
<div>
<div style="text-align: justify;">
Para esta semana se continuó con la redacción de la solución propuesta para comprobar la hipótesis del proyecto de tesis.<br />
<br />
Para el diseño de la solución propuesta de debieron establecer todas las herramientas, métodos y procesos que la conforman.<br />
<br />
En la subsección <i>Implementación </i>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<br />
<div style="text-align: center;">
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
Se corrigieron las observaciones realizadas.<br />
<br /></div>
</div>
</div>
</div>
<div style="text-align: left;">
<h3 style="text-align: justify;">
<b>Avance en código</b></h3>
<div>
<b><br /></b></div>
<div style="text-align: justify;">
Los avances pueden encontrarse en el repositorio:<span style="text-align: start;"> </span><a href="https://github.com/jcespinosa/EcoGlasses" style="text-align: start;">https://github.com/jcespinosa/EcoGlasses</a><br />
<br />
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.<br />
<br />
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.<br />
<br />
<div>
<iframe allowfullscreen="" frameborder="0" height="480" src="//www.youtube.com/embed/t96BD5dLlJY" width="640"></iframe>
</div>
<div>
<br />
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.</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
</div>
<div>
<div style="text-align: justify;">
<h3>
Avances para la siguiente semana</h3>
<div>
<br /></div>
</div>
</div>
<div>
Los avances en la redacción de la tesis será redactar el diseño experimental.<br />
<br />
Los avances en código a realizar son:<br />
<ul>
<li><span style="text-align: justify;">Mejorar el módulo de retroalimentación para el usuario.</span></li>
<li><span style="text-align: justify;">Cifrar la comunicación.</span></li>
</ul>
<br />
<div>
<br /></div>
</div>
</div>
Juan Carlos Espinosa Ceniceroshttp://www.blogger.com/profile/10122977539877115129noreply@blogger.com0tag:blogger.com,1999:blog-1492032797816588166.post-35392770438483433932014-02-28T00:56:00.001-06:002014-02-28T00:56:56.773-06:00[Tesis] Semana 6: Diseño de la solución propuesta<div style="text-align: justify;">
<h3>
</h3>
<h3>
Notas de la semana</h3>
</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
La reunión inicial correspondiente a esta semana se llevó a cabo el día 21 de febrero de 2014.</div>
<div style="text-align: justify;">
<br />
Las observaciones realizadas a los avances de la semana anterior fueron:<br />
<ul>
<li>Ortografía</li>
<ul>
<li>Espacios alrededor de puntuación</li>
<li>Usar punto y coma</li>
</ul>
<li>Cuidar redacción de párrafos, no hablar en tercera persona del plural (no dialogar con el lector)</li>
<li>Concluir sección 1.4 </li>
<li>Corregir tabla de la sección 3.2, usar \scalebox en lugar de \scriptsize, doble linea en el último renglón de la tabla</li>
<li>Buscar nombres de autores con puras iniciales</li>
<li>Arreglar .bst para que la bibliografía quede en español</li>
<li>Escribir autobiografía</li>
</ul>
<br />
<div>
<br /></div>
</div>
<div style="text-align: justify;">
<b>Evidencia de la sexta semana:</b>
</div>
<ul>
<li style="text-align: justify;">Redactar una entrada en el blog con los avances realizados durante la semana. (1 punto)</li>
<li style="text-align: justify;">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)</li>
<li style="text-align: justify;">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)</li>
<li style="text-align: justify;">Reunión final agendada para el día 28 de febrero de 2014 (1 punto)</li>
</ul>
<div style="text-align: justify;">
<br /></div>
<h3 style="text-align: justify;">
<b>Avances de la redacción tesis</b></h3>
<div>
<div style="text-align: justify;">
<br /></div>
</div>
<div>
<div style="text-align: justify;">
Para esta semana se realizó la redacción de la solución propuesta para comprobar la hipótesis del proyecto de tesis.<br />
<br />
Para el diseño de la solución propuesta de debieron establecer todas las herramientas, métodos y procesos que la conforman.<br />
<br />
Para darle estructura, se divide en dos partes:<br />
<br />
<ul>
<li><b>Herramientas de software: </b>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</li>
</ul>
<ul>
<li><b>Componentes de hardware: </b>Se habla de los dispositivos que conforman la parte del hardware y la manera en la que se comunican entre si.</li>
</ul>
<br />
También se hablará de la manera en la que se comunican ambas capas<br />
<br />
En la subsección <i>Implementación </i>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<br />
<div style="text-align: center;">
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
También se agregó la autobiografía al final de la tesis.<br />
<br /></div>
</div>
</div>
</div>
<div style="text-align: left;">
<h3 style="text-align: justify;">
<b>Avance en código</b></h3>
<div>
<b><br /></b></div>
<div style="text-align: justify;">
Los avances pueden encontrarse en el repositorio:<span style="text-align: start;"> </span><a href="https://github.com/jcespinosa/EcoGlasses" style="text-align: start;">https://github.com/jcespinosa/EcoGlasses</a><br />
<br />
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.<br />
<br />
La implementación debe ser distribuída, esto quiere decir que el proyecto se divide en dos partes:<br />
<ul>
<li>Un cliente</li>
<li>Un servidor</li>
</ul>
<div>
<br /></div>
<div>
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.</div>
<div>
<br /></div>
<div>
En este caso, el cliente es cliente es la parte que corre la interfaz, contiene 3 hilos diferentes:</div>
<div>
<ul>
<li><b>App: </b>Se encarga de dibujar la ventana y mostrar lo que se captura desde la cámara web.</li>
<li><b>Capture: </b>Se encarga de obtener las capturas de la webcam y enviarlas al hilo <i>App</i>, asimismo le envía cada cierto tiempo una captura al hilo <i>Detection.</i></li>
<li><b>Detection:</b> Recibe la captura del hilo <i>Capture, </i>la codifica en forma de un string de bytes y la manda a traves del socket. Recibe la respuesta del servidor.</li>
</ul>
<div>
<br /></div>
<div>
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 <i>keypoints</i> y <i>descriptors</i> 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.</div>
</div>
<div>
<br /></div>
<div>
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.</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<iframe allowfullscreen="" frameborder="0" height="480" src="//www.youtube.com/embed/sPIwzisAgUE" width="640"></iframe>
<br />
<br /></div>
<div>
<div style="text-align: justify;">
<h3>
Avances para la siguiente semana</h3>
<div>
<br /></div>
</div>
</div>
<div>
Los avances en la redacción de la tesis será redactar la implementación de la solución propuesta.<br />
<br />
Los avances en código a realizar son:<br />
<ul>
<li><span style="text-align: justify;">Implementar un módulo de retroalimentación para el usuario cuando un logotipo es reconocido.</span></li>
</ul>
<br />
<div>
<br /></div>
</div>
</div>
Juan Carlos Espinosa Ceniceroshttp://www.blogger.com/profile/10122977539877115129noreply@blogger.com0tag:blogger.com,1999:blog-1492032797816588166.post-73388176534096508222014-02-21T01:05:00.002-06:002014-02-25T20:31:14.752-06:00[Tesis] Semana 5: Resumen de trabajos relacionados relevantes<div style="text-align: justify;">
<h3>
</h3>
<h3>
Notas de la semana</h3>
</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
La reunión inicial correspondiente a esta semana se llevó a cabo el día 13 de febrero de 2014.</div>
<div style="text-align: justify;">
<br />
Las observaciones realizadas a los avances realizados fueron:<br />
<ul>
<li>Quitar \sc de addcontentsline de la bibliografía</li>
<li>Revisar el capítulo de introducción a un formato semi final y redactar objetivos específicos.</li>
<li>Verificar ortografía, formato de párrafos.</li>
<li>Cuidar las referencias a los capítulos, utilizar <i>\label</i> + <i>\ref</i> y/o <i>\pageref</i></li>
<li>Revisar las referencias bibliográficas y citas.</li>
<li>Cuidar la redacción científica</li>
</ul>
<div>
<br /></div>
</div>
<div style="text-align: justify;">
<b>Evidencia de la quinta semana:</b>
</div>
<ul>
<li style="text-align: justify;">Redactar una entrada en el blog con los avances realizados durante la semana. (1 punto)</li>
<li style="text-align: justify;">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)</li>
<li style="text-align: justify;">El quinto avance de redacción de tesis consistió en realizar un cuadro comparativo de los trabajos relacionados, algo conocido como <i>tabla de estado de arte</i> (4 puntos)</li>
<li style="text-align: justify;">Reunión final agendada para el día 21 de febrero de 2014 (1 punto)</li>
</ul>
<div style="text-align: justify;">
<br /></div>
<h3 style="text-align: justify;">
<b>Avances de la redacción tesis</b></h3>
<div>
<div style="text-align: justify;">
<br /></div>
</div>
<div>
<div style="text-align: justify;">
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.<br />
<br />
Las caracteristicas a comparar fueron:<br />
<ol>
<li><b>Interfaz de realidad aumentada: </b>El proyecto utiliza una o más técnicas de realidad aumentada.</li>
<li><b>Asistente de compras: </b>El proyecto es capaz de asistir a los consumidores al momento de adquirir sus productos.</li>
<li><b>Detección de logotipos, marcas o etiquetas: </b>El proyecto es capaz de reconocer algún producto, etiqueta, marca; utilizando alguna técnica de detección.</li>
<li><b>Base de datos con información sobre productos: </b>Se cuenta con una base de datos que almacena toda la información requerida.</li>
<li><b>Recomendaciones de compra: </b>Indica que el proyecto es capaz de recomendar a los usarios que artículos comprar de acuerdo a ciertos criterios.</li>
<li><b>Despliegue de información sobre los productos: </b>El proyecto puede mostrar a los usuarios información sobre los productos tales como nombre, precios, ingredientes, etcétera.</li>
<li><b>Despliegue de información cualitativa de los productos: </b>Se puede mostrar información complementaria como comentarios, calificaciones, opiniones o recomendaciones hechas por otros usuarios.</li>
<li><b>Orientado al cuidado del medio ambiente: </b>Se centra en el cuidado del medio ambiente.</li>
<li><b>Influencia sobre las decisiones de compra: </b>Uno se sus objetivos es afectar o modificar las decisiones de compra de los consumidores.</li>
<li><b>Perfiles de compras: </b>Aprende o almacena el historial de compras de los consumidores.</li>
</ol>
<div>
<br /></div>
<div>
Los proyectos elegidos para la comparación fueron:</div>
<div>
<div>
<ol>
<li><a href="http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.21.6568&rep=rep1&type=pdf">IntelliShopper: A Proactive, Personal, Private Shopping Assistant</a></li>
<li><a href="http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.83.8198&rep=rep1&type=pdf">Personalized In-store E-Commerce with the PromoPad: an Augmented Reality Shopping Assistant</a></li>
<li><a href="http://imi.aau.dk/~09ml382/DVD/References/Enhancing%20user%20experience%20through%20pervasive%20information%20systems.pdf">Enhancing user experience through pervasive information systems: The case of pervasive retailing</a></li>
<li><a href="http://www.google.com/patents/US6604681">Evaluative shopping assistant system</a></li>
<li><a href="https://www.google.com/patents/US20080208705">Personalized shopping assistant</a></li>
<li><a href="https://www.google.com/patents/US8626611">Method and apparatus for augmented reality shopping assistant</a></li>
<li><a href="https://www.google.com/patents/WO2012129291A1">Augmented reality system for product selection</a></li>
<li><a href="http://www.intechopen.com/download/get/type/pdfs/id/5723">Augmented Reality E-Commerce</a></li>
</ol>
</div>
</div>
<div style="text-align: center;">
<br />
<div style="text-align: left;">
La tabla comparativa resultante es la siguiente:</div>
<br /></div>
<table style="text-align: center;">
<tbody>
<tr><td style="background-color: black;"></td>
<th>C1</th><th>C2</th><th>C3</th><th>C4</th><th>C5</th><th>C6</th><th>C7</th><th>C8</th><th>C9</th><th>C10</th>
</tr>
<tr><th>P1</th><td>No</td><td>Si</td><td>No</td><td>Si</td><td>Si</td><td>Si</td><td>No</td><td>No</td><td>No</td><td>Si</td></tr>
<tr><th>P2</th><td>Si</td><td>Si</td><td>Si</td><td>Si</td><td>No</td><td>Si</td><td>No</td><td>No</td><td>No</td><td>No</td></tr>
<tr><th>P3</th><td>No</td><td>Si</td><td>No</td><td>Si</td><td>No</td><td>Si</td><td>No</td><td>Si</td><td>No</td><td>No</td></tr>
<tr><th>P4</th><td>No</td><td>Si</td><td>No</td><td>Si</td><td>No</td><td>Si</td><td>Si</td><td>No</td><td>No</td><td>No</td></tr>
<tr><th>P5</th><td>No</td><td>Si</td><td>No</td><td>No</td><td>Si</td><td>No</td><td>Si</td><td>No</td><td>No</td><td>Si</td></tr>
<tr><th>P6</th><td>Si</td><td>Si</td><td>No</td><td>Si</td><td>Si</td><td>Si</td><td>No</td><td>No</td><td>Si</td><td>No</td></tr>
<tr><th>P7</th><td>Si</td><td>Si</td><td>No</td><td>Si</td><td>Si</td><td>Si</td><td>No</td><td>No</td><td>Si</td><td>No</td></tr>
<tr><th>P8</th><td>Si</td><td>No</td><td>No</td><td>Si</td><td>Si</td><td>Si</td><td>No</td><td>No</td><td>No</td><td>No</td></tr>
</tbody></table>
<div style="text-align: center;">
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
También se complemento la redacción del capítulo uno (introducción) para dejarla en estado casi final.</div>
</div>
</div>
</div>
<div style="text-align: left;">
<h3 style="text-align: justify;">
<b><br /></b></h3>
<h3 style="text-align: justify;">
<b>Avance en código</b></h3>
<div>
<b><br /></b></div>
<div style="text-align: justify;">
Los avances pueden encontrarse en el repositorio:<span style="text-align: start;"> </span><a href="https://github.com/jcespinosa/EcoGlasses" style="text-align: start;">https://github.com/jcespinosa/EcoGlasses</a><br />
<br />
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++.<br />
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.<br />
<br />
Dado que no fue posible implementar BoW en el proyecto, se optó por probar otras implementaciones, la primera hacia uso del método <a href="http://opencv-python-tutroals.readthedocs.org/en/latest/py_tutorials/py_ml/py_knn/py_knn_understanding/py_knn_understanding.html">K-Nearest Neighbour</a>, que es un clasificador de clases sencillo, sin embargo, tenía algunos problemas.<br />
<br />
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.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-yF2hlgvuv-s/Uwb5GdhauqI/AAAAAAAAFAk/qkVBxyvqbDA/s1600/patron3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://1.bp.blogspot.com/-yF2hlgvuv-s/Uwb5GdhauqI/AAAAAAAAFAk/qkVBxyvqbDA/s1600/patron3.png" height="256" width="320" /></a></div>
<div style="text-align: center;">
1. Patron con giro</div>
<div style="text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-ZmHjtFFXAsI/Uwb5CcsTRjI/AAAAAAAAFAY/gwLbxjiZ9FY/s1600/patron1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/-ZmHjtFFXAsI/Uwb5CcsTRjI/AAAAAAAAFAY/gwLbxjiZ9FY/s1600/patron1.png" height="256" width="320" /></a></div>
<div style="text-align: center;">
2. Patron con cambio de tamaño</div>
<div style="text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-kiccuXoLNYM/Uwb5CfXZXDI/AAAAAAAAFAU/xNyiXdCqYJk/s1600/patron2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/-kiccuXoLNYM/Uwb5CfXZXDI/AAAAAAAAFAU/xNyiXdCqYJk/s1600/patron2.png" height="256" width="320" /></a></div>
<div style="text-align: center;">
3. Patron exacto</div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: left;">
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.</div>
<div style="text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-5WtFSOwvV0U/Uwb4yNRin5I/AAAAAAAAFAI/NkgdzGqvPxY/s1600/match1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://4.bp.blogspot.com/-5WtFSOwvV0U/Uwb4yNRin5I/AAAAAAAAFAI/NkgdzGqvPxY/s1600/match1.png" height="256" width="320" /></a></div>
<div style="text-align: center;">
1. Cambio de tamaño</div>
<div style="text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-dXc5o_B0QSo/Uwb4ykXfXRI/AAAAAAAAFAA/zYvqWSWcvRg/s1600/match2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/-dXc5o_B0QSo/Uwb4ykXfXRI/AAAAAAAAFAA/zYvqWSWcvRg/s1600/match2.png" height="256" width="320" /></a></div>
<div style="text-align: center;">
2. Tamaño normal</div>
<div style="text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-kTlt-SInpVw/Uwb4yw4-nbI/AAAAAAAAFAE/4TveA6xfPaU/s1600/match3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/-kTlt-SInpVw/Uwb4yw4-nbI/AAAAAAAAFAE/4TveA6xfPaU/s1600/match3.png" height="256" width="320" /></a></div>
<div style="text-align: center;">
3. Tamaño normal y rotación</div>
<div style="text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-kRfw-DA-x-0/Uwb49FrAx0I/AAAAAAAAFAQ/jVmOgw8qDUc/s1600/match4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://4.bp.blogspot.com/-kRfw-DA-x-0/Uwb49FrAx0I/AAAAAAAAFAQ/jVmOgw8qDUc/s1600/match4.png" height="256" width="320" /></a></div>
<div style="text-align: center;">
4. Tamaño pequeño y rotación</div>
<div style="text-align: left;">
<br /></div>
<br />
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.<br />
<br />
Se continuará haciendo pruebas con la implementación de ORB y se trabajará en el módulo de retroalimentación para los usuarios.<br />
<br /></div>
<div>
<div style="text-align: justify;">
<h3>
</h3>
<h3>
</h3>
<h3>
Avances para la siguiente semana</h3>
<div>
<br /></div>
</div>
</div>
<div>
Los avances en la redacción de la tesis será redactar el diseño de la solución propuesta.<br />
<br />
Los avances en código a realizar son:<br />
<ul>
<li><span style="text-align: justify;">Perfeccionar el proceso de detección.</span></li>
<li><span style="text-align: justify;">Mejorar la retroalimentación para el usuario cuando un logotipo es reconocido.</span></li>
</ul>
<br />
<div>
<br /></div>
</div>
</div>
Juan Carlos Espinosa Ceniceroshttp://www.blogger.com/profile/10122977539877115129noreply@blogger.com0tag:blogger.com,1999:blog-1492032797816588166.post-7000805052719136422014-02-13T01:20:00.002-06:002014-02-25T20:24:07.647-06:00[Tesis] Semana 4: Trabajos relacionados<div style="text-align: justify;">
<h3>
Notas de la semana</h3>
</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
La reunión inicial correspondiente a esta semana se llevó a cabo el día 07 de febrero de 2014.</div>
<div style="text-align: justify;">
<br />
Las observaciones realizadas a los avances realizados fueron:<br />
<ul>
<li>Verificar la ortografía, cuidar nombres cortos de cifras con letra</li>
<li>Seleccionar los revisores de la tesis</li>
<li>Agregar la bibliografía al índice</li>
<li>Revisare el formato de las cifras bibliográficas</li>
<li>Quitar el nombre del proyecto del título para mayor formalidad</li>
</ul>
<div>
<br /></div>
</div>
<div style="text-align: justify;">
<b>Evidencia de la cuarta semana:</b>
</div>
<ul>
<li style="text-align: justify;">Redactar una entrada en el blog con los avances realizados durante la semana. (1 punto)</li>
<li style="text-align: justify;">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)</li>
<li style="text-align: justify;">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)</li>
<li style="text-align: justify;">Reunión final agendada para el día 13 de febrero de 2014 (1 punto)</li>
</ul>
<div style="text-align: justify;">
<b><br /></b>
<br />
<b><br /></b></div>
<h3 style="text-align: justify;">
<b>Avances de la redacción tesis</b></h3>
<div>
<div style="text-align: justify;">
<br /></div>
</div>
<div>
<div style="text-align: justify;">
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.<br />
<br />
En la siguiente tabla se muestran los trabajos relacionados encontrados, las palabras clave con las que se encontraron y el repositorio donde se ubica.<br />
<div style="text-align: center;">
<br /></div>
<table style="text-align: center;">
<tbody>
<tr><th style="width: 50%;">Nombre del trabajo</th><th style="width: 25%;">Repositorio</th><th style="width: 25%;">Palabras clave</th></tr>
<tr>
<td><a href="http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.21.6568&rep=rep1&type=pdf">IntelliShopper: A Proactive, Personal, Private Shopping Assistant</a></td>
<td>Google Scholar</td>
<td>shopping assistant</td>
</tr>
<tr>
<td><a href="http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.83.8198&rep=rep1&type=pdf">Personalized In-store E-Commerce with the PromoPad: an Augmented Reality Shopping Assistant</a></td>
<td>Google Scholar</td>
<td>augmented reality shopping assistant</td>
</tr>
<tr>
<td><a href="http://imi.aau.dk/~09ml382/DVD/References/Enhancing%20user%20experience%20through%20pervasive%20information%20systems.pdf">Enhancing user experience through pervasive information systems: The case of pervasive retailing</a></td>
<td>Google Scholar</td>
<td>shopping assistant pervasive computing</td>
</tr>
<tr>
<td><a href="http://www.google.com/patents/US6604681">Evaluative shopping assistant system</a></td>
<td>Google Patents</td>
<td>shopping assistant</td>
</tr>
<tr>
<td><a href="https://www.google.com/patents/US20080208705">Personalized shopping assistant</a></td>
<td>Google Patents</td>
<td>shopping assistant</td>
</tr>
<tr>
<td><a href="https://www.google.com/patents/US8626611">Method and apparatus for augmented reality shopping assistant</a></td>
<td>Google Patents</td>
<td>augmented reality shopping assistant</td>
</tr>
<tr>
<td><a href="https://www.google.com/patents/WO2012129291A1">Augmented reality system for product selection</a></td>
<td>Google Patents</td>
<td>augmented reality shopping assistant</td>
</tr>
<tr>
<td><a href="http://educamarketing.unex.es/asignaturas/curso%20doctorado/art%C3%ADculos/ecologically%20conscious_Roberts%20y%20Bacon.pdf">Exploring the Subtle Relationships between Environmental Concern and Ecologically Conscious Consumer Behavior</a></td>
<td>Google Scholar</td>
<td>ecological consumer behavior</td>
</tr>
<tr>
<td><a href="https://lirias.kuleuven.be/bitstream/123456789/121057/1/MO_0..">Positive cueing: Promoting sustainable consumer behavior by cueing common environmental behaviors as environmental</a></td>
<td>Google Scholar</td>
<td>ecological consumer behavior</td>
</tr>
<tr>
<td><a href="http://www.cerog.org/lalondeCB/CB/2003_lalonde_seminar/laros.pdf">Emotions in consumer behavior: a hierarchical approach</a></td>
<td>Google Scholar</td>
<td>ecological consumer behavior</td>
</tr>
<tr>
<td><a href="http://www.researchgate.net/publication/222517870_Green_consumption_or_sustainable_lifestyles_Identifying_the_sustainable_consumer/file/9c96052a0485e619d8.pdf">Green consumption or sustainable lifestyles? Identifying the sustainable consumer</a></td>
<td>Google Scholar</td>
<td>green consumer</td>
</tr>
<tr>
<td><a href="http://www.psych.nyu.edu/gollwitzer/Longoni_Gollwitzer_Oettingen2013.pdf">A green paradox: Validating green choices has ironic effects on behavior, cognition, and perception</a></td>
<td>Google Scholar</td>
<td>green shopping</td>
</tr>
<tr>
<td><a href="http://cdn.intechopen.com/pdfs/5723/InTech-Augmented_reality_e_commerce_how_the_technology_benefits_people_s_lives.pdf">Augmented Reality E-Commerce: How the Technology Benefits People's Lives</a></td>
<td>Google Scholar</td>
<td>augmented commerce</td>
</tr>
</tbody>
</table>
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
<br /></div>
<br /></div>
</div>
<div style="text-align: left;">
<h3 style="text-align: justify;">
<b>Avance en código</b></h3>
<div style="text-align: justify;">
Los avances pueden encontrarse en el repositorio:<span style="text-align: start;"> </span><a href="https://github.com/jcespinosa/EcoGlasses" style="text-align: start;">https://github.com/jcespinosa/EcoGlasses</a><br />
<br />
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.<br />
<br />
<table>
<tbody>
<tr><th>Original</th><th>Gaussian filter</th><th>HSV color space</th></tr>
<tr>
<td><div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-fon6O1sUaWM/Uvw7N037NCI/AAAAAAAAE94/oKFbZs2ZtG4/s1600/Captura+de+pantalla+2014-02-12+a+la(s)+20.38.50.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://4.bp.blogspot.com/-fon6O1sUaWM/Uvw7N037NCI/AAAAAAAAE94/oKFbZs2ZtG4/s200/Captura+de+pantalla+2014-02-12+a+la(s)+20.38.50.png" /></a></div>
</td>
<td><div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-fIoMBiXglF4/Uvw7WhV1NaI/AAAAAAAAE-A/DG7y9_YlJpY/s1600/Captura+de+pantalla+2014-02-12+a+la(s)+20.41.21.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/-fIoMBiXglF4/Uvw7WhV1NaI/AAAAAAAAE-A/DG7y9_YlJpY/s200/Captura+de+pantalla+2014-02-12+a+la(s)+20.41.21.png" /></a></div>
</td>
<td><div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-yMGcRJu3u58/Uvw7ez0Cn5I/AAAAAAAAE-M/a0v_ws1NfEc/s1600/Captura+de+pantalla+2014-02-12+a+la(s)+20.42.00.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://1.bp.blogspot.com/-yMGcRJu3u58/Uvw7ez0Cn5I/AAAAAAAAE-M/a0v_ws1NfEc/s200/Captura+de+pantalla+2014-02-12+a+la(s)+20.42.00.png" /></a></div>
</td>
</tr>
</tbody>
</table>
<br />
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.<br />
<br />
Con ello la detección solo ocurre en dicha región de interés.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-TyoepJhcna4/UvxLsyhN8OI/AAAAAAAAE-s/j4UEGfrseNg/s1600/Captura+de+pantalla+2014-02-12+a+la(s)+22.34.01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://4.bp.blogspot.com/-TyoepJhcna4/UvxLsyhN8OI/AAAAAAAAE-s/j4UEGfrseNg/s1600/Captura+de+pantalla+2014-02-12+a+la(s)+22.34.01.png" height="400" width="640" /></a></div>
<br />
<br />
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.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-1kGUHTEbxh0/UvxJGVONKpI/AAAAAAAAE-g/onWJSWIFRhA/s1600/Captura+de+pantalla+2014-02-12+a+la(s)+22.23.20.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/-1kGUHTEbxh0/UvxJGVONKpI/AAAAAAAAE-g/onWJSWIFRhA/s1600/Captura+de+pantalla+2014-02-12+a+la(s)+22.23.20.png" height="376" width="640" /></a></div>
<br />
<br />
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.</div>
<div>
<div style="text-align: justify;">
<h3>
</h3>
<h3>
Avances para la siguiente semana</h3>
<div>
<br /></div>
</div>
</div>
<div>
Los avances en la redacción de la tesis será redactar un resumen sobre los trabajos relacionados.<br />
<br />
Los avances en código a realizar son:<br />
<ul>
<li>Investigación y análisis del concepto <span style="text-align: justify;">BoW (Bag of Words) y comenzar con su implementación.</span></li>
<li><span style="text-align: justify;">Perfeccionar el proceso de detección.</span></li>
</ul>
<br />
<div>
<br /></div>
</div>
</div>
Juan Carlos Espinosa Ceniceroshttp://www.blogger.com/profile/10122977539877115129noreply@blogger.com0tag:blogger.com,1999:blog-1492032797816588166.post-68129620810696139242014-02-06T23:47:00.000-06:002014-02-07T08:31:48.682-06:00[Tesis] Semana 3: Antecedentes<div style="text-align: justify;">
<h3>
Notas de la semana</h3>
</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
La reunión inicial correspondiente a esta semana se llevó a cabo el día 30 de enero de 2014.</div>
<div style="text-align: justify;">
<br />
Las observaciones realizadas a los avances realizados fueron:<br />
<ul>
<li>Poner en rojo o dar algún otro formato a las partes que se están redactando</li>
<li>Reordenar las secciones del capítulo 2</li>
<li>Agregar la bibliografía</li>
<li>Dar formato a la redacción (negritas, cursivas, preguntas y listas)</li>
<li>Revisar la hipótesis y objetivos, la redacción debe ser mas breve y clara</li>
<li>Verificar ortografía</li>
</ul>
</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<b>Evidencia de la tercer semana:</b>
</div>
<ul>
<li style="text-align: justify;">Redactar una entrada en el blog con los avances realizados durante la semana. (1 punto)</li>
<li style="text-align: justify;">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)</li>
<li style="text-align: justify;">El tercer avance de redacción de tesis consistió en redactar los antecedentes de la tesis (4 puntos)</li>
<li style="text-align: justify;">Reunión final agendada para el día 07 de febrero de 2014 (1 punto)</li>
</ul>
<div style="text-align: justify;">
<b><br /></b>
<br />
<b><br /></b></div>
<h3 style="text-align: justify;">
<b>Avances de la redacción tesis</b></h3>
<div>
<div style="text-align: justify;">
<br /></div>
</div>
<div>
<div style="text-align: justify;">
Para esta semana se comenzaron a redactar los antecedentes de la tesis.<br />
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.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Para la redacción de la tesis consideré los siguientes antecedentes:</div>
<div style="text-align: justify;">
<br />
<br />
<ul>
<li>Realidad Aumentada</li>
<ul>
<li>Lentes de realidad aumentada</li>
</ul>
<li>Visión computacional</li>
<ul>
<li>Reconocimiento de características y patrones (Feature detection)</li>
<li>Puntos clave y descriptores (keypoints, descriptors) </li>
<li>Algoritmos de reconocimiento de características </li>
<ul>
<li>SURF</li>
<li>SIFT </li>
</ul>
</ul>
<li>Programación de software</li>
<ul>
<li>Python</li>
<li>Numpy</li>
<li>OpenCV</li>
</ul>
</ul>
</div>
<div style="text-align: justify;">
<br /></div>
</div>
<div style="text-align: left;">
<h3 style="text-align: justify;">
<b>Avance en código</b></h3>
<div style="text-align: justify;">
Los avances pueden encontrarse en el repositorio:<span style="text-align: start;"> </span><a href="https://github.com/jcespinosa/EcoGlasses" style="text-align: start;">https://github.com/jcespinosa/EcoGlasses</a><br />
<br />
Conforme de avanzó en la detección y clasificación de logotipos se detectaron problemas con la interfaz.<br />
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.<br />
<br />
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.<br />
<br />
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.<br />
El proceso de detección/clasificación abarca los siguientes puntos:<br />
<br />
<ul>
<li>Comunicar la webcam y detectar errores con la comunicación con el hardware</li>
<li>Tomar las capturas de la webcam</li>
<li>Preprocesar las capturas y pasarlas al proceso de clasificación</li>
<li>Realizar una copia de la captura y dibujar en ella puntos o algún otro indicador de que se ha encontrado algo relevante.</li>
<li>Si se detecto algo entonces regresar la copia de la captura, si no entonces se regresa la captura original.</li>
</ul>
<br />
El objetivo fue comunicar ambos hilos, para ello se utilizó la librería <b>Queue</b> en python.<br />
<br />
Se dejó que la interfaz corriera en su propio hilo (<b>mainloop</b>), retirando cualquier componente que la comunicara directamente con el proceso de detección. Posteriormente al hilo se le agrego una cola de peticiones (<b>queue</b>) y una función <i>processQueue</i> que imita un escuchador de eventos (<b>event listener</b>). 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:<br />
<br />
<pre>{
event: "update_frame"
args: [frame_object]
}
</pre>
<br />
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.<br />
<br />
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.<br />
<br /></div>
<div style="text-align: justify;">
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.</div>
<br />
<div>
<div style="text-align: justify;">
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.<br />
<br /></div>
</div>
<div>
<div style="text-align: justify;">
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.<br />
<br />
<h3>
Avances para la siguiente semana</h3>
<div>
<br /></div>
</div>
</div>
<div>
Los avances en la redacción de la tesis serán buscar algunos trabajos relacionados con el proyecto.<br />
<br />
Los avances en código a realizar son:<br />
<ul>
<li>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.</li>
<li>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. </li>
</ul>
<div>
<br /></div>
</div>
</div>
Juan Carlos Espinosa Ceniceroshttp://www.blogger.com/profile/10122977539877115129noreply@blogger.com0tag:blogger.com,1999:blog-1492032797816588166.post-81342669172787255952014-01-30T14:05:00.000-06:002014-01-30T14:59:24.690-06:00[Tesis] Semana 2: Introducción<div style="text-align: justify;">
<b>Notas de la semana</b></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
La reunión correspondiente a esta semana se llevó a cabo el día 20 de enero de 2014.</div>
<div style="text-align: justify;">
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.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<b>Evidencia de la segunda semana:</b>
</div>
<ul>
<li style="text-align: justify;">Redactar una entrada en el blog con los avances realizados durante la semana. (1 punto)</li>
<li style="text-align: justify;">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)</li>
<li style="text-align: justify;">El segundo avance de redacción de tesis abarca definir los objetivos y la hipotesis de la tesis (4 puntos)</li>
<li style="text-align: justify;">Reunión final agendada para el día 20 de enero de 2014 (1 punto)</li>
</ul>
<div style="text-align: justify;">
<b><br /></b>
</div>
<h3 style="text-align: justify;">
<b>Avances de la redacción tesis</b></h3>
<div>
<div style="text-align: justify;">
<b><br /></b></div>
</div>
<div>
<div style="text-align: justify;">
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</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Cabe mencionar que las secciones y subsecciones pueden modificarse conforme avance el proyecto.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Para esta semana se comenzó a redactar la sección de <b>Introducción</b>, pero con más en énfasis en los <b>objetivos</b> y la <b>hipótesis</b>.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
En resumen, estas son las subsecciones:</div>
<div style="text-align: justify;">
<br /></div>
<ul>
<li style="text-align: justify;"><b>Objetivos:</b></li>
</ul>
<div>
<div>
<div style="text-align: justify;">
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.</div>
</div>
<div>
<div style="text-align: justify;">
<br /></div>
</div>
<div>
<div style="text-align: justify;">
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.</div>
</div>
</div>
<div>
<div style="text-align: justify;">
<b><br /></b></div>
</div>
<div>
<ul>
<li style="text-align: justify;"><b>Hipótesis</b></li>
</ul>
</div>
<div style="text-align: justify;">
La hipótesis se centra en una pregunta clave:</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<b>¿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?</b></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
En éste caso, el proyecto de tesis hace énfasis en las características ecológicas de un producto</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Aprovechando el aumento en la conciencia de las personas acerca del cuidado del medio ambiente y por la ecología, <b>¿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?</b></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
</div>
<div style="text-align: left;">
<h3 style="text-align: justify;">
<b>Avance en código</b></h3>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
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.</div>
<div style="text-align: justify;">
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</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
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.</div>
<br />
<table style="text-align: center;">
<tbody>
<tr><th>0°</th><td><a href="http://2.bp.blogspot.com/-ySZfq6Wxkrk/UunL5_AeCrI/AAAAAAAAE9Q/mzcPwo9cskA/s1600/1.png" imageanchor="1"><img border="0" src="http://2.bp.blogspot.com/-ySZfq6Wxkrk/UunL5_AeCrI/AAAAAAAAE9Q/mzcPwo9cskA/s320/1.png" height="94" width="200" /></a>
</td></tr>
<tr><th>90°</th><td><a href="http://1.bp.blogspot.com/-VXHx82aE__w/UunL9EWkPrI/AAAAAAAAE9Y/2peCT73CeMw/s1600/2.png" imageanchor="1"><img border="0" src="http://1.bp.blogspot.com/-VXHx82aE__w/UunL9EWkPrI/AAAAAAAAE9Y/2peCT73CeMw/s320/2.png" height="200" width="120" /></a>
</td></tr>
<tr><th>180°</th><td><a href="http://1.bp.blogspot.com/-1AeZmPkNYmk/UunL-HPXyGI/AAAAAAAAE9k/rvgEvBRSj0g/s1600/3.png" imageanchor="1"><img border="0" src="http://1.bp.blogspot.com/-1AeZmPkNYmk/UunL-HPXyGI/AAAAAAAAE9k/rvgEvBRSj0g/s320/3.png" height="94" width="200" /></a>
</td></tr>
<tr><th>270°</th><td><a href="http://4.bp.blogspot.com/-yMke68FFP0Y/UunL9mQBzYI/AAAAAAAAE9g/_8Sy8XjoT7I/s1600/4.png" imageanchor="1"><img border="0" src="http://4.bp.blogspot.com/-yMke68FFP0Y/UunL9mQBzYI/AAAAAAAAE9g/_8Sy8XjoT7I/s320/4.png" height="200" width="123" /></a>
</td></tr>
</tbody>
</table>
<br />
<div>
<div style="text-align: justify;">
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.</div>
<div style="text-align: justify;">
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.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
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.</div>
</div>
<div>
<div style="text-align: justify;">
<br /></div>
</div>
<div>
<div style="text-align: justify;">
Los avances de código pueden encontrarse en el repositorio.</div>
</div>
<div>
<br /></div>
</div>
<b>Liga al repositorio:</b> <a href="https://github.com/jcespinosa/EcoGlasses">https://github.com/jcespinosa/EcoGlasses</a>Juan Carlos Espinosa Ceniceroshttp://www.blogger.com/profile/10122977539877115129noreply@blogger.com0tag:blogger.com,1999:blog-1492032797816588166.post-86660554010799796112014-01-14T09:47:00.002-06:002014-01-19T22:20:40.752-06:00[Tesis] Semana 1: Planteamiento<br />
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.<br />
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.<br />
<br />
El trabajo de tesis estará bajo supervisión de la <a href="http://elisa.dyndns-web.com/teaching/tesis/licenciatura.html">Dra. Satu Elisa Schaeffer</a>.<br />
<b><br /></b>
<br />
<h3>
<b>Notas de la semana</b></h3>
<br />
La reunión inicial se llevó a cabo el día 13 de enero de 2014.<br />
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.<br />
<br />
Para el trabajo de tesis se tomarán en cuenta 3 aspectos:
<br />
<ul>
<li><b>Blog personal</b> donde se documentarán las notas y actividades de cada semana</li>
<li><b>Carpeta compartida en dropbox</b> que contendrá los archivos de LaTeX para generar la tesis.</li>
<li><b>Repositorio</b> con el código generado durante el proyecto.</li>
</ul>
<b><br /></b>
<b>Evidencia de la primera semana:</b>
<br />
<ul>
<li>Crear el blog, la carpeta en dropbox y el repositorio en línea. (1 punto)</li>
<li>Programar el primer avance de código del proyecto y colocarlo en el repositorio. (4 puntos)</li>
<li>Primer avance de redacción de la tesis que consiste en el esqueleto de la tesis (cápitulos, secciones y subsecciones) (4 puntos)</li>
<li>Reunión final agendada para el día 20 de enero de 2014 (1 punto)</li>
</ul>
<b><br /></b>
<br />
<h3>
<b>Acerca del proyecto de tesis</b></h3>
<div>
<b><br /></b></div>
<b>Título tentativo:</b>
<br />
<br />
<div style="text-align: center;">
<i>"EcoGlasses: Interfaz de realidad aumentada para asistente adaptativo de compras para consumo verde inteligente"</i></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: left;">
<b>¿De qué trata el proyecto?</b>
<b><br /></b>
<br />
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.<br />
La información que se quiere mostrar se centra principalmente en qué tan ecológico es un producto, es decir:<br />
<br />
<ul>
<li><i>¿qué tan reciclable es el empaque utilizado?</i></li>
<li><i>¿qué tan verde es el proceso de manufactura?</i></li>
<li><i>¿se trata de un producto elaborado de manera local o tuvo que ser importado?</i></li>
<li><i>¿la empresa tiene prestigio de ser una empresa verde?</i></li>
</ul>
<br />
Entre otros puntos.<br />
<div>
<br /></div>
<div>
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.</div>
<div>
Para el hardware se estarán utilizando unos lentes Vuzix STAR 1200XLD y un equipo de computo para ejecutar el backend de la interfaz.</div>
<div>
<br /></div>
<div>
En una primera etapa se desarrollará un script que se encarga de procesar cada frame del video capturado con los lentes AR.<br />
<br />
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.<br />
Posteriormente con esa información se procede a reconocer el logotipo y/o empaque dentro de una base de datos.<br />
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.<br />
Finalmente la información disponible es dibujada en el campo de visión del usuario.<br />
<br />
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.<br />
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.</div>
<b><br /></b>
<b><br /></b>
<b>Trabajos relacionados</b><br />
<br />
<ul>
<li><b><a href="http://www-01.ibm.com/software/genservers/commerceproductline/e-commerce_software/">IBM E-Commerce Software</a>:</b></li>
</ul>
<div>
El objetivo de esta plataforma es ofrecer a las empresas una experiencia de compras digital.</div>
<div>
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.</div>
<div>
<br /></div>
<div>
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.</div>
<div>
<br /></div>
<ul>
<li><b><a href="http://augmentedblog.wordpress.com/2013/08/27/mcmission-app/">McDonalds McMission App</a>:</b></li>
</ul>
<div>
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.</div>
<div>
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.</div>
<div>
<br /></div>
<div>
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.</div>
<div>
Así mismo se tiene la opción de compartir los avances de los juegos o puntuaciones a través de redes sociales.</div>
<div>
<br /></div>
<ul>
<li><b><a href="http://augmentedblog.wordpress.com/2013/07/26/ikeas-new-augmented-reality-app-lets-you-preview-digital-furniture-in-your-physical-house/">IKEA 2014 Catalog</a>:</b></li>
</ul>
</div>
<div style="text-align: left;">
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.<br />
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,<br />
<br />
Se trata de una aplicación que puede ser utilizada a traves de una tableta o télefono celular.<br />
<b><br /></b></div>
<div style="text-align: center;">
<br /></div>
<b>Liga al repositorio:</b> <a href="https://github.com/jcespinosa/EcoGlasses">https://github.com/jcespinosa/EcoGlasses</a>Juan Carlos Espinosa Ceniceroshttp://www.blogger.com/profile/10122977539877115129noreply@blogger.com0tag:blogger.com,1999:blog-1492032797816588166.post-29523639080415874192013-05-26T20:14:00.001-05:002013-05-26T20:15:16.754-05:00[RT] Tarea 8: Redes sensoras<br />
El tema de esta tarea es referente a redes sensoras, el documento seleccionado para su lectura fue:<br />
<br />
<div style="text-align: center;">
...</div>
<div>
<div style="text-align: center;">
<b>Distributed Control Applications</b><br />
<b>Within Sensor Networks</b></div>
<div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
<span style="font-size: x-small;">Bruno Sinopoli, Courtney Sharp, </span><span style="font-size: x-small;">Luca Schenato, Shawn Schaffert, </span><span style="font-size: x-small;">S. Shankar Sastry,</span></div>
</div>
<div>
<div style="text-align: center;">
...<br />
<br />
<div style="text-align: left;">
<div style="text-align: justify;">
<b>1. Introducción</b></div>
</div>
<div style="text-align: left;">
<div style="text-align: justify;">
<b><br /></b></div>
</div>
<div style="text-align: left;">
<div style="text-align: justify;">
El paper nos habla acerca dela importancia que están ganando las redes sensoras en aplicaciones de control. El uso de sensores, actuadores y controladores programados para realizar ciertas funciones específicas esta creciendo y muchas veces necesitan combinarse en redes para realizar tareas más complejas, por ejemplo, los controladores del motor de un automóvil conectados entre si.</div>
</div>
<div style="text-align: left;">
<div style="text-align: justify;">
<span style="text-align: center;">Así</span> mismo, los MEMS son un tipo de sensores que permiten desplegar de manera económica amplias redes sensoras.</div>
</div>
<div style="text-align: left;">
<div style="text-align: justify;">
Sin embargo, también se nos muestra el lado impráctico, al momento de mantener una red de miles de sensores mantener todos los sensores funcionales y conectados a cada momento.</div>
</div>
<div style="text-align: left;">
<div style="text-align: justify;">
Y como ya sabemos, existen diferentes investigaciones para utilizar este tipo de redes, por ejemplo, en el monitoreo del clima, terremotos, sistemas de transportación, aplicaciones militares y de automatización.</div>
</div>
<div style="text-align: left;">
<div style="text-align: justify;">
Son importantes las investigaciones que se están realizando para desplegar grandes redes sensoras autoconfigurables, seguras e indetectables; así mismo, combinar la tecnología ad-hoc para su rápido despliegue y la implementación de otras tecnologías como servicios de tiempo, geolocalización, ruteo, etcétera.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<b>2. PEG's</b></div>
<br />
<div style="text-align: justify;">
<span style="font-weight: bold;"><br /></span></div>
<div style="text-align: justify;">
El objetivo de la investigación presentada en el paper es la de diseñar controladores confiables y robustos para sistemas distribuidos. Para su prueba se ha seleccionado una aplicación llamada <i>pursuit-evasion game (PEG) (juego de evasión-persecusión) .</i></div>
<br />
<div style="text-align: justify;">
Que consiste en desplegar una red sensora en un entorno donde se desarrolla un juego de cooperación con un equipo de perseguidores. Para un PEG, la red sensora debe ser capaz de seguir los vehículos y distinguir entre los perseguidores y evasores, y así mismo tener una dinámica de enrutamiento y estructura para ofrecer información a los perseguidores en tiempo mínimo. Dado que el juego se juega en un entorno distribuido, la detección, control y accionamiento necesitan tenerse en cuenta durante el diseño del controlador. También la red debe proporcionar características de seguridad. Por último, ya que cualquier nodo de un red sensora puede fallar, algoritmos de control deben mostrar la degradación del rendimiento esperado.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
El framework PEG contiene las características fundamentales para el modelado y diseño de robotica multiagente y cooperativa que ha sido un área activa de investigación en las últimas décadas. En esta sección.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<b>2.2 Qué es un PEG?</b></div>
<br />
<div style="text-align: justify;">
<span style="font-weight: bold;"><br /></span></div>
<div style="text-align: justify;">
Los PEG son una abstracción matemática derivada de numerosas situaciones que aborda el problema de controlar un enjambre de agentes autónomos en la persecución de uno o más evasores. Ejemplos típicos son las operaciones de búsqueda, rescate y captura, la vigilancia, la localización y el movimiento de partes en un almacén. En algunos casos, los evasores están evitando activamente la detección, como en misiones de captura, mientras que en otros casos, su movimiento es al azar, como en las operaciones de rescate.</div>
<br />
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
En este tipo de juegos, el campo de juego se abstrae de ser un conjunto finito de nodos y movimientos permitidos para los perseguidores y evasores, a estar representadas por aristas que conectan los nodos. Un evasor es capturado si tanto el evasor y uno de los perseguidores ocupan el mismo nodo.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Uno de los problemas más importantes de este juego es el cálculo del número buscadores, es decir, calcular el menor número de perseguidores necesarios para capturar una evasor en un tiempo finito, independientemente de la política de escape utilizada por el evasor, se ha demostrado que este problema es NP-hard. Esta aproximación se limita sólo a los peores movimientos de los evasores, que en general, son excesivamente pesimistas.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Otra área activa de investigación trata el problema del medio ambiente donde se desarrolla el PEG cuando éste es desconocido. En este marco, se requiere una fase de reconocimiento para proceder con la búsqueda. Esta fase consume mucho tiempo y es computacionalmente intensiva, incluso cuando son ambientes simples en 2D. Por otra parte, los sensores inexactos complican a menudo este proceso que requiere un enfoque probabilístico.</div>
<div style="text-align: justify;">
Por último, un enfoque reciente de PEG se ha ocupado de combinar el cálculo de los evasores con el reconocimiento del terreno.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<b>2.2 Las redes sensoras en PEG</b></div>
<br />
<div style="text-align: justify;">
<span style="font-weight: bold;"><br /></span></div>
<div style="text-align: justify;">
El uso de un redes sensoras puede mejorar en gran medida el rendimiento de un PEG. Los perseguidores tienen una rango de detección muy pequeño y por lo general, emplean la visión computacional o por ultrasonidos, proporcionando sólo una visión local sobre la zona de interés. Esta limitación hace dificil que una red cooperativa pueda adaptarse a un algoritmo debido a la falta una visibilidad completa que sólo permite políticas de persecución subóptimas.</div>
<br />
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
La comunicación entre los perseguidores puede ser díficil en una área grande. La falta de comunicación, aunque sea parcialmente, entre perseguidores es una interrupción importante en cualquier política de persecución. Con una red sensora, la visibilidad completa del campo y la comunicación en un amplio rango es posible La búsqueda global se pueden realizar de manera eficiente para encontrar la solución óptima independientemente del nivel de inteligencia de los evasores. Además, el número de perseguidores necesarios estaría en función exclusivamente del número de evasores y no al tamaño</div>
<div style="text-align: justify;">
del campo.</div>
<div style="text-align: justify;">
Otro punto importantes a analizar son los siguientes:</div>
<div style="text-align: justify;">
<br /></div>
<ul>
<li style="text-align: justify;"><b>Tiempo</b>: La noción de tiempo presenta dos problemas distintos, en primer lugar, la coordinación de detección y actuación en el terreno físico requiere ya sea un sentido del tiempo global o la capacidad para resolver diferentes mediciones de tiempo a una significativa representación. En segundo lugar, muchas técnicas de diseño existentes asumen que el cálculo de control y el procesamiento de detección y accionamiento se producen dentro de una cantidad insignificante de tiempo, por lo que requiere nuevas técnicas de diseño y análisis para las redes sensoras.</li>
</ul>
<ul>
<li style="text-align: justify;"><b>Comunicación: </b>Se espera que una red de sensores tendrá una área espacial significativamente mayor que una sola área de comunicación máxima de un solo sensor. Para que un sensor envíe un mensaje a otro, sensores intermedios deben ser capaces de retransmitir el mensaje. Además el protocolo de comunicación debe ser robusto a cambios en la red.</li>
</ul>
<ul>
<li style="text-align: justify;"><b>Ubicación: </b>La detección y actuación a eventos en el terreno físico deben estar emparejados con la posición relativa o absoluta del sensor para ser útiles por los algoritmos de control. La ubicación debe ser asumida o deducido.</li>
</ul>
<ul>
<li style="text-align: justify;"><b>Cooperación: </b>Las tareas requieren el esfuerzo cooperativo de dos o más sensores, como cualquier forma de detección y computación distribuida, se requieren protocolos y estructuras que proporcionan la negociación, coordinación, y jerarquía de los nodos.</li>
</ul>
<ul>
<li style="text-align: justify;"><b>Energía: </b>La energía es un recurso valioso en una red sensora. Para garantizar el servicio y rendimiento de una red sensora, el consumo de energía debe ser equilibrado.</li>
</ul>
<ul>
<li style="text-align: justify;"><b>Seguridad:</b> Para evitar posibles infiltraciones de una red sensora, se debe contar con una capa de seguridad en las comunicaciones que debe proporcionar control de acceso, integridad de mensajes y confidencialidad.</li>
</ul>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-3dwshsQFuvY/UaKFhkfhCgI/AAAAAAAAEwE/XJEBARKWAhU/s1600/81.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="276" src="http://2.bp.blogspot.com/-3dwshsQFuvY/UaKFhkfhCgI/AAAAAAAAEwE/XJEBARKWAhU/s400/81.png" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-size: x-small;">Cómo se ve el juego originalmente</span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-size: x-small;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-oyvnSgZyYNo/UaKFsNKdA2I/AAAAAAAAEwM/4a26yCT5uoQ/s1600/82.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="257" src="http://2.bp.blogspot.com/-oyvnSgZyYNo/UaKFsNKdA2I/AAAAAAAAEwM/4a26yCT5uoQ/s400/82.png" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-size: x-small;">Visibilidad ampliada mediante una red sensora</span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-size: x-small;"><br /></span></div>
<div>
<br /></div>
<div>
<br /></div>
<br />
<br />
<div style="text-align: justify;">
<b>3. Implementación</b></div>
<br />
<div style="text-align: justify;">
<span style="font-weight: bold;"><br /></span></div>
<div style="text-align: justify;">
El escenario del experimento se compone de una red sensora que se despliega en el campo de juego, los sensores comienzan en un estado de sueño.</div>
<br />
<div style="text-align: justify;">
A continuación los sensores pasan por una fase de inicialización y calibración para el arranque de sus servicios prestados. Los perseguidores y evasores entran en el campo de juego y se mantienen dentro del mismo.</div>
<div style="text-align: justify;">
El red sensora ofrece una variedad de servicios a los perseguidores tales como la sincronización de la hora, localización, identificación de entidad (perseguidor o evasor).</div>
<div style="text-align: justify;">
El objetivo de la red es producir estimaciones de las posiciones, la velocidad y la identidad de los elementos en el campo de juego.</div>
<div style="text-align: justify;">
Cuando se capturan todas las evasores (se produce una captura cuando un</div>
<div style="text-align: justify;">
perseguidor es "lo suficientemente cerca" a él), el juego termina. Una estación base se encuentra fuera del área de juego y proporciona el registro y visualización de los servicios.</div>
<br />
<div style="text-align: justify;">
<b>3.1 Hardware</b></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
La plataforma de hardware fue desarrollada por el grupo TinyOS de la Universidad de Berkeley, y se compone de numerosos y pequeños dispositivos de red y de computación embebida. Cada dispositivo tiene una cantidad de energía limitada, así como capacidad computacional, de almacenamiento y recursos limitados.</div>
<div style="text-align: justify;">
El objetivo de cada plataforma de hardware es proporcionar computación, sensores, actuación y comunicación de los recursos integrados en un paquete pequeño.</div>
<div style="text-align: justify;">
Las plataformas están diseñados para ser modulares y flexibles, que proporciona la facilidad de reprogramarlas de nuevo y utilizarlas en aplicaciones imprevistas al tiempo que permite la reutilización de código.</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-fLh0LDrONlU/UaKI5br-NEI/AAAAAAAAEwc/P1comznN7Ag/s1600/83.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="371" src="http://1.bp.blogspot.com/-fLh0LDrONlU/UaKI5br-NEI/AAAAAAAAEwc/P1comznN7Ag/s640/83.png" width="640" /></a></div>
<div style="text-align: center;">
<span style="font-size: x-small;">Evolución de las plataformas de hardware utilizadas.</span></div>
<br />
<b><br /></b>
<br />
<div style="text-align: justify;">
<b><b>3.2 Servicios del sistema</b></b></div>
<br />
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Para el software se utiliza NesC, una nuevo lenguaje de programación de código abierto desarrollado en Berkeley. NesC extiende el lenguaje C estándar con la semántica y sintaxis para arquitecturas basadas en componentes. Los comportamientos se describen con interfaces bidireccionales que proporcionan los comandos para controlar los eventos. Los componentes están conectados entre sí estáticamente para formar un todo, que, cuando se compila permite una mayor optimización y eficiencia.</div>
<div style="text-align: justify;">
El sistema operativo proporciona los servicios básicos para la comunicación, así como un planificador de procesos simple y el acceso a los componentes de hardware y sensores; esta diseñado para dispositivos con recursos excesivamente limitados</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-eqE7TwWgvFg/UaKRKpiDO0I/AAAAAAAAEws/OMz_o3w9_Sk/s1600/84.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="241" src="http://2.bp.blogspot.com/-eqE7TwWgvFg/UaKRKpiDO0I/AAAAAAAAEws/OMz_o3w9_Sk/s400/84.png" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-size: x-small;">Capas del sistema y sus relaciones</span></div>
<br />
<br />
<br />
<br />
<div style="text-align: justify;">
<b>4. Metodología</b></div>
<b></b><br />
<div style="text-align: justify;">
<b><br /></b></div>
<b>
</b><b><div style="text-align: justify;">
<b>4.1 Escalabilidad</b></div>
</b><br />
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Utilizando técnicas ad-hoc, el sistema debe estar preparado para crecer en caso de ser necesario. Los nodos pueden ser activados y desactivados cuando sea necesario.</div>
<b></b><br />
<div style="text-align: justify;">
<b><br /></b></div>
<b>
</b><b><div style="text-align: justify;">
<b>4.2 Control distribuido</b></div>
</b><br />
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Los sistemas de control distribuído son muy importantes en la computación actual. Desde hace mucho tiempo existen investigaciones que van desde la biología hasta la inteligencia artificial tratando de imitar modelos de la naturaleza, por ejemplo, colonias de insectos buscando comida, bacterias, formaciones de aves, entre otros. En éste caso, los sensores están conectados a un controlador central que toma los datos y los procesa para así tomar decisiones y aplicarlas a todo el sistema.</div>
<br />
<b><br /></b>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-9tCwgNFHmUg/UaKZoHZw8KI/AAAAAAAAEw8/FXojlmTd9q4/s1600/85.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="387" src="http://4.bp.blogspot.com/-9tCwgNFHmUg/UaKZoHZw8KI/AAAAAAAAEw8/FXojlmTd9q4/s640/85.png" width="640" /></a></div>
<b><br /></b>
<b><br /></b>
<b><br /></b>
<b><br /></b><br />
<div style="text-align: justify;">
<b><b>4.3 Modelos computacionales</b></b></div>
<br />
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Se utilizan una combinación modelos computaciones, donde tal combinación captura el cambio continuo en dinámica del medio ambiente, la distribución de los recursos y la naturaleza discreta del hardware. La combinación incluye eventos discretos, continuos, dinámica de sistemas, los sistemas dinámicos de tiempo discreto, autómatas híbridos, idiomas reactivos síncronos y modelos de flujo de datos.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Los <i>sistemas dinámicos en tiempo continuo</i> son un modelo formal cuyas propiedades clave son la estabilidad y accesibilidad que se pueden deducir mediante métodos numéricos. Sin embargo, para las aplicaciones de control distribuido en redes sensoras, el modelo no es capaz de capturar retrasos en la comunicación, el tiempo entre los relojes, o decisiones discretas. Dado que todas las variables son continuas, es difícil modelar fenómenos concretos.</div>
<div style="text-align: justify;">
La naturaleza multimodal de los sistemas se puede describir por un <i>autómata híbrido</i>. Estos sistemas funcionan muy bien tanto para el flujo continuo y de saltos discretos. Los<i> sistemas de eventos discretos </i>funcionan bien para los cambios de modo o reprogramación de tareas y caracteriza, también permite activar el sistema por eventos.</div>
<div style="text-align: justify;">
El modelo de flujo de datos pretende describir la transmisión de datos. En particular, son útiles para la caracterización de varios procesos de comunicación.</div>
<br />
<div style="text-align: justify;">
<span style="font-weight: bold;"><br /></span></div>
<div style="text-align: justify;">
<b>4.4 Enfoques de diseño</b></div>
<br />
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
El enfoque de escalabilidad para dependerá en gran medida de procesamiento distribuido de sensores con el fin de obtener buenas estimaciones de las posiciones y velocidades tanto de evasores y perseguidores. El control y dinámica de cada perseguidor se realiza dentro de la propia perseguidor basado en lecturas de la red, la coordinación de alto nivel se distribuirán entre todos los perseguidores para maximizar la robustez a los ataques adversarios.</div>
<div style="text-align: justify;">
Algunas cuestiones relacionadas con el control contribuido han sido abordadas por el sistema híbrido de control. Se combina lo mejor de la teoría de control y la teoría de máquinas de estados</div>
<div style="text-align: justify;">
Se supone que los sensores saben que su ubicación en el espacio. Un servicio de localización garantiza que los nodos en las redes desplegadas puedan calcular su ubicación con respecto a unos a otros.</div>
<div style="text-align: justify;">
En los problemas de control estándar, los sensores están físicamente unidos a la planta, por lo tanto, se tiene la seguridad de recibir una lectura del sensor en cada paso de tiempo. En el caso de la red sensora, la detección se distribuye, esto significa que puede tomar algún tiempo tener una observación y que ésta llegue a su destino, ya que los paquetes través de la red están sujetos a demoras y pérdidas.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
En niveles superiores, el sistema se basa eventos. Los controles reaccionan a uno o más eventos, lo que se llama comportamiento. Los eventos son detectados por la red sensora y se transmiten a un controlador discreto que genera la reacción apropiada. Cada reacción se transmite entonces a cada nivel inferior para cambiar el objetivo de control de acuerdo con las nuevas especificaciones. Los acontecimientos se producen de manera asíncrona, lo que dificulta el análisis formal.</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-MFxoBvZqYcE/UaKdMiEjtfI/AAAAAAAAExM/NEBjkk_SQvE/s1600/86.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="420" src="http://2.bp.blogspot.com/-MFxoBvZqYcE/UaKdMiEjtfI/AAAAAAAAExM/NEBjkk_SQvE/s640/86.png" width="640" /></a></div>
<div style="text-align: center;">
<span style="font-size: x-small;">Diseño de los controladores de alto y bajo nivel, y su representación jerarquica.</span></div>
<div style="text-align: center;">
<span style="font-size: x-small;"><br /></span></div>
<div style="text-align: left;">
<span style="font-size: x-small;"><br /></span></div>
<div style="text-align: left;">
<span style="font-size: x-small;"><br /></span></div>
<div style="text-align: left;">
<div style="text-align: justify;">
<b>Conclusiones y crítica</b></div>
</div>
<div style="text-align: left;">
<div style="text-align: justify;">
<br /></div>
</div>
<div style="text-align: left;">
<div style="text-align: justify;">
Más que la implementación de un sistema, el paper aborda una investigación sobre el control distribuído de un sistema utilizando redes sensoras. Y a partir de ello se presentan los temas relacionados, así como las plataformas de hardware y software a utilizar.</div>
</div>
<div style="text-align: left;">
<div style="text-align: justify;">
En lo personal me parece bien que se presenten éstos temas, sobre todo que se aborden los escenarios en los cuales la implementación puede fallar, se hace solamente una mención a que el sistema quedo un poco limitado en capacidad, sin embargo no se muestran los resultados del mismo.</div>
</div>
<div style="text-align: left;">
</div>
<div style="text-align: justify;">
Parece que el experimento esta muy bien diseñado, se toman en cuenta las diversas perspectivas, desde el contexto, el hardware y software, las consideraciones de los sistemas de control y los escenarios de posible fallo; solo faltaría ver la realización del experimento y los resultados para verificar que efectivamente todo el diseño fue el correcto.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<b>Referencias</b></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Sinopoli, B.; Sharp, C. ; Schenato, L. ; Schaffert, S. ; Sastry, S.S. (Agosto 2008). Publicado en <i>Proceedings of the IEEE</i>, Tomo:91, Edición 8, Páginas 1235-1246. Recuperado en Mayo 2013 desde: http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=1219474
</div>
</div>
</div>
</div>
</div>
Juan Carlos Espinosa Ceniceroshttp://www.blogger.com/profile/10122977539877115129noreply@blogger.com1tag:blogger.com,1999:blog-1492032797816588166.post-34824935845101236582013-05-26T01:26:00.002-05:002013-05-28T08:43:08.102-05:00[IT] Card game extra points 2<ol>
<li style="text-align: justify;"><b>Dynamic: </b>"<i style="font-weight: bold;">Dynamic dictionaries</i> are constructed from the input and are embedded into the coded message."</li>
<li style="text-align: justify;"><b>Exhaustive: "</b>Write a program and perform some <i style="font-weight: bold;">exhaustive </i>tests."</li>
<li style="text-align: justify;"><b>Parity: </b>"The <b><i>parity</i></b> bits that permit detecting and correcting a single-bit error."</li>
<li style="text-align: justify;"><b>Similarity: </b>"Sequence <i><b>similarity</b></i> usually implies functional <i>similarity</i>."</li>
<li style="text-align: justify;"><b>Conditional: </b>"Choose that code word that has the highest <i><b>conditional</b></i> probability given the received sequence, in terms of the transition probabilities.."</li>
<li style="text-align: justify;"><b>Lookahead: </b>"Based on a sliding-window technique using a <b><i>lookahead</i></b>.."</li>
<li style="text-align: justify;"><b>Prefix: </b>"A <b><i>prefix</i></b> is an affix which is placed before the root of a word."</li>
<li style="text-align: justify;"><b>Analysis: </b>"A real function will now be represented by a combination of other real functions, for those that dislike complex <b><i>analysis</i></b>."</li>
<li style="text-align: justify;"><b>Encoding: </b>"The program consists in the commented source code for both <b><i>encoding</i></b> and decoding ASCII text."</li>
<li style="text-align: justify;"><b>Incomplete: </b>"If there are collisions of two or more symbols yielding the same value, this is called an <b><i>incomplete</i></b> MLD."</li>
<li style="text-align: justify;"><b>Metric: </b>"A <b><i>metric</i></b> or distance function is a function that defines a distance between elements of a set."</li>
<li style="text-align: justify;"><b>Occurrence: "."</b>Tornado <b><i>occurrence</i></b> by hour of day for the United States</li>
<li style="text-align: justify;"><b>Global:</b> "Published in some <b>global</b> manner so that all who encode or decode have access to them. "</li>
<li style="text-align: justify;"><b>Tree:</b>"Computation <b><i>tree</i></b> is a representation for the computation steps of a non-deterministic Turing machine on a specified input."</li>
<li style="text-align: justify;"><b>Wavelet: </b>This can be done as a Fourier, cosine, or sine transform, or with <b><i>wavelets</i></b> as we discussed in computer vision.
</li>
<li style="text-align: justify;"><b>Precomputed:</b>"There are some <b><i>precomputed</i></b> mathematical tables of common logarithms."</li>
<li style="text-align: justify;"><b>Average: </b>"The <i><b>average</b></i> error probability E = 1 - R."</li>
<li style="text-align: justify;"><b>Sequence:</b>"Choose that code word that has the highest conditional probability given the received <b><i>sequence</i></b>, in terms of the transition probabilities."</li>
<li style="text-align: justify;"><b>Distance:</b>"R-S codes maximize the minimum <b><i>distance</i></b> between code words among all linear codes that use the same input/output block sizes"</li>
<li style="text-align: justify;"><b>Access:</b>"Published in some global manner so that all who encode or decode have <b><i>access</i></b> to them."</li>
<li style="text-align: justify;"><b>Adaptive: </b>"Invent, implement, and evaluate your own <b><i>adaptive</i></b> coding method."</li>
<li style="text-align: justify;"><b>Message: </b>"Error-correcting codes are designed to recover from one or more transmission error and allow determining what code word the <b><i>message</i></b> corresponds to even in the presence of errors."</li>
<li style="text-align: justify;"><b>Frequency: </b>"No <b><i>frequency</i></b> calculations are possible in the beginning."</li>
<li style="text-align: justify;"><b>Periodic: </b>"We can represent <b><i>periodic</i></b> signals as summations of complex exponential functions; this is the Fourier transform."</li>
<li style="text-align: justify;"><b>Correction: </b>"Error <i><b>correction</b></i> methods"</li>
<li style="text-align: justify;"><b>Reliability:</b> "<i><b>Reliability</b></i> is the ability of a person or system to perform and maintain its functions in routine circumstances"</li>
<li style="text-align: justify;"><b>Fourier: </b>"We can represent periodic signals as summations of complex exponential functions; this is the <b><i>Fourier</i></b> transform."</li>
<li style="text-align: justify;"><b>Concatenate: </b>"The <b><i>concatenate</i></b> function allows you to join 2 or more strings together."</li>
<li style="text-align: justify;"><b>Transmit: </b>"The channel is used to <i style="font-weight: bold;">transmit</i> the messages..."</li>
<li style="text-align: justify;"><b>Quantize: </b>"To compress, we may ignore or <b><i>quantize</i></b> some of the frequencies present according to some criteria."</li>
</ol>
Juan Carlos Espinosa Ceniceroshttp://www.blogger.com/profile/10122977539877115129noreply@blogger.com0tag:blogger.com,1999:blog-1492032797816588166.post-25245587976509115822013-05-21T13:03:00.001-05:002013-05-21T13:03:35.977-05:00[RT] Tarea 7: Simulación redes ad-hoc<div style="text-align: justify;">
Para ésta semana se debió realizar la simulación de una red ad-hoc. La simulación debe contar con las siguientes características.</div>
<ul>
<li style="text-align: justify;">Llegadas y salidas de nodos utilizando procesos Poisson.</li>
<li style="text-align: justify;">Por lo menos un modelo de movilidad</li>
<li style="text-align: justify;">Nodos con capacidad inicial de batería</li>
<li style="text-align: justify;">Envío de mensajes, el cual consume batería según el radio de transmisión</li>
<li style="text-align: justify;">Modelo simplificado</li>
<ul>
<li style="text-align: justify;">La recepción de mensajes no consume batería</li>
<li style="text-align: justify;">El radio de alcance es ajustable en cada nodo individualmente</li>
<li style="text-align: justify;">Inundación con un TTL que se adapte</li>
</ul>
</ul>
<div>
<br />
<br />
<b style="text-align: justify;">Redes ad-hoc</b></div>
<div>
<br />
<div style="text-align: justify;">
Una red ad-hoc es una red inalámbrica descentralizada, es decir, que no cuenta con un nodo central que controle las comunicaciones, sino que todos los nodos comparten privilegios.</div>
<br />
<div style="text-align: justify;">
Las redes bajo este modelo son las más simples de construir ya que no se basan en una infraestructura existente. Las tarjetas en modo ad-hoc se configuran con las opciones de fábrica.</div>
<div style="text-align: justify;">
Cada nodo participa en el enrutamiento mediante el envío de los datos para otros nodos, y la determinación de qué nodos encaminan los datos se realiza dinámicamente sobre la base de la conectividad de red.</div>
<div style="text-align: justify;">
<i><br /></i></div>
<div style="text-align: justify;">
<i>"Se denomina ad-hoc a cualquier conjunto de redes en las que todos los dispositivos tengan el mismo estatus en una red y son libres de asociarse con cualquier otro dispositivo de red ad hoc en el rango de enlace."</i></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.thelifenetwork.org/images/adhoc.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="258" src="http://www.thelifenetwork.org/images/adhoc.png" width="400" /></a></div>
<br />
<br />
<div style="text-align: justify;">
El protocolo que rige este tipo de comunicaciones es el 802.11, definiendo todos los parámetros necesarios para establecer la comunicación entre dispositivo inalámbricos. EL principal inconveniente de este tipo de redes radica en el número de saltos que debe recorrer la información antes de llegar a su destino, esto debido a que los nodos pueden conectarse o desconectarse en cualquier momento.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<b>Simulación</b></div>
<div style="text-align: justify;">
<b><br /></b></div>
<div style="text-align: justify;">
Como es de esperarse, la simulación fue realizada en lenguaje Python, utilizando hilos.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Básicamente el script se compone de 3 módulos:</div>
<br />
<ul>
<li style="text-align: justify;"><b>Interfaz: </b>Utilizando Tkinter, ayuda a visualizar lo que esta sucediendo en la zona de la simulación.</li>
</ul>
<ul>
<li style="text-align: justify;"><b>Generador de nodos: </b>Se utiliza una simple función, la cual se corre como un hilo utilizando la librería <i>threading</i>. La finalidad del módulo es agregar nodos a la red emulando un proceso de Poisson, en éste caso el temporizador esta controlado por la función <i>random.expovariate, </i>con un valor lambda de 5.</li>
</ul>
<div>
<ul>
<li style="text-align: justify;"><b>Simulador: </b>Se encarga de arrancar los nodos y movilizarlos uno por uno.</li>
</ul>
</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
2 clases principales componen los elementos de la simulación:</div>
<div>
<ul>
<li style="text-align: justify;"><b>Mensaje: </b>Representa el mensaje que es transmitido durante una conexión entre nodos. El mensaje cuenta con 2 atributos:</li>
<ul>
<li style="text-align: justify;"><b>ttl: </b>Un valor de vida inicial el cual disminuye en 1 cada vez que el mensaje de transmite a otro nodo.</li>
<li style="text-align: justify;"><b>estado: </b>Representa si un mensaje aun se puede transmitir. Un mensaje es descartado cuando su valor TTL llega a cero.</li>
</ul>
</ul>
<ul>
<li style="text-align: justify;"><b>Nodo: </b>Un nodo capaz de conectarse a la red ad-hoc, los atributos de cada nodo son:</li>
<ul>
<li style="text-align: justify;"><b>id: </b>Número identificador único de cada nodo.</li>
<li style="text-align: justify;"><b>color: </b>Color para la visualizacion</li>
<li style="text-align: justify;"><b>coord:</b> Coordenadas donde el nodo sera dibujado</li>
<li style="text-align: justify;"><b>radio:</b> Radio de alcance del nodo</li>
<li style="text-align: justify;"><b>bateria: </b>Bateria del nodo</li>
<li style="text-align: justify;"><b>costo:</b> Costo energetico de cada paso</li>
<li style="text-align: justify;"><b>velocidad: </b>Velocidad del movimiento</li>
<li style="text-align: justify;"><b>vecinos: </b>Vecinos dentro del radio de alcance</li>
<li style="text-align: justify;"><b>cola: </b>Cola de mensajes que serán transmitidos</li>
<li style="text-align: justify;"><b>estado:</b> Estado del nodo: True=Vivo, False=Muerto</li>
<li style="text-align: justify;"><b>instancias: </b>Para guardar temporalmente las referencias a los dibujos del nodo</li>
</ul>
</ul>
</div>
<div style="text-align: justify;">
<br />
Los nodos siguen un proceso muy simple en cada paso, los primeros pasos son:</div>
<div>
<ol>
<li style="text-align: justify;">Se calculan los atributos del nodo, los cuales son:</li>
<ul>
<li style="text-align: justify;">Posición inicial (x,y)</li>
<li style="text-align: justify;">Radio de alcance</li>
<li style="text-align: justify;">Nivel de bateria</li>
<li style="text-align: justify;">Velocidad del movimiento</li>
</ul>
<li style="text-align: justify;">Se inicializa el nodo con los atributos anteriores, de manera transparente se le asignan al nodo otros atributos como:</li>
<ul>
<li style="text-align: justify;">Asignar el ID</li>
<li style="text-align: justify;">Asignar el color</li>
<li style="text-align: justify;">Consumo energético inicial (1)</li>
<li style="text-align: justify;">Lista para almacenar los vecinos</li>
<li style="text-align: justify;">Cola de mensajes (5 iniciales)</li>
<li style="text-align: justify;">Iniciar el nodo como vivo</li>
</ul>
</ol>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Una vez inicializado el nodo, por cada paso se realiza lo siguiente:</div>
<ol>
<li style="text-align: justify;">Se calcula la siguiente posición del nodo.</li>
<li style="text-align: justify;">Se buscan por aquellos nodos que se encuentren dentro del radio de alcance del nodo (utilizando teorema de Pitágoras)</li>
<ul>
<li style="text-align: justify;">Si un nodo se encuentra a una distancia menor o igual al radio de alcance, dicho nodo entra a la lista de vecinos</li>
<li style="text-align: justify;">Mientras no se encuentren 3 vecinos, el radio de alcance ira creciendo poco a poco, dicho crecimiento hace que el nodo consuma más batería por cada paso.</li>
</ul>
<li style="text-align: justify;">Se transmite el mensaje a los nodos vecinos</li>
<ul>
<li style="text-align: justify;">El mensaje baja en uno el valor TTL</li>
</ul>
<li style="text-align: justify;">Se dibuja lo que esta pasando en la interfaz</li>
<li style="text-align: justify;">Se modifica el nivel de batería del nodo</li>
<ul>
<li style="text-align: justify;">Si la batería llega a cero, se eliminan sus elementos del canvas, la instancia del nodo y su estado pasa a False, así la simulación lo sacará de la lista de nodos activos y el <i>garbage collector</i> hará el resto.</li>
</ul>
</ol>
<div style="text-align: justify;">
<br /></div>
</div>
</div>
<div style="text-align: justify;">
<b>Video</b></div>
<div style="text-align: justify;">
<br /></div>
<iframe allowfullscreen="" frameborder="0" height="480" src="http://www.youtube.com/embed/78ehA1Y3icI" width="640"></iframe>
<br />
<div style="text-align: justify;">
<b><br /></b></div>
<div style="text-align: justify;">
<b>Código</b></div>
<div style="text-align: justify;">
<b><br /></b>
<script src="https://gist.github.com/jcespinosa/5621883.js"></script>
<b><br /></b></div>
<div style="text-align: justify;">
<b>Referencias</b></div>
<div style="text-align: justify;">
<b><br /></b></div>
<div style="text-align: justify;">
Shaeffer,Elisa. Mayo 2013. Redes Ad-Hoc. Redes de Telecomunicaciones. Recuperado el 20 de mayo de 2013 desde <a href="http://elisa.dyndns-web.com/~elisa/teaching/comp/net/adhoc.pdf">http://elisa.dyndns-web.com/~elisa/teaching/comp/net/adhoc.pdf</a></div>Juan Carlos Espinosa Ceniceroshttp://www.blogger.com/profile/10122977539877115129noreply@blogger.com1tag:blogger.com,1999:blog-1492032797816588166.post-78480263155510644952013-05-21T12:48:00.002-05:002013-05-21T12:48:18.203-05:00[Lab CU] Actividad 14: Reflexión final<div style="text-align: justify;">
Como ya hemos mencionado antes, nuestro proyecto se trata de un automóvil cuya cerradura es abierta por medio de un dispositivo con comunicación NFC, así mismo, desarrollar un sistema que permita ofrecer una serie de servicios personalizados a un automóvil utilizando el acceso NFC como login del usuario, los servicios a implementar fueron:</div>
<br />
<ul>
<li style="text-align: justify;">Sistema de personalización por cuentas</li>
<li style="text-align: justify;">Acceso seguro</li>
<li style="text-align: justify;">Servicios de métrica</li>
<ul>
<li style="text-align: justify;">Medir el kilometraje</li>
<li style="text-align: justify;">Promedio de las velocidades</li>
<li style="text-align: justify;">GPS Tracking y Rutas</li>
</ul>
<li style="text-align: justify;">Abrir y cerrar puertas</li>
<li style="text-align: justify;">Activar y desactivar alarmas</li>
<li style="text-align: justify;">Reproducir las música preferida del usuario</li>
</ul>
<br />
<div style="text-align: justify;">
Se utiliza un servidor para almacenar los datos de cada usuario y realizar los cálculos necesarios para proveer los servicios basados en GPS</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<b>¿Qué se logró?</b></div>
<div style="text-align: justify;">
<b><br /></b></div>
<div style="text-align: justify;">
Desde el lado del software:</div>
<br />
<ul>
<li style="text-align: justify;">Se logró instalar un servidor dedicado que se encarga de almacenar la información recabada por el sistema</li>
<li style="text-align: justify;">Se logró implementar una base de datos que permite almacenar los datos del usuario y crear una cuenta</li>
<li style="text-align: justify;">Es posible separar los datos por usuarios y almacenar la información de cada uno individualmente</li>
<li style="text-align: justify;">Una vez que se han almacenado los datos del GPS, es posible realizar todos los cálculos de los servicios ofrecidos en el sistema. La información se almacena en forma de archivos *.kml</li>
<ul>
<li style="text-align: justify;">Calcular el kilometraje</li>
<li style="text-align: justify;">Medir la velocidad del automóvil</li>
<li style="text-align: justify;">Medir el consumo de combustible</li>
<li style="text-align: justify;">Guardar las rutas recorridas</li>
</ul>
<li style="text-align: justify;">Se integro una interfaz gráfica que permite ver todos los datos ordenados por usuarios, configurar el sistema, eliminar el historial</li>
</ul>
<div style="text-align: justify;">
Desde el lado del hardware:</div>
<div>
<ul>
<li style="text-align: justify;">Se hizo funcionar el lector RFID/NFC junto con el Arduino Uno y el shield Ethernet</li>
<li style="text-align: justify;">Se logró simular la apertura de las puertas utilizando un servomotor</li>
<li style="text-align: justify;">Se integró el módulo GPS con la RaspberryPi que permite realizar el seguimiento del dispositivo en tiempo real</li>
<li style="text-align: justify;">Se realizo la conexión del RaspberryPi con el servidor</li>
</ul>
</div>
<br />
<div style="text-align: justify;">
<b><br /></b></div>
<div style="text-align: justify;">
<b><br /></b></div>
<div style="text-align: justify;">
<b><br /></b></div>
<div style="text-align: justify;">
<b>¿Porqué salio bien?</b></div>
<div style="text-align: justify;">
<b><br /></b></div>
<div style="text-align: justify;">
Salio bien porque fueron cosas muy triviales, la mayoría de los integrantes ya cuentan con experiencia trabajando con estos componentes, así mismo, algunos módulos ya había sido desarrollados con anterioridad lo que nos permitió ahorrar una gran cantidad de tiempo de desarrollo.</div>
<div style="text-align: justify;">
Hay que tomar en cuenta que las cosas implementadas son muy simples, por ello también fueron rápidas de implementar.</div>
<div style="text-align: justify;">
<b><br /></b></div>
<div style="text-align: justify;">
<b><br /></b></div>
<div style="text-align: justify;">
<b><br /></b></div>
<div style="text-align: justify;">
<b>¿Qué faltó?</b></div>
<br />
<ul>
<li style="text-align: justify;">La integración del módulo Arduino con el RaspberryPi</li>
<li style="text-align: justify;">Integrar la comunicación bidireccional entre Arduino-Raspberry-Servidor</li>
<li style="text-align: justify;">Cifrar los diferentes canales de comunicación</li>
<li style="text-align: justify;">Almacenamiento en tiempo real de los datos</li>
<li style="text-align: justify;">Integración de la API NFC de android, por consiguiente, falto el lector de dispositivos NFC que fue cambiado por un lector de tags RFID</li>
<li style="text-align: justify;">Integración de los servicios de música y la integración de otros servicios multimedia</li>
<li style="text-align: justify;">Integración de redes sociales</li>
</ul>
<br />
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<b>¿Porqué falto?</b></div>
<div style="text-align: justify;">
<b><br /></b></div>
<div style="text-align: justify;">
Las cosas que faltaron fueron cosas un como más complejas, hablamos de compatibilidad de protocolos , por ejemplo, para comunicar el módulo Arduino con el RaspberryPi.</div>
<div style="text-align: justify;">
Además el cifrado de las comunicaciones es algo complejo pues requiere ciertas configuraciones que no fuimos capaces de completar.</div>
<div style="text-align: justify;">
No conocer la API NFC de android nos paró en seco, pues el atractivo de nuestro proyecto iba a tener cambiado por otro módulo más común y fácil de implementar.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<b>¿Porqué no se obtuvieron los resultados esperados?</b></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
La razón es la misma que se repite semestre tras semestre, la mala organización</div>
<div style="text-align: justify;">
La mayoría de los integrantes del equipo tienen responsabilidades adicionales, como el trabajo; a eso se le suma la carga normal de clases lo que consume una gran cantidad de tiempo.</div>
<div style="text-align: justify;">
Así también, se suele minimizar el nivel de complejidad de las tareas a realizar, lo que nos hace entrar en un umbral de confianza temporal; obviamente es de esperarse que conforme nos involucramos más en la realización del proyecto nos damos cuenta que las cosas no son tan sencillas como habíamos creído y para ese entonces gran parte del tiempo disponible para hacer el proyecto se ha ido.</div>
<div style="text-align: justify;">
Nunca se siguió en realidad la planificación, al analizarla resulta que la misma esta bien estructurada, el error radica que nunca la seguimos al pie de la letra, lo que provoca retrasos que después son difíciles de corregir.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<b>¿Qué estuvo mal?</b></div>
<br />
<ul>
<li style="text-align: justify;">Tener demasiadas ideas y no identificar aquellas más importantes</li>
<li style="text-align: justify;">El alcance del proyecto fue superior a nuestras capacidades de desarrollo</li>
<li style="text-align: justify;">No tener una persona con la iniciativa suficiente para clasificar las ideas y retirar aquellas que no son útiles y solo sirven para agregar complejidad al usuario.</li>
<li style="text-align: justify;">Dejarnos llevar por el entusiasmo de implementar algo innovador pero no informarnos sobre la disponibilidad de las tecnologías requeridas por nuestro proyecto.</li>
<li style="text-align: justify;">No medir correctamente la complejidad del proyecto a desarrollar, y peor aún, invertir tiempo y esfuerzo en su implementación en lugar de diseñar algo alternativo con la misma funcionalidad</li>
</ul>
<br />
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<b>Lecciones aprendidas</b></div>
<div style="text-align: justify;">
<b><br /></b></div>
<div style="text-align: justify;">
Las lecciones aprendidas son las mismas semestre tras semestre, siempre al final hay que reconocer que se necesita tener una mejor organización.</div>
<div style="text-align: justify;">
La planificación final del proyecto no es solo un requisito más, seguirla al pie de la letra ayuda mucho.</div>
<div style="text-align: justify;">
Realizar una investigación mas exhaustiva sobre el proyecto que se va a realizar, qué módulos se requieren, verificar que existan las librerias necesarias, buscar si existe un grupo de personas que ofrezcan orientación o apoyo en el tema.</div>
<div style="text-align: justify;">
Delegar tareas y actividades a miembros del equipo que realmente se comprometan a terminar y no solo a mostrar un avance parcial, a final de cuentas, es mejor que los módulos estén terminados y hagan su trabajo a tener algunos módulos terminados y otros inconclusos.</div>
Juan Carlos Espinosa Ceniceroshttp://www.blogger.com/profile/10122977539877115129noreply@blogger.com1tag:blogger.com,1999:blog-1492032797816588166.post-20153408926213890772013-05-21T12:36:00.001-05:002013-05-21T12:36:34.452-05:00[Lab CU] Actividad 13: Sugerencias finales<br />
<div style="text-align: justify;">
Habiendo escuchado la clase final de los compañeros se redactaran también las recomendaciones finales para los proyectos.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: center;">
<b>...</b></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: justify;">
<b><a href="http://3puntosteam.blogspot.mx/">Casa segura</a> (Rene, Raúl, Iván)</b></div>
<div style="text-align: justify;">
<br />
<br />
La planeación del proyecto siempre es buena, en su momento, sin embargo hay que ir filtrando las ideas para llegar a tener los resultados esperados, el módulo principal para la detección de movimiento pienso que esta bien, cabe mencionar que pudieron haber implementado un método secundario tomando como base las cámaras que estan instaladas en el sistema. Ya hemos visto en la clase de visión, por ejemplo, que existen muchos métodos para implementar el reconocimiento de movimiento utilizando técnicas de visión computacional, eso les puede ayudar a reducir la cantidad de sensores en todo el sistema.<br />
El fuerte de la aplicación es la interfaz móvil, recomiendo comenzar con algo sencillo, posiblemente un grupo de botones que hagan funciones bastante específicas.<br />
Y bueno, como ustedes ya lo experimentaron, para evitar problemas con el hardware y los componentes es recomendable que lean siempre las hojas de referencia y las especificaciones de cada uno, y con base en eso diseñar la manera en la que se van a comunicar los diferentes componentes.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: center;">
<b>...</b></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: justify;">
<b><a href="http://obicomp.blogspot.mx/">Garage Inteligente</a> (Emmanuel, Max, Carmen, Victor)</b></div>
<div style="text-align: justify;">
<br />
<br /></div>
<div style="text-align: justify;">
Buen logo :)<br />El prototipo que mostraron en la primera presentación estuvo bien, se pudo haber hecho algo muy simple como mover un servomotor o algo parecido.<br />
En cuanto a la aplicación móvil, parece ser suficiente para lo que el sistema va a realizar, solo cuidar mucho los canales de comunicación bluetooth para evitar algún acceso no autorizado, una simple codificación hash o cifrado RSA es suficiente.<br />
La idea de las invitaciones por código QR me parece interesante, pienso que ayuda mucho para evitar accesos no autorizados y o que el usuario pueda acceder cuando ha olvidado su dispositivo en alguna parte. Sin embargo, el rollo de la creación del lector de códigos QR me parece irrelevante tomando en cuenta que ya existen bastantes librerías que pueden resultar útiles y evitar todo es tiempo de desarrollo.<br />
La funcionalidad general fue alcanzada, no hay que preocuparse de más, solo lograr la integración de los diferentes componentes</div>
<div style="text-align: center;">
<b><br /></b>
<b>...</b></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: justify;">
<b><a href="http://aveoctavo.blogspot.mx/search/label/TemasSSI">SeguriLap</a> (Obed, Ave, Pedro, Jona)</b></div>
<div style="text-align: justify;">
<br />
<br />
Me pareció un buen proyecto desde el principio, algo muy útil que pienso debería integrarse en las computadoras.<br />
En cuanto a los puntos que les faltaron pienso que se pudo haber algún sistema alterno de autenticación para que el usuario para que no exista ese punto en contra, les reconocimiento algo parecido al sistema implementado en Android el cual intenta detectar al usuario y si no detecta te muestra un tecladito para ingresar la contraseña.<br />
En cuanto a la interfaz, una ventana pequeña con las opciones necesarias que ustedes consideren como sensibilidad de los sensores, activar o desactivar módulos, etcétera<br />
Ya por último, tomar en cuenta los proyectos que hemos visto de visión, como ustedes mencionan, el proyecto de Victor o Pepe les puede servir de mucho para optimizar su proyecto.<br />
Por todo lo demás, parece que funciona todo bien.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: center;">
<b>...</b></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: justify;">
<span style="color: #0000ee;"><b><u>Galería</u></b></span><b><a href="http://ultimo-sem.blogspot.mx/search/label/Computo%20Ubicuo"> Inteligente</a> (Blanca, Vanessa, Adriana, Rodolfo)</b></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-weight: bold;"><br /></span>Hasta ahora me quedo claro lo que es su proyecto, no sabía que el sistema controlará la iluminación se una vitrina. Es una buena iniciativa, sobre todo aquí en la ciudad en donde muchas veces no existen guías que te expliquen las obras de arte en los museos.<br />
En cuanto a lo que les falta consideró que para la funcionalidad actual las gráficas no parecen ser necesarias, consideren solo contar el número de registros en una base de datos, o un contador dentro del mismo sistema para contar cuántas veces se enciende la vitrina.<br />
El problema del arduino para retener el sonido, no es necesario, integrar incluso un reproductor mp3 que tenga almacenados los sonidos para reproducirlos cada ves que la obra se enciende podría ser de gran ayuda para emular lo que quieren lograr, consideren incluso un dispositivo Raspberry para almacenar los contenidos necesarios.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: center;">
<b>...</b></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: justify;">
<b><a href="http://ubicomputo.blogspot.mx/">Alarma de automóvil</a> (Alex, Ricardo, Sergio, Roberto)</b></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
La idea es muy buena, el utilizar la llave para activar todo el sistema de alarmas. Puede integrarse incluso a cualquier cerradura existente ya que se ve que es muy sencillo el mecanismo tal como ustedes lo explicaron.<br />
Fue bueno que hayan implementado la solución en tamaño real, sin embargo, pienso que eso pudo haberles quitado algo de tiempo para lograr la funcionalidad requerida.<br />
Al igual que con la casa inteligente, recomiendo remover el sensor PIR y utilizar mejor una cámara oculta y algunos de los algoritmos que utilizamos en visión computacional para lograr mejores resultados.<br />
En cuanto a las cosas que faltaron hacer, siempre es bueno ayudarse se un dispositivo móvil para utilizar los sensores incluídos y los métodos de comunicación, ya sea WI-FI o GSM.<br />
Recomiendo además algún tipo de base de datos que les permita llevar un mejor control sobre los datos que se almacenan del proyecto<br />
<br /></div>
<div style="text-align: center;">
<b>...</b></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: justify;">
<b><a href="http://gtdsoftwa.blogspot.mx/search/label/ComputoUbicuo">Localizador bluetooth</a> (Omar, Saúl Isaías)</b></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
La idea final es bueno, puede ser útil para verificar si los dispositivos bluetooth con los que cuentas están en tu cuarto o en tu casa.<br />
La interfaz parece ser decente para el alcance, posiblemente algo más usable y un mejor layout para organizar mejor los contenidos ya que no tomaron en cuenta que el diseño es diferente en una tablet que en un celular.<br />
Recuperar la idea principal e integrar un radar de dispositivos para localizarlos cuando se te pierdan o algo de ese tipo.</div>
<div>
</div>
<div>
<div style="text-align: justify;">
<br /></div>
</div>
<div style="text-align: center;">
<b>...</b></div>
<div style="text-align: center;">
<b><br /></b></div>
<div style="text-align: justify;">
<b><a href="http://pepgonzalez.blogspot.mx/search/label/SistemasInteligentes">Oficina Inteligente</a> (Lupe, Osvaldo, Triana, Esteban)</b></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Podrían implementar una interfaz básica donde cada usuario tenga sus tags, y él mismo pueda activar o desactivar los tags que haya extraviado, implementar un acceso doble lo considero innecesario. No me había quedado claro que cada tag serviría para situaciones diferentes, pienso que en cierto momento puede resultar muy incomodo cargar con muchos tags para realizar diferentes actividades.<br />
Hay que implementa un servidor y una base de datos que almacene internamente toda la información recabada, además, puede ser posible automatizar algunas funciones utilizando el mismo y que el usuario configure algunas tareas utilizando su celular.<br />
Las funciones son buenas, parece que el proyecto hace la gran mayoría de las cosas que dijeron que haría.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: center;">
<b>...</b></div>
<div style="text-align: center;">
<b><br /></b></div>
<div style="text-align: justify;">
<b><a href="http://3-its.blogspot.mx/">Despertador inteligente</a> (Ramón, Cecy, Roberto)</b></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br />
El proyecto fue muy bueno y original, un buen concepto para implementar en un proyecto real.<br />
Para un primer prototipo la idea de los componentes son suficientes, sin embargo, un sensor más confiable es recomendable en lugar de utilizar los push buttons, sin embargo, el diseño arquitectónico es muy bueno y funciona para demostrar la idea global del proyecto.<br />
Pienso que todo el rollo sobre el tono utilizado es irrelevante, el usuario debería poder seleccionar su propio sonido para tener una experiencia mas personalizada, y pues lo pueden controlar desde la interfaz android, es algo trivial.<br />
La funcionalidad básica del proyecto la tienen, eso les permite expandir su proyecto a otros productos sin mucho problema.<br />
Por todo lo demás, los detalles faltantes son solo detalles.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: center;">
<b>...</b></div>
<div style="text-align: center;">
<div>
<br /></div>
<div style="text-align: justify;">
<br /></div>
</div>
<div>
<div style="text-align: justify;">
Esas fueron mis observaciones y recomendaciones para los demás proyectos.</div>
</div>
Juan Carlos Espinosa Ceniceroshttp://www.blogger.com/profile/10122977539877115129noreply@blogger.com1tag:blogger.com,1999:blog-1492032797816588166.post-43820692878026150932013-05-19T17:12:00.003-05:002013-05-21T13:00:50.905-05:00[Lab CU] Actividad 12: Ideas para negocios<div style="text-align: justify;">
Esta actividad consistió en pensar ideas que tengan como característica principal algo relacionado con cómputo ubicuo, realizamos una lluvia de ideas en clase y de ahí tomé algunas.
</div>
<div style="text-align: justify;">
Los nombres pueden ser algo largos, falta ponerles un nombre intuitivo para vender la idea.</div>
<br />
<div style="text-align: center;">
<b>...</b></div>
<br />
<div style="text-align: justify;">
<b>1. Códigos QR para tiendas</b></div>
<div style="text-align: justify;">
<span style="font-weight: bold;"><br /></span></div>
<div style="text-align: justify;">
<b>Mercado: </b>Tiendas de conveniencia<br />
<br />
<br />
<div style="text-align: start;">
<b>Distribución:</b></div>
<div style="text-align: start;">
Como un producto, instalación por tienda aproximadamente $50,000 cada una.</div>
</div>
<br />
<div style="text-align: justify;">
<b>Problema a solucionar:</b></div>
<div style="text-align: justify;">
Actualmente las tiendas de conveniencia están teniendo un gran crecimiento en la ciudad. En los últimos años este tipo de tiendas han sido blanco de la delincuencia lo cual causa grandes pérdidas a las mismas. Es necesario buscar una solución a dichos problemas, que permita un mejor manejo de las entradas y salidas de productos en la tienda, así como brindar un poco mas de protección a en cuanto a los productos que ahí se ofrecen</div>
<br />
<div style="text-align: justify;">
<b>Propuesta:</b></div>
<div style="text-align: justify;">
El sistema que se propone consiste en retirar de los anaqueles todos los productos y reemplazarlos por fotografías de los mismos, cada una de las fotos, en la parte de abajo, tendría un código QR que se podrá escanear desde nuestro dispositivo móvil.</div>
<div style="text-align: justify;">
El sistema se complementa con una aplicación que permitiría, al momento de capturar un código QR, ver el precio del producto en cuestión, su fecha de caducidad, si hay posibles promociones combinando su compra con la de otros productos, y por supuesto confirmar la compra del mismo y la cantidad de artículos a llevar. El cliente desde su dispositivo móvil podrá ir construyendo la lista de los artículos que desea adquirir, la lista podría pagarse de forma electrónica y enviar la lista a un servidor para que la tienda entregue los artículos en la puerta de la casa del cliente, o, descargar la lista al sistema de la tienda ya sea mediante NFC, bluetooth o WI-FI; mediante este método el usuario podrá pagar los artículos directamente en la tienda y recogerlos en ese mismo instante.</div>
<div style="text-align: justify;">
Los artículos permanecerían bajo resguardo de la tienda, en el almacén y los refrigeradores, lugares a los que no tiene acceso la gente. El sistema permitiría llevar un control de los artículos que se han comprado, cuántos salieron del almacén, cuántos existen en almacén y cuántos más hay que adquirir para recuperar el stock. Así mismo, al no estar los productos directamente al alcance de los usuarios, se disminuirían los robos y daño a los artículos.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<b>Desarrollo:</b></div>
<div style="text-align: justify;">
En éste caso se necesitaría trabajar con la base de datos del sistema, posiblemente unificar las mismas de hacer falta. Posteriormente crear un sistema de códigos QR y relacionar cada uno con un producto, los QR podría ser estáticos para cada producto y que la información se baje de un servidor al instante o que los QR se actualicen con la información de los productos según se considere necesario; se necesitaría programar éste sistema relacional.</div>
<div style="text-align: justify;">
También se necesitaría programar la aplicación móvil, que no representaría mucho reto.</div>
<div style="text-align: justify;">
Programar los web services para el envío y recepción de los pedidos.</div>
<div style="text-align: justify;">
Diseñar e implementar el sistema de comunicación seleccionado, ya sea NFC, bluetooth o WI-FI, para la recepción de los pedidos en la misma sucursal.</div>
<br />
<div style="text-align: center;">
<b>...</b></div>
<br />
<div style="text-align: justify;">
<b>2. Códigos QR para la entrega de medicamentos</b></div>
<div style="text-align: justify;">
<b><br /></b>
</div>
<div style="text-align: justify;">
<b>Mercado: </b>Farmacias<br />
<br />
<br />
<div style="text-align: start;">
<b>Distribución:</b></div>
<div style="text-align: start;">
Como un producto, instalación por tienda aproximadamente $50,000 cada una.</div>
</div>
<br />
<div style="text-align: justify;">
<b>Problema a solucionar: </b><br />
Mantener un mejor control sobre la entrega de medicamentos a los pacientes que acuden a visitar un centro médico, evitar que las recetas médicas sean falsificadas con el fin de obtener medicamentos de forma ilícita, reducir y en el mejor de los casos, eliminar la dependencia del papel para la obtención de una receta médica. </div>
<br />
<div style="text-align: justify;">
<b>Propuesta:</b></div>
<div style="text-align: justify;">
El sistema que se propone consiste en escribir un código QR en lugar de una receta médica que contenga toda la información necesaria para la entrega de los medicamentos.</div>
<div style="text-align: justify;">
Cada código QR contendría de manera codificada la información del médico quien esta recetando los medicamentos, también contendría toda la información de los medicamentos necesarios para el tratamiento del paciente.</div>
<div style="text-align: justify;">
El código QR podría también contener alguna codificación para que el mismo sea leído solo por una o varias farmacias especificas.</div>
<div style="text-align: justify;">
Este sistema permitiría tener un control más estricto sobre la entrega e intercambio de recetas médicas.</div>
<div style="text-align: justify;">
<br /></div>
<div>
<div style="text-align: justify;">
<b>Desarrollo:</b></div>
<div style="text-align: justify;">
La aplicación es muy sencilla, solo en necesario intercambiar el típico sistema de escritura de recetas, ya sea a mano o de forma impresa. Ahora el sistema imprimiría un código QR en una tarjeta pequeña la cual se intercambiaría en las farmacias en lugar de la típica receta. </div>
<br /></div>
<div style="text-align: center;">
<b><b>...</b></b><br />
<b><b><br /></b></b></div>
<b>
</b>
<br />
<div style="text-align: justify;">
<b><b>3. Sistema para el control de entradas y salidas en hospitales mediante RFID</b></b></div>
<b>
</b>
<br />
<div style="text-align: justify;">
<b><br /></b>
</div>
<div style="text-align: justify;">
<b>Mercado: </b>Primeramente hospitales, aunque se puede extender a otro tipo de establecimientos como asilos.</div>
<br />
<br />
<b>Distribución:</b><br />
Como un producto, despliegue en toda la cadena de hospitales en aproximadamente $1,000,000 que ya incluye el paquete de tags necesarios, despliegue e instalación de sensores en los accesos y la instalación y configuración del sistema.<br />
<br />
<br />
<div style="text-align: justify;">
<b>Problema: </b><br />
Muchos de los hospitales de la ciudad no cuentan con un control muy estricto sobre las entradas y salidas de personas a sus instalaciones, esto debido a que los hospitales públicos tienen cada día mas y mas pacientes. El problema principal a atacar es la entrega de recien nacidos, se intenta evitar que los recien nacidos sean entregados a las personas equivocadas.</div>
<br />
<div style="text-align: justify;">
<b>Propuesta:</b></div>
<div style="text-align: justify;">
El sistema físico consiste en tarjetas o tags RFID o NFC donde cada uno contiene la información básica del recién nacido y la información de quienes son sus padres. Los tags, pulseras o tarjetas permanecen con el recién nacido hasta que un médico calificado se la retira. Será necesario proveer al hospital de sensores en los accesos para cuando un dispositivo no ha sido desactivado o retirado por un doctor autorizado.</div>
<div style="text-align: justify;">
Obviamente, si el tag no es desactivado y éste cruza algún sensor de acceso, el mismo lanzaría una alarma sonora y visual para localizar el lugar del incidente.</div>
<div style="text-align: justify;">
Así mismo, se podría implementar un dispositivo especial para las madres mediante el cual los tags de los recién nacidos cambien de color si estos se encuentran con sus madres respectivas.</div>
<div style="text-align: justify;">
Un sistema similar puede implementarse en asilos donde es necesario cuidar a los residentes para que no salgan de las instalaciones; funcionaría de forma similar al sistema para los hospitales, cada residente tendría una pulsera RFID/NFC y sensores en las puertas de las instalaciones de los asilos, los sensores se activan cuando un residente sale de las instalaciones y si dispositivo no ha sido desactivado.</div>
<div style="text-align: justify;">
También el sistema puede complementarse con un sistema de localización en interiores, registrando cada acceso de los residentes a cada habitación del edificio.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<b>Desarrollo:</b></div>
<div style="text-align: justify;">
El sistema es un tanto complejo de implementar, primeramente hay que desplegar el sistema de sensores y alarmas en los accesos, se puede implementar algún tipo de sistema ya existente.</div>
<div style="text-align: justify;">
Se necesitaría desarrollar la base de datos que almacena la información de los tags RFID. También se necesitaría desarrollar la interfaz que permite activar o desactivar los tags de manera autorizada, puede ser un servicio web o un software de escritorio.</div>
<div style="text-align: justify;">
Igual de importantes son los métodos para mantener el sistema seguro, ya sea aplicar técnicas de encriptación de canales de comunicación o de la base de datos o de todo el contenido de los servidores.</div>
<br />
<div style="text-align: center;">
<b><b>...</b></b><br />
<b><b><br /></b></b></div>
<b>
</b>
<br />
<div style="text-align: justify;">
<b><b>4. Asistente de recorridos de transporte público</b></b></div>
<b>
</b>
<br />
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<b>Mercado: </b>Usuarios de transporte público y concesionarios de rutas de transporte</div>
<div style="text-align: justify;">
<span style="font-weight: bold;"><br /></span>
<br />
<div style="font-weight: normal; text-align: start;">
<b>Distribución:</b></div>
<div style="text-align: start;">
Como un producto para los concesionarios, despliegue del sistema en $100,000, no incluye el mobiliario de las paradas de autobus, solo la instalación y configuración del sistema. Como un servicio para los usuarios, la aplicación sería distribuida gratuitamente.</div>
<br />
<span style="font-weight: bold;"><br /></span></div>
<div style="text-align: justify;">
<b>Problema: </b><br />
Se vive una problemática muy grave en el transporte público de la ciudad, por lo que ya hace falta desde una modernización hasta una re estructuración de las rutas de transporte. Es difícil para los usuarios implementar correctamente un itinerario de viaje que les permita llegar a tiempo a su destino ya que es imposible conocer los tiempos en los cuales los camiones llegarán a las paradas, es por ello que los usuarios llegan tarde a su destino.</div>
<br />
<div style="text-align: justify;">
<b>Propuesta:</b></div>
<div style="text-align: justify;">
Con la modernización de la forma de pago en el transporte público actualmente la mayoría de las rutas de transporte ya cuenta con dispositivos GPS y módulos GSM instalados, se puede aprovechar ésta información para proveer a los usuarios las diferentes tablas de tiempo de las unidades para que así formen sus propios itinerarios de viaje en transporte público.</div>
<div style="text-align: justify;">
Tomando en cuenta que existe un sistema unificado para la recepción de los datos GPS de cada ruta, es posible ubicar en tipo real cada ruta y posicionarla en un mapa. Se puede desarrollar una webapp que permita visualizar el mapa y filtrar la ubicación de las unidades por ruta de transporte público.</div>
<div style="text-align: justify;">
El usuario primeramente podría visualizar las diferentes rutas que satisfacen su trayecto, una vez seleccionadas las rutas, el usuario podrá ver las unidades de cada ruta y su ubicación en tiempo real para así calcular los tiempos para abordar su primer camión y transbordar en el siguiente.</div>
<div style="text-align: justify;">
Esto permitiría que el usuario aprovechara los tiempos de espera, en el mejor de los casos para tomar un café y leer el periódico, y en el peor de los casos decidir tomar un taxi.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<b>Desarrollo:</b></div>
<div style="text-align: justify;">
Tomando en cuenta que ya existe el sistema para la recolección de los datos GPS, solo se necesitaría tener acceso a dicho sistema para la obtención de dicha información.</div>
<div style="text-align: justify;">
Se tendría que implementar el sistema que ubica cada una de las rutas en tiempo real en un mapa posiblemente utilizando la API de Google Maps.</div>
<div style="text-align: justify;">
Se tendrían que diseñar los algoritmos, posiblemente de tipo heurístico, que ayudarían a buscar las rutas que satisfacen el trayecto de los usuarios. Lo demás consiste simplemente en ofrecer la información a los usuarios, ya sea mediante una aplicación móvil o instalando pantallas informativas en cada parada o incluso en cada camión.</div>
<br />
<div style="text-align: center;">
<b>...</b></div>
<br />
<div style="text-align: justify;">
<b>5. Asistente electrónico para los árbitros en un juego de fútbol</b></div>
<div style="text-align: justify;">
<b><br /></b>
</div>
<div style="text-align: justify;">
<b>Mercado: </b>Federaciones y ligas de fútbol</div>
<br />
<div style="text-align: justify;">
<b>Problema: </b><br />
La velocidad con la que se desarrollan los partidos de fútbol muchas veces hace imposible analizar cada jugada en el acto, así mismo, es imposible cambiar el estilo con la que se marcan las faltas ya que el fútbol es un juego de rapidez.</div>
<br />
<div style="text-align: justify;">
<b>Propuesta:</b></div>
<div style="text-align: justify;">
Se propone la creación de un sistema que asista a los árbitros a tomar decisiones sobre cuando un balón abandona las zonas de juego, así se podrán juzgar mejor éste tipo de situaciones.</div>
<div style="text-align: justify;">
Así mismo se podría analizar cuando un balón cruza de forma dudosa las líneas de gol, por ejemplo.</div>
<div style="text-align: justify;">
Las cámaras se ubicarían en las esquinas del campo de juego</div>
<b><br /></b>
<br />
<div style="text-align: center;">
<b>...</b></div>
Juan Carlos Espinosa Ceniceroshttp://www.blogger.com/profile/10122977539877115129noreply@blogger.com1tag:blogger.com,1999:blog-1492032797816588166.post-12066040847834770022013-05-19T17:12:00.000-05:002013-05-19T17:12:08.457-05:00[Lab RT] Actividad 12: Redes Ad-hoc<div style="text-align: justify;">
Para ésta semana continuamos con los temas de lecturas científicas, ahora el tema es referente a técnicas de usabilidad en sistemas de cómputo ubicuo, el documento seleccionado fue:</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: center;">
<div style="text-align: center;">
... </div>
</div>
<div style="text-align: center;">
<div style="text-align: center;">
<b>MANET POSSIBLE APPLICATIONS WITH PDA IN WIRELESS IMAGING ENVIRONMENT
</b></div>
</div>
<div style="text-align: center;">
<div style="text-align: center;">
<b><br /></b></div>
</div>
<div style="text-align: center;">
<div style="text-align: center;">
<span style="font-size: x-small;"> El paper aparece en: IEEE International Symposium on Personal, Indoor and Mobile Radio Communications</span></div>
</div>
<div style="text-align: center;">
<div style="text-align: center;">
<span style="font-size: x-small;"> Tipo de producto: Conferencia</span></div>
</div>
<div style="text-align: center;">
<div style="text-align: center;">
<span style="font-size: x-small;">Fecha de publicación: 2002 </span></div>
</div>
<div style="text-align: center;">
<div style="text-align: center;">
<span style="font-size: x-small;">Autores: M. Guarnera, M. Villari, A. Zaiaz, A. Puliafito</span></div>
</div>
<div style="text-align: center;">
<div style="text-align: center;">
... </div>
</div>
<div style="text-align: center;">
<div style="text-align: justify;">
<br /></div>
</div>
<div style="text-align: left;">
</div>
<div style="text-align: justify;">
<b>Resumen</b></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
El paper ya tiene un poco de tiempo, menciona que los sistemas de comunicación inalámbrica se están convirtiendo en una tecnología que permite acceder, compartir y procesar datos. Los futuros usuarios tendrán acceso a internet inalámbrico a través de dispositivos tipo PDA. Las redes ad-hoc móviles o MANET son parecidas a las redes inalámbricas pero que no dependen de la presencia de una infraestructura por cable. Se identifican algunos de los posibles campos de aplicación de tales sistemas inalámbricos, analizando sus ventajas y desventajas.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<b>Introducción</b></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Gracias a los últimos avances tecnológicos, los dispositivos móviles están disponibles para cualquier usuario, su potencia computacional es casi comparable con la de algunas computadoras de escritorio. Esto ha llevado a la creación de un nuevo tipo de mercado donde se ofrecen dichos dispositivos para desarrollar nuevos y sofisticados servicios con el fin de acceder a los datos en cualquier lugar y en cualquier momento. Los PDA aprovechan dichos servicios, y suelen almacenar información confidencial. Actualmente los dispositivos móviles se adaptan a cualquier situación y las redes ad hoc permiten seguir esta dirección, ya que se pueden crear con cualquier dispositivo compatible y en cualquier tipo de ambiente ya que no necesitan ninguna infraestructura.</div>
<div style="text-align: justify;">
Los campos de aplicación de estas redes puede ser:</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<ul>
<li style="text-align: justify;"><b>Militar</b>: es decir, es posible equipar soldados con dispositivos en entornos enemigos para que puedan comunicarse entre sí.</li>
<li style="text-align: justify;"><b>Red de área personal</b>, es decir, impresoras, PDA, teléfonos móviles, aplicaciónes de negocios.</li>
<li style="text-align: justify;"><b>Aplicaciones civiles</b>, es decir, taxis, coches, aplicaciones de emergencia, dispositivos de emergencia.</li>
<li style="text-align: justify;"><b>Dispositivos de inteligencia en el hogar.</b></li>
</ul>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Una gran cantidad de desafíos se interponen en el desarrollo de esta tecnología inalámbrica como un ancho de banda, la falta de estándar global, el mercado, etc.</div>
<div style="text-align: justify;">
A pesar de ello, una gran cantidad de oportunidades se dan.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
En el paper se demuestra cómo MANET persegue el objetivo de comunicarse en cualquier momento y en todas partes al pasar de un lugar a otro. Se presentan algunas aplicaciones posibles que pueden ser desarrolladas en un entorno MANET y se analiza un prototipo de cómo crear un sistema de procesamiento de imágenes a distancia mediante un servicio corriendo en una red ad-hoc.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<b>Red Ad hoc</b></div>
<br />
<div style="text-align: justify;">
<span style="font-weight: bold;"><br /></span></div>
<div style="text-align: justify;">
Son redes inalámbricas que se han caracterizado por la correr en ausencia de una infraestructura fija. El uso de este tipo de redes se hace en circunstancias especiales, tales como eventos desastrosos, la reducción o eliminación del cableado y el intercambio de información entre los usuarios independientemente del medio ambiente.</div>
<br />
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Los dispositivos que pertenecen a la red son capaces no sólo para transmitir y recibir datos, sino también para gestionar todas las funciones de la red en un entorno distribuido, así como implementar métodos de enrutamiento de paquetes, seguridad, QoS, etc. Los dispositivos no son sólo terminales, se trata de nodos que tienen una interfaz inalámbrica, y son por lo general sistemas móviles de varios tipos, desde los sencillos como PDA hasta computadoras portátiles. Estas redes se caracterizan por tener un ancho de banda limitado con capacidad variable, son topologías que varían en el tiempo dependiendo no solo de la posición de los nodos, sino también en función de la terminales, ya que pueden entrar y salir de la red en cualquier momento, sin embargo la conectividad de la red debe mantenerse a fin que las aplicaciones y los servicios funcionan correctamente.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
La desventaja es que cuentan con una cantidad limitada cantidad de memoria y energía, la cual generalmente depende de la potencia de una batería.</div>
<div style="text-align: justify;">
La comunicación entre los nodos se puede hacer a través de caminos multi-hop. Por otra parte, para la inserción de un nodo a la red se necesita que toda la configuración necesaria sea automática.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Las topologías de red pueden ser variadas, se basan en las aplicaciones a las que se destinan las redes. Para construir redes ad hoc, es posible usar dos tecnologías: <b>IEEE 802.11</b> y <b>Bluetooth</b>.</div>
<div style="text-align: justify;">
El estándar IEEE 802.11 representa una buena plataforma para implementar redes ad hoc, ya que es muy simple. Bluetooth representa realmente una red de área personal (WPAN) y permite la conexión de dispositivos dentro de radio de diez metros.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<b>Aplicaciones</b></div>
<br />
<div style="text-align: justify;">
<span style="font-weight: bold;"><br /></span></div>
<div style="text-align: justify;">
Se propone un sistema de adquisición de imágenes. Para ello se requiere de una cámara digital con un cable de interfaz de red, una webcam inalámbrica, el PDA va conectado a una cámara fotográfica digital, algunos teléfonos móviles y PDAs equipados con una cámara. Todos estos dispositivos se conectan con el fin de crear una red ad hoc.</div>
<br />
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
a) Transferencia de archivos:</div>
<div style="text-align: justify;">
Podría se útil tener la posibilidad de descargar las imágenes adquiridas por otros dispositivos en forma de <i>thumbnails</i> para su pre-visualización. Para ello, es necesario establecer una conexión inicial e intercambiar información tal como las capacidades de vídeo, tipo de imágenes para descargar, tipo de pantalla en los dispositivos, la cantidad de colores en las pantallas, etc. De esta manera se es posible codificar las mismas para que sean compatibles con el máximo número de dispositivos.}</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
b) Mando a distancia</div>
<div style="text-align: justify;">
Podría ser útil tener la capacidad de controlar el dispositivo a distancia. Con ello sería posible tomar una foto con otros dispositivos y utilizar las herramientas de edición de imagenes individualmente, tales como el balance de blancos, el formato, dimensiones y calidad.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
c) Visualización a distancia</div>
<div style="text-align: justify;">
Si algunos dispositivos conectados no cuentan con una pantalla para ver las fotos recien tomadas, a través de la pantalla de otro dispositivo sería posible ver la foto tal y como se tomó. Podría ser útil seleccionar uno de los dispositivos conectados y convertirlo en un visor. El servicio podría ser gestionado por un solo dispositivo y éste decide qué dispositivo de la red va a ver la fotografía.</div>
<div style="text-align: justify;">
El servicio tiene que tener en cuenta las características de la red en términos de la banda disponible. El paper menciona un ejemplo:</div>
<div style="text-align: justify;">
Una imágen con resolución VGA (640x480), no se puede transmitir como una secuencia VGA por una red 802.11, para transmitirla se requiere una velocidad de 15 fps, y un ancho de banda de 40Mbps.</div>
<div style="text-align: justify;">
Por lo tanto, en primer lugar, tenemos que escalar cada frame a resolución QSIF (160x120) o QCIF (176x144). Por otra parte, las imágenes a escala no pueden ser de color, ya que en este caso</div>
<div style="text-align: justify;">
tenemos tres veces la cantidad de datos del sensor. La solución podría estar en comprimir los datos con un algoritmo simple, como IGS, y luego transferir la trama codificada por la conexión inalámbrica.</div>
<div style="text-align: justify;">
Todo ello para ahorrar un 83% del ancho de banda.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
d) Videoconferencias</div>
<div style="text-align: justify;">
Se espera que la configuración de la red permita que nuevos usuarios se unan al servicio y desconectar en cualquier momento. Los mecanismos de seguridad deben ser implementados a nivel de aplicación para evitar que usuarios no deseados se unan a las videoconferencias.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
e) Procesamiento remoto</div>
<div style="text-align: justify;">
Podría ser útil utilizar los demás dispositivos como co-procesadores de color a partir de los datos en bruto del sensor. Obtener la imagen de un dispositivo a distancia y realizar a distancia el proceso de color.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<b>Procesamiento de imágenes en un entorno MANET</b></div>
<div style="text-align: justify;">
<b><br /></b></div>
<div style="text-align: justify;">
Para el prototipo presentado en paper se utilizan algunos dispositivos PDAs inalámbricos y una LCDC (Low Cost Digital Camera) como dispositivo de adquisición de imágenes. Los dispositivos interconectados entre sí emulan cámara fotográfica digital. La conexión se realiza con un RS232 a 15Kbps. El entorno de la aplicación consiste en dos tipos de aplicaciones: un emulador en las PDAs y otro emulador de DSC. El software es capaz de determinar el número de dispositivos HLE (que han cargado el software de gestión de imágenes adecuado) y decidir a quién enviar las imágenes adquiridas.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
A través de la aplicación gráfica que se ejecuta en los PDA, es posible conocer en todo momento y en cualquier lugar, el número de dispositivos de adquisición de vídeo que están conectados a la red. Y es posible controlar alguno a distancia.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Los resultados de las pruebas realizadas han establecido un alcance máximo de red de 50 metros. </div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Para mejorar el rendimiento del sistema diseñado es necesario adoptar el sistema operativo Embedded Linux ya que permite mantener toda funcionalidad descrita anteriormente y permite utilizar protocolos y arquitecturas oficiales y no oficiales para comunicación inalámbrica. Además utilizar una herramienta desarrollada por el MIT que ofrece enrutamiento, descubrimiento y mecanismos de localización geográfica. </div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<b>Conclusión</b></div>
<div style="text-align: justify;">
Las redes ad-hoc (MANET) pueden correr bastantes tipos de aplicaciones y sistemas inalámbricos de comunicación personal. A pesar de que se han pensado originalmente para fines militares y situaciones de emergencia, las MANET son aptas para acceder a información multimedia en diversos dispositivos. El paper ya es algo viejo, actualmente se tienen mejores métodos, más rápidos y confiables para la compartición de contenido multimedia, tal es el caso del protocolo DLNA, sin embargo, me parece una buena aproximación para la implementación de éste tipo de redes, posiblemente no es la primera investigación de este tipo pero es una buena aproximación.</div>
<div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<b>Referencias</b></div>
<br />
<div style="text-align: center;">
<div style="text-align: justify;">
<b><br /></b></div>
<div style="text-align: justify;">
M. Guarnera, M. Villari, A. Zaiaz, A. Puliafito, 2002, <i>MANET Possible applications with PDA in wireless imaging environment, publicado en </i>"<i>IEEE International Symposium on Personal, Indoor and Mobile Radio Communications</i>" [conferencia], recuperado el 18 de mayo de 2013 desde <a href="http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=1046573">http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=1046573</a></div>
</div>
</div>
Juan Carlos Espinosa Ceniceroshttp://www.blogger.com/profile/10122977539877115129noreply@blogger.com0tag:blogger.com,1999:blog-1492032797816588166.post-16604120597228651692013-05-16T11:24:00.000-05:002013-05-20T13:57:25.780-05:00[VC] Proyecto Final: Detección de señales de tráfico<b>Presentación</b>
<br />
<br />
<iframe allowfullscreen="true" frameborder="0" height="480" mozallowfullscreen="true" src="https://docs.google.com/presentation/d/1xCLv6Rx56oIPEwWo5u_eYZCiTNsqm-B0PDDGEyoV0K0/embed?start=false&loop=false&delayms=3000" webkitallowfullscreen="true" width="640"></iframe>
<br />
<b><br /></b>
<b><br /></b>
<b>Reporte</b>
<br />
<br />
<iframe height="480" src="https://docs.google.com/document/d/1sHkCa_tEw4NGhOxQAWwRvn8GKn68_hWFVgNdWLWGYXA/pub?embedded=true" width="640"></iframe>
<br />
Vídeos
<br />
<iframe allowfullscreen="" frameborder="0" height="360" src="http://www.youtube.com/embed/XbasQQNl158" width="640"></iframe>
<div style="text-align: center;">
<span style="font-size: x-small;">Prueba en un ambiente real, sujeto al ruido. No todas las señales se detectan, solo aquellas utilizadas en el entrenamiento, como son el signo de cruce peatonal y parada de autobus</span></div>
<br />
<br />
<iframe allowfullscreen="" frameborder="0" height="360" src="http://www.youtube.com/embed/Loi-kKCrJMU" width="640"></iframe>
<div style="text-align: center;">
<span style="font-size: x-small;">Prueba simple para detectar las señales utilizadas en el entrenamiento.</span></div>
<b><br /></b>
<b>Código</b><br />
<span style="text-align: center;"><br /></span>
<div style="text-align: start;">
<span style="text-align: center;">Visitar el repositorio: </span><a href="https://github.com/jcespinosa/vision_computacional/tree/master/proyecto">https://github.com/jcespinosa/vision_computacional/tree/master/proyecto</a></div>
Juan Carlos Espinosa Ceniceroshttp://www.blogger.com/profile/10122977539877115129noreply@blogger.com2tag:blogger.com,1999:blog-1492032797816588166.post-90789367810418000902013-05-14T16:55:00.001-05:002013-05-14T16:55:27.632-05:00[Lab RT] Actividad 11: Satélites<div style="text-align: justify;">
La <b>comunicación satelital</b> es un tipo de <b>radiocomunicación</b> que sirve para transmitir diferentes tipos de señales, ya sean de audio, voz o datos, mediante el uso de algún sistema de satélites.</div>
<div style="text-align: justify;">
Un satélite artificial es un dispositivo estacionado en el espacio con el propósito de servir a telecomunicaciones usando frecuencias de radio y microondas.</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://concurso.cnice.mec.es/cnice2006/material121/unidad3/medios/satelits_y_tipos.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="http://concurso.cnice.mec.es/cnice2006/material121/unidad3/medios/satelits_y_tipos.jpg" width="400" /></a></div>
<div style="text-align: center;">
<span style="font-size: x-small;">Fuente de la imágen: http://concurso.cnice.mec.es/cnice2006/material121/unidad3/satelite2.htm</span></div>
<br />
<br />
<div style="text-align: justify;">
Los satélites orbitan la tierra a diferentes niveles según el uso que se les vaya a dar:</div>
<div style="text-align: justify;">
<br /></div>
<ul>
<li style="text-align: justify;"><b>Órbitas bajas: </b>Son satélites que se sitúan entre unos 500 a 2000 km sobre la superficie terrestre. En éste tipo de órbitas los satélites viajan a grandes velocidades y pueden dar la vuelta a la tierra en menos de 2 horas. Dado la altura a la que se encuentran, un sistema satélital en ésta orbita necesita una gran cantidad de dispositivos para cubrir grandes extensiones.</li>
</ul>
<ul>
<li style="text-align: justify;"><b>Órbitas medias: </b>Su altura oscila entre los 8000 a 20000 km sobre la superficie terrestre. A ésta altura se necesitan 3 o 4 satélites para tener una cobertura global.</li>
</ul>
<ul>
<li style="text-align: justify;"><b>Órbitas geoestacionarias: </b>Su altura se encuentra exactamente a los 35786 km, y se encuentran directamente sobre el Ecuador. Orbitan en sincronía con la Tierra por lo que tienen un periodo de 24 horas. A ésta altura cada satélite es capaz de cubrir un tercio del planeta.</li>
</ul>
<ul>
<li style="text-align: justify;"><b>Órbitas altas: </b>Por su altura describen una órbita muy elíptica en el perigeo se encuentran a unos 500 km de altura y en el apogeo a unos 50000 km. Su periodo oscila entre las 8 y 24 horas.</li>
</ul>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://radiomen.tripod.com/satelites/intrmov2.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="273" src="http://radiomen.tripod.com/satelites/intrmov2.gif" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-size: x-small;">Fuente de la imágen: http://radiomen.tripod.com/satelites.htm </span></div>
<div>
<br /></div>
<br />
<div style="text-align: justify;">
Además existen dos tipos de satélites de comunicaciones</div>
<div style="text-align: justify;">
<br /></div>
<ul>
<li style="text-align: justify;"><b>Satélites pasivos:</b> Se encargan de reflejar las señales recibidas sin llevar a cabo ninguna otra tarea.</li>
<li style="text-align: justify;"><b>Satélites activos:</b> Amplifican las señales que reciben antes de retransmitirlas hacia la Tierra. Son las más comunes.</li>
</ul>
<div>
<div style="text-align: justify;">
Los satélites básicamente se encargan de transmitir señales a grandes distancias, incluso a lugares muy remotos e inaccesibles del planeta de forma rápida y barata; así por ejemplo es posible proveer servicios de televisión, radio, telefonía e internet en zonas rurales, boscosas o desérticas, o en lugares donde los sistemas cableados no son viables o difíciles de instalar.</div>
</div>
<div>
<div style="text-align: justify;">
<br /></div>
</div>
<h3 style="text-align: justify;">
Aplicaciones de las comunicaciones satelitales</h3>
<div>
<div style="text-align: justify;">
<br /></div>
</div>
<div>
<div style="text-align: justify;">
Existen diferentes usos para las comunicaciones satelitales, entre ellos se encuentran:</div>
</div>
<div>
<div style="text-align: justify;">
<br /></div>
</div>
<div>
<div>
<div style="text-align: justify;">
<b>1. Telecomunicaciones</b></div>
</div>
</div>
<div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<b>Televisión y radio</b></div>
<div style="text-align: justify;">
<b><br /></b></div>
</div>
<div>
<div style="text-align: justify;">
Posiblemente es la principal aplicación de los satélites de comunicaciones es la transmisión de contenidos de televisión o radio.</div>
<div style="text-align: justify;">
Las empresas de televisión y de radio transmiten desde sus estaciones terrestres a los satélites los cuales las retransmiten a diferentes zonas sobre la Tierra o directamente al domicilio del usuario.</div>
<div style="text-align: justify;">
Un único satélite puede dar servicio a varias cadenas de televisión en un país e incluso a todo un continente. La digitalización de la transmisión de las señales ha elevado enormemente el potencial de los satélites en términos de cantidad de cadenas, lo que ha abierto la puerta a nuevos servicios vía satélite. Las emisiones las pueden recibir tanto los usuarios privados como los públicos mediante claves que dan acceso a la conexión satélite. En la actualidad, gracias a los satélites, todos los hogares poseen acceso a las mismas cadenas, tanto si son de calidad estándar o de alta definición.</div>
<div style="text-align: justify;">
Los sistemas que hacen uso de ésta tecnología se conocen con el nombre de DBS (Direct Broadcast Satellite) y en ésta clasificación encontramos a las constelaciones de satélites HotBird, Astra y SatMex.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<b>Telefonía satelital</b></div>
<div style="text-align: justify;">
<span style="font-weight: bold;"><br /></span></div>
<div style="text-align: justify;">
Gracias a las comunicaciones satelitales es posible contar con un pequeño dispositivo móvil que permite estar comunicado en tiempo real en cualquier parte del planeta.</div>
<br />
<div style="text-align: justify;">
Éste tipo de dispositivos hace posible contar con un sistema de comunicación en áreas muy remotas del planeta.</div>
<div style="text-align: justify;">
Las constelaciones de satélites Sirius, Inmarsat y XM Satellite Radio Holdings ofrecen este tipo de servicios.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<b>Internet de banda ancha</b></div>
</div>
<div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Este tipo de satélites hacen posible proporcionar el beneficio del internet a lugares lejanos del planeta.</div>
<div style="text-align: justify;">
En años recientes se han desarrollado satélites que permiten alcanzar tasas de transferencia de hasta 70 Gbps, lo cual permite un acceso a internet en tiempo real, de super alta velocidad y de alta capacidad de usuarios.</div>
<div style="text-align: justify;">
En ésta clasificación encontramos a los satélites Hylas y Ka-Sat.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<b>Comunicaciones de alta seguridad</b></div>
<div style="text-align: justify;">
<span style="font-weight: bold;"><br /></span></div>
<div style="text-align: justify;">
Son utilizados principalmente por agencias militares.Las comunicaciones militares consisten en enlaces protegidos con una gran flexibilidad de cobertura.</div>
<br />
<div style="text-align: justify;">
Independientemente del ambiente hostil y de la situación, las comunicaciones deben estar garantizadas y aseguradas por lo que los requerimientos de las agencias militares son muy especificos en comparación con otras redes terrestres. Además necesitam mayor flexibilidad en cuanto a cobertura, potencia, frecuencias, ancho de banda, etcétera.</div>
<div style="text-align: justify;">
En esta clasificación encontramos a la constelacion Skynet.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<b><br /></b></div>
</div>
<div>
<div style="text-align: justify;">
<b>2. Navegación </b></div>
<br />
<div style="text-align: justify;">
Se tratan de satélites geoestacionarios que sirven para proporcionar información sobre la ubicación, velocidad y tiempo a personas que cuenten con el equipo necesario sobre la tierra.</div>
<br />
<div style="text-align: justify;">
Éste tipo de satélites cuentan con una excelente precisión y proporcionan la ubicación exacta de un individuo o dispositivo que se encuentre en la superficie del planeta.</div>
<div style="text-align: justify;">
Actualmente existen dos constelaciones de satélites que proporcionan éste servicio, la constelación GPS (Global Positioning System) y GLONASS, más la constelación GALILEO que está en construcción por la Unión Europea.</div>
<div style="text-align: justify;">
La navegación por satélite hace uso de un concepto llamado trilateración para ubicar un objeto en tiempo real sobre la tierra.</div>
</div>
<div>
<div style="text-align: justify;">
<br />
<br /></div>
</div>
<div>
<div style="text-align: justify;">
<b>3. Clima</b></div>
</div>
<div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Sirven para monitorear los cambios en la atmósfera terrestre y analizar su composición a lo largo de los años.</div>
<div style="text-align: justify;">
Fue entre 1970 y 1980 cuando se comenzarón a utilizar éste tipo de satélites lanzados en una gran variedad de misiones espaciales.</div>
<div style="text-align: justify;">
Dichos satélites cuentan con diferentes tipos de instrumentos que les permiten medir la humedad y estimar la velocidad del viento, también realizan mediciones de la radiación infraroja y ultravioleta que llega al planeta .</div>
<div style="text-align: justify;">
En ésta clasificación entran las constelaciones satelitales GOES y METEOSAT</div>
<div style="text-align: justify;">
<br />
<br /></div>
</div>
<div>
<div style="text-align: justify;">
<b>4. Cartografía y observación planetaria</b></div>
<br />
<div style="text-align: justify;">
Son necesarios para llevar un control sobre las condiciones ambientales en distintos puntos del planeta. Su objetivo es medir la calidad del medio ambiente. Se utilizan para medir y monitorear los recursos naturales del planeta mediante la recolección de datos que permiten entender los diferentes procesos e interacciones entre las masas de tierra, los océanos y la atmósfera. La información recolectada es de mucha utilidad para la agricultura, geología, cartografia, defensa del medio ambiente, entre otras.</div>
<br />
<div style="text-align: justify;">
Profundizando un poco en la cartografía, los satélites han permitido mejorar de una manera impresionante la precisión de los mapas y a su vez ha permitido disminuir los precios.</div>
<div style="text-align: justify;">
En éste aspecto los satélites han permitido crear todo tipo de mapas, desde medir las elevaciones de las montañas, contabilizar y ubicar rios, mejorar los mapas carreteros y de las ciudades, y muchas aplicaciones mas.</div>
</div>
<div>
<div style="text-align: justify;">
<b><br /></b></div>
</div>
<div>
<div style="text-align: justify;">
<br /></div>
<h3 style="text-align: justify;">
Mecanismos para interceptar las comunicaciones satelitales.</h3>
</div>
<div>
<div style="text-align: justify;">
Los riesgos al interceptar una transmisión satelital son muchos y puede comprometer la seguridad de una nación. La preocupación reside en que al interceptarse una señal se puede hacer mal uso del enlace y de la información recolectada.</div>
</div>
<div>
<div style="text-align: justify;">
<br /></div>
</div>
<div>
<div style="text-align: justify;">
<b>Mecanismo de acción preventiva y ofensiva</b></div>
</div>
<div>
<div style="text-align: justify;">
<b><br /></b></div>
</div>
<div>
<div style="text-align: justify;">
La acción preventiva consiste en colocar obstáculos para que un mensaje no pueda continuar a su destino. Típicamente, estas medidas sólo se emplean durante los tiempos de hostilidades abiertas y con la intención de eliminar los recursos de los enemigos. Un método para llevar a cabo este fin es bloqueo de la señal vía satélite utilizando interferencia, ésto implica la transmisión señal modulada a la terminal de recepción de un objetivo en la misma frecuencia de la señal de los remitentes. Las llamadas "inundaciones" consisten en desbordar el receptor con una señal de ruido y la prevención de la interpretación de cualquier señal original. Esto puede ser combatido utilizando señales moduladas y secuenciadas, y es un medio eficaz para prevenir que cualquier señal sea recibida. </div>
<div style="text-align: justify;">
Otro método utilizado es la acción ofensiva abierta. Con el fin de evitar cualquier intercambio de comunicaciones, una fuerza hostil podría destruir una estación en tierra o un satélite fundamental para una operación.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<b>Mal uso de las señales</b></div>
<div style="text-align: justify;">
<b><br /></b></div>
<div style="text-align: justify;">
Éste mecanismo suele ser pasivo e indetectable. Muchas veces consiste en robar los códigos de acceso a las constelaciones satelitales para tener acceso "oficial" a las transmisiones y con ello la mayoria de las veces obtener el control de una estación transmisora y los satelites.</div>
<div style="text-align: justify;">
Otro método más simple es interceptar las señales en tierra, lo que es muy simple si se sabe donde la posición de la transmisión y el tiempo. Para ello se necesita una estación modificada en tierra que permite escuchar las transmisiones.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Existe un caso llamado "Privateer" que consiste en la "piratear" las comunicaciones satelitales utilizando objetos comunes.</div>
<div style="text-align: justify;">
Los componentes fueron, como en todo sistema satelital, un receptor y un decodificador. El equipo completo contenía una antena, un preamplificador, un radio-escaner. Todos estos componentes se consiguen fácilmente hoy en día. Diversos dibujos y esquemas fueron encontrados en internet mediante los cuales fue posible ensamblar todo y construir los componentes faltantes, la mayoria con materiales como PVC, tubos de cobre, etcétera. Por último, se consiguio un programa freeware en internet el cual se instaló en el decodificador el cual era una copia 100% operable que servía para decodificar las señales de la constelación NOAA (satélites meteorológicos). Todos los componentes se conectaron a una computadora de bajo rendimiento, el cual pudo traducir en imágenes de mapa bits los datos recolectados por el receptor.</div>
<div style="text-align: justify;">
Éste caso demostro lo sencillo que es interceptar las señales con componentes simples que toda la gente tiene a su alcance.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<h3 style="text-align: justify;">
Mecanismos para la protección de las señales satelitales</h3>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
En las épocas tempranas de las telecomunicaciones, los mecanismos de protección de las señales satelitales consistían en eludir las amenazas temporalmente, sin embargo esto resulto insuficiente con el paso del tiempo. Ahora existen 4 mecanismos, cada uno con sus deficiencias, para proteger las comunicaciones satelitales contra ataques:</div>
<div style="text-align: justify;">
<br /></div>
<div>
<ul>
<li style="text-align: justify;"><b>Evasión: </b>Consiste en la capacidad de las naves espaciales para modificar su curso para evitar cualquier interrupción en su funcionamiento. Por lo general, el curso de un satélite es predecible, pues es definido desde la planeación de la misión. Esto aumenta la vulnerabilidad de los satélites. Existen problemas en este mecanismo, ya que un satélite puede quedar inoperable. Es necesario implementar sistemas de computo capaces de operar aun cuando la comunicación con las estaciones terrestres esté perdida y así poder volver a rectificar su rumbo y volver a operar correctamente. Además, los sistemas de propulsión están diseñados para un cierto ciclo de vuelo, utilizar el combustible en éste tipo de eventos puede reducir el tiempo útil del satélite al agotar sus reservas más rápidamente.</li>
</ul>
<div>
<ul>
<li style="text-align: justify;"><b>Preparación táctica: </b>Consiste en preparar al satélite para que sea capaz de protegerse contra ataques, que pueden ir desde dispositivos de escucha y transmisión pasiva hasta armas montadas en el cuerpo del satélite (dependiendo de su aplicación).</li>
</ul>
</div>
</div>
<div>
<ul>
<li style="text-align: justify;"><b>Alteración del haz de comunicaciones: </b>Posiblemente el método más simple para evitar los ataques a las telecomunicaciones. Consiste en minimizar el espacio de cobertura de tal forma que no de lugar a la interceptación de las señales satelitales. Por lo general se logra concentrando la señal en un haz que solo es posible escuchar en un ancho muy reducido y que por lo general es dirigido directamente a las antenas receptoras oficiales. El método requiere una sincronización perfecta entre el satélite y la estación receptora, así como una gran potencia de transmisión basada en rayos láser que permite dirigir el haz de comunicaciones de forma muy precisa.</li>
</ul>
<ul>
<li style="text-align: justify;"><b>Cifrado: </b>Posiblemente el método más empleado en las telecomunicaciones. No es necesario afectar de forma física ninguno de los dispositivos terrestres, ni el transmisor ni la antena. Consiste simplemente en cifrar los datos mediante cualquier método y descifrarlos en las estaciones destino. El principal problema es que las capacidades computacionales actuales permiten romper los mecanismos de cifrado en cuestión de segundos.</li>
</ul>
</div>
<h3 style="text-align: justify;">
</h3>
<h3 style="text-align: justify;">
Conclusiones</h3>
</div>
<div style="text-align: justify;">
Debido a la masificación de las telecomunicaciones y a la variedad de servicios prestados a través de las mismas, algunos bastante comunes y otros bastante delicados, es necesario proteger las comunicaciones satelites contra ataques de cualquier tipo.</div>
<div style="text-align: justify;">
Ya sea para proteger los intereses monetarios de una empresa de televisión de paga o la seguridad de una nación, las señales satelitales cuentan con distintos mecanismos que aseguran las telecomunicaciones de cierta forma, sin embargo, aún asi es posible que con materiales bastante comunes se puedan interceptar las señales de un satélite y con las capacidades computacionales actuales descifrar los datos transmitidos a través de ellas.</div>
<div style="text-align: justify;">
Cabe mencionar que los métodos para vulnerar las telecomunicaciones satélites están penados en todo el mundo y se clasifican delitos federales, por lo que hay que tener mucho cuidado al intentar implementarlos, fue complicado encontrar un documento que hablara abiertamente del tema y parece que hasta con una simple búsqueda en internet ya me han clasificado como un posible terrorista (de no ser porque estoy en México).</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div>
<div style="text-align: justify;">
<b>Referencias</b></div>
<div style="text-align: justify;">
<br />
<ul>
<li><i><b>Satélites para toda clase de aplicaciones</b></i>, 24/09/2011, Astrium Telecomuniaciones, extraído de: <a href="http://www.astrium.eads.net/es/articles/satelites-para-toda-clase-de-aplicaciones.html">http://www.astrium.eads.net/es/articles/satelites-para-toda-clase-de-aplicaciones.html</a></li>
</ul>
<ul>
<li><i><b>The Increasing Threat to Satellite Communications</b></i>, Sean Patrick Bain, en Online Journal of Space Communication, Invierno 2004, extraído de: <a href="http://spacejournal.ohio.edu/issue6/threats1.html">http://spacejournal.ohio.edu/issue6/threats1.html</a></li>
</ul>
</div>
</div>
Juan Carlos Espinosa Ceniceroshttp://www.blogger.com/profile/10122977539877115129noreply@blogger.com0