jueves, 28 de febrero de 2013

Detección de diagonales

Identificar líneas diagonales y/o de ángulo arbitrario


Para esta entrada lo primero que se hizo fue corregir el código de detección de líneas para usar "arctang", una vez teniendo esto también se corrigieron algunas condiciones para poder encontrar los ángulos en todas las direcciones.
Algunos ejemplos del resultado, donde el lado izquierdo es la imagen original y el derecho es la imagen que dio como resultado el programa.
Las líneas rojas son diagonales, las verdes son verticales y las azules son horizontales:





El código es:


Otro ejemplo:



Liga al repositorio

Referencias

Diapositivas de la clase
Transformada de Hough

martes, 26 de febrero de 2013

QoS Routing in Wireless Mesh Networks with Cognitive Radios

El articulo trata sobre el análisis de QoS de una conexión de malla inalámbrica con radios cognitivos, lo que implica que se tenga que seleccionar una ruta y canal de distribución y programación. Esto es un problema difícil de resolver por la interferencia y la heterogeneidad. En este documento se presenta una aplicación distribuida con un protocolo de enrutamiento que puede seleccionar una ruta y asignar recursos para una solicitud de conexión para así satisfacer su ancho de banda de extremo a extremo. Con NS2 se muestran los resultados de la simulación.

La radio cognitiva es un paradigma de comunicaciones inalámbricas  en donde las redes que tienen los mismos nodos inalámbricos pueden cambiar los parámetros particulares de transmisión o de recepción para poder ejecutar su cometido de manera eficiente sin llegar a interferir con los usuarios autorizados.

http://eastaiza.wordpress.com/2011/07/28/7/
El ancho de banda es un parámetro básico de QoS y el foco de este artículo. Una solicitud de conexión QoS debe ser admitida si existe un camino con ancho de banda requerido. De lo contrario, deben ser rechazados. Un ancho de banda garantizado en la ruta de acceso en una red cableada puede ser fácilmente obtenido simplemente haciendo caso omiso de esos enlaces sin suficiente ancho de banda y la aplicación de un algoritmo de la ruta más corta en la red residual. Pero el enrutamiento en una red inalámbrica multisalto es mucho más difícil debido al impacto de la interferencia. Las comunicaciones entre un par de nodos puede consumir todo el ancho de banda. El ancho de banda disponible en cada enlace de nodo / está relacionada a interferencias causadas por sus vecinos dentro de la interferencia
 de rango. La radio cognitiva en el que se espera un gran volumen de tráfico para ser entregado, es capaz de utilizar espectros más eficientemente, por lo tanto, mejorar la capacidad de la red de manera significativa.
http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=4698708
En este trabajo se estudia el problema de enrutamiento QoS en WMN con radios cognitivas, lo que implica no sólo la selección de rutas sino también la asignación de canal y la programación. Aquí se presentan un protocolo distribuido de enrutamiento que es capaz de seleccionar una ruta y asignar canales y ranuras de tiempo para una petición de conexión para satisfacer su extremo-a-extremo requisito de ancho de banda. La eficiencia del protocolo que se propone se justifica por NS2.
Al parecer este es el primer articulo en el que se estudio QoS de redes en el contexto de las redes de malla inalámbricas con radios cognitivas.

Se considera un modelo de tráfico dinámico en el que las peticiones de conexión  llegan aleatoriamente. Cada solicitud de conexión tiene un requisito de ancho de banda B. Cuando una nueva solicitud de conexión llega, se tiene que encontrar un camino para el enrutamiento y reservar recursos (bloques de transmisión) a lo largo de la ruta de acceso para satisfacer su requisito de ancho de banda. Se supone que una conexión siempre usa una única ruta de acceso para la entrega de paquetes, es decir, no se permite dividir el tráfico.

Hay dos tipos de argumentos potenciales asociados con una ruta de acceso: contención interflujo y contención IntraFlow. Contención interflujo es causada ​​por la interferencia entre un enlace seleccionado para la nueva solicitud de conexión y otro enlace utilizado para un flujo existente. IntraFlow es causado ​​por la interferencia entre dos enlaces diferentes seleccionados para la nueva solicitud de conexión.

http://www.sciencedirect.com/science/article/pii/S0020025512003192

Para asignar los bloques de transmisión, cada nodo tiene la necesidad de seguir la pista de alguna información necesaria de todos los otros nodos de su vecindad interferencia, tales
como la disponibilidad de canales y el estado de bloque de transmisión en este protocolo, cada nodo transmitirá esta información a sus vecinos de dos saltos sobre el control común utilizando el control
la radio cada vez que hay algún cambio. Hay que tener en cuenta el canal de control común puede soportar una transmisión de gran rango. Por lo tanto, cada nodo puede obtener esta información de todos los nodos que potencialmente puede interferir con él.

Referencias

QoS Routing in Wireless Mesh Networks with Cognitive Radios



Experimentos de QoS

Para esta tarea yo elegí usar Ustream.tv en Infinitum WIFI y Ethernet y TvCable.


La primera prueba que hice es la de ancho de banda, para saber el ancho de banda utilice la herramienta "iperf" que permite obtener estadísticas en tiempo real, para esto utilice un python que me ayudara a determinarlo cada cierto tiempo.


El código es el siguiente:



Y así es posible ver de una manera más automatizada el ancho de banda.

Los siguiente es obtener la latencia, para esto use ping y también con un python extraje los datos necesarios, la latencia es la suma de los retardos temporales, también obtuve el jitter que es la variación en el tiempo de que los paquetes llegan. Y el ultimo fue el de la perdida de paquetes de esto saque un porcentaje también con ping. este es un problema bastante común. Este es el código que me ayuda a obtener las cifras:




Ethernet de infinitum

Para poder medir bien estas características  lo que hice es una gráfica que me ayuda a ver rápidamente si la característica esta dentro del rango permitido y que no haya daños en la comunicación. Como dice en la entrada de laboratorio el rango permitido de latencia es de 250 ms, cuando se pasa ese umbral la comunicación se vuelve molesta. Y para el jitter debiera ser ser menor a 100 ms. Si el valor es inferior a 100 ms el jitter puede ser compensado de manera apropiada. De otra manera debe ser minimizado.
Aquí una gráfica que muestra el umbral con lineas rectas y los valores obtenidos:



Vemos que en este caso la latencia siempre esta correcta, pero el jitter si esta arriba de lo que debería. De los paquetes no hay gráfica ya que no hay ninguna perdida de estos.
Hice una prueba más. en la que ahora si se muestra todo en orden:


Wifi Infinitum

Para esta prueba son las mismas consideraciones que la pasada, en cuanto a valores permitidos de latencia y jitter.



Aquí podemos ver que también el tiempo de latencia esta correcto, sin embargo en jitter hay un error ahí que hacer que se deteriore la comunicación, pudiera ser congestión de red, la perdida de sincronización o por diferentes rutas seguidas por los paquetes al destino.
En esta otra prueba, podemos ver que hay aun mas errores en la comunicación:




WiFi TvCable

Al estar probando con este internet, me di cuenta que los resyltados son muy parecidos a los de ethernet de Infinitum, aquí una gráfica:




Podemos ver que es mejor usar el ethernet o el internet de TvCable ya que ofrece una comunicación con más calidad a la hora de usar el servicio de USTREAM. En comparación ethernet de Infinitum con TvCable parece ser que Infinitum es inferior.

Refrencias

Ping


Detección de lineas

"Ahora agreguen a lo que tiene cada quien (aún sin andar googleando y sin usar librerías para visión) una rutina que detecta todas las líneas rectas horizontales y verticales."

Imágenes de entrada(izquierda) y sus salidas(derecha)






"Las líneas detectadas se marcan con tonos de rojo fuerte. Un tono para las horizontales y otro tono para verticales.
El programa imprime un listado que indica para las dos orientaciones la cantidad de pixeles pertenecientes líneas de esa orientación."




Código: