martes, 30 de octubre de 2012

Tercer Avance


Resumen del proyecto

Recordando un poco sobre lo que trata nuestro proyecto. Es sobre el encendido por medio del reconocimiento de huella dactilar de un automóvil. No hemos realizado ningún cambio con respecto a la entrega anterior.

Avance con respecto a la planeación.

Hasta el día de hoy hemos avanzado significativamente en nuestro proyecto, luego de 2 meses de espera por la llegada del fingerprinter.

Hemos estado realizando investigaciones sobre el uso de huellas dactilares en la seguridad y hemos encontrado datos importantes que sustentan nuestro proyecto, alguna de ellas son:

·                      * La Huella es única
·                      *Las características usadas para la identificación no varían con el tiempo

La técnica a utilizar es el reconocimiento de patrones.
Existen métodos manuales para la búsqueda de huellas dactilares en colecciones, también existen métodos automatizados de búsqueda precisa de una representación.

Hay características primarias para el reconocimiento que son las crestas y los valles.
También hemos encontrado que existen 6 diferentes tipos de huella como vemos a continuación.




Para compararlas se crea una imagen o se toma una fotografía de la huella y se comparan ciertos puntos antes mencionados que hacen característica a esa huella.

Nos hemos encontrado con algunos problemas como lo ha sido la alimentación de el arduino ya dentro del vehículo  para ello la solución que tenemos al día de hoy es utilizar una pila de 9V con la desventaja que se tendría que estar cambiando cada vez que se le agote la pila.

Lo que nos falta al día de hoy es empezar a realizar pruebas e instalar el sistema en el vehículo.

Las herramientas utilizadas siguen siendo las mismas que ya se han mencionado en la entrega anterior, de igual manera las mencionamos nuevamente a continuación:

·                      * Fingerprinter
·                      *Arduino UNO
·                      * Librerías Fingerprinter
·                      *Arduino IDE
·                     *  Lenguaje de programación Processing y C++
            * Información respecto a reconocimiento de patrones.

El código esta casi listo, aun tiene algunos muchos bugs que necesitan reparase pero la función esta prácticamente terminada, el código esta extraño porque esta construido en base a la librería de arduino y la librería del fingerpinter, colocaremos algunos pedazos del mismo por cuestiones educativas.

Metodos en C++

//Obtiene la imagen del fingerprinter

uint8_t Adafruit_Fingerprint::getImage(void) {
  uint8_t packet[] = {FINGERPRINT_GETIMAGE};
  writePacket(theAddress, FINGERPRINT_COMMANDPACKET, 3, packet);
  uint8_t len = getReply(packet);

  if ((len != 1) && (packet[0] != FINGERPRINT_ACKPACKET))
   return -1;
  return packet[1];
}
//Hace la búsqueda rápida


uint8_t Adafruit_Fingerprint::fingerFastSearch(void) {
  fingerID = 0xFFFF;
  confidence = 0xFFFF;
  // high speed search of slot #1 starting at page 0x0000 and page #0x00A3
  uint8_t packet[] = {FINGERPRINT_HISPEEDSEARCH, 0x01, 0x00, 0x00, 0x00, 0xA3};
  writePacket(theAddress, FINGERPRINT_COMMANDPACKET, sizeof(packet)+2, packet);
  uint8_t len = getReply(packet);

  if ((len != 1) && (packet[0] != FINGERPRINT_ACKPACKET))
   return -1;

  fingerID = packet[2];
  fingerID <<= 8;
  fingerID |= packet[3];

  confidence = packet[4];
  confidence <<= 8;
  confidence |= packet[5];

  return packet[1];
}


viernes, 19 de octubre de 2012

Perceptron AND

El Perceptrón es un tipo de red neuronal artificial desarrollado por Frank Rosenblatt, también puede entenderse como perceptrón la neurona artificial y unidad básica de inferencia en forma de discriminador lineal, que constituye este modelo de red neuronal artificial, esto debido a que el perceptrón puede usarse como neurona dentro de un perceptrón más grande u otro tipo de red neuronal artificial.

Código de entrenamiento en Java


Y como aquí no andamos con cosas de linux vs windows/opensource vs proprietary software les traemos los códigos para todos!