martes, 16 de abril de 2013

Actividad 7: Simulación de Tráfico con ns-2

Para esta semana se nos encargo hacer una simulación empleando ns-2 y observar el desempeño que se tiene en nuestro sistema.

Desarrollo
[imagen de la simulación realizada]

En mi caso lo que busque simular, era el comportamiento que se tiene entre dos ruters (en dos casas), donde se estan conectando por udp dos nodos al ruter 1 y mandan la información a otro nodo y este se encuentra en el ruter 2. El tipo de tipología que se tiene es estrella, donde se tiene unido ambos ruters.

Código de la Simulación con NS-2:


Resultado:

La salida fueron cortadas, para no mostrar todo el resultado.


Medidas de desempeño
Para las medidas de desempeño me base en el código de awk de un compañero de clase, aqui la liga, donde se busca obtener la latencia y el rendimiento de lo obtenido de la simulación del archivo trace.tr.

Con lo obtenido, si graficó en gnuplot, donde podemos ver las variaciones de desempeño.

[rendimiento de la simulación]

[latencia]

Conclusiones:
En la latencia podemos observar como no se tienen tantas variaciones y tiende a ser logarítmica, en cambio en el rendimiento de desempeño se puede observar como se tienen diferentes variaciones, que es cuando empieza a tener pérdidas en los paquetes.

Actividad 7: Resumen, Localización en interiores y exteriores

La actividad de ésta semana consistió en buscar un documento académico que no sea tesis, donde hablara sobre la localización de dispositivos en interiores y en exteriores, para ésta actividad elegí:

Location Systems for Ubiquitous Computing, de Jeffrey Hightower & Gaetano Borriello, de la Universidad de Washington, dejo aquí el enlace.

Resumen:

En el documento mencionan la importancia de las nuevas tecnologías, que deberán conocer la ubicación física de las cosas, para que puedan grabar y reportar a nosotros.

Uno de los problemas que se han ido encontrando a lo largo del tiempo es la detección de ubicación automática, ya que cada enfoque resuelve un poco diferente determinado problema planteado, ya que varían en muchos parámetros, como los fenómenos físicos que se utilizan para la determinación de la ubicación, requisitos de alimentación, infraestructura contra elementos portátiles (uno de los problemas más comunes in interiores), y la respuesta en el tiempo y el espacio.

Posición Física y Localización Simbólica
Un sistema de localización puede proporcionar dos tipos de información: la física y simbólica. Por ejemplo el GPS proporciona posiciones físicas (47 ° 39'17'' N 122 ° 18'23 por'' W,  altura de 20,5 metros). Un lugar simbólico abarca ideas abstractas de dónde está algo: en la cocina, en Monterrey, cerca de un buzón de correo, en un tren que se aproxima Denver.
Un sistema que proporciona una posición física por lo general puede ser aumentado para proporcionar información de ubicación correspondiente simbólico con información adicional, la infraestructura, o ambos. Un ejemplo a mencionar de alguna tecnología que hace esto es la api de google donde nosotros le podemos decir un lugar en específico como las calles o la ciudad y te da la información física, al igual viceversa).

Exactitud y precisión
Un sistema de localización debe informar ubicaciones precisas y consistentes. La importancia de esto es conocer y tener en claro la exactitud de algún elemento, nosotros lo podemos entender aplicado en algunos receptores GPS de bajo costo, ya que puede localizar posiciones a menos de 10 metros aproximadamente el 95 por ciento de las mediciones. Unidades diferenciales más caras suelen hacer mucho mejor, llegando de 1 a 3 metros de precisión el 99 por ciento de las veces.  Los porcentajes indican la precisión o la frecuencia con la que podemos esperar para conseguir esa precisión.

Escala
Un sistema de localización de detección puede ser capaz de localizar objetos en todo el mundo, dentro de un área metropolitana, a través de un campus, en un edificio particular, o dentro de una habitación individual. Además, el número de objetos que el sistema puede localizar con una cierta cantidad de infraestructura o en un momento dado puede ser limitada. Por ejemplo, el GPS de espionaje puede servir a un número ilimitado de destinatarios en todo el mundo utilizando 24 satélites.

Reconocimiento
Para las aplicaciones que necesitan para reconocer o clasificar los objetos situados para poder realizar una acción específica en función de su ubicación. Por ejemplo,  uno de los casos más comunes es en las empresas de mensajería donde se busca reconocer la posición de determinado paquete. Un sistema de proximidad que consiste etiquetar determinados objetos para así tener su ubicación

Costo
Podemos determinar el coste de un sistema de detección de ubicación de varias maneras. Los costos de tiempo incluyen factores tales como la duración del proceso de instalación y las necesidades del sistema de administración.

Ad hoc detección
Este enfoque de la localización de objetos sin hacer uso de la infraestructura o el control central toma prestadas ideas de la comunidad ad hoc de investigación en red. En un puramente ad hoc ubicación de detección del sistema, todas las entidades se convierten en objetos móviles con los mismos sensores y capacidades. Para calcular su ubicación, los objetos cooperan con otros objetos cercanos al compartir datos de los sensores para excluir el error de medición en general. De esta manera, un conjunto de objetos de ad hoc obtiene una estimación precisa de las posiciones de todos los objetos cercanos. Las técnicas para la construcción de sistemas ad hoc como la triangulación que utiliza múltiples mediciones de distancia entre puntos conocidos, o a través de angulación, la Proximidad, mide la cercanía a un conjunto conocido de puntos y Análisis de escena, que analiza una vista desde un punto de vista particular.

Técnicas de Localización:


Conclusión:
Podemos decir que la localización es uno de los aspectos más importantes que día a día nos vamos encontrando que es aplicada a nuevas tecnologías, actualmente hay un campo de desarrollo muy grande en esta área, ya sea para crear nuevos sistemas de ubicación al igual en nuevas formas de interactuar con ellas, viendo un ejemplo muy bueno, es foursquare, donde une los sistemas de ubicación que incorpora un dispositivo móvil para así tener un sistema donde interactuar según la posición del usuario, otro en la realización de reportes, google maps, realidad aumentada con la cámara para detectar algún objeto, entre otros.

lunes, 15 de abril de 2013

Detección de Elipses

Para ésta ocasión se nos pidió hacer la detección de elipses dada una imagen, a continuación dejo el código que lo tengo incompleto, pero en si lo que busco es obtener el número de intersecciones que se tiene de la figura, obtenida de los puntos de borde y su gradiente, para así conocer su centro del elipse.

Código:
Para el código me base en los anteriores que tenía donde se aplica escala de grises, convolusión, defección de formas y normalizar, deja aquí la liga.



Referencias:
http://www.wikillerato.org/Circunferencias_tangentes_conocido_el_punto_de_tangencia.html

jueves, 11 de abril de 2013

Algoritmo de Huffman

En esta entrada lo que se buscó fue la implementación del algoritmo de Huffman que básicamente consiste en comprimir cadenas.

Algoritmo de Huffman:
Dejo un video donde nos explican sencillamente como se hace éste algoritmo


Implementación:
Para su implementación se desarrollo en python y lo buscado fue que el programa te generara una cadena aleatoria, esta cadena es guardada en binaria, a la cadena creada aplicamos el algoritmo de huffman, y esta es guardada en binario, teniendo éstos dos nos servirá para hacer una pequeña demostración de lo obtenido.

Generar Cadena, obtenemos las veces las veces que se repiten y Ordenamos la lista


Obtenemos las llaves por así decirlo (uniones o enlaces) que se tienen de los nodos


Comprimimos la cadena original y generamos el archivo binario


Descomprimimos la cadena comprimida para obtener la original


Generamos gráfo de nuestra llaves, la cual se empleo la librería networkx, donde me base de éste código


Main

Experimento
Las salidas que podemos ver en mi experimento fue la longitud del tamaño de la cadena original comparando con la cadena binaria y su llave.

Obteniendo como resultado, que si se tiene una diferencia de la longitud de las cadenas siendo mucho más pequeña cuando se aplica el algoritmo de Huffman y en el ejemplo mencionado podemos ver que ocupa solo el 29.8% porciento del la longitud de la cadena original, asi que podemos decir que se redujo hasta un 70% el mensaje.

También se crearon dos archivos el primero que contiene la cadena original y el segundo que es un archivo binario, com se puede ver el tamaño de éstos tiene una gran diferencia, que en archivo con la cadena es de 37KB y en el archivo binario de 5KB.

También podemos ver como éstan enlazados los nodos de las llaves obtenidas y cuales son los nodos con mayor peso.

Notas:
Debo de mencionar un agradecimiento a un compañero de clase por ayudarme en el desarrollo del programa, dejo el link del blog.

Referencias:
https://www.udacity.com/wiki/creating_network_graphs_with_python
http://es.wikipedia.org/wiki/Codificaci%C3%B3n_Huffman
http://stackoverflow.com/questions/10804659/python-dictionary-count
http://wiki.python.org/moin/HowTo/Sorting/
http://www.youtube.com/watch?v=8Gf8wutvS1w

martes, 9 de abril de 2013

Actividad 6: Métodos de ruteo y creación de topología en NS2

Para ésta entrada mostraremos como formar una topología y aplicar un enrutamiento utilizando el simulador NS-2.

En este caso veremos aplicado en una topología mixta mandando mensajes con el protocolo udp y veremos como se comporta al momento de estar tirando las aristas en la que se conecta con el nodo 5 que es el destino, mandándolas desde el nodo 0.

Inicializamos los nodos que vamos a empelar para el envio de paquetes

Hacemos las uniones entre los nodos

