Skip to content

kiemkhach/dtop_leafsnap_project

Repository files navigation

DToP-LeafSnap (DPE + Multi-Size) & ResNet50 Baseline

Implements DToP for LeafSnap, with Dynamic Position Embedding (via timm interpolation) and multi-size training. Options: ResNet50 baseline, Proxy-Anchor loss, and GeM in local branch. Also supports cross-domain eval on a PlantCLEF subset.

Folder layout

LeafSnap: train//.jpg|png val//.jpg|png test//*.jpg|png

PlantCLEF subset: test//*.jpg|png

Commands

python -m venv .venv && source .venv/bin/activate pip install -r requirements.txt

DToP + Proxy-Anchor + GeM(local)

python train.py --data_root /path/to/leafsnap --model dtop --loss proxyanchor --local_pool gem --multi_sizes 192 224 256 288 --epochs 30 --batch_size 32 --device cuda

ResNet baseline

python train.py --data_root /path/to/leafsnap --model resnet --loss triplet --epochs 30 --batch_size 32 --device cuda

Eval on LeafSnap test

python eval.py --data_root /path/to/leafsnap --split test --model dtop --ckpt runs/dtop_proxyanchor_gem/best.pt

Cross-domain: PlantCLEF subset

python eval.py --data_root /path/to/plantclef_subset --split test --model dtop --ckpt runs/dtop_proxyanchor_gem/best.pt

Extract feature

python extract_features.py --data_root /content/drive/MyDrive/Project/dtop_leafsnap_project/data --split train --out_csv outputs/train_features.csv
--do_resnet --do_dtop_gap --do_dtop_gap
--ckpt_resnet runs/resnet_triplet_gap/best.pt
--ckpt_dtop runs/dtop_triplet_gap/best.pt

python db/ingest_from_csv.py --csv outputs/train_features.csv --db_url "$DATABASE_URL"

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages