jueves, 28 de febrero de 2013

Laboratorio de visión computacional diagonales

Buenas compañeros y gente blogera que nos visita.

En esta ocasión mostraremos una variante del programa anterior, ahora en este apartado les enseñaremos distinguir entre horizontales, verticales y diagonales, claro es difícil que salga exactamente como queremos y en estos ejemplos se trata de hacer de la mejor manera que se pueda.


Como sabemos anteriormente se utilizan unas ecuaciones para calcular si son líneas o no, y utilizando frecuencias para ir aceptando los diferentes puntos.


Les ponemos nuevamente las siguientes ecuaciones del anterior post para sacar los ángulos y rho

Ahora aquí si nos importara realmente el valor de theta ya que theta nos dirá si es vertical, horizontal u diagonal.

Posteriormente de calcular theta, con los dos diferentes gradientes existen varias posibilidades si pasa correctamente este puede tener varios valores:

  • theta = 0,  Horizontal= 0 grados.
  • theta = pi/2, Vertical  = 90 grados.
  • theta = pi, Horizontal = 180 grados.
  • theta = pi/4,  Diagonal = 45 grados.
  • theta = otro valor.

Los valores que a nosotros realmente nos importa son los que tienen valor predefinido ya que nos indicaran exactamente si son horizontal, vertical o diagonal.

Con respecto a otro valor este puede ser acomodado utilizando diversos umbrales para categorizarlos como una linea inclinada de cierto ángulo.


Aquí el código que hace parte de esto:
Termina

Posteriormente solo agregamos al final del código que si theta tiene cierto valor se pinte de un color distinto para cada una de las orientaciones.

Aquí el código:
termina


Para finalizar les mostramos unas pequeñas imagenes probando el código

Primero identificamos verticales, aunque en este ejemplo no son verticales a 90 grados si no con variaciones de ángulos.

 Aquí se identifica la diagonal de medio y al parecer también las líneas inclinadas, cabe de descatar que las lineas inclinadas y diagonales no es mas que la combinacion tanto líneas de 'x' e 'y.'





Aquí mostrando todas las lineas pero no funciona tan bien como se espera ya que el color para la horizontal tambien se pone  algunas partes de la diagonal  ya que, como se menciona arriba las diagonales tienen 'x' e 'y'.

Aquí la imagen:


Y para finalizar aquí otra imagen identificando las diferentes diagonales:






 Termina


Nuevamente este programa es parecido al anterior y basado en gran medida del código de la doctora Satu Elisa Scheaffer
Aquí el código completo nuevamente

termina

Espero que les haya gustado hasta la próxima..

martes, 26 de febrero de 2013

Laboratorio de Telecomunicaciones QOS

QOS


Estos son unos parámetros para la calidad de streaming, además que se mencionaron alguno de estos parámetros en un anterior post.

En la actualidad existen diferentes parámetros para poder medir la calidad de los streaming, en este post hablaremos de los más populares que existen o que se encuentra facilmente por la red.



Perdida de Paquetes:




Las perdida de paquetes puede ser un grave problema en los diferentes streaming, esto puede ser causado por el mal etiquetado de las cabeceras de los diferentes paquetes, haciendo que estos paquetes no sean reconocidos por el receptor y rechazándolos o que se extravió atravez de la nube, esto causa que el emisor tenga que volver enviar los paquetes causando un pequeño retardo en la carga del vídeo.

Esta perdida de paquetes debe ser máximo 1% de toda la transmisión para asegurar la buena calidad del streaming.

Unas recomendaciones para evitar las perdidas es no enviar los silencios, ya que gran parte las conversaciones tienen silencios en grandes cantidades. Y si solo enviamos datos que son audibles liberamos gran parte del congestionamiento.

Este fenómeno también tiene que ver con jitter.


Retardos:




Los retardos es cuando pasa cierta cantidad de tiempo y los paquetes no llegan al tiempo que le corresponde, estos retardos comúnmente también son llamados latency. La causa de esta latency es debido por lo general a los datos que fluyen en gran cantidad atravez de una red compleja de comunicaciones.

Cada uno de estos sistemas o subsistemas tiene su tiempo de procesamiento depedientemente de sus diferentes capacidades.
El retardo individual de cada uno de ellos es la latency que se mide
El retardo o latency máximo que se puede obtener es de 150 ms para asegurar una óptima calidad de la seña.





Jitter:



El Jilter depende mucho de los retardos mencionados anteriormente. En si es la variación en el tiempo de llegada de los diferentes paquetes de datos sucesivo. Lo que se quiere decir es que los paquetes tienen que llegar igualmente espaciados para tener una buena conversación. Esta medición solo se puede usar por medio de muchos datos y no tendría mucho caso hacerlo a un solo paquete.

El Jitter tiene tres subdiviciones dependiendo como se esta midiendo o ponderando:

  • Por periodo: Causada por señales externas
  • Dependiente de datos: Esta depende del flujo de los datos enviados y son provocados por diferentes interferencias
  • Anchura de impulsos desiguales: Diferentes inclinaciones de las señales ascendentes y descendientes.
La recomendación entre la comunicación de un punto inicial  y final de la comunicación debería ser inferior a 100 ms. Si es menor a esto quiere decir que es de buena calidad la señal.

Se puede minimizar usando jitter buffer, que consiste básicamente en crear una pequeña cola para ir recibiendo los paquetes y enviándolos de nuevo con un pequeño retraso. Esto ayuda a no perder los paquetes y que lleguen correctamente a su destino pero a consecuencia aumenta el retraso de la señal. Entre menos buffer menos retraso pero mas paquetes fallidos.







Referencias:
http://www.ciscopress.com/articles/article.asp?p=357102&seqNum=2
http://saber.ucv.ve/jspui/bitstream/123456789/731/3/Anexo%202.pdf
http://www.voipforo.com/QoS/QoS_Jitter.php


Pruebas de calidad para Streaming

Buenas compañeros y gente que nos visitan en esta ocación hablaremos de la calidad del streaming de una quedada en google y ver que tanto tiempo tarda en pasar la información entre otras cosas.


Agradecimientos especiales a Jonathan Alvarado por aceptar ayudarme con la prueba.

Características:
  • Se probo sobre infinitum (Telmex) 1 mb
  • Velocidad: 1mb
  • Sistema operativo : Ubuntu 12.10

Antes que nada google utiliza protocolos udp para el envió de la información o de los paquetes, esto lo podemos comprobar usando la herramienta wireshark.

Aquí no nos enfocaremos mucho sobre esta herramientas si no las estadísticas arrojadas.

No hay nada mejor que usar gráficas para representar nuestros paquetes a través del tiempo:
  • Eje x : Tiempo transcurrido
  • Eje y: Paquetes recibidos
  • Linea negra: Todos los paquetes
  • Barras roja: Paquetes de google

Como se puede observar la inicio de la aplicación existe un pico elevado de información y posteriormente se estabilizan los datos enviados por parte de google

En si para la conexión, google no es muy bueno pero para mantenerlo es una cosa distinta por que es en donde esta su fuerte, aunque también influye mucho sobre la velocidad del internet con el que contemos.

La velocidad después del pico donde se mantiene continuo es aproximadamente de : 2233,33 paquetes por segundo. Como les menciono estos datos son aproximados

También verificamos si existían perdidas de paquetes y duplicados de paquetes pero en la gráfica no se notan, así que pondremos específicamente, aquí una pequeña imagen  para los diferentes duplicados.


Las líneas negras nos muestran que son duplicados del protocolo tcp enviados desde la misma ip del aplicación esto afecta la comunicación retardando el streming pero no fue tan problematico ya que solo paso antes y después del pico de paquetes mayores.

Aquí mostramos una imagen con los diferentes tamaños de los paquetes  y el tiempo que nos tardo en llegar para estimar visualmente el retardo de los mismos.


En esta parte no existe pérdida de paquetes, entonces la conexión es de calidad, aunque si existe pequeños retardos, si nos fijamos en la columna de los bytes y comparamos el segundo termino de 347 bytes contra el octavo termino 323 que es menos, este último tiene una duración de 0.37 y el primer termino de comparación nos indica una duración de 0.14. Esto quiere decir que el segundo paquete que medimos tiene un retardo.


Ya para finalizar sacamos una gráfica para obtener los diferentes paquetes y sus llegadas para estimar el jitter:


Aquí vemos el tiempo de lado izquierdo y como van llegando con respecto al tiempo


Bueno y esto es todo lo que se pudo lograr por el momento espero que les aya gustado.








Laboratorio Ave: Sugerencias

Buenas aquí les dejo unas sugerencias a mis compañeros para algunos de sus proyectos

Alarma inteligente (Carro):

Sobre el estudio de campo me pareció bien la idea sobre  cambiar la alarma de otra forma. Seria bueno algún tipo de filtro sobre lugares donde ocurre mas a menudo  el robo de autos para mejor información, tambien se podría agregar de cuanto esta dispuesto a gastar para esta alarma, ya que contará con mejor tecnología a la que se usa normalmente y si el usuario con auto esta dispuesto a gastar dinero para algún smartphone en caso de que no tenga.

Oficina personalizada:

Me parece que esta muy bien la idea y funciona para diferentes empresas, aunque si hubiera sido buena idea realizar mas cuestionarios o entrevistas a mas empresas, además creo que seria bueno también delimitar un poco mejor el proyecto o hacerlo mas especifico para alguna área ya sea para seguridad o confort para una mejor aplicación.

Galería inteligente:

Pues en si me parece bien que se quiera atraer personas jóvenes pero también seria bueno saber la opinión de las otras personas que acostumbran ir a los museos, también creo que seria bueno explicar unos términos, ya que los entrevistados o encuestados pueden confundirse con términos como galería inteligente y con respecto al proyecto me parece bien ya que mucha gente no va a los museos por gusto. También se podría pensar en alguna persona virtual que vaya guiando a las personas a las diferentes áreas del museo o algún mapa interactivo del mismo.

Cama inteligente:

Pues me parece buena idea que uno se pueda levantar temprano y no se nos haga tarde pero también seria bueno agregar si los usuarios tienen hábitos especiales sobre ciertos días o días festivos o alguna enfermedad en donde haya que levantarlos temprano ciertos días sin necesidad de programar la alarma y con respecto a los demás me parece muy bien.


Carnxp:

Sobre casos de uso pues seria bueno delimitar un poco mas la edad ya que gente mayor no podría conducir. También se podría preguntar si el automóvil solo lo usa una sola persona para una mejor personalización o para la familia, también de igual manera se puede delimitar a personas que usen dispositivos móviles o preguntar si están dispuestos a comprar la tecnología necesaria. También se podría poner detectores si solo una persona viajara en el auto o varios y así personalisar mejor el viaje.


Localizador de personas:

Pues la idea general esta padre, en especial para buscar a los niños perdidos, no se si me paso  en la presentación, pero creo que podrían agregar algún opción de que si pasa de cierto rango mande una señal de precaución lo mas rápido posible , también se podría utilizar una alternativa  de servicios gps  o de datos  sustituyendo por un sistema de radio para no necesitar servicios gps, pero con sus respectivas limitantes.  


Todas son mis nobles opiniones y/o sugerencias.

Laboratorio Obed: Suegerencias

Alarma inteligente para auto:
Realizar encuestas para su tipo de producto en mi punto de vista no ayuda mucho ya que la encuesta puede caer en manos de una persona que no tenga automóvil y donde le seria difícil opinar, para ustedes ayudaría mejor una entrevista y así encontrar mas información que desean, en donde si ayudaría mucho la encuesta es en los aditamentos que podría tener su alarma.
Seria bueno que la herramienta que controla la alarma fueran diferentes tipos de cosas ya que por alguno u otro motivo se nos extravié o roben.

Oficina personalizada:
Aquí al parecer realizaron una entrevista cosa que no ayuda mucho ya que solo es el punto de vista de una empresa, en este caso la realización de una encuesta ayudaría mucho más, también abría que definir su base de lo que piensan hacer ya que las preguntas realizadas fueron "le gustaria que tuviera?...." entonces lo que buscaban en esto eran ideas mas que intentar encontrar algo que los ayude a entender la situación de su proyecto

Localizador:
Aquí se debe de tomar en cuenta el nivel económico de la gente al parecer la encuesta fue llevado a personas con un nivel medio en la sociedad pero cabe destacar que no solo a ese tipo de personas se les pierde algo o alguien, me refiero al hecho de que no todos pueden costear un android o planes, o los pensionados como se pudieron dar cuenta. Dado esto seria bueno tener un servicio web ya que ahora la gente tiene mayor a exceso a esto.
Seria agradable implementar esto a algo que no incomode al que lo esta usando como podría ser un brazalete para un niño o un collar para un perro.

Galería inteligente:
Como se menciono en clase aplicar la encuesta resultaría más efectiva a gente que le gusta ir a museos y obtener mejores resultados. También seria bueno realizar entrevistas a dueños de museos para ver si están dispuesto de pagar este tipo de proyectos

Despertador inteligente:
Hacer de su proyecto una aplicación seria algo accesible para el tipo de personas a las que entrevistaron y encuestaron, ya que aquí no se ve dificultad de que cierta persona no pueda conseguirlo todo dependerá de su precio. 

Casa inteligente:
Aquí claramente necesitan encuestar a muchas mas persona ya que 15 en mi opinión no les dará un buen resultado.
Aquíseria bueno que tuviera una función en la que cuando no haya nadie en la casa, esta función realice movimientos como si pareciera que alguien estuviera.

CarNXP:
Una entrevista seria mucho mejor ya que la encuesta puede ser contestada por gente que no tiene carro como seria mi caso, solo en ciertas cuestiones les ayudaría esto como se pudo apreciar las ideas que puede tener su proyecto


Garage inteligente:
Aquí habría que llevar su encuesta a la gente que tiene garage para obtener una mejor obtención de información y evitar respuestas vagas de gente que no tiene un garage y solo esta dando ideas que posiblemente no sirvan.
Aquí seria bueno que un dispositivo móvil pudiera abrir el garage y que guarde las veces que a sido abierto y cerrado para así tener información de las entradas y salidas

Entrada # 4 Laboratorio Pedro


Laboratorio 
de 
Temas Selectos de Sistemas Inteligentes
By Pedro Miguel Martínez Caballero

Sugerencia para los proyectos de mis compañeros:

Alarma Inteligente

Comienzo con la encuesta realizada por ellos, para que puedan obtener mejores resultados o mejor dicho resultado les recomiendo que planteen bien a que tipo de personas le piensan hacer la encuesta (Ya que a mi me la hicieron y yo no cuento con vehículo) y también plantear las preguntas mejor ya que las preguntas las tienen esperando que todos los encuestados respondan todas las preguntas ya que hay posibles respuestas que te impediría ponerles algunas preguntas (Por ejemplo el mio si yo no manejo carro pues tuve que contestar todas y en algunas no sabia ni que ponerle).

Abocándome al proyecto la idea es muy buena ... ya que no existen muchos sistemas en donde la alarma se inteligente (en su mayoría son un botón para desbloquear y uno para bloquear el seguro) y la idea de manejarla mediante otro medio al habitual seria excelente.

De entre mi sugerencia es que a la forma en la que sera hecha la alarma (Creo que se definió por celular) definir algún otro medio de respaldo, por ejemplo las llaves, ya que si en dado caso el aparato se quedara sin batería, se te extraviara o te lo robaran, pues en lo que se encuentre pues tener un sustito.

También ver la posibilidad de cambiar el aparato que maneja la alarma, por ejemplo: volviendo a lo anterior si te lo robaran o cualquier otra cosa en la que no puedas recuperar el aparato pues te comprarías otro pero ver la posibilidad en la que se pueda eliminar el aparato anterior como alarma para que la personas que te lo haya robado intente hacer mal uso de el (desactivando la alarma de tu carro y robarte el carro).

Oficina Inteligente

La idea esta muy bien.

En mi opinión las preguntas se las deberían haber hecho primeramente a los dueños de las empresas ya que ellos son los que pagan y son los que te darían una mejor opinión (para convencer a otros dueños) acerca de lo que tendría la oficina.

Localizador de Personas

Esta idea me parece excelente sobre todo para niños, personas en general y borrachos (Ese Triana), ya que si en dado caso se extravían pues mediante esa aplicación poder encontrarlas.

La utilización de una pulsera también me parece muy buena, de entre mis recomendaciones para esta es que sea de un material en el cuál no te la tengas que quitar a cada momento que vallas a hacer algo o sea que nos permita hacer actividades como deporte, bañarnos y cualquier otra cosa mas.

Que esta pulsera tenga una combinación de colores o exista en varios colores con el que las personas secuestradoras no se den cuenta que esa pulsera es un localizador.

La pulsera tenga una modalidad en la cuál se pueda apagar esta pero al momento que se realice esta acción indicarle al aparato en lugar en donde fue desactivado este; pero que tenga un modalidad en el que si la persona a localizar se encuentra extraviada pues que el aparato tenga una especie de indicación en la que si la personas esta extraviada el aparato no se pueda apagar por nada del mundo.

Galería Inteligente

