The paper’s central contribution is showing that the near-perfect accuracy these drowsiness-detection architectures report is largely an artifact of testing on the same dataset they were trained on: both models lose a real, measurable fraction of their accuracy the moment they’re evaluated zero-shot on an independent dataset (custom CNN 99.7%→82.35%, transfer learning 99.1%→87.65%), and you introduce the Generalization Ratio as a simple, reusable way to express that drop against each architecture’s own published ceiling.
The more significant methodological finding, though, is what that gap turned out to actually be made of. A prior single-run reproduction of this same protocol found a much larger gap and attributed it to an architectural limitation — but by repeating every condition five times, you discovered that two of five seeds had simply collapsed from a bad weight initialization, not a genuine ceiling on generalization. Fixing that (He-init) and re-averaging shows the real gap is smaller than previously reported, meaning part of what looked like “domain shift” in earlier work was actually undiagnosed training instability. That’s a genuinely useful correction for the field, not just your own paper.
The other concrete contribution reviewers tend to value: the condition-stratified analysis pins the remaining gap on sensor identity specifically (not eyewear or lighting), and the error asymmetry (models fail safe, over-predicting “closed” rather than missing drowsiness) is a practically meaningful result for anyone deploying this class of system.
