Tabla de Contenidos

Flujo clave: entrega

Propósito

Describir el recorrido real de una entrega desde la detección de peso hasta el guardado local y sincronización.

Resumen

  1. WaitingForWeight: espera peso estable para iniciar un intento.
  2. CaptureImages: toma snapshot de frente y trasera en NV21 desde CameraFramesChannel.
  3. ComparingWeights: valida rangos de peso contra configuración.
  4. CaptureFace: detecta rostro sobre NV21 frontal y valida cobertura (muy lejos/muy cerca).
  5. GenerateEmbedding: genera embedding facial desde NV21 (sin pasar por bitmap en el camino principal).
  6. VerifyInDatabase: busca candidatos por similitud y aplica estrategia de match por intentos y fallbacks.
  7. WaitForWeightRemoved: espera retiro del ítem para cerrar correctamente la transacción.
  8. SaveDelivery: guarda entrega en DB local y persistencia de evidencia (conversión a bitmap solo al guardar).

Secuencia de estados

DomainManager arma y ejecuta esta secuencia:

  1. WaitingForWeight
  2. CaptureImages
  3. ComparingWeights
  4. CaptureFace
  5. GenerateEmbedding
  6. VerifyInDatabase
  7. WaitForWeightRemoved
  8. SaveDelivery

Validación de identidad (resumen operativo)

  1. Usa umbral base Model.UMBRAL y lo relaja por intento.
  2. Busca top-k de candidatos y prioriza candidatos del shift activo.
  3. Intenta resolver match estricto.
  4. Si falla, aplica fallbacks para enrolados (rápido, directo, ultra y temporal).
  5. Si no hay match confiable, crea beneficiario local no enrolado.

Evidencias y formatos

  1. Captura y procesamiento: NV21 (YUV_420_888 convertido a NV21 en cámara).
  2. Embedding: se calcula sobre NV21 con recorte facial.
  3. Guardado de fotos: se convierte a Bitmap al persistir en disco.
  4. Formato de archivo: PNG para foto de rostro y foto de alimento.

Fuentes de verdad

Ultima verificacion