jueves, 28 de febrero de 2013

Laboratorio 4. Detección de diagonales

Para esta tarea de laboratorio se nos pidió ahora detectar diagonales en una imagen, utilizando la tarea de clase que fue detección de lineas horizontales y verticales.

Ahora a diferencia de en la tarea que solo detectaba ángulos de 0 y 90 grados, utilizo la función arctan para calcular los ángulos de los pixeles, también cambie las máscaras de convolución de Sobel por las de Prewitt.

Al final del programa como en el anterior, se definen colores para los pixeles dependiendo de los ángulos y se ponen diferentes si la línea es horizontal, vertical o diagonal.

No se cambiaron muchas cosas de la tarea de clase, sólo que ahora es capaz de detectar otros angulos diferentes de 0 y 90.

Código

Resultados.

Imagen Original



Resultado




Imagen Original


Resultado




martes, 26 de febrero de 2013

Problema del Nodo Oculto en redes inalámbricas.

El problema del nodo oculto es mejor conocido en el estándar IEEE 802.11 de redes inalámbricas. La mayoría de los estudios que se han realizado de este problema se hicieron mediante simulaciones, no experimentos.  

Experimentos.



Se configuraron 6 nodos conectados en una red multihop (esto es una red de múltiples saltos, es decir que un paquete puede viajar largas distancias por medio de mecanismos de almacenamiento y envió, un nodo transmite al otro nodo, el cual a su vez retransmite el paquete). Esta red tiene 6 laptops DELL Latitude D505 con 1.5GHz Celeron Mobile con 512MD de RAM. Cada nodo tiene una tarjeta de red WLAN Buffalo WLI2-CF-S11 IEEE 802.11, todas corren RedHat Linux 9.

Para facilitar el experimento, la potencia de transmisión de cada tarjeta WLAN se establece a un valor pequeño de -38dBm. Esto hace que el efecto de bajar la escala del rango de transmisión. Las tasas de los datos se configuraron a 11Mbps. El mecanismo RTS/CTS se desactivó. Las fuentes de datos son flujos de tráfico UDP tienen un tamaño de paquete fijo de 1460bytes.

Se investigaron los intervalos de transmisión (TXRange) variando la distancia entre los nodos 1 y 2, para velocidades de transmisión de datos de 2Mbps y 11Mbps. El enlace 2 se encuentra inactivo. La siguiente gráfica muestra que la velocidad de 11Mbps de la transmisión de datos cae precipitadamente después de una distancia de 2.2 metros mientras que la velocidad de transmisión de datos de 2Mbps se degrada gradualmente hasta 10 metros.

El ajuste por default del simulador NS2 asume que la velocidad de 2Mbps tiene una "dura" distancia (como 250 metros), debajo de la cual todas las transmisiones tienen éxito, y las que se encuentren por encima no tienen éxito. El resultado del experimento indica que un modelo de transmisión mas apropiado sería uno en el que la probabilidad de transmisiones exitosas es una función gradual de la distancia.

En términos de rendimiento, se puede crear un modelo de transmisión que tenga dos rangos de funcionamiento, una que tenga capacidad para todo el rango de transmisión y otro que tenga solo capacidad para una parte del rango de transmisión. Por ejemplo con 11Mbps, uno que 2.2m mientras el otro con 0.4 metros. Para 4Mbps uno con 3 metros mientras el otro con 6 metros.





En el siguiente experimento se varía la distancia ahora será del nodo 1 al nodo 3 con las distancias de los enlaces 1 y 2 establecidos a 2 metros. Los rendimientos en función de la separación de los enlaces depende de la operación de detección de la portadora. En este experimento se utiliza una pequeña distancia para facilitarlo. 

Se establece y como la distancia entre los nodos 1 y 3, y x la distancia entre los nodos 2 y 3. Las formas particulares de las curvas sugieren la detección de portadora que incluya diferentes regiones. 

En la siguiente gráfica, se muestran los nodos separados de cada enlace por 250 metros. Se observan 4 regiones, todas ellas tienen diferentes barreras. Estas regiones "dificiles" no existen en un experimento de redes reales. Por lo tanto, se supone un modelo probabilístico en el que la probabilidad de detección de la portadora sea una función gradual de la distancia. Los rendimientos del enlace uno en la región 2 (560 <= y <= 690)  se degradan a 0, estos resultados son diferentes de los anteriores.



RTS/CTS

Ahora se utiliza el mecanisco RTS/CTS. En las figuras siguientes se muestra que usando tanto para 2Mbps y 11Mbps para transmitir los daos no se puede prevenir el problema de terminal oculta mientras RTS del nodo 1 choca con los datos del nodo 3 al nodo 2. El rendimiento del enlace uno degrada a menos que 2Mbps, que es incluso peor que sin RTS/CTS.




Carga óptima

Existe una propuesta establecida en el IEEE 802.11 para controlar la carga en el flujo de tráfico de la comunicación multi-hop para eliminar la tasa de pérdida de paquetes. La existencia de una carga óptima se derivó por una simulación y análisis. Por otro lado, no esta claro si esta existe en redes reales multi-hop. Con este experimento se comprobaron los resultados y la carga óptima es obtenida a 1.25Mbs. Arriba de este valor, la carga ofrecida es insostenible, se produce una pérdida alta de paquetes.




Referencias: 
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.76.7774&rep=rep1&type=pdf


Experimentos de Calidad de Servicio

Para esta semana, se nos pidió medir la calidad de un servicio, elegí Tunein



Las pruebas que realicé son las que mencioné anteriormente en el laboratorio por si tienen alguna duda de los conceptos lean en mi entrada anterior.

Las pruebas las hice en tres diferentes conexiones, la de mi casa que es Intercable, la hice también de una red pública que llega sólo a un cierto punto de mi casa Linksys y por último por medio de cable Ethernet.


Prueba de Latencia


Para medir la latencia, solamente utilicé ping, haciendo ping desde mi computadora a la IP del servidor web de Tunein.

Intercable Inalámbrico


Linksys


Ethernet




El resultado de esto nos proporciona un mínimo, máximo, promedio y desviación estándar del RTT (Round Trip Time) en milisegundos, RTT se refiere a una aproximación de latencia entre dos puntos. 

Conclusión
Como se puede ver y era algo esperado, el Ethernet es un poco más rápido que la red Intecable de forma inalámbrica y aún más obvio la red pública va a tardar mucho más ya que cualquier persona que tenga alcance a esta red puede estar en el mismo momento en esta red generando tráfico y esto hace que la velocidad sea más lenta. 

Pérdida de paquetes



Para esta prueba utilicé Wireshark y un filtro que es "tcp.analysis.lost_segment". Para esto en el menú de wireshark hay una opción de estadísticas y en ella te vas a IO Graph, en esta te muestra los paquetes que se están enviando a la dirección IP del servidor Tunein (para esto lo filtre para que solo aparecieran los paquetes de esta IP). En las gráficas la línea negra representa todos los paquetes que se mandan en relación con el tiempo. La línea roja es la pérdida de paquetes.


Intercable Inalámbrico


Linksys


Ethernet



Conclusión
Podemos ver una diferencia notable, en todos. Por ejemplo en el de Ethernet no se marco nada de pérdida de paquetes lo cual es muy bueno, en Intercable inalámbrico hubo algún porcentaje de pérdida de paquetes pero ya viendo a la red pública nos damos cuenta que la pérdida de paquetes aumenta en forma considerable así como también el envío de paquetes.


Jitter

Para esta prueba, también utilicé Wireshark midiendo los tiempos de transmisiones  entre el cliente y el servidor, esto también se encuentra en Statistics y luego Flow Graph.

Intercable inalámbrico


Estos resultados los grafique utilizando la librería matplot de python.


Linksys


Ethernet



Conclusión
Estos tiempos representan lo que se tardan en enviar y recibir los paquetes. Nos damos cuenta claramente de que la velocidad cambia en los tres medios, por ejemplo en Intercable se tarda alrededor de 40 segundos en promedio, en Ethernet se tarda desde 33 segundos es más rápido como lo ha demostrado en todas las pruebas, podemos ver que en la red pública tarda demasiado en envíar y recibir paquetes y esto es muy malo ya que por esto la calidad del servicio tiende a ser muy mala.

Como última prueba realicé una prueba del tiempo de carga del sitio web TuneIn en la página http://tools.pingdom.com

Estos fueron los resultados obtenidos,





Tarea 3. Detección de Lineas


Para la tarea de esta semana se nos pidió detectar líneas horizontales y verticales en una imagen.

Para esto la imagen debe estar binarizada osea en blanco y negro.

El método utilizado consiste en calcular las gradientes verticales y horizontales de la imagen, para con estos poder obtener el ángulo de los pixeles de la misma. Los gradientes se calculan mediante las máscaras de convolución, que fue una de las tareas pasadas, la máscara que utilicé fue la de sobel para calcular estos gradientes.

La convolución se aplica dos veces, una vez con la matriz para obtener gradiente horizontal y la otra con la matriz para obtener gradiente vertical.

Teniendo los ángulos hacemos unas validaciones:

  • Si el gradiente x y el gradiente y son iguales a 0, no hay ángulo.
  • Si el gradiente x es igual a 255 y el gradiente y es igual a 0, entonces el ángulo será 0.
  • Si el gradiente y es igual a 0 y el gradiente x es igual a 255, entonces el ángulo será 90.
Resultados:

Imagen Original


Resultado


Imagen Original


Resultado:


Código:

lunes, 25 de febrero de 2013

Lab 4. Calidad del servicio (QoS)

Para esta entrada de laboratorio, hablaré de los principales problemas en cuanto a la calidad del servicio (QoS) de una red de VoIP.

La calidad de Servicio o QoS se refiere a la calidad de voz percibida y los métodos que se emplean para su correcta transmisión. Hay muchos factores que afectan la calidad y también metodos que se pueden utilizar para asegurar calidad en el servicio. 

Latencia o Retardo



Pasa cuando los paquetes toman un largo período en llegar a su destino, debido a que permanecen en largas colas o que utilicen otra ruta más larga para prevenir la congestión de red. La latencia en VoIP se define como el tiempo que tarda en llegar un paquete a su destino.

El retardo entre el punto inicial y el final de la comunicación debería ser inferior a 150 ms. El oido humano es capaz de detectar latencias de entre 200 y 250 ms. Si este umbral es superado la comunicación tendría dificultades para el entendimiento en la transmisión de voz.

El retraso entre extremos es la suma de todos los retrasos en los diferentes apartados de la red a lo largo de los enlaces por los que pasa el tráfico de red.

Jitter (Variación de latencia)



La variación de la latencia es definida como la variación en el tiempo de llegada de los paquetes, causada por la congestión de red, pérdida de sincronización o por las diferentes rutas que pueden seguir los paquetes para llegar a su destino.

Esta variación entre el punto inicial y final de la comunicación debería ser inferior a 100 ms, si el valor es mayor a esto se debería de minimizar. Las diferencias en los tiempos de llegada producen cortes en la voz.

Pérdida de paquetes



Las comunicaciones que se realizan en tiempo real se encuentran basadas en el protocolo UDP, el cual no se encuentra orientado a conexión y puede producirse una pérdida de datos. Esto normalmente pasa cuando la red esta congestionada. Los paquetes de datos pueden ser descartados y no llegan a su destino.

La pérdida de múltiples paquetes de un flujo de voz puede causar ruido que puede llegar a ser muy molesto. Esta pérdida debe ser inferior al 1% para que no se degrade la comunicación. También depende del códec que se utiliza.

Selección del códec


Cuanto mayor sea la compresión del codec más pernicioso es el efecto de la pérdida de paquetes. Una pérdida del 1% degrada más la comunicación si se utiliza códec G.729 en vez del G.711 por ejemplo.

En cualquier instalación de Voz sobre IP, el codec usado afecta la calidad de la voz debido a los diferentes algoritmos de compresión utilizados y a la cantidad de ancho de banda necesario.

