BSB_Sim/experiments/02_baseline_dtw.py
2026-10-19 08:11:33 +02:00

45 lines
1.4 KiB
Python

"""Run the DTW baseline on a folder of per-signature CSV files."""
import argparse
import json
from pathlib import Path
try:
from experiments.common import evaluate_directory
except ModuleNotFoundError:
from common import evaluate_directory
def main() -> None:
parser = argparse.ArgumentParser(description=__doc__)
parser.add_argument("--data-dir", default="data/raw/mobisig")
parser.add_argument("--enrollment-count", type=int, default=3)
parser.add_argument("--seed", type=int, default=0)
parser.add_argument("--output", type=Path)
args = parser.parse_args()
metrics = evaluate_directory(
args.data_dir, enrollment_count=args.enrollment_count, seed=args.seed, mobisig=True
)
print(f"EER: {metrics['eer']:.4f}")
print(f"Threshold at approximate EER: {metrics['eer_threshold']:.4f}")
if args.output:
args.output.parent.mkdir(parents=True, exist_ok=True)
args.output.write_text(
json.dumps(
{
"dataset": str(args.data_dir),
"enrollment_count": args.enrollment_count,
"seed": args.seed,
"eer": metrics["eer"],
"eer_threshold": metrics["eer_threshold"],
},
indent=2,
)
+ "\n",
encoding="utf-8",
)
if __name__ == "__main__":
main()