Pues esta idea me agrada mucho ya que haría que las personas se interesen mas el visitar lugares como museos y exhibiciones.

Realizar dos tipos de encuestas una a las personas que trabajen en museos y galerías o gente en ese medio.

Y otra para el público en general para en base a esos dos puntos de vistas tener lo que mas le agrade a los dos puntos.

Definir bien que cosas va a llevar cada tipo de Galería  Los museos llevaran esto, las Galería de Fotos o de arte esto ya que no todas las galerías podrían tener todo lo que cada una llevaría.

Cama Inteligente

Esta idea me parece excelente yo lo usaría (ya que me quedado dormido a veces).

En la parte de alarma:


Casa Inteligente

Esta idea me parecería excelente sobre todo en algunas colonias donde la seguridad es una necesidad importante.

De entre las cosas que me agradarían seria algún sistema con el que se evitaran los robos en el que si no se encuentra nadie en la casa y alguien se meta a robar pues la casa lo detecte y lo deje encerrado y le haga algo para evitar salir como choques eléctricos o gas lacrimogeno y le notifique a los dueños y a la policía del ladrón.

Llave Inteligente para Auto

La idea me parece buena pero lo malo es que no tengo carro.

De entre las cosas que también estaría bueno agregar seria el acomodo de ciertas cosas del auto, por ejemplo yo que estoy alto y gordo pues no cabria igual que alguien chaparro y delgado así que ver la forma en el que los asientos y los espejos laterales se acomoden en base a quien va a manejar el vehículo.

Garage Inteligente

De esta idea me gustaría que combinaran varias ideas que tienen en lugar de manejar una sola, ya que se pueda manejar de forma remota pero mediante un Smartphone, que los carros manejen el RFID pues ya que para ti te podrá hartar el tener que estar presionando cada vez que quieras entrar al Garage.

lunes, 25 de febrero de 2013

Visión Computacional Detección de Líneas

Bienvenidos compañeros y personas que nos visitan, en esta ocasión hablaremos como encontrar las líneas de una imagen. Bueno empecemos

La forma de una línea  recta se puede representar con la siguiente ecuación matemática :





Ahora para sacar los diferentes rho de cada pixel es necesario obtener los ángulos de cada uno de los pixeles. Estos ángulos nos indicaran que tipo de dirección tiene, ya sea izquierda , derecha, arriba , abajo o ningún lado. Para obtener estos ángulos es necesario saber los gradientes de la imagen tanto en x como y.

Quedando así la siguiente ecuación:

atan = arco tangente

Y para sacar gradiente en x  y gradiente en "y", es necesario utilizar máscaras, en este caso se utilizó la máscara de sobel, en anteriores post se habla sobre identificación de bordes y como hacerlo.

Por último con respecto a esta parte, en caso de que gx = 0 y la sumatoria de ||gx|| + ||gy|| sea igual a cero, se considera que no tiene ninguna dirección en especifico y en caso que no sea hacia se asigno un valor pi.
Aquí la parte del código que hace todo esto:

Termina

Aclaración: Se trabajo con dos imágenes la final y una imagen con bordes,  se utilizó la imagen de bordes para hacer mas rápido el proceso de rho y solo usar los pixeles de los bordes. Al igual que se saltaron los bordes de la imagen para no generar mucho ruido.


Posteriormente se verificó la frecuencia de aparición de los diferentes ángulos y su respectivo rho. Ya casi al final del  proceso se realiza algún sistema que indica si existe muchas repeticiones de un mismo ángulo esto, nos dice si pertenece a una línea.

Aquí el código de obtención de frecuencias y la selección:

Termina
Y para finalizar solo comparamos los diferentes rho con los rho acpetados y los pintamos de color rojo
Código de pintar
Termina


Aclaración: No se espera que salgan bien las imágenes ya que siempre existirán  errores como la selección o el calculo de rho

En mi ejemplo solo función para identificar lineas horizontales :C

Aquí unas imágenes

Primera prueba:
Imagen inicial:



Imagen final:

Tiempo que tardo 3.37s  Solo se tomo los pixeles de los bordes
Segunda Prueba:

Aquí la imagen final
Tiempo 1.38 con las mismas condiciones de la anterior
Como vemos en esta imagen se detecta las linea de la izquierda pero también varios puntos de lineas de los mismos números del lado izquierdo. 


Código completo:

El código fue hecho en base a una referencia de un código escrito por la doctora Satu Elisa Schaeffer
: