think
16px
820px

Apostille K.10 — modal perbandingan tanda tangan + analisis "kenapa 0%?"

Deployed: app ahu-ai-ocr:1f2db4e0 :3520 + ahu-signature-verify v1.1 · backend 2548 ✅ / frontend 975 ✅ · diverifikasi live pada e4229ea8

1. Modal perbandingan (klik panel tanda tangan)

Klik panel "Perbandingan tanda tangan (AI)" di blok penandatangan kini membuka modal:
crop dokumen vs spesimen ukuran besar, badge skor + tier, tautan lembar spesimen utuh, aksi
"Tandai tanda tangan di dokumen" / "Gambar ulang kotak" (khusus verifikator), dan analisis AI baru —
Peta kemiripan: overlay heatmap per-patch (area hangat punya padanan kuat di crop satunya,
dingin tidak).

Peta ini langsung membongkar misteri skor: pada dokumenmu, area hangat justru di stempel dan teks
cetak
, sementara goresan tanda tangannya dingin — model baseline mencocokkan stempel/kertas, bukan
bentuk goresan. Itu akar "0%"-nya.

2. "How come it is 0%? Perhaps I chose the wrong person?" — TIDAK, pilihanmu benar

Keempat kandidat Darsani adalah orang yang sama (re-registrasi 2008→2025). Aku membandingkan
tanda tangan dokumen dengan keempat berkas spesimennya:

Spesimen Bentuk berkas Skor AI Catatan
2655 (pilihanmu, 2008) Form "CONTOH TANDA TANGAN" ter-scan miring 0% Setelah fix rotasi v1.1, crop kini sel TANDATANGAN yang benar — dan secara visual goresannya paling mirip dokumen ("Marci"-flourish yang sama)
290994327 (2024) Ttd di atas stempel 24% Skor "tertinggi" karena crop-nya juga berisi stempel — bukan karena goresan
291092585 (2025) Surat pengantar multi-halaman 32%* Tidak bermakna: berkasnya memuat ttd pejabat lain* (Galih Yudha Praja) yang terdeteksi lebih dulu — masalah data registri
291063455 (2025) Ttd bersih biru tua 0% Goresan mirip juga, tapi crop bersih vs crop dokumen berstempel → cosine jatuh

Kesimpulan: skornya rendah bukan karena salah orang, tapi karena pembanding baseline
(dinov2-cosine) terkonfound stempel/teks dan variasi lembar spesimen.
Dokumen 2013 + spesimen era
2008 milik orang yang sama, goresannya cocok secara kasat mata; verifikator kini bisa melihatnya
sendiri lewat modal + lembar spesimen utuh. Kalibrasi C5 (model metric khusus tanda tangan +
preprocessing pemisah stempel/tinta) adalah perbaikan sesungguhnya — data matriks ini jadi korpus
awalnya.

Perbaikan nyata yang sudah masuk v1.1: deteksi spesimen kini memindai 4 orientasi (lembar legacy
sering ter-scan miring) dan pemenangnya dipilih berdasar kecocokan dengan crop dokumen — lembar
2655-mu tidak lagi ter-crop di sel PARAF yang salah.

3. "Gambar ulang kotak" → tugas VERIFIKATOR, dihapus dari pemohon

Kotak tanda tangan hanya memberi makan perbandingan advisory yang dipakai verifikator; pemohon
tidak mendapat manfaat apa pun darinya. Maka: tombol "Gambar kotak tanda tangan" / "Gambar ulang
kotak" (di blok signer maupun modal) kini hanya muncul untuk verifikator_apostille/admin, dan
endpoint signature-region dijaga requireVerifikatorRole. "Tandai tanda tangan di dokumen"
(sorot, read-only) tetap untuk semua. Diverifikasi live: role umum = 0 tombol gambar; verifikator =
tampil di blok + modal.

Teknis

  • Service v1.1: _best_crops_per_rotation (deteksi terbaik per 0/90/180/270; skor deteksi TIDAK
    dipakai memilih orientasi — detektor sama pedenya pada ttd miring, terbukti di matriks) + pilihan
    final via cosine vs crop dokumen; _sim_maps = cross patch-cosine dinov2 → heatmap overlay.
  • Backend: kolom aditif SignerMatch.signatureDocMap/signatureSpecMap (migrasi
    20260713060000_signer_match_sim_maps), route signature-crop/{doc-map|specimen-map}, kontrak
    signature.docMapUrl/specimenMapUrl.
  • FE: SignatureCompareModal (5 test) + panel advisory jadi clickable ("Perbesar").