{
  "model": {
    "name": "DriverStateNet",
    "epoch": 16,
    "parameterCount": 183975,
    "inputFrames": 90,
    "inputFeatures": 18,
    "strideFrames": 15
  },
  "test": {
    "accuracy": 0.6359727290729582,
    "macro_f1": 0.6571298960892504,
    "weighted_f1": 0.6368999646104752,
    "n_test_windows": 35349,
    "per_class": {
      "Alert": {
        "precision": 0.5736098020735155,
        "recall": 0.601264572218929,
        "f1": 0.5871117113640748,
        "support": 15183
      },
      "Drowsy": {
        "precision": 0.6852486683191815,
        "recall": 0.6619287788476235,
        "f1": 0.6733868877947655,
        "support": 19629
      },
      "Distracted": {
        "precision": 0.758985200845666,
        "recall": 0.6685288640595903,
        "f1": 0.7108910891089109,
        "support": 537
      }
    }
  },
  "domains": {
    "AUC-V2": {
      "accuracy": 1.0,
      "macro_f1": 1.0,
      "n_samples": 274,
      "f1_alert": 0.0,
      "f1_drowsy": 0.0,
      "f1_distracted": 1.0
    },
    "DMD-Distraction": {
      "accuracy": 0.8784798939460893,
      "macro_f1": 0.44013394013394014,
      "n_samples": 4526,
      "f1_alert": 0.9357864357864358,
      "f1_drowsy": 0.0,
      "f1_distracted": 0.38461538461538464
    },
    "DMD-Drowsiness": {
      "accuracy": 0.7504424778761062,
      "macro_f1": 0.43362073493767966,
      "n_samples": 1130,
      "f1_alert": 0.8381171067738232,
      "f1_drowsy": 0.4627450980392157,
      "f1_distracted": 0.0
    },
    "UTA-RLDD": {
      "accuracy": 0.590876644345491,
      "macro_f1": 0.3699954791767419,
      "n_samples": 29419,
      "f1_alert": 0.4285171102661597,
      "f1_drowsy": 0.6814693272640661,
      "f1_distracted": 0.0
    }
  },
  "importance": {
    "pitch": 0.04000340584671232,
    "roll": 0.023596216388321368,
    "yaw": 0.023421416673472396,
    "perclos": 0.017520375938398614,
    "gaze_pitch": 0.01378093180474287,
    "gaze_yaw": 0.011708697976083848,
    "head_pose_stability": 0.011449436553164105,
    "blink_duration_avg": 0.011254886761961892,
    "blink_rate": 0.010369229615953634,
    "head_nod_count": 0.0065779165199952635,
    "eyes_off_road_pct": 0.005871568680577743,
    "ear_right": 0.004048321422469692,
    "ear_avg": 0.0017765348158012896,
    "gaze_stability": 0.0016395109417343568,
    "ear_velocity": 0.0012303758744584893,
    "mar": 0.00026686220364660065,
    "mouth_open_duration": 0.00013522483424928123,
    "ear_left": -9.02362828048009e-05
  },
  "confusion": [
    [
      9129,
      5952,
      102
    ],
    [
      6624,
      12993,
      12
    ],
    [
      162,
      16,
      359
    ]
  ],
  "selection": {
    "epoch": 16,
    "best_val_f1": 0.6523005248402308,
    "train_metrics": {
      "loss": 0.16849173963555117,
      "accuracy": 0.9310730898653998,
      "macro_f1": 0.9268226071614553,
      "f1_alert": 0.9189354676463514,
      "f1_drowsy": 0.9405382136076648,
      "f1_distracted": 0.9209941402303495
    },
    "val_metrics": {
      "loss": 1.9718031907133404,
      "accuracy": 0.6339333452147567,
      "macro_f1": 0.6523005248402308,
      "f1_alert": 0.5406792162396178,
      "f1_drowsy": 0.6948350750440804,
      "f1_distracted": 0.7213872832369942
    },
    "sampleCounts": null
  },
  "majorityControl": {
    "label": "Drowsy",
    "accuracy": 0.5552915216837817,
    "macro_f1": 0.23802248171996074,
    "weighted_f1": 0.39651559820768134,
    "kind": "analytical constant prediction on conserved test label counts"
  },
  "provenance": {
    "evaluationFirstCommit": "54311c5",
    "evaluationCommitDate": "2026-06-02",
    "sourceHead": "aa0e52bed41e080a649a86d31908de7544010d76",
    "sha256": {
      "models/evaluation/test_metrics.json": "75ac766bd9ec973af5377ffbf8e5252005190c260fbb3803ce2e330ffdfbf271",
      "models/evaluation/per_dataset_metrics.json": "dfc43e24ab495bdb74f8243b9e5d24ac756fbe81ba7ce71f08ce937112247bc6",
      "models/evaluation/feature_importance.json": "320f3d62ea1a06948f2fa38bb8bf0810b1c33ec95d81762db3361bb85e841db7",
      "models/evaluation/confusion_matrix.png": "703b99d81022a735b2dcf1ae51a35e94b4b7ab5fd2dfaac2c868ab35bb22e48a",
      "models/feature_config.json": "a711e526a489659aff2308513e325fad4e7aafc22b44cbf571dfbeed2ed3f5b2",
      "models/best_model.pt": "c31acef02088d9f3f206b8616b9473a4f5cb5f20ffb887e7113ec6ef0afeaafd",
      "models/driver_state_net.onnx": "bee797061b3aa3de2816b50c29d5a5c0ee9af3bcae61f6749e98624c633ddc55",
      "src/model.py": "26c92ce1aa0141f1342cd2187ab2ab7f24405334008e07c7d6354ce99f15478b",
      "src/features.py": "7c0fddc4783bbbcbbb95ec4d4b17a92a724a60ccc493726b4be92a539e43a06f",
      "scripts/train_model.py": "49290785a30861458318908dd56347a2027c985d05ae23e488e3b66cbfd31745",
      "scripts/evaluate.py": "85f743fcb99b064992b0e2797a5ac9788a4d9e23d7ad034dbef90a474d319d82",
      "scripts/build_splits.py": "a65a4834d98107f958a0271b79618c3f21d5923aa899ebe251e2ac7c010ac28e",
      "scripts/extract_features.py": "a9988e03cf185afc4b5cf0e34c08abff0e68bd4a0f395b294e94942fffbbc075",
      "scripts/export_onnx.py": "e7c91d228b5d7c0d6a69138d6bba6e9716606cbc53899fcfd0a4e4ee5c609bad"
    }
  },
  "limitations": [
    "No per-window predictions, split manifests, participant counts or independent training seeds retained in this checkout.",
    "Overlapping windows share 75 of 90 frames; no independent-window confidence interval is reported.",
    "Per-domain macro-F1 follows sklearn default class union; class sets differ and are not directly comparable.",
    "AUC-V2 test supports only Distracted (274 windows); image ordering is not natural video time.",
    "Live demo applies external z-score; conserved evaluation feeds raw features to model LayerNorm.",
    "YOLO and manual overrides are absent from the conserved neural-network evaluation."
  ]
}
