BONA FIDE
Real identity-document capture
A note to the team that inspired this sprint
I recently interviewed for the Deep Learning Research Intern role. After the interview, I spent time exploring HyperVerge's Identity Verification, Document Verification, Forgery Check, Face Authentication, and fraud/deepfake-detection products—and the computer-vision question behind them: how can a system determine whether an identity presented to it is actually trustworthy?
That led me down a research rabbit hole around document presentation attacks, where genuine IDs can be presented through prints, screens, or manipulated representations. I eventually found the paper “Multi-Branch Forensic Architecture for ID Card Presentation Attack Detection with Portrait Extraction.”
Instead of only waiting for my interview result, I gave myself 24 hours to implement, test, and critically evaluate the idea from scratch. That became IDSentinel. This website is the complete build story—what worked, what failed, the dataset issues I found, and what I learned.
Implemented in 24 hours · Protocol A-Reduced
IDSentinel is my independent, paper-inspired implementation of a forensic vision system for distinguishing bona fide identity-document captures from print and screen presentation attacks.
Research prototype · no production or state-of-the-art claim
The complete project
Presentation attacks place a reproduction between the camera and the identity document. A printed copy can preserve semantic content while changing surface texture. A screen recapture can preserve layout while adding display structure and edge characteristics.
The project therefore tests three controlled configurations: semantic ConvNeXt alone, semantic plus texture, and semantic plus fixed-Sobel edge evidence. The classifier receives pixels only—never device, source, detector, file-path, or padding metadata.
Real identity-document capture
Printed reproduction presented to the camera
Document recaptured through another display
Architecture
Every model receives the same 384×384 RGB portrait/context crop. The semantic backbone captures higher-level appearance; the texture path measures learned pixel structure; the edge path exposes fixed luminance gradients before lightweight learned processing.
Inside the edge representation
This real M5 research artifact shows deterministic examples across BONA_FIDE, PRINT, and SCREEN, including both correct and failed predictions. The fixed Sobel front end reveals contour structure without pretending it is an attention map or causal explanation.

Dataset and scientific controls
A proposed four-class DLC-2021 + SIDTD merge was blocked because dataset source could reveal the composite label. Instead, the primary experiment uses DLC-2021 alone for BONA_FIDE, PRINT, and SCREEN.
Read the methodology →Protocol A-Reduced is not the full DLC-2021 benchmark. It is a controlled 24-hour reduced reproduction protocol built under dataset-access, network, storage, and 8 GB laptop constraints.
Frozen test results
M4 reached 0.679 Macro-F1, driven primarily by observed PRINT improvement. Edge also improved over the semantic baseline overall, but SCREEN F1 decreased in that run.
With 44 test samples and one primary seed, these differences are descriptive—not evidence of statistical superiority.
18 failures / 44
14 failures / 44
16 failures / 44
Structured implementation
Separated paper-described components from assumptions before implementation.
Audited provenance, licensing, lineage, source confounding, and leakage risks.
Created a deterministic, group-safe 300-sample DLC-2021 reduced benchmark.
Trained the frozen-split ConvNeXt-Tiny baseline.
Added a lightweight pixel-only texture branch and learned fusion.
Added fixed Sobel gradients and a lightweight learned edge branch.
Failure analysis
Of M3's 18 failures, seven were corrected by both branch models, four only by texture, two only by edge, and five persisted across all configurations. BONA_FIDE remained the hardest class.
Research-grade by being honest
Only 300 samples, 44 test cases, one seed, no stochastic augmentation, unequal lineage coverage, a possible padding shortcut, and architecture changes that prevent a perfectly head-matched causal ablation.