Skip to content

PearlBean/ttt

Repository files navigation

PA-100K Attribute Classification Guide

Du an nay huan luyen va danh gia mo hinh nhan dien thuoc tinh nguoi di bo tren bo du lieu PA-100K. Pipeline hien tai gom 2 buoc chinh:

  1. Dung YOLO de phat hien nguoi va crop vung chinh trong anh goc.
  2. Huan luyen mo hinh ResNet50 da nhan de du doan 7 thuoc tinh.

1. Cau truc du an

PA-100K/
|-- annotation.mat
|-- best.pt
|-- best_attr_model.pt
|-- README.txt
|-- reporting.py
|-- train.py
|-- train.csv
|-- val.csv
|-- test.csv
|-- data/                  # Can bo sung thu muc anh PA-100K tai day
|-- cropped/               # Tu dong tao sau khi crop
`-- report_output/         # File danh gia sinh ra boi reporting.py

2. Du lieu dau vao

Thu muc data/ phai chua anh goc cua bo du lieu PA-100K. Ten file anh trong data/ phai khop voi cot Image trong cac file CSV:

  • train.csv
  • val.csv
  • test.csv

CSV hien tai su dung cac cot sau:

  • Image
  • gender
  • is_male
  • has_bag
  • has_backpack
  • has_hat
  • has_longsleeves
  • has_longpants
  • has_coat_jacket

Mo hinh hien tai huan luyen tren 7 nhan:

  • is_male
  • has_bag
  • has_backpack
  • has_hat
  • has_longsleeves
  • has_longpants
  • has_coat_jacket

File annotation.mat la metadata goc cua PA-100K. File README.txt la mo ta ngan cua bo du lieu goc.

3. Moi truong de xuat

  • Windows hoac Linux
  • Python 3.10+
  • CUDA la tuy chon. Script tu dong dung cuda neu co, neu khong se chay bang CPU.

Tao moi truong ao va cai thu vien:

python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install --upgrade pip
pip install torch torchvision ultralytics opencv-python pandas numpy pillow tqdm matplotlib scikit-learn scipy

Neu dang dung GPU, can cai phien ban torch phu hop voi CUDA tren may.

4. Cac file quan trong

best.pt

Trong train.py, day la trong so YOLO dung de phat hien nguoi trong anh truoc khi crop.

best_attr_model.pt

La trong so tot nhat cua mo hinh phan loai thuoc tinh. File nay:

  • se duoc ghi de sau moi lan train neu validation loss tot hon
  • duoc reporting.py nap de danh gia tren tap val va test

5. Huan luyen

Chay:

python train.py

Script train.py se tu dong thuc hien:

  1. Doc train.csv, val.csv, test.csv.
  2. Dung best.pt de phat hien nguoi chinh trong moi anh cua thu muc data/.
  3. Resize crop ve kich thuoc 128 x 256.
  4. Luu anh crop vao:
    • cropped/train/
    • cropped/val/
    • cropped/test/
  5. Tao lai cac file:
    • cropped/train.csv
    • cropped/val.csv
    • cropped/test.csv
  6. Huan luyen ResNet50 cho bai toan da nhan.
  7. Luu mo hinh tot nhat thanh best_attr_model.pt.

Cau hinh mac dinh trong train.py

  • Batch size: 32
  • Epochs: 20
  • Learning rate: 1e-4
  • Kich thuoc anh: 128 x 256
  • Backbone: ResNet50

Neu can thay doi hyperparameter, sua truc tiep phan CONFIG trong train.py.

6. Danh gia va bao cao

Sau khi co best_attr_model.pt, chay:

python reporting.py

Script nay se:

  1. Nap mo hinh tu best_attr_model.pt.
  2. Danh gia tren cropped/val.csv va cropped/test.csv.
  3. Ap dung nguong du doan mac dinh 0.5.
  4. Sinh bao cao vao thu muc report_output/.

File output

Voi moi split val va test, script sinh:

  • *_per_attribute_metrics.csv: accuracy, precision, recall, F1, ROC-AUC theo tung thuoc tinh
  • *_summary.csv: loss, mean accuracy (mA), mean F1
  • *_classification_report.txt: classification report chi tiet theo tung thuoc tinh
  • *_confusion_matrix_<attribute>.png: confusion matrix cho moi thuoc tinh
  • *_roc_curve_<attribute>.png: ROC curve cho moi thuoc tinh neu tinh duoc AUC

Neu ton tai metrics.csv tai thu muc goc va file nay co cac cot phu hop, reporting.py con co the sinh them:

  • loss_curve.png
  • f1_curve.png

7. Luong chay de xuat

Neu day la lan dau su dung repo:

  1. Dat anh PA-100K vao thu muc data/.
  2. Cai cac phu thuoc Python.
  3. Chay python train.py de tao crop va huan luyen.
  4. Chay python reporting.py de tao bao cao danh gia.

Neu chi muon danh gia mo hinh da co san:

  1. Dam bao da co best_attr_model.pt.
  2. Dam bao da co cropped/val.csv, cropped/test.csv va cac anh trong cropped/val, cropped/test.
  3. Chay python reporting.py.

8. Mot so luu y

  • Repo hien tai khong kem thu muc data/, vi vay can tu them bo du lieu truoc khi train.
  • Moi lan chay train.py, pipeline se crop lai du lieu va co the mat nhieu thoi gian.
  • train.py bo qua anh khong phat hien duoc nguoi.
  • Neu file best_attr_model.pt khong ton tai, reporting.py se bao loi.

9. Ket qua hien co

Thu muc report_output/ da chua san mot so file tong hop va classification report cho val va test. Co the mo thu muc nay de xem nhanh ket qua danh gia gan nhat.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages