project 05
FocusPulse
Een Android-applicatie die aandacht en concentratie tijdens het werken analyseert via cameradata. Alle verwerking gebeurt op het apparaat; het beeld verlaat het nooit.
- Categorie
- Mobiel
- Rol
- Solo-ontwikkelaar — Android en edge-AI
- Jaar
- 2026
gebruikte technologieën
- Kotlin
- Android
- ML Kit
- TensorFlow Lite
- Python
- OpenCV
probleem
Probleem
Concentratieverlies en vermoeidheid tijdens thuiswerken en lange werksessies zijn niet objectief te volgen. De meeste bestaande oplossingen sturen het camerabeeld naar de cloud — ze vragen dus je privacy op te geven om gemonitord te worden.
oplossing
Oplossing
Ik heb een Android-applicatie ontwikkeld die knipperfrequentie, hoofdpositie en kijkrichting volledig op het apparaat analyseert. De modelkant heb ik geprototypeerd in Python en OpenCV en vervolgens omgezet naar TFLite; de app draait die lichtgewicht modellen lokaal. De signalen worden omgezet in een live afleidingsindex, die dynamische pauzesuggesties aanstuurt.
resultaat
Resultaat
Het resultaat is een werkende Android-applicatie die het beeld van de gebruiker nooit het apparaat laat verlaten, een live focusindex berekent en pauzefeedback genereert.
belangrijkste functies
- 01Detectie van afleiding via knipperfrequentie, hoofdpositie en kijkrichting.
- 02On-device beeldverwerkingsarchitectuur die een live afleidingsindex berekent.
- 03Inferentie met lage latentie via naar TFLite geconverteerde modellen.
- 04Dynamische pauzesuggesties en waarschuwingsfeedback.
- 05Data wordt volledig lokaal verwerkt en bereikt nooit een server.
waarom deze keuzes
Waarom on-device inferentie in plaats van de cloud?
Cloudgebaseerde vision-API's bieden sterkere modellen maar botsen met het doel van het systeem: in een applicatie die iemand tijdens het werken continu observeert, is het versturen van het beeld naar de cloud onacceptabel. Lichtgewicht inferentie op het apparaat nam dat probleem volledig weg en maakte het netwerk overbodig.
Waarom is het model in Python gebouwd maar de app in Kotlin?
Voor modelexperimenten en validatie is het Python-ecosysteem onvergelijkbaar sneller. Maar het eindproduct zou een Android-applicatie worden; het model omzetten naar TFLite en vanuit Kotlin draaien gaf native prestaties zonder de ontwikkeling te vertragen.
Waarom gedragssignalen in plaats van directe classificatie?
In plaats van één enkele indeling "gefocust / afgeleid" heb ik gekozen om afzonderlijke signalen te meten — knipperen, hoofdpositie, kijkrichting — en daaruit een index af te leiden. Zo bleef het resultaat verklaarbaar: de gebruiker ziet waarom hij een melding kreeg.