Projekt 01
RhinoAI
Eine mobile KI-Anwendung, die anhand eines Nutzerfotos Rhinoplastik- und Gesichtsproportionsanalysen durchführt. Landmark-Erkennung und Deep-Learning-Inferenz laufen in Echtzeit vollständig auf dem Gerät.
- Kategorie
- Mobile
- Rolle
- Durchgängige Entwicklung
verwendete technologien
- Kotlin
- Jetpack Compose
- Python
- TensorFlow Lite
- ML Kit
- ViT
problem
Problem
Die Analyse von Gesichtsproportionen vor einer Rhinoplastik erfordert normalerweise eine fachärztliche Vermessung in der Klinik — etwas, das eine Person nicht selbst durchführen kann. Bestehende mobile Lösungen laden das Foto auf einen Server hoch, was ein Datenschutzproblem schafft und die App von einer Internetverbindung abhängig macht.
lösung
Lösung
Ich habe eine Android-Anwendung entwickelt, die sowohl die Landmark-Erkennung als auch die Deep-Learning-Inferenz vollständig auf dem Gerät ausführt. ML Kit Face Mesh erkennt 468 Referenzpunkte, aus denen Gesichtsverhältnisse und Asymmetriewerte berechnet werden. Die schwereren Klassifikationsmodelle wurden nach TensorFlow Lite konvertiert und durch Quantisierung verkleinert.
ergebnis
Ergebnis
Das Foto verlässt das Gerät nie, die Analyse funktioniert ohne Internetverbindung, und es entstehen keine Serverkosten.
wichtigste funktionen
- 01Erkennung von 468 Gesichtsreferenzpunkten mit ML Kit Face Mesh und Berechnung von Asymmetriewerten.
- 02Latenzarme On-Device-Inferenz mit Modellen, die für TFLite optimiert und konvertiert wurden.
- 03Moderne, reaktive Android-Architektur auf Basis von MVVM und Jetpack Compose.
warum diese entscheidungen
Warum TensorFlow Lite?
Das Vision-Transformer-basierte Modell war deutlich zu schwer, um direkt auf dem Mobilgerät zu laufen. Die TFLite-Konvertierung und Quantisierung brachten sowohl Modellgröße als auch Inferenzzeit auf ein akzeptables Niveau.
Warum Jetpack Compose?
Die App musste Landmarks in Echtzeit über eine Live-Kameravorschau zeichnen. Das reaktive Modell von Compose bewältigt eine Oberfläche, die sich in jedem Frame aktualisiert, deutlich sauberer als XML-basierte Views.