miércoles, 29 de mayo de 2013

Assignment 6. Image Compression

For this week, we were assigned to implement a transform of compression image. In this oportunitty I apply the wavlets for compress the image and show the results.

Repositoty: https://gist.github.com/vane90/5670878

Pywavelets : 
I used pywavelets its a free open source wavelet transform software in python, it is very easy to use if I worked with 2D Forward and Inverse Discrete Wavelet Transform  but it includes, many other features you can look for more information about this library in the page official.

Instalation
The first thing we need to do in order to work with this tool is to install the Pack needed to be imported to our python script.


The pywt is an module needed to be able to work with the program that will show. It can be installed by using the next line code on any linux terminal


Why does the compression of images?
To compress images, we can reduce the redundancy, or the frequency of the image data in order to be able to store or transmit data in an efficient way.

Wavelet analysis can often compress or delete noise without appreciable degradation.

For this it can considere two methods of data compression and are classified into:
  • Lossless: it is the compression without loss of information
  • Lossy: it is the compression with loss of information.
Transformed Wavelet: 
This transform is efficient for local analysis of non-stationary signals quick transitoriness and, like the Fourier transfor with window, maps the signal into a representation. The temporary aspect of the signal is preserved.
 
The Wavelets, bases of the transformed Wavelet functions, are generated from a basic Wavelet function, through translations and dilations. These functions allow to reconstruct the original signal through the transformed Wavelet inverse in any case. 

Wavelet analysis is to decompose a signal into mobile scaled versions of the original wavelet ("mother"). The comparison allows to obtain coefficients that are susceptible of interpretation and subsequent manipulation. 
 
Descomposition wavelet:
In this case I use the transform of discrete wavelets (DWT): it will be used this transformed for a new representation of the image, more appropriate for the compression process
 
We choose a wavelet to work with it and we apply it, this will generate a array of coefficients, known as wavelet coefficients which are four: 

  • csA: Approximation Coefficient
  • csH:horizontal Coefficient
  • csV: vertical Coefficient
  • csD: diagonal Coefficient


We can then apply each of the coefficients to create new images that will show each detail contained in each coefficient.


This are the process for the compression to the image:


Step 1: This procces Convert the imagen to grey scale
First apply gray scale that already has been handled previously, this consists of adding the value of r, g and b of each pixel and take your average, finally is assigned the same value to each r, g, b). 




Step 2. Subsequently generated an array of the image to grayscale (in the new image became smaller, here the array is created for full-size image width by height):
 


Step3. Then we call the function coefficients, where we apply the function of the DWT (Discrete Wavelet transformed).

Use the dwt2 () function to apply this transform for 2 dimensions, it requires 2 parameters to work:
pywt.dwt2 (data, wavelet)

Data: Array with the information of the pixels.

Wavelet: We choose a wavelet in this case "haar".



Step4. Create an image for each coefficient. A first test print the array that returned coefficients are made and saw that numbers returning negative and greater than 255.

I need to apply a filter because the generating arrays from the coefficients contain negative numbers and numbers that pass 255 so this cant be included on and image, what we do is to create a filter any negative value will be 0 and any value that pass 255 will be 255 any other value will remain the same, after fixing the array we apply it to a new image generating the coefficient images.

Step5. The images are created

Approximation Coefficient


horizontal Coefficient
 vertical Coefficient


Diagonal Coefficient


6.Compressed Image


 
Compression level

Differences of what was the capacity of the compressed image to the original (image in grayscale) reduction:

Test 2: 

 Approximation Coefficient

 Horizontal
 Vertical
 Diagonal
Compress
 
Reference:

Filip Wasilewski, "PyWavelets - Discrete Wavelet Transform in Python", 31 de Agosto de 2012. [Accessed:  27 de Mayo de 2013], in http://www.pybytes.com/pywavelets/

TEORÍA DE WAVELETS, [Accessed: May 28th, 2013]
http://catarina.udlap.mx/u_dl_a/tales/documentos/lem/hernandez_d_m/capitulo2.pdf

Wavelet, [Accessed: May 27th,2013]
http://elisa.dyndns-web.com/~elisa/teaching/comp/vision/wavelet.pdf







Extra Point: Article of Bioinformatics

For this assignment we were asked to make a summary of an article related bioinformatics.

Article: 
An algorithm for constraint-based structural template matching: application to 3D templates with statistical analysis
Autors:
 Jonathan A. Barker∗,† and Janet M. Thornton


Introduction

This paper mentions about the diferents algorithms and methods based in  structural templates, that we can be use  in 3D templates.  Mention that in the biology exist diferent structures templates and function, the structural templates consist of atoms in a specific geometric conformation provide a powerful tool for studying the relation ship between protein structure and funcition. 

A small structural template,  for an active site typically consists of around ten functional atoms in a specific geometric shape. Usually there are no restrictions on the type of atom and, sometimes, sequential relations, exist methods for template searching constrain template syntax and semantics by their design. The real functional properties of a protein without doubt should be represented more easily by a good structure in 3D instead of just a sequence of 1D.

Several tools have been developed expressly for the purpose of seeking well-defined structural templates. For best results here is introduces Jess, a fast and flexible algorithm for searching protein structures for small groups of atoms under arbitrary constraints on geometry and chemistry.  

An alghoritm is the suite with SPASM and RIGOR allows a greater general coincidence of centroid and positions. On the other hand JESS requires substantial pre-calculation and storage and also imposes more stringent limitations in the semantics of the template.

An other term, spoke about the best algorithm implement for  structural templates it is  the design of JESS (JESS is not an acronym, but that is so called in honor of his TESS predecessor, the T replaced by the first initial of the author of Jess) that they were guided by the following requirements:

1. Generality: JESS must be capable of processing a template that consists of arbitrary restrictions on physical, sequential and geometric properties. 
2. Compatibility: A large number of JESS and templates have been derived from SPASM and refined within our group. It would be desirable for JESS to be able to process these templates in order to extend their definitions to a later date. 
3. Standardization: In general, the templates have a wide variety specificity and selectivity.
4. Modularity: The internal design of JESS must be modular enough to allow the modification of the template syntax without significant re-encoding.

Mentions that the normalization is essentially a post-processing. In the case of the templates of JESS, the candidate sites are scored using RMSD after a optimal rigid overlap with the atoms in the template.

Algorithm 
The most important algorithm mention  is JESS, that describe the process of templates, geometric constraints are constructed by measuring pairwise distances between the atoms and allowing distance mismatches up to a maximum supplied as a parameter, it is consist: 


  • The atoms of T are thought of as variables t1,...,tn , the ordering being unimportant but held fixed throughout the computation. 
  • The task facing Jess is to find all possible assignments{t1←m1,...,tn←mn} of atoms in M to the template variables which simultaneously satisfy all the constraints in C. 
  • Problems such as this fall within the domain of constraint logic programming 

Define a partial solution as a set of assignments {t1←m1,...,tk←mk}with k≤n for which all constraints in C involving t1,...,tk alone are satisfied. . The basic method of solution is inductive; we assume a partial solution and attempt to extend it by fixing the assignment of one more variable.

Then we can construct all complete solutions to the problem using the next pseudocode


The core of Jess is a combination of a trace constraint solver and a comprehensive index of the query molecule. The constraint solver works in cooperation with a compiled template separately to find solutions in the system of constraints in an efficient manner.


Methods for Statical analysis

For work in a sigle template the statistical analysis is at least, in this case the results are directly comparable, but if we want to compare the results obtained with several templates, we have to take into account that have different specifications and the normalization of the results of different templates. 

As usual we constructed a non-redundant structure reference population R, and analyzes the distribution of the results obtained when R is polled with each of the templates.

Reference population
  • SCOP  and CATH, for example, provide lists of representatives at various levels of structural similarity. However structural classification takes place mostly at the domain level. 
  • For each of the structures classified in CATH we recorded domain composition at the H-level (homology)including multiplicity.
  • Thus, each structure is assigned a label in the form of a multi-set of domain codes. 

Fitting model distributions
In the same structure was used 186 enzyme active site templates, we probed the reference population described above. The results were collected on a per-template basis. Was used the Marquardt–Levenberg (ML) algorithm to fit normal distributions to cumulative frequency data and the Kolmogorov–Smirnoff test to assess the results. 

----------------------------------------------------------------------------------------------------------------------------------
Personal Conclusion 
The 3D templates are very important within the bioinformatics, because it helps in the prediction or calculation of the 3D structures of different proteins, in medicine for the design of drugs and biotechnology (in the design of new enzymes). 

In my opinion one of the major challenges of the structural bioinformatics is to provide good reliable statistical data for the measures of the structural similarity.


Reference to: 
Available at: http://bioinformatics.oxfordjournals.org/content/19/13/1644.full.pdf [Accessed in 28 May 2013]


martes, 21 de mayo de 2013

Lab #13. Lecciones aprendidas sobre el proyecto propio

Retroalimentación de nuestro proyecto

Hablando de la realización de nuestro proyecto me pareció que se fue trabajando bien en equipo e individualmente para poder realizarlo, ya que fue de una manera mas fácil  planificarlo mediante la calendarización. 


Mi aportación 
En mi aportación me parece que tuve parte en cuanto a la idea de proyecto, así como en cada avance de proyecto la cuales si fueron tomadas en cuenta, algunas ideas no concordaban con las de mis compañeros pero pudimos llegar a una idea final antes de cada presentación para que no hubiera ningún tipo de duda de la idea principal o no se alejara del objetivo que habíamos definido. 



Problemas que se presentarón: 
Existieron algunos atrasos en cuanto a la organización de los días que podríamos empezar a realizarlo pero al final nos pudimos coordinar para esto definiendo fechas de avances.   Hubo  algunas confusiones en el proyecto ya que algunos agregábamos diferentes opiniones individuales para realizarlo por falta de tiempo y por enfocarnos en otras tareas. 

Se pudo ir avanzando ya de una manera mas organizada al conseguir los materiales y empezar armar el prototipo principal para la evaluación de usabilidad donde tuvimos mas claro la construcción de la vitrina y la integración de los componentes que darían como resultado lo ya presentado. 

También por el tiempo que se dedico a este proyecto no se hicieron muchas pruebas al prototipo final y si hubo algunos problemas en el funcionamiento pero se logro corregirlos. 




Desempeño
En conclusión tuvimos un buen desempeño para lograr nuestro objetivo, si faltaron algunas cosas por concluir en el proyecto pero se obtuvo la parte importante o mas cercana a la idea principal.  Claro reconociendo lo que trabajo y no el proyecto tuvo algunas debilidades que se pueden solucionar para trabajos futuros tomando en cuenta que para tener un equipo y un trabajo bien realizado hay que tener una planificación, comunicación y respetar cada idea para poder llegar a buenos resultados. 

Lab #13.Retroalimentación a las presentaciones finales

Para esta semana en laboratorio se nos pidió  realizar retroalimentación referente a las presentaciones finales de cada equipo. 

SeguriLap(http://aveoctavo.blogspot.mx/search/label/TemasSSI)

  • Su presentación me pareció bien en las partes mencionadas que si se pudieron concluir, en cuanto a la autenticación de usuario en mi opinión si hubiese sido mejor terminarlo de manera completa para una mejor seguridad para el usuario. 
  • Como sugerencia a futuro en el rendimiento si me parece que les falto un poco ya  que no se noto mucho como autentifico al usuario para el bloqueo de la computadora y para el desbloqueo. 

CarNXP(http://inteligentsystems.wordpress.com/)

  • Su proyecto me pareció muy completo ya que los avances que han ido presentando llego a concluirse y presentarse lo esperado. 
  • Me pareció que querían abarcar muchas áreas de su proyecto y no midieron bien el tiempo para concluirlos. 

Despertador Inteligente:(http://3-its.blogspot.mx/
  • Me pareció muy completo su presentación final ya que abarcaron lo que habían mencionado anteriormente que era la implementación de la alarma. 
  • Su prototipo de la cama esta muy completo ya que hace ver de manera mas real como es el funcionamiento de su alarma. 
  • Como sugerencia podrían utilizar otro tipo de sonido ya que podría hacer interferencia con otros sonidos alrededor. Además que el usuario pudiera elegir el tipo de alarma y que dependiendo de cuanto tiempo se tarde en levantarse podrían poner que el sonido aumentara a un sonido mucho más fuerte así sería mucho mas fácil y rapido que la persona se levante.
  • También como sugerencia a futuro podrían mejorar la interfaz de la alarma 
Casa Inteligente: (http://3puntosteam.blogspot.mx/)
  • Les falto terminar pues la mayoría de lo que habían mencionado en sus avances y por lo menos abarcar la parte básica.
  • Si quedo incompleto ya que no hubo algún demo en vivo que explicara el funcionamiento de su proyecto.  
Garage Inteligente: (http://obicomp.blogspot.mx/)
  • Me gusto que pudieron abarcar lo que habían mencionado durante sus avances. 
  • En lo logrado esta muy completo tanto como la interfaz para el acceso web aunque pudieron haber usado otros colores ya que se pierden con el azul, la simulación me pareció que esta muy bien para la demostración en vivo ya que como ustedes mencionan es mejor tener una simulación de manera local ya que solo es abrir y cerrar el garage. 
  • Me gusto el poder controlar la puerta desde el móvil es algo innovador y practico para algunos usuarios que cuentan con un garage en su hogar y de mucha seguridad ya que se verán las situaciones que se presenta fuera de su hogar mediante las imágenes. 
Alarma Inteligente de Auto: (http://ubicomputo.blogspot.mx/)
  • Me parece que hubo mas debilidades que fortalezas del proyecto tal vez por esos inconvenientes de tiempo y planeación para poder concluirlo por completo. 
  • Pueden tomar en cuenta este proyecto para realizar proyectos a futuro a partir de esto.
  • Ayudo mucho las imágenes de como realizaron las cosas, ya que como se trata algo referente a realizarse con ayuda de un carro. 
  • Además de que hubiera sido mejor realizarlo con un prototipo pequeño.
Localizador Inteligente  de objetos: (http://gtdsoftwa.blogspot.mx/search/label/LabComputoUbicuo)
  •  Acerca de la interfaz no se distingue muy bien el escaneo y los colores no son los mas adecuados, además la interfaz no se entiende muy bien a simple vista y  los elementos que contiene. 
  • Me parece que falto un poco de organización para lograr finalizar totalmente el proyecto
  • Como trabajo a futuro me pareció bien que tomaran en cuenta lo de definir un lider de equipo para ayudarse en la organización del equipo.
  • En su demostración fue algo inconclusa y no muy entendible en cuanto a su funcionamiento. 
  • Me pareció que su proyecto es algo completo en lo logrado ya que algunos de esos ya se habían  mencionado en los avances y se logro terminar la parte mas importante. 
  • También creo que deberían de tener una forma más organizada de realizar el trabajo y tener una mejor comunicación entre ustedes mismos, en sí explicaron bien la forma en la que funciona el proyecto.
  • En cuanto su interfaz me parece muy poco visible y el video no se ve muy bien como es el funcionamiento de la lectura. 

Lab #12. Borrador de plan de negocios

Esta semana se nos pidió realizar como tarea un borrador de un plan de negocios para una idea relacionada con la clase de computo ubicuo.

Plan de Negocios


Propuesta y Objetivos

Esta idea es relacionada a la idea de un hospital inteligente me enfoque en un área especifica que es la localización de pacientes así como de su historial  dentro de un hospital, 
donde los usuarios en este caso médicos, enfermeros y personal administrativo  tendrán mayor comodidad interactuando con dispositivos móviles. 

¿En qué consiste?

Este consiste en un identificador de pacientes  y su historial medico, esto mediante un sistema que permitirá tener acceso a todo el historial del paciente, los informes médicos, medicamentos pautados y cuidados necesarios. 

Esta basado en tecnología NFC y RFID que permite la identificación del paciente y el acceso a su historial. Los datos y la información del paciente no estará almacenada en la etiqueta; simplemente este proporcionará una breve información del paciente y a través de la identificación de se accederá a un sistema de gestión hospitalaria dónde se encuentran todos los datos del paciente.



Objetivos

El objetivo es la identificación de pacientes y el acceso instantáneo a todo el historial con el uso de terminales móviles tipo tablets o smartphones, donde el personal como doctores y enfermeros no tendrá que localizar y transportar carpetas con historiales, resultados de pruebas como antes y podrá evitarse errores de transcripción a las indicaciones que pueda dar el médico en cada momento. Además ayudara en la logística de las visitas médicas y reducirá los errores de medicación o historial de los pacientes


Herramientas


Se encapsularían las etiquetas en una pulsera para la comodidad del paciente y hacer que el sistema no sea  y pase desapercibido por el usuario.
Para leer las pulseras utilizaremos un lector móvil de RFID pasivos, en nuestro caso será una tablet o smarthphone con NFC ya que ésta nos permitirá leer la información de la etiqueta y mediante conexión vía wifi o 3G descargar los informes y presentarlos en la misma pantalla.


Hardware 



  • Terminales NFC(Tablets o Smarthphones): Leer la información de la etiqueta y mostrar la información.
  • Grabadora de etiquetas RFID: Grabación de etiqueta RFID


Software 



  • Middleware entre el terminal(tablet o smarthphone) y el sistema de gestión hospitalaria
  • Etiquetas RFID (encapsuladas en pulseras): Almacenar código identificador del paciente e información mínima.
  • Sistema de historial de pacientes(gestión hospitalaria)



Análisis

Fortalezas
  • Innovación Tecnológica: Este proyecto sería de innovación ya que implicarán una evidente mejora en el servicio y en la calidad de los tratamientos a pacientes
  • Mejora el control de pacientes: Alcanzaría mejoras muy significativas en los procesos administrativos y de control. 
  • Retroalimentación de los usuarios: La cantidad de usuarios(médicos y pacientes) ayudarían a obtener retroalimentación para mejorías dentro del hospital, y beneficios que se tuvieron. 
  • Seguridad: Ayudara en el control de pacientes que entran, salen o permanecen hospitalizados y para seguridad en áreas restringidas donde solo pueda estar personal autorizado. 


Oportunidades
  • Oportunidad de crecimiento: El proyecto puede crecer para ofrecer más funcionalidades dentro de los hospitalales, pacientes y personal que se encuentra para una mayor seguridad. 
  • Utilizar recursos existentes: Se haría uso de dispositivos móviles que cuentan con conexión  Wi-FI para obtener la información de los pacientes. 
Debilidades 
  • Falta de aceptación: Algunos usuarios no podrían mostrar interés por la tecnología que se presenta y no prestar atención o desaprobar el proyecto. 
Amenazas
  • Falta de apoyo: Aunque es un proyecto pensado en el beneficio del hospital y de los pacientes  podría darse el caso de no obtener apoyo de manera económica directores o responsables de hospital o centro medico. 
  • Posible cobro de cuotas por este servicio: Es posible que ya implementado dentro de los hospitales o centros de salud puedan hacer algún cargo extra hacia los pacientes.  
  • Conectividad:  Pudieran existir fallas en la conexión para tener la información de los pacientes 

Posibles clientes
Como es un enfoque especifico en pacientes los clientes más interesados podrían ser los Directores general de Hospitales y centros de salud donde ayudarían en la mejora de estos lugares y  a sus pacientes con este tipo de innovaciones tecnológicas. El proyecto crecería entorno a las necesidades de los médicos y pacientes. 

También  hay que considerar este tipo de tecnología en empresas que suministran bienes y productos a Hospitales, y por otro lado es muy importante no dejar de lado aquellas ubicaciones fuera del Hospital como son pacientes que no están internados, oficinas y unidades móviles.


Competitividad
Existen diferentes hospitales alrededor del mundo que cuentan ya con esta tecnología para mejorar sus servicios. 

España es uno de los lugares alrededor del mundo que cuenta con la existencia de este tipo de producto donde se hace interacción con el paciente y los brazaletes con tecnología RFID. 






En este link  encontré tiene una aplicación más sobre esta idea enfocada para una medida de salubridad dentro de hospitales consiste en un brazalete que mide si el medico ha lavado bien sus manos antes de una intervención o de tener contacto con el paciente. 

http://www.emol.com/noticias/tecnologia/2013/03/28/590783/brazalete-inteligente-medira-que-tan-bien-se-lavan-las-manos-los-doctores.html

Conclusiones: 
Como pude ver en algunos vídeos y en información de tecnologías existentes relacionados a este proyecto me parece que cada vez hay mas innovación con este tipo de tecnologías  su aplicación es muy recomendable, ya que implica una evidente mejora en el servicio y en la calidad de los tratamiento a pacientes, porque se alcanzarán unas mejoras muy significativas en los procesos administrativos y de control, y porque además  su desarrollo tiene una rentabilidad alta en otros países. Esto serviría como una innovación para dar mar seguridad a pacientes y dentro de todos los hospitales. 


jueves, 16 de mayo de 2013

Lab. #10 Detección de Movimiento

Para está semana se nos pidió realizar detección de movimiento con la técnica de nuestra elección, pero con una implementación detectar en una secuencia de video aquellos objetos que están en movimiento.
Mi repositorio:
https://github.com/vane90/visioncomput/blob/master/lab10.py
En esta ocasión primeramente se realizo el movimiento en 2 dimensiones de 3 rectángulos estos se mueven en direcciones de izquierda, derecha, arriba y abajo esto simulando el movimiento.

Así es con la prueba de movimiento con los 3 






 Aquí va parte del codigo

Ahora la idea es que al hacer un movimiento este fuera guardando en una imagen y mediante detección de formas al ir haciendo el movimiento marcara los centros para ver el cambio de movimiento de izquierda, derecha, arriba y abajo, es ahí donde podemos ver que existe ese movimiento de los rectángulos.

Solo pude realizarlo con un solo objeto no con los tres mostrados anteriormente.

  • Obtenemos la primer imagen de movimiento y la procesamos de la siguiente manera:
    • escala de grises
    • filtro
    • convolución
    • formas
  • Ya obteniendo la imagen en formas debemos de tener el centro de esta forma 


Escala de grises



 
Filtrado


convolución
Binarizar umbral =20

Detección de formas
Y estos son los movimientos que realizo







Código final