Ancho de banda



En implementaciones y soluciones de comunicacines basadas en VoIP, disponer de ancho de banda tiene mayor influencia sobre la calidad de la voz. El ancho de banda se expresa normalmente con números en bits por segundos que pueden ser transmitidos sobre una conexión de red.

El ancho de banda es compartido entre la VoIP y otras aplicaciones de datos. La cantidad de ancho de banda requerido para VoIP depende de muchos factores como:

  • Número simultáneo de llamadas.
  • Codec empleado
  • Tamaño de la trama
  • Protocolo de red
Incrementando el ancho de banda sobre conexiones de datos pueden resolver problemas de calidad de voz.

Segmentos por paquete

Incrementando la cantidad de segmentos por paquete (VIF) se puede reducir el ancho de banda necesario y mejorar la calidad de voz, si el número de segmentos por paquete incrementa demasiado la calidad de voz puede deteriorarse.

Eco


Se produce por un fenómeno técnico que es la conversión de 2 a 4 hilos de los stemas telefónicos o por un retorno de la señal que se escucha por los altavoces y sale por el micrófono. Se define como una reflexión retardada de la señal acústica original.

Es molesto cuanto mayor es el retardo y mayor su intensidad con lo que se convierte en un problema en VoIP.

El oído humano es capaz de detectar el eco cuando su retardo con la señal original es superior o igual a 10 ms. Otro factor importante es la intensidad ya que a veces la señal de vuelta tiene menos potencia que la original, es tolerable que llegue a 65 ms y atenuación de 25 a 30 dB.

Referencias:

http://www.voipforo.com/QoS/QoSVoip.php
http://compnetworking.about.com/od/speedtests/a/network_latency.htm
https://www.eff.org/wp/detecting-packet-injection

Lab 4. Recomendaciones para otros proyectos

Alarma Inteligente para Auto


En este proyecto lo que se busca es crear una alarma segura para el automóvil, este proyecto es muy interesante ya que en estos tiempos mucha gente se siente insegura por la delincuencia, y les gustaría tener más seguridad para que no sea tan fácil abrir o cerrar el carro. 

Podrían plantear la forma de la comunicación de esta con el automóvil, por ejemplo en las encuestas la mayoría quisiera poder controlar la alarma desde un dispositivo móvil, como se comunicarían y de que forma podrían controlar esto.

Al poder controlar la alarma desde tu dispositivo móvil también tendrías que tener seguridad en esto ya que si alguien te quita el celular podría controlar también esta alarma, sugeriría un tipo de seguridad como pedir una contraseña y que si no la pones bien un cierto número de veces, esta alarma envie el aviso a la casa con información. También que este control pueda servir para poner un código que te ayude a abrir el automóvil.

Seguridad en la Computadora 


Actualmente existen muchas formas de proteger tu información en la computadora y tu información en los sitios web, por ejemplo las cuentas de Google tienen algo que se llama dos pasos de verificación que si lo tienes activado, te pide primero tu contraseña y luego te pide un código que te llega al celular y tienes que ponerlo al haber ingresado tu contraseña.

Algo normal es irte al baño y dejar la computadora sin bloquear, estaría muy bien una aplicación que detecte que si te fuiste y no tienes activado que se bloquee después de cierto tiempo de no estar utilizándola detecte que no existe movimiento en la computadora y cuando alguien se vuelva a acercar y presione algún botón o detecte movimiento la computadora intente por medio de la cámara verificar si eres tu y si no eres tu se bloquee automáticamente. Otra forma de reconocerlo podría ser por medio del habla que te pida decir una frase y escuchar tu voz para identificarte cada que detecte movimiento.

Oficina personalizada


Este proyecto es más que nada para la comodidad de la persona que se encuentra en su oficina, esta muy padre la idea, cosas que se podrían hacer serían controlar el clima para que detectando la temperatura pudiera estar más frío o incluso apagarse. También que si no hay nadie en la oficina se apagaran todos los aparatos que gastan energía. Estaría magnifico también que hubiera algún tipo de cámara que detectara las cosas que se encuentran en tu oficina y que si por ejemplo si se te olvida el celular detecte que es tu celular y que lo dejaste ahí y se envíe un aviso a tu secretaria para que te lo haga saber si es que tu ya no estás en la oficina. 

En cuanto a seguridad, estaría padre que sólo el dueño de la oficina pudiera controlar quienes pueden entrar o salir, esto también puede ser por monitoreo como lo mencionaban, incluso para poder abrir su oficina podría en ves de usar llaves usar la voz, para que por si sus llaves se extravían no sea tan fácil de que alguien entre a su oficina.


Localizador de personas


Este proyecto se me hace muy bueno pero también tiene un poco de cosas en contra, por ejemplo que pasaría si la persona con el brazalete se pierde y alguien quiere llevárselo y le quitan el brazalete? Estaría padre que el brazalete tenga algún tipo de detección de que el brazalete se lo quita la persona que lo trae o que tenga un botón que la persona pueda presionar e inmediatamente mande una notificación al móvil de la persona que lo tiene configurado para que se de cuenta de que algo raro está pasando.

Esto también en caso de que se encuentren en un mismo lugar y la persona se aleje demasiado de la persona que lo está siguiendo con el móvil para que si por ejemplo están haciendo el super y su hijo se llega a salir, inmediatamente empiece el localizador para detectar donde se encuentra.

Galería inteligente


Para este proyecto se me ocurre algo muy divertido, estaría muy padre que al llegar a la galería puedas sincronizar tu celular, es decir con un código tal ves QR puedas acceder a una aplicación de la galería y al momento de estar frente a una obra el teléfono lo detecte y puedas escuchar mediante tus audífonos la descripción de esta obra.

Estas descripciones o lo que se vaya a decir de las obras que sean controlables o sea que puedas ponerles pausa si no la estás escuchando por un momento, o que también puedas adelantarle o retrasarle como en un reproductor de audio para si te perdiste de algo no tener que volverla a poner. También para hacerlo un poco más interactivo en tu celular se podrían mostrar también animaciones de los cuadros.

Cama Inteligente


Este proyecto se me hace muy bueno, ya que a todos por lo menos una ves nos ha pasado que ponemos la alarma y no nos despertamos a la primera por que tenemos mucho sueño, en mi caso yo la apago muchas veces y derrepente me harto y la apago por completo y cuando me doy cuenta ya es demasiado tarde, este proyecto puede ayudar mucho a esto.

Es excelente idea por ejemplo que un día se te olvide poner la alarma y no sea un día festivo y normalmente ese día te levantas a las 7 y ya tiene guardadas esas preferencias así que nota algo extraño porque no pusiste la alarma así que se programa sola. Otra de las cosas interesantes sería que si se te ocurrió apagar la alarma después de muchas veces que la aplazaste y se da cuenta que no ha habido movimiento, o sea obviamente agarras el celular cuando te levantas y normalmente checas notificaciones o algo, estaría padre que si no notara ese movimiento en un determinado tiempo volviera a sonar la alarma ya que pudiera ser que en el lapso en que te ibas a levantar volviste a quedarte dormido.

Casa Inteligente


En este proyecto se podrían hacer muchas cosas, apagar o prender las luces, automatizar el clima, el tiempo que estén abiertas las llaves por ejemplo de la regadera o el lavabo. Prender o apagar la televisión si entras o sales del cuarto. Existen alarmas de las ventanas y/o puertas de que si alguna esta abierta la alarma se activa. 

En seguridad, estaría bien también que por ejemplo cuando se detecte movimiento sospechoso fuera de la casa, se prendieran algunas luces por un tiempo para que piensen que hay alguien en la casa, ya que muchas veces cuando roban casas es por que piensan que no hay nadie en la casa.









jueves, 21 de febrero de 2013

Laboratorio 3. Convex Hull

Para la tarea de laboratorio de esta semana, se nos pidió utilizar un algoritmo para el cálculo de la envolvente convexa.

La envolvente convexa de un conjunto de puntos X de dimensión n se refiere a la intersección de los conjuntos convexos que contienen a X.

Utilicé el algoritmo envoltura de regalo, el cual toma un polígono cóncavo y lo envuelve para hacerlo convexo.

Este algoritmo envuelve un conjunto de puntos en un "papel de regalo", el propósito principal del algoritmo es pensar en una recta que se desplaza hasta que toque un punto del conjunto de puntos P. La recta redondea los puntos del lado positivo, gira en cada vértice hasta que se junte con el siguiente, de forma que el último la envuelve por completo.

Tuve un poco de problemas con el algoritmo, y algunas líneas trazadas no son correctas pero lo arreglaré.

Imagen Utilizada


Resultado


Código:

lunes, 18 de febrero de 2013

Tarea 3. Detección de formas

Para esta tarea se nos pidió analizar la forma de una imagen.

La imagen original que utilicé para esta tarea es un cuadrado, con el fin de que sea fácil de detectar. El borde gris es de Blogger que lo puse para que se distinguiera bien la imagen con el fondo blanco.

Para realizar esta tarea es necesaria la tarea anterior de detección de bordes para saber que es fondo y que es la imagen de adentro y poder diferenciar el contorno.

Para poder detectar esto se realizó lo de la tarea anterior, convertir a escala de grises depués aplicar convolución, normalizar y binarizar.






BFS
Realicé una funcion en donde se marca un punto de origen con coordenadas, se utiliza este punto y se le saca su pixel correspondiente y se guarda. Después se recorren todos los pixeles que son del mismo color y se cambian a un color dado. Para realizar la subrutina me basé en el código que hizo la Dra. Elisa.








Aquí el código del BFS


 

Tarea 3.Experimentos de monitoreo WiFi

Para esta semana en clase se nos pidió lo siguiente:

Eligan cada quien un tipo de “ataque” WiFi a realizar de lo mencionado en http://www.sans.org/reading_room/whitepapers/detection/understanding-wireless-attacks-detection_1633 (o similar) en combinación con alguna aplicación en particular.


Bueno yo elegí espiar conversaciones de Fb Chat mediante la página Ebuddy.com

Para realizar esto, utilicé una aplicación llamada WireShark que se utiliza para analizar la red y monitorear los paquetes de las interfaces, en mi caso yo lo hice en la interfaz inalámbrica en1.


Filtre los paquetes ya que son demasiados y no me permitía buscar fácilmente la información que requería, utilicé HTTP contains POST o HTTP contains GET para filtrar.

Mi objetivo era espiar las conversaciones de Facebook pero como la página de Facebook es segura no podía hacerlo directamente desde ahí, así que se me ocurrió meterme a la página de Ebuddy donde puedes ingresar a tu msn, google talk, fb chat, etc.

Al hacer el filtro comencé a hablar por facebook y a iniciar mi búsqueda en los paquetes, al principio pensé que no se iba a poder por ser facebook chat pero la página Ebuddy es insegura así que logré conseguirlo. A continuación les pongo las capturas de pantalla.




Aquí se puede ver donde pude obtener la información del chat de Facebook. y el mensaje que contenía. Realicé el ataque conmigo misma para evitar dañar a terceros y lo hice por medio de mi computadora y la de mi hermano. Este monitoreo puede servir para muchas cosas, también se pueden descifrar algunas contraseñas de logins de páginas web no seguras, detectar que páginas están viendo y con esto también se puede hacer el bloqueo de algunas páginas.

Conclusión:
Estoy segura que hay muchas personas que no saben que muchas de las cosas que realiza por la red pueden ser vistas o atacadas, en cuanto a seguridad creo que debemos saber cuales son los riesgos que pueden haber cuando se encuentra navegando por sitios inseguros como HTTP, como en esta tarea yo creía que no se podían descifrar las conversaciones de Facebook Chat y resultó que por medio de una página donde puedes conectarte si puedes tener acceso a dichas conversaciones. También cuando estuve investigando vi que antes de las últimas versiones de Whatsapp existía un Sniffer para ver las conversaciones de Whatsapp de personas que estuvieran conectadas a tu red.



