Diseñar y desarrollar una aplicación móvil
Diseñar y desarrollar una aplicación móvil (APK) funcional que utilice la cámara del teléfono para detectar rostros en tiempo real y reconocer/identificar a personas cuyos datos biométricos ya se encuentren previamente registrados en una base de datos local o en la nube.
Fases de Desarrollo
Fase 1: Recopilación y Registro de la Base de Datos (Dataset)
Qué hacer: La app debe permitir registrar nuevos usuarios o contar con un script previo para alimentar la base de datos.
Requerimientos:
Capturar al menos 5 imágenes por cada persona a registrar desde diferentes ángulos y con distintas condiciones de iluminación.
Almacenar las imágenes o los vectores de características
Fase 2: Extracción de Características y Modelo de Reconocimiento (Patrones)
Qué hacer: Implementar el algoritmo de reconocimiento de patrones para convertir las imágenes de rostros en datos matemáticos medibles.
Fase 3: Desarrollo de la Interfaz de Usuario (UI) y la APK
Qué hacer: Programar la interfaz gráfica y compilar la aplicación para Android.
Supongamos que tenemos un banco de imágenes de frutas y queremos que un programa pueda identificar cuáles imágenes contienen una manzana.
1. Preprocesado de datos
Primero se preparan las imágenes para que todas tengan condiciones similares:
Cambiar todas las imágenes al mismo tamaño, por ejemplo, 100 × 100 píxeles.
Convertirlas a escala de grises si el color no es necesario.
Eliminar ruido o pequeños puntos que puedan afectar el reconocimiento.
2. Segmentación de datos
Se separa la información importante de la que no lo es.
Por ejemplo, en una imagen de una manzana sobre una mesa, se intenta separar la manzana del fondo.
El sistema puede identificar los píxeles que pertenecen al objeto y descartar la mesa y otros elementos.
3. Aplicación de filtros al banco de patrones
Se aplican filtros para resaltar características de las imágenes, como:
Bordes.
Forma.
Contorno.
Textura.
Por ejemplo, un filtro puede detectar el contorno redondo de la manzana.
4. Reconocimiento
Finalmente, las características obtenidas se comparan con el banco de patrones previamente almacenado.
Por ejemplo:
Imagen analizada → forma redonda + contorno + características de manzana → comparación con patrones → "Manzana"
Ejercicio
Una tienda quiere desarrollar un sistema que identifique automáticamente si una fotografía corresponde a una manzana, una naranja o un plátano. El alumno deberá preparar las imágenes, segmentar el objeto del fondo, aplicar filtros para resaltar sus características y comparar los resultados con un banco de patrones para determinar qué fruta aparece en la imagen.
Y ahí puedes hacer que los alumnos identifiquen:
Proceso
Preprocesado
Ajusta tamaño y calidad de las imágenes
Segmentación
Separa la fruta del fondo
Filtros
Resalta bordes, forma y características
Banco de patrones
Contiene ejemplos de manzanas, naranjas y plátanos
Reconocimiento
Determina qué fruta aparece
En el siguiente enlace tendrás los documentos necesarios para poder realizar la practica
Responde las siguientes preguntas
¿Qué es la adquisición de datos y cuál es su importancia dentro del reconocimiento de patrones?
¿Qué características debe tener un dato para que pueda ser utilizado posteriormente en un sistema de reconocimiento de patrones?
¿Qué diferencias existen entre adquirir datos de forma manual y adquirirlos mediante programación?
¿Qué fuentes de información disponibles en Internet pueden utilizarse para obtener datos para un proyecto de reconocimiento de patrones?
¿Qué aspectos deben considerarse para determinar si la información obtenida de Internet es confiable?
¿Cómo puede utilizarse un escáner para adquirir datos que posteriormente serán procesados por una computadora?
Explica un ejemplo en el que utilizarías un escáner como fuente de datos para un sistema de reconocimiento de patrones.
¿Qué ventajas y desventajas tiene utilizar un escáner para adquirir imágenes?
¿Qué diferencias existen entre una Web Cam, la cámara de un celular y una cámara digital como fuentes para adquirir datos?
¿Qué factores pueden afectar la calidad de una imagen capturada mediante una Web Cam?
¿Qué características de un teléfono celular pueden influir en la calidad de los datos obtenidos mediante su cámara?
¿En qué situaciones sería más conveniente utilizar una cámara digital en lugar de la cámara de un celular?
Explica cómo la iluminación puede afectar los datos obtenidos mediante una cámara.
¿Qué problemas podrían presentarse si las imágenes obtenidas para un proyecto tienen diferentes tamaños, resoluciones o condiciones de iluminación?
Describe un procedimiento para adquirir manualmente un conjunto de imágenes que posteriormente pueda utilizarse para entrenar un sistema de reconocimiento de patrones.
¿Por qué es necesario realizar pruebas y validación después de adquirir un conjunto de datos?
¿Qué características deben revisarse para determinar si los datos adquiridos son adecuados para un proyecto?
¿Qué problemas pueden ocasionar los datos incompletos, repetidos o de mala calidad en un sistema de reconocimiento de patrones?
¿Cómo comprobarías que una imagen adquirida mediante una cámara contiene información suficiente para ser utilizada en un proyecto?
Explica la diferencia entre probar los datos y validar los datos.
¿Qué significa adquirir datos mediante programación y qué ventajas ofrece este método?
¿Qué diferencias existen entre recopilar información manualmente de Internet y utilizar un programa para realizar la adquisición de datos?
¿Qué elementos debe considerar un programa diseñado para obtener información automáticamente desde Internet?
¿Qué problemas pueden presentarse cuando un programa obtiene datos directamente de Internet?
¿Por qué es importante validar los datos obtenidos automáticamente mediante un programa?
Describe un ejemplo de un proyecto de reconocimiento de patrones en el que sería conveniente adquirir datos de Internet mediante programación.
¿Qué función puede desempeñar Python u otro lenguaje de programación en la adquisición automática de datos?
¿Cómo podría programarse una computadora para capturar imágenes utilizando una Web Cam?
¿Qué factores deben considerarse al diseñar un programa que capture imágenes automáticamente mediante una Web Cam?
Imagina que debes desarrollar un sistema que capture fotografías mediante una Web Cam para posteriormente reconocer diferentes objetos. Describe paso a paso cómo realizarías la adquisición, almacenamiento, pruebas y validación de los datos obtenidos.