jueves, 28 de febrero de 2013

Actividad #4 - Detección de lineas Diagonales

Para esta entrada se nos encargo seguir trabajando con detección de lineas, pero en este caso identificaremos las lineas diagonales con un color distinto de las verticales y horizontales.

Para elaborar esto fue necesario apoyarnos con lo que se había trabajado en clase anteriormente (tarea 3) y utilizamos las mismas formulas para calcular theta y rho.



ρ = x cos θ + y sin θ

En este caso identificamos los ángulos con pi para 180°, pi/2 para 90° y pi/4 para 45° , esto para identificar las diagonales.

Estas son las imágenes que use de prueba:


Y este es el resultado que obtuve:
Como podemos observar las lineas diagonales están marcadas en color verde, incluso las partes diagonales de los círculos están marcadas así.

Como le seguí moviendo al código encontré un pequeño detalle y lo corregí y al cambiarlo obtuve el siguiente resultado:

Ahora me marca las diagonales hacia la izq de un color y las de la derecha de otro.
Este es el código que utilice :)
**
**
Para realizar esto , me apoye en el código de la Dra. Elisa Schaeffer.

martes, 26 de febrero de 2013

Lab # 4 - Sugerencias

Sugerencia para: Seguridad en la Computadora


La idea del proyecto en general esta bien ya que siempre pasa que ocurren robos de información, o robos de identidad en las cuentas de facebook o correo, etc.. aunque se le podría añadir que ademas de solo bloquear la maquina cuando el usuario no esta usándola, que también tenga alguna detección de voz que permita alguna palabra de escape para cuando queremos ocultar algo o cosas así. 

Sugerencia para: Localizador de Personas


Este proyecto en si también es muy buena idea por la situaciones de inseguridad que se han visto últimamente. Algo que se podría tomar en cuenta es que en que tipo de dispositivo se va a utilizar y que tanto gasta de batería, ademas de que ubicar si esta enfocado a que tipo de personas.. una buena idea seria que si esta enfocado para localizar niños pequeños que el dispositivo pueda ser a prueba de golpes o de agua.

Otra cosa importa es saber ademas que tipo de dispositivo se utilizara el precio que este tendría.

Sugerencia para: Automóvil Inteligente


Para este proyecto creo que se podrían tener muchas muy buenas ideas, aunque seria bueno tomar en cuenta a gente que tiene ya tiempo manejando y contar las cosas en las que han batallado o que se les presentan cuando van en camino. 

Otro punto importante al igual que en el localizador es escatimar el precio que este tendría para el usuario, ya que si es algo muy caro, mucha gente preferirá no tenerlo.

Sugerencia para: Cama Inteligente


Este proyecto a mi parecer es una muy buena idea, aunque también seria padre que pudiera ser un dispositivo que se pueda mover, ya que si ya esta personalizada a como normalmente lo usa la persona, estaría padre que si esta persona ocupa viajar pueda llevarla consigo para no andar batallando en el lugar donde se encuentre. 

También  hay que fijar o estimar que precio tendrá el dispositivo.

Sugerencia para: Casa Inteligente

Para este proyecto también seria buena idea tener un variador en los tiempos de encendido de luces etc.. para que cuando este sola la casa, no se vea tan robot el que todos los días a la misma hora prenden las luces.. :P otra idea también seria añadir fotoceldas, aunque esto no funcionaria mucho en días nublados.

Otra cosa es ubicar si solamente se ubicaran a las luces de la casa o las puertas y ventanas, etc..

Sugerencia para: Garage Inteligente


Seria bueno especificar que realmente sera el dispositivo a utilizar, ademas de que si ya en el estudio vieron que el usuario no estaba relacionado con el dispositivo, hacerlo de una manera que sea de uso intuitivo o añadir cosas como un tipo de guía que le enseñe al usuario como usar la app.

Sugerencia para: Car NXP


Para este proyecto estaría padre que estimaran en cuanto saldría esta tecnología y así preguntarle al usuario si así aun con ese costo serian capaces de adquirirlo. 

También seria padre de que si el auto no es solo de una persona, identifique el usuario que se encuentra en el momento para poder así mostrarle sus preferencias.