Creamos el tipo de conexión de datos a enviarse, en nuestro caso es udp y se lo asignamos al nodo 0 e indicamos que el destino será nuestro nodo 5

Vamos indicando los nodos que iremos tirando, para ser su comportamiento

Código completo:
Video:

Actividad 6: Sugerencias de mejora en requerimientos y diseños de prototipos.

Automóvil Seguro
Sugerencias requerimientos:
En este proyecto en mi opinión me gusto que hayan segmentado en dos partes y las mantengan ellos claro, que es la de base y Estación/Fuera de Estación, en la parte de planeación se me hace que falto comentar un poco más del desarrollo, entorno al material a usarse se ve que tienen la idea en claro.
Sugerencia prototipo:
Podría emplearse un modelo en escala para hacer las pruebas y tener una pequeña representación, ya sea un carro de radiocontrol, al igual estaría muy interesante y llamativo si se implementa en un carro.

Computadora Inteligente
Sugerencias requerimientos:
La idea esta bien definida, en mi opinión les falto meterle un poco más a la calendarización al igual que la idea del desarrollo, ya sean algunos diagramas o módulos a emplearse, el hardware a emplearse se ve que esta bien definido.
Sugerencia prototipo:
Emplear una computadora y estaría excelente y pudieran implementarlo en dispositivos móviles, como la nueva tecnología que emplea samsung en su galaxy s4.

Oficina Personalizada
Sugerencias requerimientos:
La descripción y los elementos a emplearse creo que estan bien definidos, en lo que les falla un poco es la calendarización y los módulos a emplearse, me gustaría que que lo definieran un poco más.
Sugerencias prototipo:
Podría emplear una casa en miniatura para su pruebas y representación, pero estaría excelente si lo implementaran en alguna oficina y así se tenga una retroalimentación con los usuarios que esto ayudaría mucho en el proyecto, al igual me gusto la idea de rfid para identificar a cada usuario, pero no estaría malo emplear dispósitivos móviles, para tener una mayor interacción al igual que se puede emplear para futuros desarrollos.

Proyecto Localizador
Sugerencias en requerimientos:
Me parece que esta todo bien definido entorno al material y software a emplearse, la única duda que tengo es que ellos mencionan como ejemplo que emplearán siri y de lo que tengo entendido es que apple no proporciona la api, me pareció bien como esta definido el calendario al igual poniendo los roles que tendrá cada miembro del usuario.
Sugerencias prototipo:
Mencionan que lo buscan emplear como tags, así que estaría bien desarrollar un componente que sea pequeño y discreto al igual que sea económico producirse, ya que el usuario buscaría ponerlo en varios elementos importantes y pequeños, tales como llaves, celular, controles, equipos electrónicos, entre otros, podrían implementar Voice Recognition API, que es una librería que interactúa con voz para implementarse en Android.

Galería Inteligente
Sugerencias requerimientos:
La idea esta bien definida, en mi opinión en lo que falla es en los elementos que van a emplear al igual el desarrollo o los módulos a emplearse, no estaría mal que mostraran algunos diagramas, la calendarización creo que esta bien estructurada, solo falto definir los roles de cada uno de los desarrolladores.
Sugerencias prototipo:
Sería buena idea implementar elementos en miniatura, en escala o mejor aún una maqueta, haciendo un pequeño simulacro de como es la interacción del entorno con el usuario.

Cama Inteligente
Sugerencias en requerimientos:
La idea la tienen muy en claro al igual que los elementos que van a emplear, me gustaría que mencionaran un poco mas de los componentes a desarrollar, al igual en la calendarización los roles que hará cada uno de los integrantes.
Sugerencias en diseño de prototipo:
Al igual que los demás podrían emplear una cama en miniatura o escala, para su presentación, pero estaría genial mostrar algún video de como empleado en una cama.

Casa Inteligente
Sugerencias en requerimientos:
La idea la tienen muy en claro, al igual que los elementos y componentes a usar y desarrollar, la calendarización manejan bien los tiempos al igual que los roles que tendrá cada uno.
Sugerencias prototipo:
Igual que los proyectos anteriores, sería buena idea utilizar una modelo en escala o una maqueta donde se representen todos los elementos y sería buena idea tener la implementación en una casa para así tener la retroalimentación con los usuarios.


Garage Inteligente
Sugerencias en requerimientos:
La idea la tienen muy en claro,  los componentes a usar y desarrollar los tienen muy en claro, al igual que la calendarización tienen los roles y las actividades bien definidas.
Sugerencias prototipo:
Al igual que los proyectos anteriores estaría bien emplearlo en un ejemplo a escala o una maqueta y la misma sugerencia que las demás, de implementarse en un garage para tener la retroalimentación, al igual sería una buena sugerencia de trabajar en el producto final con lo demás equipos que tengan que ver con casa inteligente, para así tener un sistema más completo.

Presentación Proyecto Visión Computacional