Skip to the content.

Características do Relatório Técnico

Android Kotlin Gradle AGP

Visão Geral

DriveON detecta sinais de fadiga a partir de landmarks faciais (MediaPipe) e classificação temporal (ONNX). Emite alertas, registra eventos no Firebase e apresenta relatórios com MPAndroidChart.

Recursos

Detecção em tempo real

CameraX + MediaPipe Face Landmarker com overlay de pontos faciais.

Classificação temporal

Modelo ONNX (LSTM) para Microsleep, Bocejo, Atento e Sem Rosto.

Relatórios claros

Gráficos Pizza/Barras/Radar com legendas que não se sobrepõem.

Confiável offline

Firestore com cache/persistência offline e sessão persistida (auto‑login).

Arquitetura (alto nível)

CameraX -> MediaPipe FaceLandmarker -> Landmarks
       -> Extração de features (normalização + pontos) -> Buffer temporal (SEQ_LEN)
       -> ONNX Runtime (LSTM) -> Decisão (microsleep/bocejo/atento)
       -> UI (overlay + status + contadores) -> Alertas -> Firestore (events)

Avaliação e Métricas

Parâmetros alternativos

Sensibilidade Microsleep (ms) Bocejos necessários Uso
Alta 1200 2 Plantões longos / maior vigilância
Média (padrão) 2000 3 Equilíbrio alerta × conforto
Baixa 2800 4 Testes ou motoristas sensíveis a alarmes

Estrutura de Pastas

app/
  src/main/java/com/example/faceanalysis/
    AnalysisActivity.kt · AlertManager.kt · OverlayView.kt
    LoginActivity.kt · RegisterActivity.kt · HomeActivity.kt · MainActivity.kt
    ReportActivity.kt · ProfileActivity.kt · PrivacyActivity.kt
  src/main/res/ (layouts, values, raw)
  src/main/assets/ (face_landmarker.task, model_lstm_*.onnx)

Instalação Rápida

  1. Coloque seu app/google-services.json (não é versionado neste repositório público)
  2. Habilite Auth por E‑mail/Senha no Firebase Console
  3. Sincronize o Gradle e execute o módulo app em um dispositivo real

Firestore

Estrutura dos eventos

users/{uid}/events (document)
  status: "Microsleep" | "Bocejo" | "Atento" | "Sem Rosto" | "Sinais de Sono"
  startTime, endTime, duration (ms)
  ear, mar, confidence, device
  startReadable, endReadable

Regras sugeridas

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /users/{userId} {
      allow read, write: if request.auth != null && request.auth.uid == userId;
      match /events/{eventId} {
        allow read, write: if request.auth != null && request.auth.uid == userId;
      }
    }
  }
}

Troubleshooting

Roadmap

Changelog

Crislucas Pereira – Ednei Romão – Guilherme Nishiyama – Victor Nunes