45 lines
1.4 KiB
Python
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()
|