AIFaceShapeDetector / README.md
3v324v23's picture
Add application file
318219d
metadata
title: AIFaceShapeDetector
emoji: 
colorFrom: blue
colorTo: gray
sdk: gradio
sdk_version: 6.5.1
app_file: app.py
pinned: false
license: cc-by-nc-4.0
short_description: Smple Face Shape Detection using Mediapipe and ML

AI Face Shape Detector (Hugging Face Space)

Upload a front-facing photo (or use your webcam) and this Space predicts your face shape and shows a MediaPipe face-mesh overlay plus confidence scores.

Full app available at attractivenesstest.com/face_shape.

Supported face shapes

  • Oval
  • Round
  • Square
  • Heart
  • Oblong

How it works (from app.py)

  • Face landmark extraction: Uses MediaPipe Face Mesh (up to 478 landmarks) to detect a single face.
  • Landmark normalization: Centers landmarks using the eye/iris center, applies roll correction, and scales by inter-eye distance.
  • Classification: Flattens normalized landmark coordinates and runs a pickled scikit-learn classifier (loaded from face_shape_model.pkl) with a label encoder (label_encoder_rf.pkl).
  • Outputs:
    • An image with a face mesh/contour overlay
    • A formatted result card (shape + description + styling tip)
    • Per-class confidence scores

Tips for best results

  • Use a front-facing photo with good lighting
  • Ensure your entire face is visible
  • Remove glasses if possible
  • Avoid tilting your head

Run locally

python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
python app.py

Then open the Gradio URL printed in your terminal.

Notes / limitations

  • This demo expects one clear, visible face in the image (max_num_faces=1).
  • If no face is detected, the app will return an error message asking for a clearer photo.
  • Uploaded images are processed in-memory by the app; the code does not intentionally save uploads to disk.