Read before reproducing
I first converted the source paper into an auditable specification: what the paper states, what it leaves underspecified, and what would require an explicit implementation assumption.
24-hour research sprint
I implemented IDSentinel in 24 hours as an independent, paper-inspired research reproduction—working from feasibility and provenance through controlled experiments, failure analysis, and public documentation.
Identity-document systems often focus on recognition, while presentation attacks can preserve readable content and alter the physical path between document and camera. I wanted to test whether explicit texture and edge representations add useful evidence beyond a strong semantic vision backbone.
I do not claim authorship of the original architecture or equivalence to the paper's full experiment. Repository documentation separates paper-described components, my implementation choices, and the results observed on Protocol A-Reduced.
I first converted the source paper into an auditable specification: what the paper states, what it leaves underspecified, and what would require an explicit implementation assumption.
Before training, I audited dataset licenses, provenance, class/source relationships, document lineage, duplicates, and split leakage. The mixed-source composite proposal was rejected rather than hidden as a limitation.
On an 8 GB laptop, acquisition streamed selected frames, decoding stayed serial, preprocessing used CPU batch 1 and zero workers where needed, and the full dataset was never cached in RAM.
Protocol A-Reduced fixed 300 balanced samples, group-aware splits, portrait crops, normalization, seed, no-augmentation policy, and validation/test discipline before architecture comparisons.
M3 established semantics. M4 isolated texture without edge. M5 isolated fixed-Sobel edge evidence without texture. The untested three-branch model was deliberately not reported.
I compared confusion matrices, class F1, correction overlap, new failures, padding behavior, learned fusion weights, and persistent errors—while avoiding causal claims the data cannot support.
Each milestone had explicit outputs and a stop gate. No API, frontend, or later model work entered an earlier research milestone.
Local CPU smoke tests validated shapes, gradients, optimizers, and checkpoints. Real training used a temporary free Tesla T4 with mixed precision.
Validation selected checkpoints. Test was evaluated once. Negative results and shortcut risks remained in the final story.
Safe source code, aggregate metrics, reproducibility metadata, confusion matrices, training curves, and methodology are public. Raw dataset media, prediction-level identity-document crops, private bundles, and large checkpoints remain excluded.
View the implementation on GitHub ↗