Skip to content

tf-keras code of Face Ear Landmark Detection System (with Multi-Task Learning).

Notifications You must be signed in to change notification settings

Dryjelly/Face_Ear_Landmark_Detection

Repository files navigation

Face Ear Landmark Detection System (with Multi-Task Learning)

tf-keras code of Face, Ear Landmark Detection System based on these papers
아래의 논문들을 기반으로 한 얼굴, 귀 랜드마크 탐지 시스템의 tf-kears 코드

Single Task Model (Face or Ear)

Face Landmark Detection

result

Ear Landmark Detection

result

Model Architecture (Paper)

model

This system is not for multi-person detection.
PAF(Part Affinity Fields: Layers in Blue Area) is not included.

Multi Task Model (Face and Ear)

We want to add the feature to detect a new task(Ear) landmark in a single task(Face) landmark detection model.
우리는 단일 Task(Face) 랜드마크 탐지 모델에 새로운 Task(Ear)의 랜드마크를 탐지하는 기능을 추가하길 원합니다.

1. 새로운 Task를 위한 모델을 학습해 총 2개의 모델 사용

❌ 동시에 2개 모델을 사용하므로 필요한 리소스가 큽니다.

2. 기존 Task 데이터와 새로운 Task 데이터를 합쳐 새로운 모델을 학습

❌ 기존 모델의 학습된 정보를 이용하지 않아 비효율적입니다.
❌ 학습 시간이 오래 걸립니다.

3. 기존 모델의 가중치를 고정, 새로운 Task를 위한 output layer를 만들고 학습

❌ 새로운 Task를 위한 가중치가 제한적이므로 성능이 떨어질 수 있습니다.

4. Knowledge Distillation 기법을 사용해 새로운 Task를 학습

✅ Multi Task Learning 에 효율적인 기법으로 과거 학습 지식을 유지하며 현재 학습 지식을 잘 학습할 수 있습니다.

Model Architecture

distillation_model

Update: Knowledge Tansfer (ATTENTION TRANSFER) 기법 추가.

Full Landmark Detection

result

Demo

result

Dataset (Face: 300W-LP(AFW) / Ear: ibug-ears)

face-examplar ear-examplar

Run

Train

Single Task Model Train

  • Face landmark model train
> python train_face.py
  • Ear landmark model train
> python train_ear.py

Multi Task Model Train (Run train_face.py first!!!)

> python train_face2ear.py

Demo

> python demo_multi.py

Environment

  • python
  • tensorflow 2

Reference

Paper

Code

Data