← Volver a los casos
App nativa · Android · Offline

App Android de reconocimiento facial en el dispositivo

Registrar a una persona a partir de su rostro e identificarla después, sin conexión a internet y sin depender de un servidor.

Período
2025 · ~3 meses
Equipo
Pequeño
Mi rol
Mobile developer
Foco
100% Android

Proyectos bajo acuerdo de confidencialidad. Los nombres de clientes, el código y las capturas no se muestran; los títulos son descriptivos.

Contexto

Aplicación nativa para Android que captura el rostro con la cámara, lo procesa y genera su huella facial (un vector numérico) para registrar a la persona y luego identificarla. Todo se ejecuta en el propio dispositivo.

La usan operadores encargados de registrar e identificar personas en tareas de control de acceso. Partimos de una prueba de concepto previa; antes de la app final hicimos varias pruebas de concepto y librerías internas de apoyo.

Problema

Identificar personas de forma rápida y sin conexión.

El reto técnico: ejecutar modelos de visión artificial en un móvil con buen rendimiento. Detectar el rostro en tiempo real, capturarlo solo cuando está de frente, alinearlo, generar el vector y buscarlo por similitud entre los ya registrados.

Qué hice

  • Captura en tiempo real con la cámara del dispositivo (Camera2) y procesamiento de cada fotograma.
  • Detección del rostro y sus puntos de referencia, con captura automática cuando la persona mira de frente.
  • Alineación, recorte y normalización del rostro antes de pasarlo al modelo.
  • Generación del vector facial con una red neuronal ejecutada en el dispositivo.
  • Búsqueda por similitud entre vectores mediante código nativo, y almacenamiento local de los registros.

Desafíos resueltos

  • Procesar los fotogramas de la cámara en segundo plano sin bloquear la interfaz.
  • Adaptar la lógica de procesamiento de imagen para que funcionara en Android.

Arquitectura

App nativa offline: el procesamiento de imagen, la inferencia del modelo y la búsqueda de vectores se hacen dentro del dispositivo.

Stack

Mobile
  • Java
  • Android SDK
  • Camera2
  • Android NDK (C/JNI)
  • Gradle
Visión artificial
  • ONNX Runtime
  • MediaPipe
  • OpenCV
Bases de datos
  • SQLite

Aprendizajes

Desarrollo Android nativo, modelos de IA en el dispositivo, procesamiento de imágenes, embeddings y búsqueda por similitud vectorial, e integración de código C en Android.