Giter Site home page Giter Site logo

hairstyle-simulation's Introduction

EC601 Project Hairstyle Simulation

Team member: Lingxiu Ge, Lingshan Yang, Tong Ye, Yujia Wang

Project Goals:

Haitstyle Simulation is a project designed for

  • Users who have difficulties expressing desired hairstyles to their barbers
  • Users who want to know which hairstyle fits them best
  • Users who want to know how they look with different hairstyles.
  • Barbers who want to help their customers looking for an ideal hairstyle
  • Barbers who want to show their customers different hairstyles without actually cutting their hair

Accomplishments:

We successfully implemented an Android application that -

  • helps users who want to know which hairstyle fits them best or how they look with different hairstyles.
  • Recognizes human face and establishes key feature points.
  • Provides real-time Augmented-Reality 3D hairstyle simulation.
  • Recommends hairstyle to users based on different face shapes.

How to run our app:

  1. install andriod studio
  2. import project
  3. run project on an andriod phone (please note that our project DOES NOT work on virtual phone)
  4. open main and choose a type of hair style
  5. our app works the best when the user stays close to the front camera
  6. Note that you may encounter "Invalid VCS root mapping" Errors but they are fine just ignore them.

Recommendation Algorithm:

Base on the key feature points (graph above), we use two parameters to define a person’s face type:

  • p1=dis(1,15)/dis(6,10)
    • If p1<2.0, the face is recognized as an oval shape.
    • If 2.0<p1<2.5, the face is recognized as a round shape
    • If p1>2.5, the face is recognized as a square shape
  • p2=dis(0,16)/dis(8,27)
    • If p2<1.0, the face is recognized as short
    • If 1.0<p2<1.15, the face is recognized as medium length
    • If p2>1.15, the face is recognized long

We are still working on getting more 3D hairstyle models to work for our project. For now, we only have two hairstyles that works well. We have implemented multiple colors for the hairstyles and created a recommendation module based on different hair colors. We have nine types of hairstyles and colors. If you click on the recommendation button, the recommended hairstyle based on our algorithm will show up. PLEASE note that you need to click on the recommendation button everytime the user is changed (a.k.a different faces). If the recommendation button is not clicked and user is changed, the app will keep showing the recommendation hairstyle for the previous user until the button is clicked again.

Technology Used:

  • Use Android studio to develop Android application
  • Use STMobile’s built-in function to recognize a human face and establish 106 (at most) key feature points.
  • Use Rajawali to generate and present 3D model
  • Use blender to edit 3D models

Test Report:

Acknowledgement:

  • Simon Cherry
  • Professor Osama Alshaykh
  • EC601 Teaching Assistants in Fall 2017

======================================================================================
Thanks for using Hairstyle Simulation.
If you have any questions, feel free to email us at [email protected] or [email protected].

hairstyle-simulation's People

Contributors

lilyxiuxiuxiu avatar crownyoung0303 avatar xiuxiuxiu avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.