martes, 16 de abril de 2013

Tarea #5. Detección de elipses

Para esta semana se nos asigno de tarea contruir una rutina que detecta todos los elipses en la imagen con el método cuerda-targente.

Repositorio

Primero utilice lo que es parte de detección de bordes con las mascaras de sobel y la binarización de la imagén, esto ya hecho en la tarea 1.
Original
 

Borde
 Binarizada



Después se agrupan lo que son los bordes en este caso utilice la tarea de detección de formas donde utilizamos el bfs para eliminar pixeles que no son necesarios.

Para la parte donde se detectan las elipses ya entrando al método cuerda-tangente.

Este opera con pares de puntos; para ambos se calcula un tangente al elipse potencial y se calcula la intersección de estos dos tangentes T, al igual como el punto central M de la línea que conecta a los dos puntos.

Se tomarian parejas de puntos al azar, para obtener la recta tangente, se va utilizando el gradiente en este caso Gx y Gy para calcular la pendiente de la recta en forma m = Gy/Gx

Después se calcularia su distancia media, además de calcular en que punto se cruzan dos lineas que se prolonguen a partir de estos puntos y por ultimo las lineas con más cruces pueden ser parte de la elipse.

Código :(





Y aun no esta terminado solo pude obtener detección de las formas, continuara...





jueves, 11 de abril de 2013

Assignment 3. Text compression


For this assignment is necesary implement the tree-based Huffman coding for Unicode strings. 

This algorithm consists in the creation of a binary tree in which each of  the leaves contain a character string to compress with the frequency whit which it is repeated in the character string. 

Based on the assignment of codes to different bit length of each character composing a text string. If short codes are assigned to the characters that appear more often, you get a greater understanding of the text string.

Process
  I give the input character string, in this case use the next line of text for example:

Laptop nueva

1. Characters ordered from lowest to highest according to the number of times they are repeated.



2. We create a new tree root that contain the character with their respective number of frequency in the chain and insert the tree in a tree list.


3. Each of the characters as a tree is created and added to a list, each tree has its associated symbol and frequency number.

 
 4. From the above it will select the first two trees from the list and will form a new tree with them:

5. The root of the new tree will be the sum of the frequencies of the roots of two trees to be joined and tree are now child nodes 


6. It adds to the list the new tree created by ordering from lowest to highest

  
7.  It gets to select two trees from the list and will form a new tree with them, before the tree realiar delete the two trees of the list, until a single tree in the list. 



Not operate properly but here is some code that would make these processes. 




Continued...

Link
Huffman

lunes, 8 de abril de 2013

Lab #6-Retroalimentación de Avances

Como primer avance cada equipo presento un análisis de lo que requerían en cuanto a hardware y software para la elaboración de sus proyectos, para esto se tomo encuentra lo antes recabado en el estudio de campo y los datos que se obtuvieron. 
Para esta semana haremos una retroalimentación, para dar sugerencias de mejora a los requerimientos establecidos en cada proyecto propuestos por los equipos.

Alarma Inteligente(Sergio, Alex, Peke y Cris)
Me pareció muy bien su avance solo que dentro de los materiales podrían especificar que tipo de sensores podrían ser de utilidad para su proyecto, alguno podría ser el de proximidad para saber en que momento existe una persona cerca del auto y en ese momento activara la alarma identificando a la persona.

Plantearon que usarán los módulos de GPS y 3G, podrían tomar como opción un dispositivo móvil donde ya viene incluido este tipo de tecnología y donde solo estaría en crear una aplicación para poder interactuar con estos. 

Casa Segura(Rene, Raúl, Iván)

Esta bien elegidos algunos de los componentes y materiales que usaran pero otra opción que podría ayudar o ser útil seria identificación de las personas que pueden tener acceso a la casa, para mayor seguridad podrían usar tarjetas RFID o una identifación por códigos QR.  Como vi harán uso del dispositivo móvil, este pueden utilizarlo para notificar dentro de la casa si existe algún intruso o persona extraña a los visitantes mas frecuentes. 

Garage Inteligente (Emmanuel, Max, Carmen, Victor)

Donde abrirá la puerta del garage mediante el reconocimiento de un código QR hay que tomar en cuenta la seguridad podarían especificar si sera mediante etiqueta o por tarjeta  con código QR donde el conductor activara abrir o cerrar la puerta del garage esto es para prevenir alguna falsificación de ese dato y para reconocer quien tendrá acceso al garage.

En su presentación pude observar que falto como se comunicara desde el servicio web hasta el arduino que mueve el motor para abrir la puerta, ya que puede utilizar algo como comunicación serial a una computadora o si el arduino conecta directo a Ethernet para recibir indicaciones para abrir o cerrar la puerta.
  
CarNXP



En esta presentación en cuanto al material podrián solo seleccionar un solo arduino para enviar los datos al Raspberry P ya sea por conexión serial en el caso de utilizar el arduino Uno o por el cable Ethernet. Cualquiera de los dos o el que elijan podrá conectarse al lector de NFC

Bloqueo de computadora(Obed, Ave, Pedro, Jona)

Su presentación fue mas especifica con las imágenes del funcionamiento, me pareció una buena manera de explicar el manejo de como la cámara detectara si es o no la persona que esta frente al monitor, pero podría ser algo más discreto localizado mediante un icono donde muestre si se encuentra activado o desactivado y la persona extraña no se de cuenta que esta siendo detectada y solo salga la ultima función de bloqueo. 

Algo mas que pude observar es que podrían considerar es reconocer o validar a las personas que si pueden hacer uso de la computadora y hace uso frecuente de ella como familiares a comparación de cualquier otra persona.
 
Despertador inteligente (Ramón, Cecy, Roberto) 

Su avence esta muy bien organizado, lo que si podrían haber mencionado es como trabajaría en sensor de presión y como sería la comunicación de este con la aplicación del dispositivo móvil para activar la alarma.  


Oficina Inteligente (Lupe, Osvaldo, Triana, Esteban)

Esta presentación fue bien planteada, es buena su idea ya que ayudan mucho a mejorar en cuanto a ahorro de energía con los aparatos que no este en uso. 

Algo que observe es que mencionan que se utilizaran diferentes elementos RFID para acceso, aquí los usuarios podrían decidir como acceder o sugerir alguna forma mas formal para la comodidad del usuario no solo con la pulsera.

Localizador GPS (Omar, Saúl Isaías)

La idea esta mas clara y es buena, ya que muchas veces traemos extraviados diferentes objetos que por prisas o por mas que buscamos no encontramos, como sugerencia podrían utilizar algún tipo de sensor ya que con el modulo Bluethoot trabajaría a ciertas distancias que algunas veces no serán las adecuadas para localizar algún objeto. 

---------------------------------------------------------------------------------------------------------------------------------
El uso de hardware que muchos de los equipos definieron esta basado en diferentes tipos de sensores  y dispositivos para hacer conexiones inalambricas, ya solo faltaría ver cuales son los prototipos iniciales para el proyecto y como quedaria ya al final. 

jueves, 7 de marzo de 2013

Lab #5. Detección de circulos(Radios diferentes)

En esta semana en laboratorio corresponde a la detección de circulos con diferentes radios.

Para este proceso se utilizo parte del código de Clase. Detección circulos, como yo aun no detectaba los circulos aquí incluyo esta parte ya terminada, así como los centros de los circulos detectados con una correspondiente etiqueta.

Las ecuaciones para identificar el centro que utilice son las mismas que se mostraron en la entrada anterior:

xc= x-radioCosθ
yc=y-radioSinθ

Probe con algunas imagenes, tuve muchos problemas para llegar a un buen resultado y si creo que aun no es el resultado esperado. 


Con un radio = 100 y otro de 25 primero solo me mostraba un solo centro.
 



Otra imagen con un radio = 35 



Y parte del código con los cambios hechos



martes, 5 de marzo de 2013

Lab #5. Proveedores de HW & SW

Esta entrada correspode a un listado de proveedores de HW y de SW para gente que quiera implementar sistemas inteligentes, en qué se especializan, cómo conseguir los productos y qué productos tiene.

5Hertz 


Esté sería un buen proveedor para adquirir algunos de los materiales que se necesitan para algunos de los proyectos que hemos definido. Se especializa en electronica pero esta cuenta con mas variedad de productos 

Como conseguirlo

Se puede conseguir mediante una orden en linea tendriamos que registrarnos para poder realizar esta orden y aunque muchas veces no estan en existencia, podríamos adquirir aqui diferentes productos: 

Productos
Sensores, arduinos, rfid, motores, etc, por ejemplo 

Etiqueta RFID botón de ropa $45, la etiqueta contiene un identificador único que se puede leer con cualquier lector que maneje el protocolo EM4102 a 135 kHz

Steren
Este tambien puede ser utilizado para diferentes componentes electronicos básicos o mas avanzados. Es una buan solución para electronica avanzada.
 

Productos

Microcontroladores
Leds
Cables 

Como conseguirlo

En este caso podemos encontrarlo en sus diferentes sucursales en la localidad 


RFID Grupo Devbus 
Esta puede ayudar en cuanto a las personas que utlizaran este tipo de tecnología aquí puede encontrar diferentes componentes

Productos
Desde readers, antenas y toda la variedad de etiquetas/tags disponibles para cualquier aplicacion requqerida.

Solo tiene oficinas en el Estado de México




Tarea #4. Detección de circulos

Para esta semana realizariamos lo que es la detección de circulos, para esto se utilizarón circulos con el mismo radio y ya conociendo el radio será introducido mediante la terminal para uso posterior.

Primero para poder detectar los circulos necesitaba encontrar lo que son los posibles centros en cada uno de ellos esto se logro encontrar teniendo xc y yc como se muestra en el código.

Para llegar a esto tengo lo antes utilizado para detectar bordes como es convolución donde utilizabamos el gradiente gx y gy para poder obtener la magnitud 



Después obtenemos lo siguiente
cosθ=gx/g sinθ=gy/g

 

Para identificar el centro utilizamos dos ecuaciones: 

xc= x-radioCosθ
yc=y-radioSinθ
Aquí podemos ver dos centros para cada pixel al tomar el radio ya introducido anteriormente aun no da buen resultado :(

Código
Esto aun no esta terminado por el momento, me falta aun que localizara los centros dentro de todos los circulos, marcar los contornos  de diferentes colores y lo correspondiente a laboratorio.