Tarea 3 - Detección de Lineas

Para esta tarea se nos pidió trabajar la imagen para poder encontrar las lineas que se encuentran dentro de de ella.

Para realizar esto partimos de la detección de borde que se había visto anteriormente en la Tarea 1.
Partiendo de ese mismo operador continuamos trabajando utilizando gx y gy,
pero ahora en lugar de utilizar la formula para obtener la intensidad del gradiente utilizamos la formula 

que nos servirá para encontrar el angulo de orientación de las lineas en la imagen, posteriormente aplicaremos la formula para calcular rho:
ρ = x cos θ + y sin θ 


Este es el código que utilice, aunque no me salio nada de lo que esperaba :(

Código:
***

***
Aun estoy trabajando sobre este código y subiré resultados cuando lo haya corregido.

Problema Resuelto
Este es el código corregido:
***
***
Y este es el resultado :D


jueves, 21 de febrero de 2013

Actividad 3 - Convex hull

Para esta semana se nos pidió trabajar nuevamente con los bordes pero en este caso, teníamos que ubicar los puntos de las orillas que al unirlos encerraran por completo una figura.

Para esto utilice el algoritmo de gift wrapping el cual consiste en ubicar los puntos que se encuentran mas a la izquierda de la imagen.

Esta es la imagen que utilice para localizar los puntos mas a la izq:

Al aplicar el algoritmo si logre encontrar los puntos y esto fue lo que obtuve


Como se puede observar en las orillas de las imágenes se encuentran algunos puntos rojos, que vienen siendo los puntos mas a la izq del borde.

Este es el código que utilice para ubicar los puntos:
*****
*****
Ademas de esto intente unir cada uno de los puntos pero al parecer la imagen contenía mucho ruido y lo que hacia era unir los puntos en donde había ruido, así que en la imagen se observan unos ligeros puntos azules alrededor de cada forma.. osea el intento de unir los puntos. La verdad esto no salio como esperaba :( .

Referencias:
http://en.wikipedia.org/wiki/Gift_wrapping_algorithm

Tarea #2


For this week, we did a string searching program using an algorithm an check how efficient it is in terms of time.

The algorithm used was Knuth-Morris-Pratt which consists in comparing to the list of words with the word you enter.
 *KMP algorithm searches for occurrences of a "word" W within a main "text string" S by employing the observation that when a mismatch occurs, the word itself embodies sufficient information to determine where the next match could begin, thus bypassing re-examination of previously matched characters. (esto dice la wiki :P)

This is the code that performs to verify the comparison:
*****
*****





reference:
http://en.wikipedia.org/wiki/Knuth%E2%80%93Morris%E2%80%93Pratt_algorithm

martes, 19 de febrero de 2013

Estudio de campo



Lab #3 - Contextual Design

Diseño Contextual

Que es?
Es un enfoque que tiene como técnica diseñar directamente a partir de la comprensión de como funciona que tiene el cliente.
El diseño contextual se acerca directamente a la forma del producto y de como los usuarios trabajan con este. Los mejores productos son aquellos que surgen de la comprensión detallada de las necesidades del usuario. Ademas de que el diseño contextual proporciona herramientas a los diseñadores de como desarrollar los mejores productos. Este metodo es de ayuda a un equipo multi-funcional para llegar a un acuerdo sobre lo que los clientes necesitan y de como diseñar un sistema para ellos.


Este se compone a partir de 7 partes, El diseño contextual comienza con la investigación contextual:
  1. Investigación contextual: la cual refiere a todo lo que conlleva al cliente/usuario, esto es lo que necesita el usuario o lo que puede facilitarle las cosas.
  2. El trabajo de modelado: esto es apreciar el trabajo desde diferentes perspectivas para saber como exactamente va a funcionar y como estará hecho.
  3. Consolidación: En esta parte se aportan los datos de entrevistas hechas a los posibles usuarios individualmente, para observar un patrón común y una estructura, sin perder la variación individual.
  4. Trabajo de re-diseño: Utiliza los datos consolidados para mejorar el trabajo mediante el uso de tecnologías para apoyar este nuevo trabajo.
  5. Diseño del entorno de usuario: En esta parte se muestra cada parte del sistema y como se apoya en el trabajo que realiza el usuario, analiza que parte del sistema esta en uso en ese momento y la manera en que recibe datos desde el usuario.
  6. Pruebas con los clientes: Aquí se realizan prototipos de papel, maquetas, etc.. que puedan representar el sistema que se valla a desarrollar, para mostrar una idea mas precisa al cliente.
  7. Poner en practica: En esta parte se pone en practica el diseño orientado a objetos, el cual ayuda a moverse dentro de la implementacion del sistema.
Diseño Conceptual

Un diseño conceptual es un dibujo preliminar que muestra las ideas que se han desarrollado después de un plan de trabajo acerca de un sistema solicitado.

El diseño conceptual consiste principalmente en transladar la idea original en una visión conceptual convincente para el usuario.





Referencias:

lunes, 18 de febrero de 2013

Tarea #2 - Detección de Formas

Para esta segunda tarea se nos encargo trabajar con detección de formas, para esto cada forma o figura encontrada se tiene que pintar de un color random, y el fondo en un color gris.

Aquí las imágenes que utilice para realizar el ejercicio.


Ahora a partir de las tareas antes realizadas a estas imágenes también les agregue lo que es convolucion y binarizacion para facilitar el detectar las formas. Esto para que cuando se recorran todos los pixeles se identifique como borde aquellos pixeles que son blancos, entonces todo lo que se encuentra dentro de ellos es una forma/figura.



Ahora aplicando la detección de formas obtenemos lo siguiente:
Como vemos a cada figura se le asigna un color random para identificar una de otra. Para obtener el fondo gris, elabore una lista, la cual contenía los datos de la cantidad de pixeles que se recorrieron dentro de cada figura, y después obtuve cual lugar era el que mayor cantidad de pixeles recorrió y asigne el color gris.  
El código que utilice es el siguiente:
***********
***********

Y esta es la imagen que obtengo al ubicar los centros de masa:


Lo que agregue al código para encontrar estos centros es lo siguiente:
********

********
Lo que hago aquí es crear una lista que me almacene los centros encontrados cada vez que se manda llamar a la función bfs.


Aqui adjunto la liga al repositorio:
https://github.com/AdriC1705/Viscomp.git

miércoles, 13 de febrero de 2013

Actividad 2- Laboratorio: Ruido, Sal y Pimienta

Para esta entrada continué trabajando con imágenes, pero en esta ocasión trabaje con lo que es ruido, sal y pimienta.

Este ejercicio consiste en agregar Ruido aleatoria mente a la imagen dada. Y estas son las imagenes que utilice para el ejercicio.

Imagen Original
Y esta es la imagen aplicándole ruido. Ademas incluyo la imagen que obtuve al quitarle el ruido y regresarla a como originalmente era.

   

Y a continuación adjunto el fragmento de código en donde agrego el código a la imagen.
*****

*****

Aquí dejo otros ejemplos : 
Imagen Original

Aunque en esta imagen se ve mas limpia al quitarle el ruido, en esta otra no se aprecia tanto ya que el color de la imagen no varia tanto, y la mayoría de los pixeles son iguales.

Imagen Original




Y aquí adjunto el código que utilice para tratar de limpiar el ruido de la imagen:
*****

*****
Y eso es todo por hoy. :) 
Aquí la liga a mi repositorio
https://github.com/AdriC1705/Viscomp.git

martes, 12 de febrero de 2013

Laboratorio 2 Cómputo Ubicuo:

Productos emergentes


RFID- Interacción con piezas de museo


Esta tecnología se tiene la idea de aplicarse de dos maneras diferentes:


  • Control de Material: las etiquetas pasivas RFID incrustado en algunos artefactos y múltiples usuarios pueden controlar la información en la pantalla moviendo los artefactos.
  • Control soportado, en el que las personas directamente llevar un RFID etiquetar e interactuar con la información, caminando dentro de la simulación espacial. 
La investigación previa  ha investigado el uso de la tecnología RFID para identificar a los usuarios. Algunos sistemas han combinado tanto la identificación y reconocimiento de ubicación, como un método de ultrasonidos utilizado con computadoras de mano en los museos de arte.
Largo alcance y de corto alcance del lector RFID son utilizado para definir tres zonas de distancia de una pantalla.

El prototipo es una combinación de visualización proyectada, un único lector RFID y el individuo
con etiquetas pasivas de RFID.

La pantalla muestra  mapas históricos sobre los flujos de inmigración a los Estados Unidos durante
varias épocas. 

Se consideran dos enfoques diferentes para la interacción de los usuarios: 
Control de materiales, cuando los países de datos de origen se asocia con un artefacto
Control, donde se asocia país de origen de datos con el persona que lleva la etiqueta. 





Bibliografia:



Laboratorio 1 Cómputo Ubicuo:

Proyectos Relacionados Emergentes

Galeria One

Es ua galeria que combina el arte con la tecnología, todo esto con un objetivo que es inspirar a las personas a visitar el museo.




El museo cuenta con el más grande revolucionario multi-pantalla táctil en los Estados Unidos, que muestra las imágenes de más de 3.500 objetos de la mundialmente famosa colección permanente del museo.  Mide 40 pies y permite a los visitantes seleccionar las imágenes tocando la pantalla.


Las obras se encuentran a la vista de la galeria y son obras maestras de Pablo Picasso, Auguste Rodin, Viktor Schreckengost, Giovanni Panini, and Chuck Close.

La galeria además de mostrar las obras lo que hace es que nos brinda información acerca de ellas.
Cuando una obra se selecciona las demás la rodean de forma miniatura.



ArtLens



Es una aplicación de iPad llamada ArtLens la cual permite a los visitantes explorar como las obras se hicieron, de donde vinieron y la razón por la que fueron producidos.

Características principales de ArtLens:

  • Near You Now-Se podrá descubrir obras de arte de colecciones que tienen un contenido interpretativo, como por ejemplo cine y audio.
  • Scanning- Utilizar el software innovador de reconocimiento de imágenes, reconoce las obras a la perfección
  • Tours-cuenta con una función de  mapero que ayuda a los visitantes a lozalizar una cierta obra.
  • Today- obtener las exposiciones y eventos que ocurren en el museo.
  • Favorities- Se puede guardar las obras de arte favoritasy compartir a través d elas redes sociales.
Museo Cleveland

También en este museo existe una aplicación con la cual se pueden realizar obras que se están mostrando hechas por algún material de barro.

Se va mostrando como hacer parte por parte y pieza por pieza a cada momento interactuando mediante una pantalla táctil..




La aplicación te señala lo que tienes que ir asiendo y de que manera hacerlo.



Bibliografia:
Link1
Link2
LInk3

Sistemas Existentes

En esta entrada hablare un poco de algunos Sistemas Existentes con relación a proyectos que realizaran algunos compañeros estas son solo algunas ideas que yo publique para algunos compañeros.

Face Biometric Login Through Web

El acceso web es algo que a preocupado a los ingenieros desde que se diseñaron sitios donde hay que autentificarse para tener acceso. En los últimos años se a estado trabajando en poder autentificarse atraves del rostro. Como funciona este proyecto? La diferencia de un login normal es que en este caso ademas de hacer login con un usuario y contraseña se añade la seguridad biometrica por lo cual para tener acceso a alguna cuenta se autentificaría al usuario por medio de su rostro. Las ventajas de este sistema es que el usuario puede logear desde cualquier parte del mundo con toda seguridad de que su cuenta no correrá riesgos, no se requiere de algún software adicional, la detección es rápida y confiable.

Video demostrativo:

Mayor información sobre este proyecto:

Face Recognition

Open Your Garage Door

Open your garage door no es un proyecto nuevo y en este caso pertenece a una compañía muy famosa como lo es CRAFTSMAN, esta compañía de motores para cochera aparte de ofrecernos una extensa gama de motores, nos ofrece la una aplicación para nuestro dispositivo movil para evitarnos el tener que cargar con el control de la cochera. Por un costo extra de 20 dolares anuales ademas de 280 dolares por la instalación CRAFTSMAN nos ofrece añadir este servicio a nuestro hogar.

Aquí un video demostrativo:


Para mayor información del servicio:

Open Garage

GPS monitoring products


Para los compañeros que están trabajando con el brazalete con GPS encontré un sitio en donde se vende este producto, solo que embes de ir orientado para gente como mis compañeros lo quieren emplear va enfocado a convictos que son puestos en libertad condición y tienen que ser monitoreados. El sitio ofrece una gran variedad de productos pero todos orientados al mismo publico, todos en forma de esposa la diferencia entre cada uno de ellos son la versatilidad que nos da y la distancia que cubre así como alarmas que suenan si una persona sale de cierto rango.


Para mayor información de este producto:



Fuentes:
  • http://www.gpsmonitoring.com/products.html
  • http://www.autoguide.com/auto-news/2011/10/open-your-garage-door-with-your-cell-phone-with-the-craftsman-assurelink-video.html
  • http://ex-sight.com/webaccess.htm


Tarea 1 - Productos existentes en el mercado

Smart Guide - Guías Inteligentes

Las guías inteligente o smart  guide han sido incorporadas recientemente al museo Thyssen. Esta guía es una aplicación creada para dispositivos móviles Samsung que ofrece a los visitantes del museo una mayor movilidad por las salas, ademas de incluir amplias demostraciones con guías visuales y auditivas. 

Los contenidos de esta aplicación han sido desarrollados por el Área de Educación del Museo, en los cuales se incluye la posibilidad de dirigir la visita signo-guiada para sordos. 

En mi opinión esta aplicación es útil, ya que ofrece mayor movilidad al usuario, y evita la necesidad de llevar un guía(persona) que valla explicando detalles y que en determinado momento se pierda información.

Referencias:

El Louvre, Museo Inteligente en Europa

IBM y el museo Louvre en Paris están trabajando para preservar y proteger las instalaciones y las obras de arte dentro del museo.

A través de SQLI, asociado de negocio de IBM, se realizo una actualización del software el cual consiste en crear una única base de datos de información compartido con el personal del museo. Este sistema de administración del museo puede sumar datos de sistemas individuales dentro del museo y ofrece al personal y a los proveedores información en tiempo real sobre cada activo. 

Esto es mas que nada para saber cuando es necesario cambiar o dar mantenimiento a las obras que ahí se encuentran, y no tanto para el usuario/visitante del museo.


Referencia:
http://america.infobae.com/notas/46029-El-Louvre-primer-museo-inteligente-de-Europa

Tarea #1 - Visión Computacional

Para la clase de Visión Computacional se nos encargo trabajar sobre lo que es detección de bordes.
En este caso trabajaremos con lo que es la Convolucion.

Que es convolucion?
Convolución es un operador matemático que puede ser utilizado para transformar dos funciones (f y g), en una tercera función que representa la magnitud en la que se superponen f y una versión trasladada e invertida de g.

Operador de Sobel

Este operador es especialmente utilizado para procesamiento de imágenes, calcula una aproximación al gradiente de la función de intensidad de una imagen.

La formulación de este operador es:

Se utilizan dos matrices de 3x3 elementos para aplicar convolucion a la imagen original y calcular aproximaciones a las derivadas.

Para obtener la magnitud del gradiente, los resultados de las aproximaciones de los gradientes horizontal y vertical pueden ser combinados:

Ahora implementado tendríamos lo siguiente:

Primero aplicando el filtro:
***************

***************

Y estas son las imágenes obtenidas después de haber aplicado el filtro
Imagen Original
Escala de Grises
Filtro

Y aplicando la convolucion:

**************

**************

Y esta seria la imagen aplicando la convolucion:

Imagen Original
Detección de bordes
Y este es el tiempo de ejecución obtenido al ejecutar el código:

Este es el código completo:
********

********
A continuación les dejo dos ejemplos mas de como quedaron otras imágenes y el tiempo de ejecución que hay en ellos:






Otro ejemplo:



Aquí dejo mi repositorio:
https://github.com/AdriC1705/Viscomp.git

Referencia: