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
:

jueves, 21 de febrero de 2013

Visión Computacional Laboratorio 3

Convex Hull


Buenas en esta semana tratamos de hacer un Convex Hull pero no se administro bien el tiempo y lo que obtuvimos fue algunas uniones y también realizamos un pequeño truco para hacer mas gruesos las lineas y que salga mejor el Convex Hull


Para hacer el  Convex Hull se pensó usar el método de  QuickHull

Pasas:
  • Primero se verifican los puntos mas esquinados. Esto quiere decir norte, sur , este oeste
  • Posteriormente que se obtiene la cerca solo se vefica cual de los puntos están afuera de esta e incrementar la cerca

Puntos con la línea:






Ahora para poder realizar esto se necesito que  la imagen tuviera lineas mas gruesas de lo normal, para esto solo se utilizo la técnica de normalizacón. Esta técnica se aplica después de la convolución (obtener los bordes) tomando espacios entre colores de blancos y cambiándolos a este mismo color además que con binarización limpia la imagen para nuestro propósito

Imagen después de la convolución



Imagen después de Normalización y Binarización




Código del programa hasta ahora:


miércoles, 20 de febrero de 2013

Métodos de Codificación Tarea 2

Buenas en esta ocasión se realizo una simulación utilizando los métodos de búsqueda para palabras.
Se utilizo el algoritmo de boyer-moore y el algoritmo de knuth-morris-pratt.

Algoritmo boyer-moore

Este algoritmo es considerado como uno de los mas eficientes para búsqueda de palabras (en esta entrada demostraremos esta eficiencia comparando con otro método).  Este algoritmo analiza las cadenas de derecha a izquierda.

Proceso:
Matriz de saltos:

  • Se elimina el ultimo elemento de el patrón de palabras
  • Se invierte el patrón
  • Se inserta todos aquellos elementos que no estén en el patrón referente a la cadena de texto


Algoritmo Principal:

  • Se verifica los caracteres de derecha a izquierda, si el primer elemento a verificar si es errónea se realiza el salto con respecto a la matriz de salto
  • Si pasa correctamente se itera de izquierda a derecha sin tomar en cuenta el ultimo elemento del patrón ya que se tomo en el paso anterior
  • Si se equivoca se mueve la cantidad de veces que se itero
Ejecución:




Aquí el código
El algoritmo que se utilizo para comparar el anterior se llama  knuth-morris-pratt

Primeros e calcula un función de arreglos  para poder realizar los diferentes saltos
Para el algoritmo principal se manejara de izquierda a derecha
  • Se calcula la cantidad de iteraciones asta que encuentre la palabra o falle
  • Para identificar el salto se usa la función anteriormente mencionada restando la cantidad de iteraciones, menos la posición con respecto a la iteración final.
  • Se repite el proceso nuevamente
Ejecución:



Aquí el código

Para comprobar cual de ellos es mejor se puso una variable para calcular cuantas iteraciones se realizaban con la misma cantidad de tamaño n y m por medio de una simulación

Aquí los resultados:

Primer algoritmo


Segundo algoritmo


Esto demuestra que el primer algoritmo es mas eficiente ya que no utiliza tantas iteraciones como el segundo

Para la simulación se utilizo código anterior de esta entrada,  al igual que el awk solo que con unos pequeños cambios

Aquí el código de ambos

Gracias por su atención

referencias:
http://en.wikipedia.org/wiki/Knuth%E2%80%93Morris%E2%80%93Pratt_algorithm
http://www-igm.univ-mlv.fr/~lecroq/string/node14.html
http://jaked409.livejournal.com/91681.html






martes, 19 de febrero de 2013

Entrada # 3 Laboratorio Pedro

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

Para esta semana voy a hablar acerca de técnicas para estudio de campo.

Que es un Estudio de Campo

Un Estudio de Campo consiste en estudios con son realizados en el lugar en donde se implementara producto (Área de la sociedad a la que esta destinada el producto final).

Beneficios del Estudio de Campo

Permite a la persona que hace el estudio conocer lo gustos y especificaciones que tienen los usuarios acerca del producto.

Este proceso se puede realizar de dos formas:

  • Observación Directa.- El estudio se centra en áreas especificas que desea el investigador.
  • Observación Indirecta.- Aquel estudio (se graba) en el cuál el investigador no se encuentra presente (ya que los usuarios suelen dar mayor información cuando el investigador no esta presenta).


Este proceso tiende a ser molesto así que el investigador debe tener una manera con el que el usuario no se desespere y así obtener los mejores resultados.

Planificación del Estudio de Campo

  • Establecer objetivos e información a requerir (de los usuarios). Decidir  que va a hacer con todo lo que se obtenga y partir de estos datos datos modificar todos los procesos que tenían planteados en el proyecto.
  • Establecer tiempos, lugares y las personas que serán parte del estudio.
  • Decidir la forma en la que sera grabada el estudio (Escrito, Audio o Vídeo) hacia las personas.
Proceso

Asegurar que los usuarios que están siendo parte del estudio estén consientes de en que consiste el estudio.

Realizar alguna prueba del estudio que se hará a los usuarios para tener una idea de las posibles respuestas o acciones que tendrían los usuarios y también para tener el tiempo promedio en el que se llevaría acabo el estudio. Si la estudio incluye actividades informales con el público en general, que deseen conversar con el observador. Asegúrese de que no hay suficiente tiempo para esto.

Trate de ser lo más discreto posible. No permita que usted o su equipo interrumpan el estudio.

Tomar nota de cualquier evento que usted no entienda y trate de aclarar con el usuario tan pronto como el estudio ha terminado.

Trate de ser consciente de la amplia gama de influencias que están afectando al usuario.
Si es posible fotografiar el área de trabajo o usuarios de la zona de operaciones, ya que esto actúe como un recordatorio del contexto ambiental.

Después de sus observaciones, anote sus primeras impresiones antes de la etapa de análisis más adelante.


Realizar Informe

Analizar y sintetizar un informe en relación con los objetivos establecidos en el estudio.

Redes y sus inseguridades. Monitoreos de clientes

Buenas en esta ocasión hablaremos de como monitorear tu red y saber que estan haciendo cada uno de los clientes, nodos o computadoras, bueno iniciamos.

Existen distintos tipos de herramientas en linea para verificar los diferentes nodos y paquetes que se estan recibiendo.

Una de estas herramientas se llama ETTERCAP. Esta herramienta permite verificar los diferentes paquetes de la red y ver que es lo que se esta enviando desde un host o router a una ip en específico (computadora).

Para instalarlo es sencillamente fácil, solo tecleando lo siguiente en la terminal

$-> sudo apt-get install ettercap-graphical

Y listo ya lo tenemos instalado. Posteriormente para iniciarlo se pone lo siguiente en la terminal de igual manera:

$-> sudo ettercap -C -i wlan0

en si wlan0 es la interfaz que estamos usando, y es necesario ejecutarlo como root por eso el "sudo".
Posteriormente nos saldra una pantalla y nos iremos al menu Sniff y escogemos la primera opción y se nos pedira que insertemos la interfaz en nuestro caso es wlan0.


Luego de eso  nos aparecera otra ventana, nos dirijimos al menú Host y seleccionamos la opción scan for hosts y posteriormente Host list y nos apareceran los diferentes nodos o clientes de la red.


Posteriormente seleccionamos las ip que queremos verificar, con solo colocarnos en la ip y presionamos la tecla "1" y tambien seleccionamos la ip del router con la telca "2".


Posteriormente nos dirigimos al menú de Mitm -> Arp poisoning y introducimos $-> remote.

Y ya para finalizar le damos star sniffing para estar viendo los paquetes que se envían y reciben.


Aqui podemos chekar los difernetes paquetas ademas de verificar su contenido
como por ejemplo si accedimos a facebook o nos enviaron un mensaje.

Aquí podemos observar que recibimos mensajes de facebook


Aquí un login de windwos live


Otra de las herramientas que se puedne utilizar es kismet, esta herramienta nos permite visualizar las transferencia de datos de una red a nuestra elección y para instalarlo basta teclear la siguiente comando en la terminal de ubuntu.

$-> sudo apt-get install kismet



Y para iniciarlo podemos usar el siguiente linea de comando
$-> sudo kismet -c rt2500,wlan0,atheros

Y podemos verificar lo diferentes clientes de la red que hayamos elegido, además de que podemos ver los diferentes usuarios que estan o estubieron conectados.


Gracias por su atención


Aqui unas referencias:
http://foro.hackhispano.com/f17/%5Bcomo%5Dsniffer-ettercap-en-ubuntu-40862.html

Laboratorio de TELE MAPEO

Buenas en esta ocasión se realizó un pequeño mapeo a una área en especifico.
En esta caso fue hecha en una área en particular de santa catarina nl.
Se utilizó dos herramientas para el mapeo de las redes wifi de la área.

Wavemon
La primera herramienta que se utilizó fue wavemon. Esta herramienta se usó para el sistema operativo ubuntu y se puede instalar desde la terminal.

$-> sudo apt-get install wavemon

Después de instalarlo, es necesario ejecutarlo desde la terminal como super usuario.

$-> sudo wavemon

La interfaz principal de esta herramienta.



y solo presionamos la tecla de función "F3" para ver las diferentes redes al alcance con sus diferentes potencias.

Aquí una imagen de esto



Wifi Analyzer

También se mapeo usando la herramienta wifi analyzer para ios, pero también esta para android.



Esta aplicación nos permite también  ver la intencidad de las señales
Y ya con todos estos datos se genero la siguiente imagen del lugar:

Aquí esta la imagen


Las redes de color verde son intercable
Las amarillas son infinitum (TELMEX)
Las azules son desconocidas


Para la creación del mapa nos basamos en un scrip de la Doctora Elisa Satu Schaeffer.

Gracias por su atención



Laboratorio Computo Ubicuo 3 "AVE"

Estudio de campo

Las investigaciones de campo es la investigación de los datos de un experimento con variables de la realidad. Esto mas bien es una observacion de lo que pasa en la realidad con lo que se esta estudiando. Y para esto existen diferentes tipos de métodos. De los mas sencillos hasta lo mas complejos.

Estudio Experimental:


Este estudio se basa en la manipulación de los diferentes factores por el investigador además por el uso de diferentes casos y usuarios de prueba.

Características:

  • Selección de los usuarios para las pruebas.
  • Separación los grupos para diferentes casos de usos.
  • Diferentes tipos de factores.
  • Lectura al final de los resultados del estudio.
  • Se da a conocer al final las características de los sujetos.

Ventajas:

  • Tiene un gran control con los diferentes variables del entorno.
  • Proporciona una evidencia visual.
  • Proporciona una respuesta mas rápida.

Investigación post – fact:

Este método como su nombre lo indica se realiza cuando el caso ya paso. Esto quiere decir que el investigador no puede controlar ninguna de las variables del evento.

Este método es en especial útil si se trata de saber porqué paso un efecto o caso de estudio después del experimento que no controlo. Su característica principal es que el investigador puede escoger varios efectos.

Proceso:

  • Seleccionar los grupos de observacion.
  • Determinar los métodos de recolección de datos como entrevistas.
  • Probar las técnica si son confiables.
  • Determinar el proceso de recolección.
  • Recoger los datos.

Encuestas:


Es un estudio en cual el investigador busca recaudar datos por medio de cuestionarios hechos para un grupo en especifico de usuarios y ver sus preferencias con respecto a un tema.


Ventajas de las Encuestas:
  • Es fácil obtener de una encuesta una idea genaralizada de un gran grupo de usuarios.
  • Recoger opiniones o creencias.

Metodología:
  • Planificar encuesta.
  • Elegir tipo de encuesta.
  • Elegir tipo de reactivos.
  • Elegir instrumentos para la recolección de los datos.


Referencias:
http://www2.udec.cl/~gnavarro/2001_1/ienc.html
http://www.monografias.com/trabajos30/investigacion-de-campo/investigacion-de-campo.shtml
http://es.wikipedia.org/wiki/Estudio_experimental





Clase de Computo Ubicuo

lunes, 18 de febrero de 2013

Visión Computacional Clase 3

Buenas compañeros y gente que nos visita, en esta ocasión les traemos una manera de detectar objetos y además colorear cada uno de ellos.

Esto se realiza por medio de un algoritmo de búsqueda.

EL proceso es el siguiente:


  • Se agrega un primer elemento a la cola
  • Posteriormente se checa con sus vecinos cual de ellos es apto para agregarlo a la cola
  • Se agregan todos los elementos aptos y se cambian de color el elemento actual y al finalizar se elimina este elemento
  • Se marca como visitado el elemento borrado
  • Posteriormente si la cola llega en un tamaño de cero, esto nos indica que el objeto a sido pintado y verifica que elementos no han sido visitados
  • Se agrega el nuevo elemento y se repite el proceso
  • El algoritmo termina cuando todos los pixeles han sido recorrido

Para poder realizar este algoritmo es necesario que los bordes de la imagen estén bien cerrados, para esto se utilizo normalización y binarización para limpiar la imagen y hacer un poco más gruesos los bordes.

Aquí primero la imagen original:



Aquí la imagen con bordes:



Aquí con normalización para cerrar las líneas y haceras más gruesas:



Pintamos la imagen:




Para el punto del medio se realizó el siguiente método:
Primero se guardo en una lista los diferentes x e y para cada uno de los objetos. Posteriormente  se verificó el punto del medio sacando el promedio entre la coordenada de x mayor y x menor para sacar la coordenada x final. De la misma manera con y. Estos valores se guardarón en un arreglo para pintar los diferentes círculos en grises.


Aquí el código completo del programa:


domingo, 17 de febrero de 2013

Lab3 Obed: Diseño conceptual, diseño contextual, evaluacion de conceptos

Diseño conceptual

Diseños conceptuales son esbozos de solución a un problema de diseño. Una visión general de alto nivel del diseño (en la forma de un diagrama de bloques de interactuar subsistemas) deben estar presentes en esta etapa.

La idea principal detrás del diseño conceptual es el de maximizar la probabilidad de que un producto final sea viable. Por lo tanto, un diseño conceptual debe ser trabajado en detalle suficiente para permitir que las estimaciones de coste, peso, dimensiones y el consumo de energía. Durante esta primera fase del proceso de diseño, se deben tomar decisiones acerca de las características de diseño más importantes, como principales subsistemas y algoritmos más importantes. El diseñador también debe presentar las razones para tomar estas decisiones, el apoyo de experimentos pertinentes.

Soluciones generales al problema definido se desarrollan a menudo en forma de "opciones de diseño". Esta fase da mayor demanda en el diseñador en términos de pensamiento creativo, puesto que las innovaciones se originan aquí. El diseño no es sólo sobre el producto final, sino también acerca de la viabilidad y rentabilidad del proceso de fabricación. Cuando los diseñadores deben elegir una forma de la pieza, un circuito o un algoritmo, sino que también hay que pensar en cómo se van a fabricar o implementarlas.

Una expectativa razonable para todos los proyectos en etapa de diseño conceptual es tener las siguientes características:
  • El problema ha sido claramente definido.
  • Algunas alternativas han sido generados y evaluados por el sistema como un todo, así como para sus principales subsistemas.
  • Las evaluaciones se incluyen en el informe en forma de planes de prueba iniciales y los resultados esperados, las ejecuciones de estas pruebas y análisis comparativos de los resultados con los esperados.
  • Un plan de organización que se ha formulado, que se aplicará durante el período de primavera, para mejorar subsistema de diseño de nivel y tomando el diseño de rendimiento a nivel de subsistema a un rendimiento totalmente integrado y luego de su finalización.


Diseño contextual

El diseño contextual es un método de diseño centrado en el usuario que permite entender mejor el entorno de trabajo de los usuarios y las necesidades que tendrán que cumplir los sistemas interactivos que para ellos se desarrollen.

En el diseño contextual se empieza investigando precisamente el contexto de uso en el que los desarrolladores del software se entrevistan con personas que utilizarán su producto (serán sus usuarios) para entender su particular manera de trabajar. El objetivo es captar la "empatía del cliente" para buscar la afinidad de ésta con el sistema en fases más avanzadas del proceso de diseño.

H. BEYER y K. HOLTZBLATT , que probablemente son los máximos exponentes del diseño contextual, describen el proceso que guía a los equipos de diseño en el mencionado conocimiento y comprensión para rediseñar el trabajo de las personas mediante la ayuda de nuevos sistemas software. Proporcionan una serie de actividades focalizadas en los clientes y en su trabajo para no dejar las decisiones del sistema únicamente en las manos de las opiniones, anécdotas e intuiciones de los miembros del equipo de desarrollo.

El proceso de los autores anteriores incorpora una gran cantidad de técnicas centradas en el usuario en un proceso de diseño integrado que dividen en seis partes diferenciadas:
  • Indagación contextual (contextual inquiry): Revela los detalles y las motivaciones implícitas en el trabajo de las personas, hace del cliente y su trabajo necesidades reales de los diseñadores y crea un conocimiento compartido para el equipo.
  • Modelado del Trabajo (work modeling): Proporciona un lenguaje para hablar sobre el trabajo a compartir por los equipos y por medio de una serie de modelos se representa el trabajo de los clientes que ayudan a analizar los datos recogidos. Estos modelos son:
    • El modelo de Flujo define cómo se divide (comunica) el trabajo entre varias personas y cómo éstas se coordinan para realizar dicho trabajo. Con él se ofrece una visión global de la organización, se destacan los caminos de comunicación y se precisa la información que se comunica.
    • El modelo Cultural identifica procesos culturales y políticas de actuación que condiciona el trabajo. La influencia cultural impone restricciones, influye en las decisiones de las personas y determina la estructura de la organización.
    • El modelo de Secuencias muestra detalladamente los pasos seguidos para la consecución de las diferentes tareas.
    • El modelo Físico representa el entorno físico en el que se realiza el trabajo incluyendo el espacio de trabajo, las pautas de movimiento, el posicionamiento de los objetos y como todo ello en conjunto influye en el trabajo.
    • El modelo de Artefactos muestra como se utilizan y estructuran los diferentes objetos durante el transcurso del trabajo.
  • Consolidación (consolidation): Proporciona un mapa de la población de clientes o usuarios, permite un afloramiento muy rápido de una gran cantidad de datos cualitativos, facilita la identificación de las necesidades del cliente mostrando la estructura organizacional subyacente que utilizan los usuarios mientras realizan su trabajo.
  • Rediseño del trabajo (work redesign): Orienta al equipo para mejorar el trabajo evitando que este se "deje llevar" por la tecnología, asegura el encaje de los sistemas, las alianzas de negocio y los servicios con el trabajo práctico de los clientes.
  • Diseño del Entorno del Usuario (user environment design): Mantiene la coherencia del sistema desde el punto de vista del usuario capturando la estructura, la funcionalidad y el flujo del sistema. A su vez orienta al equipo de diseño en el uso del sistema y no tanto en la interfaz de usuario o en la implementación. También resulta útil para planificar las tareas del equipo de diseño y para dar una perspectiva de todo el sistema y no sólo de una parte del mismo.
  • Maquetas y tests con clientes (mockup and test wih customers): Las principales virtudes de esta parte son que permite determinar errores en el nuevo diseño incluso antes de empezar con la codificación a la vez que crea el clima necesario para que los usuarios se involucren en el diseño del sistema como si de unos socios tecnológicos se tratara.
Concepto de evaluación

Cuando los conceptos se generan tienen que ser evaluados para asegurar que la solución que se adopte finalmente es la mejor. Concepto de evaluación no debe ser considerado como una actividad excepcional que sigue a la generación de conceptos, más bien, las dos actividades deben considerarse como partes constituyentes de un proceso iterativo.
A través de la evaluación, produce una gran disminución de los conceptos sobre los que deben concentrarse los esfuerzos. Cuando no hay una mayor diferenciación entre los conceptos es posible, que más detalles se debe agregar antes de progresar. Conceptos débiles deben ser descartados o se fusionaron en otros conceptos.

La selección de un diseño conceptual para el desarrollo y la fabricación eventual es una actividad crucial. Desafortunadamente, es uno que a menudo se olvida o tenido poco esfuerzo que resulta en que se gasta en las soluciones de productos inadecuados. Tiene sentido económico para colocar un esfuerzo importante en la selección de un concepto apropiado para un mayor desarrollo en lugar de gastar considerables recursos en tratar de mejorar un pobre concepto seleccionado por las razones equivocadas. A menudo, la selección de concepto se realiza en una manera casual, sin embargo, una serie de técnicas que pueden existir ayudar en este proceso:


  • Matriz de Convergencia controlado (método Pugh): un enfoque basado en la matriz que utiliza criterios de evaluación para comparar conceptos de diseño. La comparación no es numérico. Las matrices se utilizan como parte de un proceso de equipo basado en que tiene por objeto mejorar los conceptos iniciales y, finalmente convergen en una solución óptima.
  • Valoración y ponderación: un enfoque basado en la matriz que proporciona un medio para evaluar y comparar diseños alternativos, utilizando objetivos ponderados diferencialmente. El método asigna ponderaciones numéricas a los objetivos y las puntuaciones numéricas a la realización de los conceptos de diseño alternativas. Se debe tener cuidado en la asignación de calificaciones y ponderaciones, ya que tienen una influencia importante en el resultado de la técnica de su uso es por lo tanto más apropiado en una situación producto estático, donde la confianza y la experiencia existente de los coeficientes objetivos.
  • Método Combinex: similar a la calificación y ponderación, pero utiliza curvas de utilidad para ayudar en la clasificación de cada concepto de diseño
  • Tablas de decisión y árboles: estos registros una ruta de decisión, en base a criterios de diseño, a través de las cuales pasa cada concepto. Una ayuda a la selección de concepto más que una técnica de evaluación.
  • Ver listas: simplemente una lista de criterios de evaluación, que puede ser utilizado como una base para la comparación de los conceptos. Go / No-Go cribado [Ullman] es una técnica basada en listas de verificación.
  • Criterios de selección múltiple: una técnica recientemente desarrollada utilizando una función de evaluación de diseño que considera todas las características de diseño, tales como el peso y tamaño, y refleja la voluntad del diseñador para hacer intercambios entre ellos. La función de diseño multi-criterios de evaluación se deriva de utilidad multi-atributo (por valor) el análisis.

Bibliografías:
http://www.grihohcitools.udl.cat/mpiua/dcu/disenocontextual.html 
http://www.eee.metu.edu.tr/~design/doku.php?id=conceptual_design

jueves, 14 de febrero de 2013

Laboratorio 2 Visión

SAL Y PIMIENTA

Buenas en esta ocación usaremos un método para generar ruidos a una imagen. El método a utilizar es sal y pimienta.

Este método consiste en agregar puntos blancos y negros a una imagen, posteriormente el mismo programa quitará la sal y pimienta. Para ponerlo es muy sencillo el programa recibe el procentaje o consentrado de la sal y pimienta por parte del usuario y un porcentaje para definir el color del blanco y negro.

Para la cantidad de sal solo se multiplica el porcentaje del usuario con el área de la imagen y con un ciclo vamos poniendo aleatoriamiente los puntos de la sal y pimienta.

Para decidir si poner sal o pimienta solo hacemos una pequeña comparación con el pixel de la imagen. Si el promedio de ese pixel esta por debajo de un limite se pone sal y si no pimienta.

Aquí el código de esta parte:

Ahora para quitar la misma sal y pimienta lo que se hizo fue leer pixel por pixel cada uno de ellos y verificar sus vecinos. Se saca el promedio de los vecinos sin incluir al pixel a analizar. Posteriormente se hace una diferencia entre el promedio de los vecinos y el del pixel a analizar y en caso de que sea muy grande asumimos que tiene ruido o sal y pimienta. Y es el caso cambiamos el valor dle pixel analizado con el promedio de r,g,b de los vecinos para que no exita mucho problema si es una imagen a color.

Aquí el código de esta parte:

Aquí unas imagenes:

Tiempo de procesamiento de: 0.4419

Así se vería si quitaramos la sal con el método anterior:



Tardo en procesarlo en 2.32 segundos

Imagen a escala de grises

La misma imagen con el procesamiento de quitar la sal:




También a esta misma imagen se le aplico normalizacion
En realidad no se nota mucho este cambio, pero es bueno realizarlo.


Y si empezamos a modificar un poco las variables de normalización nos saldría algo como esto:



Aquí el código completo: