Skip to content

aitf-sr1/fer_ensemble

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

File yang dipublish

  • cleaning/
    • extractFrames.py
    • retinaface_crop.py
    • media_pipe_mesh.py
    • rebuild_matched_csv.py
  • model/train_ensemble_fer.py
  • model/evaluate_model.py
  • README.md

File/folder yang tidak dipublish

Data, label, dan artefak model tidak disertakan ke GitHub, termasuk:

  • DataSet/
  • ExtractedFrames/
  • dataset_crop/
  • dataset_landmark/
  • dataset_fix/
  • Labels/
  • checkpoints/
  • landmark_check_vis/

Kebutuhan environment

  • Python >= 3.10
  • Paket utama: torch, torchvision, mediapipe, opencv-python, pandas, scikit-learn, numpy, matplotlib, seaborn, tqdm, pillow, albumentations

Contoh setup:

python -m venv .venv
# Windows PowerShell
.\\.venv\\Scripts\\Activate.ps1
pip install -U pip
pip install torch torchvision mediapipe opencv-python pandas scikit-learn numpy matplotlib seaborn tqdm pillow albumentations

Alur kerja lokal

  1. Siapkan data lokal di mesin masing-masing.
  2. (Opsional) Crop wajah dengan RetinaFace.
  3. Ekstraksi landmark dengan MediaPipe.
  4. Sinkronisasi label dan build dataset final.
  5. Training model multitask.

Menjalankan script

Jalankan command dari root project agar path relatif default tetap valid.

1) Crop wajah (opsional)

python cleaning/retinaface_crop.py

Default:

  • input: DataSet
  • fallback: ExtractedFrames (jika DataSet berisi video)
  • output: dataset_crop

2) Ekstraksi landmark

Contoh split train:

python cleaning/media_pipe_mesh.py \
  --input-dir dataset_crop/train \
  --output-root dataset_landmark \
  --split-name train \
  --width 224 \
  --height 224 \
  --backend solutions \
  --save-metadata

Ulangi untuk split val dan test.

3) Sinkronisasi label dan build dataset final

python cleaning/rebuild_matched_csv.py \
  --splits train val test \
  --dataset-root dataset_landmark \
  --labels-dir Labels \
  --output-root dataset_fix

4) Training

python model/train_ensemble_fer.py \
  --dataset-root dataset_fix \
  --image-size 224 \
  --batch-size 16 \
  --epochs 15 \
  --save-dir checkpoints/ensemble_fer

Resume training:

python model/train_ensemble_fer.py \
  --dataset-root dataset_fix \
  --save-dir checkpoints/ensemble_fer \
  --resume-auto

5) Evaluasi model dari checkpoint terbaik

Auto pilih best_multitask.pt dengan best_val_overall_acc tertinggi di bawah folder checkpoints:

python model/evaluate_model.py \
  --dataset-root dataset_fix \
  --checkpoints-root checkpoints

Pakai checkpoint spesifik:

python model/evaluate_model.py \
  --dataset-root dataset_fix \
  --checkpoint checkpoints/engagement_focal_push/best_multitask.pt

Simpan hasil evaluasi ke JSON:

python model/evaluate_model.py \
  --dataset-root dataset_fix \
  --checkpoints-root checkpoints \
  --save-json checkpoints/eval_result.json

Format data untuk training

model/train_ensemble_fer.py mengharapkan:

  • image: dataset_fix/images//...
  • landmark: dataset_fix/landmark//...
  • CSV label di dataset_fix/labels/

Kolom target wajib:

  • Boredom
  • Engagement
  • Confusion
  • Frustration

Kolom landmark yang didukung:

  • landmark_file
  • landmark_rel_path

Catatan

Repository ini fokus pada kode pipeline saja. Data dan model disimpan terpisah di local storage atau cloud storage.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages