project 01

RhinoAI

A mobile AI application that performs rhinoplasty and facial proportion analysis from a user's photo. Face landmark detection and deep learning inference run in real time, entirely on the device.

Category
Mobile
Role
End-to-end development

technologies used

  • Kotlin
  • Jetpack Compose
  • Python
  • TensorFlow Lite
  • ML Kit
  • ViT

problem

Problem

Facial proportion analysis before rhinoplasty normally requires an expert measurement in a clinical setting — something a person cannot do on their own. Existing mobile solutions upload the photo to a server, which creates a privacy problem and makes the app dependent on an internet connection.

solution

Solution

I built an Android application that runs both face landmark detection and deep learning inference entirely on the device. ML Kit Face Mesh detects 468 reference points, from which facial ratios and asymmetry values are calculated. The heavier classification models were converted to TensorFlow Lite and shrunk through quantisation.

outcome

Outcome

The photo never leaves the device, the analysis works without an internet connection, and server costs are zero.

key features

  • 01Detection of 468 facial reference points via ML Kit Face Mesh, with asymmetry calculations.
  • 02Low-latency on-device inference using models optimised and converted to TFLite.
  • 03Modern, reactive Android architecture built on MVVM and Jetpack Compose.

why these choices

Why TensorFlow Lite?

The Vision Transformer based model was far too heavy to run directly on mobile. TFLite conversion and quantisation brought both the model size and the inference time down to an acceptable level.

Why Jetpack Compose?

The app had to draw landmarks over a live camera preview in real time. Compose's reactive model handles an interface that updates every frame far more cleanly than XML-based views.

Thinking about a similar project?