Tugas Akhir Teknik Informatika UIR 2026, Sistem deteksi otomatis keaslian Kartu Tanda Mahasiswa (KTM) berbasis web. Pipeline: Qwen3-VL (gerbang semantik) → Florence-2 + Canny (deteksi & crop kartu) → EfficientNet-B0 (klasifikasi ASLI/PALSU) → Grad-CAM. Dataset 1.645 citra dengan 5 skenario pemalsuan terkontrol.
# KTM Detector UIR — Automatic Student ID Card Authenticity Detection
Web-based system that determines whether a **Kartu Tanda Mahasiswa** (student ID
card) of Universitas Islam Riau is **genuine** or **forged**, using a
Convolutional Neural Network.
Undergraduate thesis — Informatics Engineering, Universitas Islam Riau, 2026
**Dwi Yuda** · NPM 223510389
*Baca dalam Bahasa Indonesia →*
---
## How It Works
```
Uploaded photo
│
├─ 1. Qwen3-VL gate "Is there an ID card in this image?"
│ answer "NO" → REJECT (classifier never runs)
│
├─ 2. Florence-2 + Canny locate, crop and de-skew the card → 1024×474 px
│
├─ 3. EfficientNet-B0 classify REAL / FAKE
│
└─ 4. Grad-CAM highlight the regions behind the decision
```
The system is **self-contained**: it needs no reference database of genuine
cards. The model learns pixel-level forensic traces — damaged guilloché
patterns, typographic inconsistency, print-and-rescan artefacts — that are
invisible to the naked eye.
---
## Results
### Dataset
1,645 images: **845 genuine** + **800 forged** across five controlled attack
scenarios.
| Scenario | Count | Forgery type |
|----------|-------|--------------|
| A | 200 | Face photo replaced by generative AI (Stable Diffusion) |
| B | 200 | Typographic inconsistency in identity text |
| C | 80 | Print-and-rescan recapture |
| D | 200 | Identity text forged (EasyOCR + copy-patch, guilloché preserved) |
| Hybrid | 120 | Combination of A/B/D followed by print-and-rescan |
Every forged image derives from a genuine card with the same number
(`real_N` → `fake_N`), so the train/validation/test split is **group-aware**:
all derivatives of one physical card stay in the same subset. This prevents
card-level data leakage.
### Classification performance
At the architectures' **native input resolution** (224×224 for B0, 300×300 for B3):
| Model | Split | Accuracy | Precision | Recall | F1 | ROC-AUC |
|-------|-------|----------|-----------|--------|--- …