Laboratorio 3. Técnicas del modelo Conceptual

El diseño contextual se refiere a un método de diseño centrado en el usuario que permite entender de mejor forma el entorno de trabajo de los usuarios y las necesidades que tienen que cumplir los sistemas interactivos que sean desarrollados.

En el diseño contextual se investiga el contexto de uso en el que los desarrolladores se entrevistan con los usuarios que utilizarán el producto para comprender su manera de utilizarlo y trabajar con él. Ej objetivo es captar la empatía del usuario.

H. BEYER y K. HOLTZBLATT son los máximos exponentes del diseño contextual, describen el proceso que dirigen a los equipos de diseño para rediseñar el trabajo de las personas mediante al ayuda de nuevos sistemas de software. 

El diseño Centrado en el Usuario (DCU) es definido por la Usability Professionals Association (UPA) como un enfoque de diseño cuyo proceso se dirige por la información de las personas que hacen uso del producto.

Henry Dreyfuss, autor del libro Designing for people (1955) definió la concepción del diseño como proceso a partir de sus diseños de teléfonos de la serie 500 para Bell Telephones. Este diseñador, pionero del diseño centrado en el usuario, estudió como se construían los teléfonos, como se percibían y eran utilizados por las personas. Sus conclusiones se aplicaron a un nuevo diseño donde se corregían aspectos como la forma, el tamaño, las proporciones o el color.


Proceso


EL DCU es un proceso cíclico en el que las decisiones de diseño son dirigidas por el usuario, y los objetivos que pretende satisfacer el producto, y donde la usabilidad del diseño se evalúa de forma iterativa y se mejora en cada iteración.

A partir de la norma ISO 13407, se puede decir que este proceso consta de 4 fases:


  • Entender y especificar el contexto de uso: Identificar a las personas que utilizarán el producto, para que lo utilizarán y en que condiciones.
  • Especificar los requisitos: Identificar los objetivos del usuario y del proveedor del producto, los cuales deben ser satisfactorios.
  • Producir soluciones de diseño.
  • Evaluación. Fase más importante ya que se validan las soluciones de diseño o se detectan problemas de usabilidad realizando pruebas con los usuarios.





Necesidades del usuario


Las necesidades del usuario son las que motivarán el uso del producto, y estas mismas son las que motivan y condicionan el diseño. La forma de detectar y analizar estas necesidades es por medio de la observación, investigación e indagación del usuario: actividad, entorno y contexto en los que tendría lugar el uso del producto.



Metodologías

El diseño centrado en el usuario se relaciona con un conjunto de técnicas y metodologías que tienen un objetivo común: conocer y comprender las necesidades, limitaciones, comportamiento y características del usuario.

Test de Usuarios 

Esta es la mejor prueba del DCU, ya que es la mejor forma de evaluar la usabilidad de un diseño. Se basan en la observación de cómo un grupo de usuarios llevan a cabo un conjunto de tareas, analizando los problemas de usabilidad con los que se encuentran.

Según Kuniavsky algunos requisitos que deben de cumplir estas tareas son:

  • Ser razonables.
  • Estar descritas en términos de objetivos finales.
  • Ser específicas.
  • Ser factibles.


Con los test de usuarios no sólo se pretende detectar en qué momentos el usuario se equivoca o se detiene durante la realización de la tarea, sino también el porqué: qué es aquello que no entiende o qué le ha llevado a tomar decisiones equivocadas. Una forma de obtener esta información es mediante el protocolo 'think-aloud' o 'pensamiento en voz alta', que consiste en solicitar al participante que exprese verbalmente durante la prueba qué está pensando, qué no entiende, por qué lleva a cabo una acción o duda. 

Un modo de facilitar la tarea de programar actividades en el contexto de proyectos  DCU, es partir de diagramas de Gantt. En estos diagramas de referencia no se detallan los tiempos y fechas de cada actividad, pues no responden a ningún proyecto concreto, pero sí nos ofrecen una visión general del orden cronológico que debe ocupar cada actividad, así como su duración relativa al resto de actividades.

Evaluación Heurística

En esta técnica varios expertos inspeccionan y analizan el diseño en busca de potenciales problemas de usabilidad, comprobando para ello el cumplimiento de principios de diseño usable (principios heurísticos) previamente establecidos. Estos principios de diseño o ‘heurísticas’ son directrices que establecen requisitos que debe cumplir el diseño con el fin de facilitar su comprensión y uso por el usuario final.

Etnografía

La etnografía constituye una rama de estudio de la antropología que busca estudiar y describir científicamente la conducta, el comportamiento, las creencias y las acciones de los usuarios de una sociedad y una cultura específica. El investigador convive con los sujetos de la investigación para comprender, por propia experiencia y observación directa, el ámbito sociocultural donde están inmersos.

Es un campo de estudio que emplea principalmente métodos cualitativos, con el objetivo de ayudarnos a descubrir y comprender el comportamiento social de nuestros usuarios. Sus métodos nos permiten predecir o explicar acciones e interacciones que, de otro modo, podrían quedar aisladas y provocar resultados contrarios a los objetivos propuestos en nuestro sitio.

Documentos de investigación con usuarios

La técnica Persona-Escenario pretende sintetizar la información extraída en etapas de indagación de la audiencia a una serie de documentos (o fichas) que representarían arquetipos de usuarios. Mientras que la identidad de estos personajes es inventada (nombre, fotografía, etc.), la información sobre sus necesidades, motivaciones, actitudes y comportamientos debe esta basada en datos reales extraídos de usuarios potenciales o reales del sitio web a diseñar. Es decir, se trata de arquetipos de usuarios, no de estereotipos. Los personajes suelen contextualizarse con escenarios o descripciones de situaciones de uso concretas.

La función de estos documentos es potenciar en el diseñador la empatía con el usuario final, facilitando la toma de decisiones de diseño centradas en los usuarios representados, y no en suposiciones o ideas vagas acerca del público al que nos dirigimos en el sitio web. 

Referencias.

jueves, 14 de febrero de 2013

Laboratorio 2. Sal y Pimienta

Para esta semana en el laboratorio, se nos pidió realizar el efecto de sal y pimienta en una imagen y luego reducirlo con algún método. 

Sal y Pimienta
Los pasos que seguí para realizar esto son los siguientes:

  1. Para agregar sal y pimienta, establecí una probabilidad de poner puntos negros o blancos en los pixeles.
  2. Recorro los pixeles de la imagen, genero un número random entre 0 y 1 y si este es menor a la probabilidad entonces se crea un punto negro o blanco.
  3. Para establecer si será un punto negro o blanco genere otro numero random entero entre 0 y 1. Si es 0 el punto será negro y si es 1 el punto será blanco.
  4. Agrego los pixeles que cambiaron a la imagen.






Redudir Sal y Pimienta

Los pasos que seguí para realizar esto son los siguientes:

  1. Recorro todos los pixeles y genero una lista con sus vecinos norte, sur, este y oeste, esto en caso de que sea un pixel de en medio, si es de las orillas agrego a la lista el vecino correspondiente. 
  2. Al tener esta lista, la ordeno de forma descendente y obtengo la mediana, es decir cuando ya está ordenada obtengo el número de en medio de la fila, si son dos los de en medio se saca un promedio entre esos dos y ese será la mediana.
  3. En la nueva imagen pongo el resultado de la mediana en el pixel correspondiente.







Bordes
Los pasos que seguí para realizar esto son los siguientes:
  1. Calculo la diferencia de todos los pixeles de la imagen original menos la imagen difusa.
  2. Esta diferencia se la agrego a los pixeles de la nueva imagen. Los bordes se empiezan a notar pero muy tenues.
  3. Al final normalizo la imagen con el fin de hacer los bordes más notables, y al final hago la binarización.









Código:


Link a mi repositorio:
https://github.com/carmensrz/VisionComputacional/blob/master/ruido.py