Giter Site home page Giter Site logo

face_landmark's Introduction

face_landmark

A simple face aligment method, based on tensorflow2.0

introduction

This is the tensorflow2.0 branch, if u need to work on tf1 switch to branch tf1, it still work.

It is simple and flexible, trained with wingloss , multi task learning, also with data augmentation based on headpose and face attributes(eyes state and mouth state).

CN blog

And i suggest that you could try with another project,including face detect and keypoints, and some optimizations were made, u can check it there [pappa_pig_face_engine].

Contact me if u have problem about it. [email protected] :)

demo pictures:

samples

gifs

this gif is from github.com/610265158/Peppa_Pig_Face_Engine, but it is the same model : )

pretrained model:

shufflenetv2_1.0 tflite is not ok, retrain is needed, sad, i need more time.
shufflenetv2_0.75 including tflite model, (time cost: mac [email protected], tf2.0 5ms+, tflite 3.7ms+-)

requirment

  • tensorflow2.0

  • tensorpack (for data provider)

  • opencv

  • python 3.6

useage

train

  1. download all the 300W data set including the 300VW(parse as images, and make the label the same formate as 300W)
├── 300VW
│   ├── 001_annot
│   ├── 002_annot
│       ....
├── 300W
│   ├── 01_Indoor
│   └── 02_Outdoor
├── AFW
│   └── afw
├── HELEN
│   ├── testset
│   └── trainset
├── IBUG
│   └── ibug
├── LFPW
│   ├── testset
│   └── trainset
  1. run python make_json.py produce train.json and val.json (if u like train u own data, please read the json produced , it is quite simple)

  2. then, run: python train.py

  3. by default it trained with shufflenetv2_1.0

finetune

  1. download the pretrained model keypoints, put it into ./model and the model dir structure is :
 ./model/
  └── keypoints
      ├── saved_model.pb
      └── variables
          ├── variables.data-00000-of-00002
          ├── variables.data-00001-of-00002
          └── variables.index

  1. set config.MODEL.pretrained_model='./model/keypoints/variables/variables', in train_config.py

  2. adjust the lr policy

  3. python train.py

convert to tflite

  1. modify the model path in toos/convert_to_tflite.py

  2. python toos/convert_to_tflite.py it will produce converted_model.tflite

  3. CAUTION: the pretrained model shufflenentv2_1.0 is not ok with tflite, because the shuffle op, but it was fixed, if u need 1.0 please retrain, or wait for me.

visualization

python vis.py --model ./model/keypoints  
or python vis.py --model ./model/keypoints.tflite  (need conver to tflite first) 

TODO:

face_landmark's People

Contributors

610265158 avatar

Watchers

James Cloos avatar  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.